From cb0bc7ecd4d401724c50015d49d602dc23b8ab97 Mon Sep 17 00:00:00 2001 From: KamFretoZ <14798312+kamfretoz@users.noreply.github.com> Date: Sun, 10 Dec 2023 21:04:02 +0700 Subject: [PATCH] Squashed commit of the following: commit 5338a4f17cefbd892122a95fcde2e8aa3f2329e0 Author: Stenzek Date: Sat Dec 2 14:24:15 2023 +1000 GS/HW: Add 'Align To Native' HPO mode commit e2dcabcbeaae4ced1cdf1e4ce0b14ed7607ef512 Author: Stenzek Date: Mon Dec 4 22:34:48 2023 +1000 Qt: Prompt user to enable HC mode on achievement login commit 971929777d279d1df0d78dd138b18fce7edf75db Author: Stenzek Date: Mon Dec 4 22:30:39 2023 +1000 Achievements: Handle dynamically-sized leaderboard trackers commit 0f4a95e31bd3bdb534e6206ea1567743839347ae Author: Dan McCarthy Date: Fri Dec 8 16:46:41 2023 -0600 Qt: (Debugger) Add ability to remove result from Memory Search results Adds the ability to remove individual search results from the Memory Search results list. Right clicking a result will give the "Remove Result" option in the context menu. commit b45378767018b2781f7f4ec4d93bb172996bc61d Author: Dan McCarthy Date: Thu Dec 7 23:24:09 2023 -0600 Qt: Adds right click Go To Disassembly menu option to Memory Search Allows user to right click a memory search result in order to go to that memory address location in the disassembly view. This saves several step and makes it easier to do. Also adds precedent for the memory search result context menu which will be used in future features. commit c555dbc3e8d22ae15489b110bf932ed9ee2e03cc Author: JordanTheToaster Date: Wed Dec 6 10:48:57 2023 +0000 3rdparty: Update VK memory allocator Updates VK memory allocator to latest master commit. commit 1561e07ddf1e6eded7dcf4d133677eb7e3275f36 Author: JordanTheToaster Date: Wed Dec 6 10:34:36 2023 +0000 3rdparty: Update D3D12 memory allocator Updates D3D12 memory allocator to latest master commit. commit ec9bc599622e74423064ecc05176f6d031854e1a Author: JordanTheToaster Date: Fri Dec 8 09:34:01 2023 +0000 GameDB: PJ King Kong fixes Fixes for the hash cache being silly and spiking to stupid levels killing performance. commit 7fd82fffabfb3eb6479f1d11cec9fa0081fee805 Author: JordanTheToaster Date: Tue Dec 5 09:17:11 2023 +0000 3rdparty: Update Vulkan Headers to v1.3.272 Updates Vulkan Headers to v1.3.272. commit 0652b218db13f1b3c1c8c76f301fdabcfc33bc17 Author: RedPanda4552 Date: Tue Dec 5 14:26:44 2023 -0500 Big Picture: Enforce immediate save for macro button selection and frequency Fixes settings not saving until emulator exit commit 59217b9af3066a051b55346de2aadd519699fcb1 Author: RedPanda4552 Date: Tue Dec 5 14:25:23 2023 -0500 Big Picture: Fix macro pressure/deadzone not having independent labels Fixes mangled pop-up, allows both to be set correctly/independently commit 46c9bcbc4fa9b058c5753b872be258b9d3473fd4 Author: RedPanda4552 Date: Tue Dec 5 14:24:00 2023 -0500 Big Picture: Don't use macro frequency display label as config key Fixes Big Picture unable to set macro frequency commit f6154032c7bbdf130aabb2f3d234237984964fc8 Author: JordanTheToaster Date: Mon Dec 4 05:28:18 2023 +0000 3rdparty: Use upstream XZ submodule For some reason we used a branch XZ from around 6 years ago? Honestly not sure why. commit 6c2d2e8455af374503a500b4db879687fecb14ab Author: JordanTheToaster Date: Mon Dec 4 16:00:54 2023 +0000 GameDB: FIFA World Cup 2006 Fixes Fixes broken player textures. commit 4d61f26dfac836c6b676323a427c9749f1364a5a Author: JordanTheToaster Date: Mon Dec 4 16:14:00 2023 +0000 ci: Revert to labeler version 4.3.0 Seems to cause the labeler to explode. commit 86c42a00a3cc4b9de54c1129375695e2ead59998 Author: RedPanda4552 Date: Thu Nov 23 23:15:38 2023 -0500 Pad: Add controller ejection commit 2443e0674552f607c43ac77aacea2884fe037bfc Author: RedPanda4552 Date: Mon Nov 6 00:17:29 2023 -0500 [SAVEVERSION+] Multitap: Make multitaps manage their own states commit eb1d93d4e5dad60c8d33a6e6a07d23f51c80a0a6 Author: RedPanda4552 Date: Mon Nov 6 00:08:58 2023 -0500 Pad/Multitap: Improve PS2-side ejection detection commit f0bf525cf42a3d9a606234c5dc8937d25c677030 Author: Dan McCarthy Date: Tue Nov 28 16:17:37 2023 -0600 Qt: Addresses typo in duplicate Patch console log warning Fixed unintentionally non-sensical wording in log warning to inform the user that a patch was skipped over since a patch with the same name had already been loaded. commit 45758add5d8aaf7122087844bbe1abe6324b90ec Author: Dan McCarthy Date: Tue Nov 28 16:17:08 2023 -0600 Use consistent snake_case naming & don't pass string_view by ref Addresses feedback to use consistent naming conventions as most variables are using snake_case. Also no longer passes string_view by reference as per feedback. commit 57465b2892014898fcc93a8dbb7607171db40cba Author: Dan McCarthy Date: Mon Nov 27 17:16:20 2023 -0600 Qt: Clarifies wording of Patch log for disabling duplicate patch Adds a better worded log statement for informing the user that a patch with a duplicate name was found and not loaded to avoid conflict. The common expected reason this can happen is a bundled patch having the same name as a /patches/ pnach patch having the same name. By default it will prioritize the folder patch over the bundled patch. Makes it more clear/less confusing in phrasing. commit 8a95eecf6039dcaab45d63cb3600bd57f9b63b15 Author: Dan McCarthy Date: Sun Nov 26 11:04:49 2023 -0600 Qt: Use const patch lists for ContainsPatchName commit 766b0ba9c86da5c01def12ebdb4527cb10f08190 Author: Dan McCarthy Date: Sun Nov 26 10:56:09 2023 -0600 Qt: Update to use string_view references & const Co-authored-by: Silent commit a6796fe80aa6af2f555a847865bf6291fb40482c Author: Dan McCarthy Date: Sun Nov 26 09:29:24 2023 -0600 Qt: Improves wording of patch skipping log commit 5e450388f99a11bb2a145a500e5cdf927dcdf83d Author: Dan McCarthy Date: Sun Nov 26 00:18:02 2023 -0600 Qt: Fix final return condition for PatchStringHasUnlabelledPatch commit cc628250813068f720f59b6191cedb76cda2057d Author: Dan McCarthy Date: Sat Nov 25 23:51:01 2023 -0600 Qt: Fix console warning about hiding bundled patches Fixes syntax error with console write format to display warning when bundled patches are hidden due to unlabeled patches being loaded. commit 7b5d640f3590a081ce26fa67cab4079ff6fb54b2 Author: Dan McCarthy Date: Sat Nov 25 23:17:41 2023 -0600 Qt: Add warning that unlabeled patches cause bundled patches to hide Bundled patches don't display when unlabeled patches are loaded (since we can't guarantee they don't collide). This warns the user that bundled patches are hidden when unlabeled patches are loaded. (The warning hides when no unlabeled patches are loaded) commit 96a9e8a0909066f01a3e8c16bcd4fb68d1a120f3 Author: Dan McCarthy Date: Sat Nov 25 22:58:17 2023 -0600 Qt: Display patch folder patches & .zip patches if no name collision Currently if one has patches from the patch folder, no bundled patches from the .zip file will be displayed. This changes it so that we can display both the folder patches AND the .zip bundled patches as long as their names don't collide. If there's a collision, the folder patch will override the bundled patch. Also, if an unlabeled patch is loaded from the folder then all bundled patches will be hidden (like they did prior) since we can't guarantee there's no collision. commit d572765f090b1655dcf53cefa79f6c1504003046 Author: Stenzek Date: Sun Dec 3 17:37:27 2023 +1000 Qt: Allow language change without shutting down VM commit ce539f30a5e805b02f437cffff160a2fba224d4c Author: Mrlinkwii Date: Sun Dec 3 13:55:53 2023 +0000 Qt: Fix links in first page of Setup Wizard Co-Authored-By: Connor McLaughlin <11288319+stenzek@users.noreply.github.com> commit 103cf9c3bffab640c531a19e455234052fb3b6a0 Author: PCSX2 Bot Date: Sun Dec 3 00:01:40 2023 +0000 Qt: Update Base Translation commit e9fca78c13b9a7cf35f271ed0518ec748f6a12ba Author: Silent Date: Fri Dec 1 18:14:06 2023 +0100 FullscreenUI: Fixup mistakes missed in #10330 commit 19431ef675714cb43e73f3e719189d08daff2db7 Author: refractionpcsx2 Date: Wed Nov 29 00:41:04 2023 +0000 GS: Fix bug in STQ rounding commit 8d6c5ea40638e6d6ba40780e0d15047e56942a3e Author: refractionpcsx2 Date: Tue Nov 28 12:25:36 2023 +0000 GS/HW: Combine strips from same pixels, slight different sub pixel commit 0dfc35ee5f84de14b7b9d028e31e909351a985ad Author: Stenzek Date: Fri Dec 1 21:40:58 2023 +1000 deps: Bump to Qt 6.6.1 and SDL2 2.28.5 commit b8a1d07cdc06652d8af3e92c0aaa75be7ff985fe Author: JordanTheToaster Date: Thu Nov 30 15:51:19 2023 +0000 GameDB: Misc fixes Fixes for right edge artifacts in Katamari Damacy. commit 574f95a35bb7dd7d8f71c6dcb4afe566780dd761 Author: JordanTheToaster Date: Tue Nov 28 10:19:58 2023 +0000 3rdparty: Update fmt to v10.1.1 Updates fmt to v10.1.1. commit cefcd843fc92db64b8adaba139143f2938162c14 Author: JordanTheToaster Date: Tue Nov 28 10:19:22 2023 +0000 Misc: Fix fmt errors commit 279c84f8e19586d9f29e3608c1683206874c3368 Author: Silent Date: Mon Nov 27 16:46:38 2023 +0100 Achievements: Fix the percentage counter when only unofficial achievements exist Now correctly shows "This game has no achievements" and no percentage bar, as per the RetroAchievements integration guide. commit b69cfad8ef3afaf4ed0ef6f5edc44fa8be411486 Author: Mrlinkwii Date: Thu Nov 30 11:55:04 2023 +0000 QT: add the ability to load .backup save states in UI commit 0bdc4394aa68b5b5e8385269c1da591fdd93ea1b Author: Stenzek Date: Thu Nov 30 13:54:35 2023 +1000 3rdparty/rcheevos: Bump to 8afec6c commit 9e720d1e2bc58141af3533b505118d0866d62dfb Author: Stenzek Date: Thu Nov 30 13:52:48 2023 +1000 Achievements: Fix multiple leaderboard trackers commit 9a932e7dd5e11ef68f03f042c1d81a97b348fecc Author: Silent Date: Mon Nov 27 23:30:28 2023 +0100 FullscreenUI: Properly account for multiline Rich Presence in Title Info commit 62c0148472d75de7db0fb7c8b0bfc7da235a8aed Author: Radiata <2krn4u@gmail.com> Date: Wed Nov 29 20:02:18 2023 -0800 GameDB: Radiata Stories Fixes random incorrect model position. commit 97cedb311a430641f877c776f879a4718522c65f Author: Stenzek Date: Thu Nov 30 18:18:24 2023 +1000 CDVD: Get rid of negative data offsets It doesn't make sense. Code was written in 2009 with no explaination. commit 776cdd60fa9647ce5ee5f46408ab481ddf822f6c Author: Stenzek Date: Thu Nov 30 18:13:54 2023 +1000 GzippedFileReader: Prevent out-of-bounds reads commit 234b3df332580e2590907c338646b4e5d4ee832b Author: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Tue Nov 28 16:56:49 2023 +0100 GameDB: Various gshw fixes. Add full mipmap plus ps2 trilinear to Snoopy vs. The Red Baron. Improves ground textures to match sw renderer. Add full recommended blending level to Blokus Club with Bumpy Trot. Fixes water reflections. Add full mipmap plus ps2 trilinear and medium recommended blending level to Gallop Racer 2003: A New Breed. Blending improves lighting, maximum blending is needed for full accuracy. Mipmap + trilinear, improves ground textures to match sw renderer. Add full mipmap plus ps2 trilinear commit fa0744fb8ee0a70d8703c191a7ba67107623c27c Author: PCSX2 Bot Date: Tue Nov 28 00:01:37 2023 +0000 Qt: Update Base Translation commit 376216a2c079dd7247028b1b32e5843c9854d69c Author: PCSX2 Bot Date: Mon Nov 27 16:01:18 2023 +0000 PAD: Update to latest controller database. commit 88989bfbfde0f3308c7e0833fef5119cf992d304 Author: Stenzek Date: Mon Nov 27 01:25:13 2023 +1000 Hotkeys: Throttle pause requests commit acb45459f5e6dc103c3133f87cac17be087b2389 Author: Stenzek Date: Mon Nov 27 01:23:02 2023 +1000 Achievements: Use big picture to confirm HC mode disable commit 8a93c5696fdf8e372ac25fa3c4479c5dd9e59bb8 Author: JordanTheToaster Date: Sat Nov 25 01:28:23 2023 +0000 Console: Update CPU detection Cuts out unnecessary info and uses CPUInfo to print processor name core count and thread count. commit 33a6948e688de61bb59804719a5ff77a626c4b4c Author: JordanTheToaster Date: Sun Nov 26 16:00:10 2023 +0000 GameDB: Ace Combat 4 fixes Fixes large HC size causing high GS%. commit cdd5bd538afc2ec813149e30fb9ccb1b2b11b234 Author: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Sun Nov 26 17:40:02 2023 +0100 GameDB: Update Ar tonelico upscaling fixes. Round sprite from half to Full. Fixes textboxes and character portraits. commit 15082d77776f59c4f501e8bd4645e52698f91a14 Author: JordanTheToaster Date: Sat Nov 25 16:09:58 2023 +0000 GameDB: NBA Live 05 and 09 fixes Fixes for sprite rendering and crowd rendering. commit 5d2177d92924dd94d7d06e3822b440a64016a0a9 Author: JordanTheToaster Date: Sat Nov 25 16:03:20 2023 +0000 GameDB: Purge HPO Normal from NFS U2 Purges HPO Normal from Underground 2 as it causes screen shake even with the software FMV workaround in place. commit 31642ceca935768d6abc0891a402ec10e0c49caa Author: refractionpcsx2 Date: Sat Nov 25 00:45:38 2023 +0000 GS/HW: Partial revert earlier FMV fix commit e84335742d37a156667373cfe0bedfeb450db0a1 Author: refractionpcsx2 Date: Sat Nov 25 00:00:27 2023 +0000 GS/HW : Mirror half pixel offset when using FMV Blit override commit 6d31ef884936ce6af3b098d15266d8f8de8cdf56 Author: refractionpcsx2 Date: Fri Nov 17 00:42:48 2023 +0000 GameDB: Add Autoflush and HPO Normal to Manhunt commit 2fd24277c1cac52cd21884bdbed01312441b3b9f Author: refractionpcsx2 Date: Thu Nov 16 23:16:21 2023 +0000 GS: Pre-round/truncate STQ values based on hardware tests commit a60c30155e44d733b107f2cffbdfa05fc559d10a Author: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Thu Nov 23 18:12:51 2023 +0100 GS: Cleanup GSClut. Constants, switch cases. commit 041d26670f773bf2d353ae899f1fe5cac56ee4b6 Author: Stenzek Date: Fri Nov 24 22:21:44 2023 +1000 3rdparty/cubeb: Minimize and update to 54217bc commit 0891a27f75f41f6405ccd5940c9985fdd904fcfa Author: JordanTheToaster Date: Fri Nov 24 17:13:32 2023 +0000 3rdparty: Update CPUInfo to latest Updates CPUInfo to the latest version. commit d25246a21275fa0fc9e8ae445bb99370350012e8 Author: refractionpcsx2 Date: Fri Nov 24 13:35:58 2023 +0000 GS/HW: Allow more draws to remain if recent draws done near vsync commit 7853843b0b3d496a1d8b84199afc9863194f2f61 Author: refractionpcsx2 Date: Fri Nov 24 20:48:52 2023 +0000 GameDB: Fix FMVs on Rule of Rose + PAL Region commit 7cc6af8f852c4174c0162303c1d9a40802248609 Author: refractionpcsx2 Date: Mon Nov 20 21:16:20 2023 +0000 GS/HW: Restrict making new targets if no uploads commit 7fcc47dd86ce6f0043e3ecbc6885cbfc3f32db81 Author: refractionpcsx2 Date: Mon Nov 20 19:11:59 2023 +0000 GS/HW: In double half clears, take larger bitdepth commit bca4f15f9d38578a97a63dacc9089a9021a0d2bc Author: JordanTheToaster Date: Thu Nov 23 14:23:23 2023 +0000 3rdparty: Update xbyak to 6.73 Updates xbyak from 6.00 to 6.73. commit b644957ceec8890a38beb5c4ec10039b078b124b Author: Connor McLaughlin Date: Fri Nov 24 15:59:12 2023 +1000 Achievements: Avoid string copy on server call commit 2806b3a3c3d1e7c739c848b20b362c3d80dc3448 Author: Mrlinkwii Date: Thu Nov 23 14:16:49 2023 +0000 GameDB : update Driving Emotion fixes commit b166615067dd5f515901f5c205566e4e4e9b50c0 Author: PCSX2 Bot Date: Wed Nov 22 00:02:00 2023 +0000 Qt: Update Base Translation commit ae2860d03d449d2c9b57f83919d8f831b3552a05 Author: Dan McCarthy Date: Mon Nov 20 22:29:01 2023 -0600 Debugger: Allow copying function names Add the ability to copy a function name when you right click the first instruction of a function (the line where the function name displays). Instructions inside the function that are not the first instruction will not show the copy option, partly because it's less clear what will be copied but also to not needlessly overpopulate the context menu. commit 21b34642121b70a87aae62e79b211526de518401 Author: Tyler Wilding Date: Tue Nov 21 13:13:47 2023 -0500 translations: Syncing Crowdin translations (#10301) commit 5c1f280988fd3336c191a4f190e621c6eaa1f6a3 Author: TellowKrinkle Date: Mon Oct 30 23:08:02 2023 -0500 Mac: Add microphone permissions string Allows us to ask permission to use the microphone commit 7ec57692b126b77eaee54efbc9e960e6508c48b2 Author: Stenzek Date: Tue Nov 21 16:15:39 2023 +1000 Qt: Remove QtNetwork dependency commit d096fed8dbcef96b2904aab604f76b25bdf75fe5 Author: Stenzek Date: Tue Nov 21 16:13:59 2023 +1000 Qt: Use HTTPDownloader instead of QtNetwork for updates commit 15091cea5484922b4079e921f32aff5901550e2a Author: Stenzek Date: Tue Nov 21 16:13:14 2023 +1000 Qt: Fix progress dialog cancelling commit 7715d122c7cee08c05052efaaf2ee22102b761f4 Author: Stenzek Date: Tue Nov 21 16:12:58 2023 +1000 HTTPDownloader: Add support for progress updates/cancelling commit f18964ad443506549fa0eef7eba2faa1a138bb5b Author: Stenzek Date: Tue Nov 21 14:33:59 2023 +1000 Qt: Use main window geometry for temporary window When displaying the confirm popup when fullscreen. commit b79edf1cb5a55efb626494358752e79a5caf77e2 Author: Stenzek Date: Tue Nov 21 12:53:24 2023 +1000 MemoryCardFolder: Remove unused constant commit 67c55095248a58caf7214887e956fdadbda632c1 Author: Stenzek Date: Mon Nov 20 23:28:00 2023 +1000 Qt: Fix confirm dialog parenting to wrong window commit 0770249da16ba2042ed2f4ace874ea557c5b3403 Author: Stenzek Date: Mon Nov 20 23:27:32 2023 +1000 Qt: Make ALT+F4 while fullscreen exit PCSX2 commit 0ebc1ce7b2b4301a42923513daf7ce8200d1ce13 Author: dreamsyntax Date: Sun Nov 19 18:18:02 2023 -0700 Readme: Clarify latest build/contribution info; Adjust Technical Notes header type for consistency commit 90e9b602875e8066ef41a6f6ef4eaef12c04f069 Author: Dan McCarthy Date: Sun Nov 19 08:41:27 2023 -0600 Debugger: Implement subsequent/next scan for Mem Search (#10260) Co-authored-by: Ty commit 9a6e5458c984dc29825fabaeee6aba275e3683bf Author: Ty Lamontagne Date: Sat Nov 18 17:13:41 2023 -0500 Debugger: Clear breakpoint skips when resetting commit 3333553b2457bbf774389b11317d339ca088cafc Author: cyanea-bt <150618858+cyanea-bt@users.noreply.github.com> Date: Sun Nov 19 04:30:10 2023 +0100 MemoryCardFolder: Fix incorrect save timestamps (#10287) * MemoryCardFolder: Fix incorrect save timestamps * MemoryCardFolder: move timegm macro to source file * MemoryCardFolder: remove timegm macro commit 1565c5971434efcee1c10748e550f9e95ef428ad Author: JordanTheToaster Date: Sat Nov 18 01:37:55 2023 +0000 GameDB: Sega Ages 2500 Fixes Fixes for excessive texture uploads and massive hash cache sizes. commit 92a1eda82a9e99ed0faabe0e5dc30f1e42b704a0 Author: Goatman13 <101417270+Goatman13@users.noreply.github.com> Date: Thu Nov 16 13:14:05 2023 +0100 R3000: Fix COP0 Status value on reset Previously used value was wrong. BEV bit wasn't correct one, and CU0 and TS bits are not enabled by default. commit 84e24a014203c22da1df6e1225985efe8ec3961d Author: Dan McCarthy Date: Thu Nov 16 19:33:24 2023 -0600 Fix Failing to reload cheats on button press The Cheats Settings menu was failing to reload cheats when pressing the button. This meant if you enabled a cheat, made changes, and clicked reload, there would be no updates in behavior. This was due to the reload button getting wired to the function that refreshes the list of cheats, rather than the function that refreshes the list AND reloads the actual enabled cheats. This now calls the right function and when reloading, any changes thart were saved to the cheat will now be present. commit d235c2d899724c86ca92c51382e187c1a5bd4bbd Author: PCSX2 Bot Date: Fri Nov 17 00:01:44 2023 +0000 Qt: Update Base Translation commit a26d7f615b6dac966e7398ddec43d3a759afad98 Author: refractionpcsx2 Date: Fri Nov 10 21:05:38 2023 +0000 CDVD: Tidy up some bits, abort read head on Abort/Break commit 3411729ca577a95fd3f056174cca3931d9dd274a Author: refractionpcsx2 Date: Fri Nov 10 09:33:54 2023 +0000 CDVD: Don't include read times during seeks commit 62c35753aac98608c77949f5db2ce47e07593038 Author: refractionpcsx2 Date: Sun Nov 12 05:17:18 2023 +0000 GS/TC: Readd horizontal offset if not processed during invalidation commit 6967e66f74ebd153aa2a52462150c75784411ff3 Author: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Wed Nov 15 13:32:05 2023 +0100 GameDB: Add Auto flush to MGS2 Substance. Fixes depth of field blur. commit 9d96e23cb3a005b9ffcff2e4a508889b67a2bf46 Author: JordanTheToaster Date: Wed Nov 15 13:00:39 2023 +0000 GameDB: Ace combat fixes Fixes for terrain rendering in Ace Combat 4 and Zero. commit 91fa8426f13bbf261f3cbfea6e0799fab5d4cbee Author: Mrlinkwii Date: Tue Nov 14 14:36:04 2023 +0000 GameDB: fixes for XS Junior League Soccer & Guitar Hero - Van Halen commit 4af89576aa49e48657a651a9b0a4eaa0b1566021 Author: Daniel Gerendasy Date: Thu Nov 9 21:53:32 2023 -0800 IOP HLE: Rename update host root functions commit b5f8ef0106b6086c956cd3bfae06bc9cd797c414 Author: Daniel Gerendasy Date: Thu Nov 9 19:07:32 2023 -0800 Added support for HostFs when booting an iso commit 3ca7d2d62665d381825d90a1e36590f5052aa339 Author: Connor McLaughlin Date: Tue Nov 14 12:38:48 2023 +1000 CI/Flatpak: Disable build/repo linting We're currently failing validation with a `finish-args-unnecessary-xdg-config-access` error. This is **not** caused by anything we're doing, it's an issue with the upstream Qt SDK: https://invent.kde.org/packaging/flatpak-kde-runtime/-/blob/3bac997f76646f1abda38d376e217a5635167144/org.kde.Sdk.json.in#L84 So, for now, just disable it. I don't have time at the moment to chase bugs upstream, if it's still broken next week, I'll do so then. commit d37cd2e26d4885365d75d228a68156e6e770574d Author: PCSX2 Bot Date: Mon Nov 13 16:01:22 2023 +0000 PAD: Update to latest controller database. commit 46527cab5321b5a8f8905042aa66703540919c72 Author: JordanTheToaster Date: Fri Nov 10 17:56:19 2023 +0000 GameDB: PJ King Kong fixes Games still busted but it at least matches software in hardware now. --- .github/workflows/linux_build_flatpak.yml | 14 +- .../scripts/linux/build-dependencies-qt.sh | 18 +- .../linux/flatpak/modules/20-sdl2.json | 4 +- .../scripts/macos/build-dependencies.sh | 4 +- .../scripts/windows/build-dependencies.bat | 18 +- .github/workflows/triage_pr.yml | 2 +- .gitmodules | 6 +- 3rdparty/cpuinfo/CMakeLists.txt | 770 +- 3rdparty/cpuinfo/README.md | 41 +- .../cmake/DownloadGoogleBenchmark.cmake | 15 + .../cpuinfo/cmake/DownloadGoogleTest.cmake | 15 + .../cpuinfo/cmake/cpuinfo-config.cmake.in | 12 + 3rdparty/cpuinfo/cpuinfo.vcxproj | 2 +- 3rdparty/cpuinfo/deps/clog/CMakeLists.txt | 63 +- 3rdparty/cpuinfo/deps/clog/src/clog.c | 23 +- 3rdparty/cpuinfo/include/cpuinfo.h | 215 +- 3rdparty/cpuinfo/src/api.c | 25 +- 3rdparty/cpuinfo/src/arm/api.h | 2 + 3rdparty/cpuinfo/src/arm/cache.c | 55 + 3rdparty/cpuinfo/src/arm/linux/aarch32-isa.c | 125 +- 3rdparty/cpuinfo/src/arm/linux/aarch64-isa.c | 22 + 3rdparty/cpuinfo/src/arm/linux/api.h | 2 +- 3rdparty/cpuinfo/src/arm/linux/chipset.c | 96 +- 3rdparty/cpuinfo/src/arm/linux/clusters.c | 20 +- 3rdparty/cpuinfo/src/arm/linux/cp.h | 18 +- 3rdparty/cpuinfo/src/arm/linux/cpuinfo.c | 9 + 3rdparty/cpuinfo/src/arm/linux/hwcap.c | 10 +- 3rdparty/cpuinfo/src/arm/linux/init.c | 12 +- 3rdparty/cpuinfo/src/arm/linux/midr.c | 6 +- 3rdparty/cpuinfo/src/arm/mach/init.c | 219 +- 3rdparty/cpuinfo/src/arm/midr.h | 33 +- 3rdparty/cpuinfo/src/arm/uarch.c | 48 +- .../arm/windows/init-by-logical-sys-info.c | 901 + 3rdparty/cpuinfo/src/arm/windows/init.c | 243 + .../src/arm/windows/windows-arm-init.h | 38 + 3rdparty/cpuinfo/src/cpuinfo/internal-api.h | 9 +- 3rdparty/cpuinfo/src/cpuinfo/log.h | 104 +- 3rdparty/cpuinfo/src/cpuinfo/utils.h | 5 +- 3rdparty/cpuinfo/src/init.c | 8 + 3rdparty/cpuinfo/src/linux/api.h | 19 +- 3rdparty/cpuinfo/src/linux/processors.c | 135 +- 3rdparty/cpuinfo/src/log.c | 192 + 3rdparty/cpuinfo/src/riscv/api.h | 42 + 3rdparty/cpuinfo/src/riscv/linux/api.h | 69 + 3rdparty/cpuinfo/src/riscv/linux/init.c | 620 + 3rdparty/cpuinfo/src/riscv/linux/riscv-hw.c | 62 + 3rdparty/cpuinfo/src/riscv/linux/riscv-isa.c | 44 + 3rdparty/cpuinfo/src/riscv/uarch.c | 27 + 3rdparty/cpuinfo/src/x86/isa.c | 12 + 3rdparty/cpuinfo/src/x86/name.c | 6 +- 3rdparty/cpuinfo/src/x86/uarch.c | 38 +- 3rdparty/cubeb/CMakeLists.txt | 253 +- 3rdparty/cubeb/Config.cmake.in | 4 - .../cubeb/cmake/toolchain-cross-mingw.cmake | 14 - 3rdparty/cubeb/cubeb.supp | 36 - 3rdparty/cubeb/cubeb.vcxproj | 6 +- 3rdparty/cubeb/cubeb.vcxproj.filters | 1 - 3rdparty/cubeb/include/cubeb/cubeb.h | 70 +- 3rdparty/cubeb/include/cubeb/cubeb_export.h | 12 + 3rdparty/cubeb/include/cubeb_export.h | 25 - .../src/android/audiotrack_definitions.h | 85 - .../cubeb/src/android/cubeb-output-latency.h | 76 - .../cubeb/src/android/cubeb_media_library.h | 64 - 3rdparty/cubeb/src/android/sles_definitions.h | 104 - 3rdparty/cubeb/src/cubeb-jni.h | 8 + 3rdparty/cubeb/src/cubeb-sles.h | 38 - 3rdparty/cubeb/src/cubeb.c | 98 +- 3rdparty/cubeb/src/cubeb_aaudio.cpp | 1507 - 3rdparty/cubeb/src/cubeb_alsa.c | 3 + 3rdparty/cubeb/src/cubeb_android.h | 17 - 3rdparty/cubeb/src/cubeb_array_queue.h | 99 - 3rdparty/cubeb/src/cubeb_audiotrack.c | 472 - 3rdparty/cubeb/src/cubeb_jack.cpp | 2 +- 3rdparty/cubeb/src/cubeb_kai.c | 369 - 3rdparty/cubeb/src/cubeb_log.cpp | 128 +- 3rdparty/cubeb/src/cubeb_log.h | 19 +- 3rdparty/cubeb/src/cubeb_mixer.cpp | 2 +- 3rdparty/cubeb/src/cubeb_opensl.c | 1797 -- 3rdparty/cubeb/src/cubeb_ring_array.h | 23 +- 3rdparty/cubeb/src/cubeb_sndio.c | 34 +- 3rdparty/cubeb/src/cubeb_sun.c | 737 - 3rdparty/cubeb/src/cubeb_triple_buffer.h | 80 + 3rdparty/cubeb/src/cubeb_wasapi.cpp | 385 +- 3rdparty/cubeb/src/cubeb_winmm.c | 67 +- 3rdparty/d3d12memalloc/CHANGELOG.md | 22 +- 3rdparty/d3d12memalloc/README.md | 4 +- .../d3d12memalloc/include/D3D12MemAlloc.h | 231 +- 3rdparty/d3d12memalloc/src/D3D12MemAlloc.cpp | 1638 +- 3rdparty/fmt/fmt | 2 +- 3rdparty/include/vk_mem_alloc.h | 26185 ++++++++-------- 3rdparty/rcheevos/rcheevos | 2 +- 3rdparty/vulkan-headers | 2 +- 3rdparty/xbyak/xbyak/xbyak.h | 172 +- 3rdparty/xbyak/xbyak/xbyak_bin2hex.h | 258 + 3rdparty/xbyak/xbyak/xbyak_mnemonic.h | 127 +- 3rdparty/xbyak/xbyak/xbyak_util.h | 423 +- 3rdparty/xz/xz | 2 +- README.md | 7 +- bin/resources/GameIndex.yaml | 341 +- bin/resources/game_controller_db.txt | 8 +- cmake/Pcsx2Utils.cmake | 30 + cmake/SearchForStuff.cmake | 5 +- common/HTTPDownloader.cpp | 41 +- common/HTTPDownloader.h | 15 +- common/HTTPDownloaderCurl.cpp | 20 +- common/HTTPDownloaderCurl.h | 2 +- common/HTTPDownloaderWinHTTP.cpp | 7 +- common/HTTPDownloaderWinHTTP.h | 4 +- common/SmallString.h | 22 + common/vsprops/QtCompile.props | 16 +- pcsx2-qt/AutoUpdaterDialog.cpp | 239 +- pcsx2-qt/AutoUpdaterDialog.h | 31 +- pcsx2-qt/CMakeLists.txt | 2 +- pcsx2-qt/Debugger/CpuWidget.cpp | 269 +- pcsx2-qt/Debugger/CpuWidget.h | 10 + pcsx2-qt/Debugger/CpuWidget.ui | 26 +- pcsx2-qt/Debugger/DisassemblyWidget.cpp | 10 + pcsx2-qt/Debugger/DisassemblyWidget.h | 1 + pcsx2-qt/DisplayWidget.cpp | 13 +- pcsx2-qt/DisplayWidget.h | 1 + pcsx2-qt/MainWindow.cpp | 56 +- pcsx2-qt/MainWindow.h | 1 + pcsx2-qt/QtHost.cpp | 62 +- pcsx2-qt/QtHost.h | 1 - pcsx2-qt/QtProgressCallback.cpp | 11 +- pcsx2-qt/QtProgressCallback.h | 5 +- pcsx2-qt/Settings/AchievementLoginDialog.cpp | 42 + .../Settings/AchievementSettingsWidget.cpp | 13 + pcsx2-qt/Settings/GameCheatSettingsWidget.cpp | 2 +- pcsx2-qt/Settings/GamePatchSettingsWidget.cpp | 10 +- pcsx2-qt/Settings/GamePatchSettingsWidget.h | 1 + pcsx2-qt/Settings/GamePatchSettingsWidget.ui | 7 + pcsx2-qt/Settings/GraphicsSettingsWidget.ui | 5 + pcsx2-qt/SetupWizardDialog.ui | 6 + pcsx2-qt/Translations.cpp | 52 +- pcsx2-qt/Translations/pcsx2-qt_af-ZA.ts | 7301 +++-- pcsx2-qt/Translations/pcsx2-qt_ar-SA.ts | 6675 ++-- pcsx2-qt/Translations/pcsx2-qt_ca-ES.ts | 6557 ++-- pcsx2-qt/Translations/pcsx2-qt_cs-CZ.ts | 6639 ++-- pcsx2-qt/Translations/pcsx2-qt_da-DK.ts | 6401 ++-- pcsx2-qt/Translations/pcsx2-qt_de-DE.ts | 6559 ++-- pcsx2-qt/Translations/pcsx2-qt_el-GR.ts | 8321 ++--- pcsx2-qt/Translations/pcsx2-qt_en.ts | 2488 +- pcsx2-qt/Translations/pcsx2-qt_es-419.ts | 6951 ++-- pcsx2-qt/Translations/pcsx2-qt_es-ES.ts | 6910 ++-- pcsx2-qt/Translations/pcsx2-qt_fa-IR.ts | 7003 +++-- pcsx2-qt/Translations/pcsx2-qt_fi-FI.ts | 7247 +++-- pcsx2-qt/Translations/pcsx2-qt_fr-FR.ts | 9412 +++--- pcsx2-qt/Translations/pcsx2-qt_he-IL.ts | 8070 ++--- pcsx2-qt/Translations/pcsx2-qt_hi-IN.ts | 6985 +++-- pcsx2-qt/Translations/pcsx2-qt_hr-HR.ts | 6592 ++-- pcsx2-qt/Translations/pcsx2-qt_hu-HU.ts | 6622 ++-- pcsx2-qt/Translations/pcsx2-qt_id-ID.ts | 7720 ++--- pcsx2-qt/Translations/pcsx2-qt_it-IT.ts | 6474 ++-- pcsx2-qt/Translations/pcsx2-qt_ja-JP.ts | 6908 ++-- pcsx2-qt/Translations/pcsx2-qt_ko-KR.ts | 6553 ++-- pcsx2-qt/Translations/pcsx2-qt_lt-LT.ts | 8707 ++--- pcsx2-qt/Translations/pcsx2-qt_lv-LV.ts | 6633 ++-- pcsx2-qt/Translations/pcsx2-qt_nl-NL.ts | 7057 +++-- pcsx2-qt/Translations/pcsx2-qt_no-NO.ts | 7053 +++-- pcsx2-qt/Translations/pcsx2-qt_pl-PL.ts | 6541 ++-- pcsx2-qt/Translations/pcsx2-qt_pt-BR.ts | 6491 ++-- pcsx2-qt/Translations/pcsx2-qt_pt-PT.ts | 7036 +++-- pcsx2-qt/Translations/pcsx2-qt_ro-RO.ts | 6407 ++-- pcsx2-qt/Translations/pcsx2-qt_ru-RU.ts | 6739 ++-- pcsx2-qt/Translations/pcsx2-qt_sr-SP.ts | 6415 ++-- pcsx2-qt/Translations/pcsx2-qt_sv-SE.ts | 6651 ++-- pcsx2-qt/Translations/pcsx2-qt_tr-TR.ts | 6577 ++-- pcsx2-qt/Translations/pcsx2-qt_uk-UA.ts | 7302 +++-- pcsx2-qt/Translations/pcsx2-qt_vi-VN.ts | 6399 ++-- pcsx2-qt/Translations/pcsx2-qt_zh-CN.ts | 6441 ++-- pcsx2-qt/Translations/pcsx2-qt_zh-TW.ts | 6592 ++-- pcsx2/Achievements.cpp | 153 +- pcsx2/Achievements.h | 2 + pcsx2/CDVD/CDVD.cpp | 65 +- pcsx2/CDVD/GzippedFileReader.cpp | 3 + pcsx2/CDVD/InputIsoFile.cpp | 21 +- pcsx2/CDVD/IsoFileFormats.h | 2 +- pcsx2/Config.h | 12 +- pcsx2/DebugTools/Breakpoints.cpp | 8 + pcsx2/DebugTools/Breakpoints.h | 1 + pcsx2/GS/GSClut.cpp | 38 +- pcsx2/GS/GSState.cpp | 54 +- pcsx2/GS/GSState.h | 1 + pcsx2/GS/Renderers/Common/GSRenderer.cpp | 2 +- pcsx2/GS/Renderers/HW/GSRendererHW.cpp | 229 +- pcsx2/GS/Renderers/HW/GSRendererHW.h | 1 + pcsx2/GS/Renderers/HW/GSTextureCache.cpp | 65 +- pcsx2/GS/Renderers/HW/GSTextureCache.h | 2 +- pcsx2/GS/Renderers/Metal/GSDeviceMTL.mm | 6 +- pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp | 5 +- pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp | 2 +- pcsx2/GS/Renderers/Vulkan/VKEntryPoints.inl | 4 + pcsx2/GameDatabase.cpp | 9 +- pcsx2/GameList.cpp | 2 +- pcsx2/Host.cpp | 17 + pcsx2/Host.h | 3 + pcsx2/Hotkeys.cpp | 35 +- pcsx2/ImGui/FullscreenUI.cpp | 78 +- pcsx2/ImGui/ImGuiManager.cpp | 35 +- pcsx2/ImGui/ImGuiManager.h | 8 +- pcsx2/ImGui/ImGuiOverlays.cpp | 4 +- pcsx2/IopBios.cpp | 7 +- pcsx2/IopBios.h | 4 +- pcsx2/Patch.cpp | 85 +- pcsx2/Pcsx2Config.cpp | 6 +- pcsx2/R3000A.cpp | 2 +- pcsx2/R5900.cpp | 2 + pcsx2/Resources/Info.plist.in | 2 + pcsx2/SIO/Memcard/MemoryCardFolder.cpp | 11 +- pcsx2/SIO/Memcard/MemoryCardProtocol.cpp | 32 +- pcsx2/SIO/Multitap/MultitapProtocol.cpp | 109 +- pcsx2/SIO/Multitap/MultitapProtocol.h | 18 +- pcsx2/SIO/Pad/Pad.cpp | 101 +- pcsx2/SIO/Pad/Pad.h | 2 + pcsx2/SIO/Pad/PadBase.cpp | 3 +- pcsx2/SIO/Pad/PadBase.h | 10 +- pcsx2/SIO/Pad/PadDualshock2.cpp | 4 +- pcsx2/SIO/Pad/PadDualshock2.h | 2 +- pcsx2/SIO/Pad/PadGuitar.cpp | 4 +- pcsx2/SIO/Pad/PadGuitar.h | 2 +- pcsx2/SIO/Pad/PadNotConnected.cpp | 6 +- pcsx2/SIO/Pad/PadNotConnected.h | 2 +- pcsx2/SIO/Sio2.cpp | 121 +- pcsx2/SIO/Sio2.h | 1 - pcsx2/SIO/SioTypes.h | 11 + pcsx2/SaveState.cpp | 4 + pcsx2/SaveState.h | 2 +- pcsx2/System.cpp | 23 +- pcsx2/VMManager.cpp | 98 +- pcsx2/VMManager.h | 1 + 231 files changed, 161406 insertions(+), 135160 deletions(-) create mode 100644 3rdparty/cpuinfo/cmake/DownloadGoogleBenchmark.cmake create mode 100644 3rdparty/cpuinfo/cmake/DownloadGoogleTest.cmake create mode 100644 3rdparty/cpuinfo/cmake/cpuinfo-config.cmake.in create mode 100644 3rdparty/cpuinfo/src/arm/windows/init-by-logical-sys-info.c create mode 100644 3rdparty/cpuinfo/src/arm/windows/init.c create mode 100644 3rdparty/cpuinfo/src/arm/windows/windows-arm-init.h create mode 100644 3rdparty/cpuinfo/src/log.c create mode 100644 3rdparty/cpuinfo/src/riscv/api.h create mode 100644 3rdparty/cpuinfo/src/riscv/linux/api.h create mode 100644 3rdparty/cpuinfo/src/riscv/linux/init.c create mode 100644 3rdparty/cpuinfo/src/riscv/linux/riscv-hw.c create mode 100644 3rdparty/cpuinfo/src/riscv/linux/riscv-isa.c create mode 100644 3rdparty/cpuinfo/src/riscv/uarch.c delete mode 100644 3rdparty/cubeb/Config.cmake.in delete mode 100644 3rdparty/cubeb/cmake/toolchain-cross-mingw.cmake delete mode 100644 3rdparty/cubeb/cubeb.supp create mode 100644 3rdparty/cubeb/include/cubeb/cubeb_export.h delete mode 100644 3rdparty/cubeb/include/cubeb_export.h delete mode 100644 3rdparty/cubeb/src/android/audiotrack_definitions.h delete mode 100644 3rdparty/cubeb/src/android/cubeb-output-latency.h delete mode 100644 3rdparty/cubeb/src/android/cubeb_media_library.h delete mode 100644 3rdparty/cubeb/src/android/sles_definitions.h delete mode 100644 3rdparty/cubeb/src/cubeb-sles.h delete mode 100644 3rdparty/cubeb/src/cubeb_aaudio.cpp delete mode 100644 3rdparty/cubeb/src/cubeb_android.h delete mode 100644 3rdparty/cubeb/src/cubeb_array_queue.h delete mode 100644 3rdparty/cubeb/src/cubeb_audiotrack.c delete mode 100644 3rdparty/cubeb/src/cubeb_kai.c delete mode 100644 3rdparty/cubeb/src/cubeb_opensl.c delete mode 100644 3rdparty/cubeb/src/cubeb_sun.c create mode 100644 3rdparty/cubeb/src/cubeb_triple_buffer.h create mode 100644 3rdparty/xbyak/xbyak/xbyak_bin2hex.h diff --git a/.github/workflows/linux_build_flatpak.yml b/.github/workflows/linux_build_flatpak.yml index 7c523fd686c94e..8472f00165653c 100644 --- a/.github/workflows/linux_build_flatpak.yml +++ b/.github/workflows/linux_build_flatpak.yml @@ -107,13 +107,13 @@ jobs: run: | ostree commit --repo=repo --canonical-permissions --branch=screenshots/x86_64 flatpak_app/screenshots - - name: Validate build directory - run: | - flatpak run --command=flatpak-builder-lint org.flatpak.Builder builddir flatpak_app - - - name: Validate repo - run: | - flatpak run --command=flatpak-builder-lint org.flatpak.Builder repo repo + #- name: Validate build directory + # run: | + # flatpak run --command=flatpak-builder-lint org.flatpak.Builder builddir flatpak_app + # + #- name: Validate repo + # run: | + # flatpak run --command=flatpak-builder-lint org.flatpak.Builder repo repo - name: Push to Flathub beta if: inputs.publish == true && inputs.branch == 'beta' diff --git a/.github/workflows/scripts/linux/build-dependencies-qt.sh b/.github/workflows/scripts/linux/build-dependencies-qt.sh index 87ec5bfabf7050..7b707ca43d61be 100755 --- a/.github/workflows/scripts/linux/build-dependencies-qt.sh +++ b/.github/workflows/scripts/linux/build-dependencies-qt.sh @@ -4,22 +4,22 @@ set -e INSTALLDIR="$HOME/deps" NPROCS="$(getconf _NPROCESSORS_ONLN)" -SDL=SDL2-2.28.4 -QT=6.6.0 +SDL=SDL2-2.28.5 +QT=6.6.1 LIBBACKTRACE=ad106d5fdd5d960bd33fae1c48a351af567fd075 mkdir -p deps-build cd deps-build cat > SHASUMS < SHASUMS < $) TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PRIVATE src) TARGET_INCLUDE_DIRECTORIES(cpuinfo_internals BEFORE PUBLIC include src) +TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE "CPUINFO_LOG_TO_STDIO=$") IF(CPUINFO_LOG_LEVEL STREQUAL "default") # default logging level: error (subject to change) - TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=2) + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE "CPUINFO_LOG_LEVEL=2") ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "debug") - TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=5) + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE "CPUINFO_LOG_LEVEL=5") ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "info") - TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=4) + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE "CPUINFO_LOG_LEVEL=4") ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "warning") - TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=3) + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE "CPUINFO_LOG_LEVEL=3") ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "error") - TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=2) + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE "CPUINFO_LOG_LEVEL=2") ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "fatal") - TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=1) + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE "CPUINFO_LOG_LEVEL=1") ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "none") - TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=0) + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE "CPUINFO_LOG_LEVEL=0") ELSE() MESSAGE(FATAL_ERROR "Unsupported logging level ${CPUINFO_LOG_LEVEL}") ENDIF() -TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE CPUINFO_LOG_LEVEL=0) +TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE "CPUINFO_LOG_LEVEL=0") +TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE "CPUINFO_LOG_TO_STDIO=1") IF(CPUINFO_SUPPORTED_PLATFORM) TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=1) @@ -207,17 +306,610 @@ ELSE() TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=0) ENDIF() -# ---[ cpuinfo dependencies: clog -IF(NOT DEFINED CLOG_SOURCE_DIR) - SET(CLOG_SOURCE_DIR "${PROJECT_SOURCE_DIR}/deps/clog") +ADD_LIBRARY(${PROJECT_NAME}::cpuinfo ALIAS cpuinfo) + +# support find_package(cpuinfo CONFIG) +INCLUDE(CMakePackageConfigHelpers) +GET_FILENAME_COMPONENT(CONFIG_FILE_PATH ${CMAKE_CURRENT_BINARY_DIR}/cpuinfo-config.cmake ABSOLUTE) +CONFIGURE_PACKAGE_CONFIG_FILE( + cmake/cpuinfo-config.cmake.in ${CONFIG_FILE_PATH} + INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}) +INSTALL(FILES ${CONFIG_FILE_PATH} + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}) # cpuinfo_DIR ${prefix}/share/cpuinfo + +INSTALL(TARGETS cpuinfo + EXPORT cpuinfo-targets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + +INSTALL(EXPORT cpuinfo-targets + NAMESPACE ${PROJECT_NAME}:: # IMPORTED cpuinfo::cpuinfo + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}) + +# ---[ cpuinfo micro-benchmarks +IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS) + # ---[ Build google benchmark + IF(NOT TARGET benchmark AND NOT USE_SYSTEM_GOOGLEBENCHMARK) + SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "") + ADD_SUBDIRECTORY( + "${GOOGLEBENCHMARK_SOURCE_DIR}" + "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark") + ENDIF() + + IF(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Android)$") + ADD_EXECUTABLE(get-current-bench bench/get-current.cc) + TARGET_LINK_LIBRARIES(get-current-bench cpuinfo benchmark) + ENDIF() + + ADD_EXECUTABLE(init-bench bench/init.cc) + TARGET_LINK_LIBRARIES(init-bench cpuinfo benchmark) +ENDIF() + +IF(CPUINFO_SUPPORTED_PLATFORM) + IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS) + # ---[ Build google test + IF(NOT TARGET gtest AND NOT USE_SYSTEM_GOOGLETEST) + IF(MSVC AND NOT CPUINFO_RUNTIME_TYPE STREQUAL "static") + SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + ENDIF() + ADD_SUBDIRECTORY( + "${GOOGLETEST_SOURCE_DIR}" + "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest") + ENDIF() + ENDIF() ENDIF() -IF(NOT TARGET clog) - SET(CLOG_BUILD_TESTS OFF CACHE BOOL "") - SET(CLOG_RUNTIME_TYPE "${CPUINFO_RUNTIME_TYPE}" CACHE STRING "") - ADD_SUBDIRECTORY( - "${CLOG_SOURCE_DIR}") - # We build static version of clog but a dynamic library may indirectly depend on it - SET_PROPERTY(TARGET clog PROPERTY POSITION_INDEPENDENT_CODE ON) + +# ---[ cpuinfo mock library and mock tests +IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_MOCK_TESTS) + SET(CPUINFO_MOCK_SRCS "${CPUINFO_SRCS}") + IF(CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)?)$") + LIST(APPEND CPUINFO_MOCK_SRCS src/x86/mockcpuid.c) + ENDIF() + IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") + LIST(APPEND CPUINFO_MOCK_SRCS src/linux/mockfile.c) + ENDIF() + + ADD_LIBRARY(cpuinfo_mock STATIC ${CPUINFO_MOCK_SRCS}) + CPUINFO_TARGET_ENABLE_C99(cpuinfo_mock) + CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo_mock) + SET_TARGET_PROPERTIES(cpuinfo_mock PROPERTIES PUBLIC_HEADER include/cpuinfo.h) + TARGET_INCLUDE_DIRECTORIES(cpuinfo_mock BEFORE PUBLIC include) + TARGET_INCLUDE_DIRECTORIES(cpuinfo_mock BEFORE PRIVATE src) + TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PUBLIC "CPUINFO_MOCK=1") + TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE "CPUINFO_LOG_LEVEL=5") + TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE "CPUINFO_LOG_TO_STDIO=1") + IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") + TARGET_LINK_LIBRARIES(cpuinfo_mock PUBLIC ${CMAKE_THREAD_LIBS_INIT}) + TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE _GNU_SOURCE=1) + ENDIF() + + IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7-a)$") + ADD_EXECUTABLE(atm7029b-tablet-test test/mock/atm7029b-tablet.cc) + TARGET_INCLUDE_DIRECTORIES(atm7029b-tablet-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(atm7029b-tablet-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME atm7029b-tablet-test COMMAND atm7029b-tablet-test) + + ADD_EXECUTABLE(blu-r1-hd-test test/mock/blu-r1-hd.cc) + TARGET_INCLUDE_DIRECTORIES(blu-r1-hd-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(blu-r1-hd-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME blu-r1-hd-test COMMAND blu-r1-hd-test) + + ADD_EXECUTABLE(galaxy-a3-2016-eu-test test/mock/galaxy-a3-2016-eu.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-a3-2016-eu-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-a3-2016-eu-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-a3-2016-eu-test COMMAND galaxy-a3-2016-eu-test) + + ADD_EXECUTABLE(galaxy-a8-2016-duos-test test/mock/galaxy-a8-2016-duos.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-a8-2016-duos-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-a8-2016-duos-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-a8-2016-duos-test COMMAND galaxy-a8-2016-duos-test) + + ADD_EXECUTABLE(galaxy-grand-prime-value-edition-test test/mock/galaxy-grand-prime-value-edition.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-grand-prime-value-edition-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-grand-prime-value-edition-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-grand-prime-value-edition-test COMMAND galaxy-grand-prime-value-edition-test) + + ADD_EXECUTABLE(galaxy-j1-2016-test test/mock/galaxy-j1-2016.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-j1-2016-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-j1-2016-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-j1-2016-test COMMAND galaxy-j1-2016-test) + + ADD_EXECUTABLE(galaxy-j5-test test/mock/galaxy-j5.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-j5-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-j5-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-j5-test COMMAND galaxy-j5-test) + + ADD_EXECUTABLE(galaxy-j7-prime-test test/mock/galaxy-j7-prime.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-j7-prime-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-j7-prime-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-j7-prime-test COMMAND galaxy-j7-prime-test) + + ADD_EXECUTABLE(galaxy-j7-tmobile-test test/mock/galaxy-j7-tmobile.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-j7-tmobile-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-j7-tmobile-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-j7-tmobile-test COMMAND galaxy-j7-tmobile-test) + + ADD_EXECUTABLE(galaxy-j7-uae-test test/mock/galaxy-j7-uae.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-j7-uae-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-j7-uae-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-j7-uae-test COMMAND galaxy-j7-uae-test) + + ADD_EXECUTABLE(galaxy-s3-us-test test/mock/galaxy-s3-us.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-s3-us-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-s3-us-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-s3-us-test COMMAND galaxy-s3-us-test) + + ADD_EXECUTABLE(galaxy-s4-us-test test/mock/galaxy-s4-us.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-s4-us-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-s4-us-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-s4-us-test COMMAND galaxy-s4-us-test) + + ADD_EXECUTABLE(galaxy-s5-global-test test/mock/galaxy-s5-global.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-s5-global-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-s5-global-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-s5-global-test COMMAND galaxy-s5-global-test) + + ADD_EXECUTABLE(galaxy-s5-us-test test/mock/galaxy-s5-us.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-s5-us-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-s5-us-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-s5-us-test COMMAND galaxy-s5-us-test) + + ADD_EXECUTABLE(galaxy-tab-3-7.0-test test/mock/galaxy-tab-3-7.0.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-tab-3-7.0-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-tab-3-7.0-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-tab-3-7.0-test COMMAND galaxy-tab-3-7.0-test) + + ADD_EXECUTABLE(galaxy-tab-3-lite-test test/mock/galaxy-tab-3-lite.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-tab-3-lite-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-tab-3-lite-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-tab-3-lite-test COMMAND galaxy-tab-3-lite-test) + + ADD_EXECUTABLE(galaxy-win-duos-test test/mock/galaxy-win-duos.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-win-duos-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-win-duos-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-win-duos-test COMMAND galaxy-win-duos-test) + + ADD_EXECUTABLE(huawei-ascend-p7-test test/mock/huawei-ascend-p7.cc) + TARGET_INCLUDE_DIRECTORIES(huawei-ascend-p7-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(huawei-ascend-p7-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME huawei-ascend-p7-test COMMAND huawei-ascend-p7-test) + + ADD_EXECUTABLE(huawei-honor-6-test test/mock/huawei-honor-6.cc) + TARGET_INCLUDE_DIRECTORIES(huawei-honor-6-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(huawei-honor-6-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME huawei-honor-6-test COMMAND huawei-honor-6-test) + + ADD_EXECUTABLE(lenovo-a6600-plus-test test/mock/lenovo-a6600-plus.cc) + TARGET_INCLUDE_DIRECTORIES(lenovo-a6600-plus-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(lenovo-a6600-plus-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME lenovo-a6600-plus-test COMMAND lenovo-a6600-plus-test) + + ADD_EXECUTABLE(lenovo-vibe-x2-test test/mock/lenovo-vibe-x2.cc) + TARGET_INCLUDE_DIRECTORIES(lenovo-vibe-x2-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(lenovo-vibe-x2-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME lenovo-vibe-x2-test COMMAND lenovo-vibe-x2-test) + + ADD_EXECUTABLE(lg-k10-eu-test test/mock/lg-k10-eu.cc) + TARGET_INCLUDE_DIRECTORIES(lg-k10-eu-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(lg-k10-eu-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME lg-k10-eu-test COMMAND lg-k10-eu-test) + + ADD_EXECUTABLE(lg-optimus-g-pro-test test/mock/lg-optimus-g-pro.cc) + TARGET_INCLUDE_DIRECTORIES(lg-optimus-g-pro-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(lg-optimus-g-pro-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME lg-optimus-g-pro-test COMMAND lg-optimus-g-pro-test) + + ADD_EXECUTABLE(moto-e-gen1-test test/mock/moto-e-gen1.cc) + TARGET_INCLUDE_DIRECTORIES(moto-e-gen1-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(moto-e-gen1-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME moto-e-gen1-test COMMAND moto-e-gen1-test) + + ADD_EXECUTABLE(moto-g-gen1-test test/mock/moto-g-gen1.cc) + TARGET_INCLUDE_DIRECTORIES(moto-g-gen1-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(moto-g-gen1-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME moto-g-gen1-test COMMAND moto-g-gen1-test) + + ADD_EXECUTABLE(moto-g-gen2-test test/mock/moto-g-gen2.cc) + TARGET_INCLUDE_DIRECTORIES(moto-g-gen2-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(moto-g-gen2-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME moto-g-gen2-test COMMAND moto-g-gen2-test) + + ADD_EXECUTABLE(moto-g-gen3-test test/mock/moto-g-gen3.cc) + TARGET_INCLUDE_DIRECTORIES(moto-g-gen3-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(moto-g-gen3-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME moto-g-gen3-test COMMAND moto-g-gen3-test) + + ADD_EXECUTABLE(moto-g-gen4-test test/mock/moto-g-gen4.cc) + TARGET_INCLUDE_DIRECTORIES(moto-g-gen4-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(moto-g-gen4-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME moto-g-gen4-test COMMAND moto-g-gen4-test) + + ADD_EXECUTABLE(moto-g-gen5-test test/mock/moto-g-gen5.cc) + TARGET_INCLUDE_DIRECTORIES(moto-g-gen5-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(moto-g-gen5-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME moto-g-gen5-test COMMAND moto-g-gen5-test) + + ADD_EXECUTABLE(nexus-s-test test/mock/nexus-s.cc) + TARGET_INCLUDE_DIRECTORIES(nexus-s-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(nexus-s-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME nexus-s-test COMMAND nexus-s-test) + + ADD_EXECUTABLE(nexus4-test test/mock/nexus4.cc) + TARGET_INCLUDE_DIRECTORIES(nexus4-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(nexus4-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME nexus4-test COMMAND nexus4-test) + + ADD_EXECUTABLE(nexus6-test test/mock/nexus6.cc) + TARGET_INCLUDE_DIRECTORIES(nexus6-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(nexus6-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME nexus6-test COMMAND nexus6-test) + + ADD_EXECUTABLE(nexus10-test test/mock/nexus10.cc) + TARGET_INCLUDE_DIRECTORIES(nexus10-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(nexus10-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME nexus10-test COMMAND nexus10-test) + + ADD_EXECUTABLE(padcod-10.1-test test/mock/padcod-10.1.cc) + TARGET_INCLUDE_DIRECTORIES(padcod-10.1-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(padcod-10.1-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME padcod-10.1-test COMMAND padcod-10.1-test) + + ADD_EXECUTABLE(xiaomi-redmi-2a-test test/mock/xiaomi-redmi-2a.cc) + TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-2a-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(xiaomi-redmi-2a-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME xiaomi-redmi-2a-test COMMAND xiaomi-redmi-2a-test) + + ADD_EXECUTABLE(xperia-sl-test test/mock/xperia-sl.cc) + TARGET_INCLUDE_DIRECTORIES(xperia-sl-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(xperia-sl-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME xperia-sl-test COMMAND xperia-sl-test) + ENDIF() + + IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7-a|aarch64)$") + ADD_EXECUTABLE(alcatel-revvl-test test/mock/alcatel-revvl.cc) + TARGET_INCLUDE_DIRECTORIES(alcatel-revvl-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(alcatel-revvl-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME alcatel-revvl-test COMMAND alcatel-revvl-test) + + ADD_EXECUTABLE(galaxy-a8-2018-test test/mock/galaxy-a8-2018.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-a8-2018-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-a8-2018-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-a8-2018-test COMMAND galaxy-a8-2018-test) + + ADD_EXECUTABLE(galaxy-c9-pro-test test/mock/galaxy-c9-pro.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-c9-pro-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-c9-pro-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-c9-pro-test COMMAND galaxy-c9-pro-test) + + ADD_EXECUTABLE(galaxy-s6-test test/mock/galaxy-s6.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-s6-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-s6-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-s6-test COMMAND galaxy-s6-test) + + ADD_EXECUTABLE(galaxy-s7-us-test test/mock/galaxy-s7-us.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-s7-us-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-s7-us-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-s7-us-test COMMAND galaxy-s7-us-test) + + ADD_EXECUTABLE(galaxy-s7-global-test test/mock/galaxy-s7-global.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-s7-global-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-s7-global-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-s7-global-test COMMAND galaxy-s7-global-test) + + ADD_EXECUTABLE(galaxy-s8-us-test test/mock/galaxy-s8-us.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-s8-us-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-s8-us-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-s8-us-test COMMAND galaxy-s8-us-test) + + ADD_EXECUTABLE(galaxy-s8-global-test test/mock/galaxy-s8-global.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-s8-global-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-s8-global-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-s8-global-test COMMAND galaxy-s8-global-test) + + ADD_EXECUTABLE(galaxy-s9-us-test test/mock/galaxy-s9-us.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-s9-us-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-s9-us-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-s9-us-test COMMAND galaxy-s9-us-test) + + ADD_EXECUTABLE(galaxy-s9-global-test test/mock/galaxy-s9-global.cc) + TARGET_INCLUDE_DIRECTORIES(galaxy-s9-global-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(galaxy-s9-global-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME galaxy-s9-global-test COMMAND galaxy-s9-global-test) + + ADD_EXECUTABLE(huawei-mate-8-test test/mock/huawei-mate-8.cc) + TARGET_INCLUDE_DIRECTORIES(huawei-mate-8-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(huawei-mate-8-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME huawei-mate-8-test COMMAND huawei-mate-8-test) + + ADD_EXECUTABLE(huawei-mate-9-test test/mock/huawei-mate-9.cc) + TARGET_INCLUDE_DIRECTORIES(huawei-mate-9-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(huawei-mate-9-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME huawei-mate-9-test COMMAND huawei-mate-9-test) + + ADD_EXECUTABLE(huawei-mate-10-test test/mock/huawei-mate-10.cc) + TARGET_INCLUDE_DIRECTORIES(huawei-mate-10-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(huawei-mate-10-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME huawei-mate-10-test COMMAND huawei-mate-10-test) + + ADD_EXECUTABLE(huawei-mate-20-test test/mock/huawei-mate-20.cc) + TARGET_INCLUDE_DIRECTORIES(huawei-mate-20-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(huawei-mate-20-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME huawei-mate-20-test COMMAND huawei-mate-20-test) + + ADD_EXECUTABLE(huawei-p8-lite-test test/mock/huawei-p8-lite.cc) + TARGET_INCLUDE_DIRECTORIES(huawei-p8-lite-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(huawei-p8-lite-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME huawei-p8-lite-test COMMAND huawei-p8-lite-test) + + ADD_EXECUTABLE(huawei-p9-lite-test test/mock/huawei-p9-lite.cc) + TARGET_INCLUDE_DIRECTORIES(huawei-p9-lite-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(huawei-p9-lite-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME huawei-p9-lite-test COMMAND huawei-p9-lite-test) + + ADD_EXECUTABLE(huawei-p20-pro-test test/mock/huawei-p20-pro.cc) + TARGET_INCLUDE_DIRECTORIES(huawei-p20-pro-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(huawei-p20-pro-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME huawei-p20-pro-test COMMAND huawei-p20-pro-test) + + ADD_EXECUTABLE(iconia-one-10-test test/mock/iconia-one-10.cc) + TARGET_INCLUDE_DIRECTORIES(iconia-one-10-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(iconia-one-10-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME iconia-one-10-test COMMAND iconia-one-10-test) + + ADD_EXECUTABLE(meizu-pro-6-test test/mock/meizu-pro-6.cc) + TARGET_INCLUDE_DIRECTORIES(meizu-pro-6-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(meizu-pro-6-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME meizu-pro-6-test COMMAND meizu-pro-6-test) + + ADD_EXECUTABLE(meizu-pro-6s-test test/mock/meizu-pro-6s.cc) + TARGET_INCLUDE_DIRECTORIES(meizu-pro-6s-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(meizu-pro-6s-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME meizu-pro-6s-test COMMAND meizu-pro-6s-test) + + ADD_EXECUTABLE(meizu-pro-7-plus-test test/mock/meizu-pro-7-plus.cc) + TARGET_INCLUDE_DIRECTORIES(meizu-pro-7-plus-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(meizu-pro-7-plus-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME meizu-pro-7-plus-test COMMAND meizu-pro-7-plus-test) + + ADD_EXECUTABLE(nexus5x-test test/mock/nexus5x.cc) + TARGET_INCLUDE_DIRECTORIES(nexus5x-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(nexus5x-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME nexus5x-test COMMAND nexus5x-test) + + ADD_EXECUTABLE(nexus6p-test test/mock/nexus6p.cc) + TARGET_INCLUDE_DIRECTORIES(nexus6p-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(nexus6p-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME nexus6p-test COMMAND nexus6p-test) + + ADD_EXECUTABLE(nexus9-test test/mock/nexus9.cc) + TARGET_INCLUDE_DIRECTORIES(nexus9-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(nexus9-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME nexus9-test COMMAND nexus9-test) + + ADD_EXECUTABLE(oneplus-3t-test test/mock/oneplus-3t.cc) + TARGET_INCLUDE_DIRECTORIES(oneplus-3t-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(oneplus-3t-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME oneplus-3t-test COMMAND oneplus-3t-test) + + ADD_EXECUTABLE(oneplus-5-test test/mock/oneplus-5.cc) + TARGET_INCLUDE_DIRECTORIES(oneplus-5-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(oneplus-5-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME oneplus-5-test COMMAND oneplus-5-test) + + ADD_EXECUTABLE(oneplus-5t-test test/mock/oneplus-5t.cc) + TARGET_INCLUDE_DIRECTORIES(oneplus-5t-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(oneplus-5t-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME oneplus-5t-test COMMAND oneplus-5t-test) + + ADD_EXECUTABLE(oppo-a37-test test/mock/oppo-a37.cc) + TARGET_INCLUDE_DIRECTORIES(oppo-a37-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(oppo-a37-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME oppo-a37-test COMMAND oppo-a37-test) + + ADD_EXECUTABLE(oppo-r9-test test/mock/oppo-r9.cc) + TARGET_INCLUDE_DIRECTORIES(oppo-r9-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(oppo-r9-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME oppo-r9-test COMMAND oppo-r9-test) + + ADD_EXECUTABLE(oppo-r15-test test/mock/oppo-r15.cc) + TARGET_INCLUDE_DIRECTORIES(oppo-r15-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(oppo-r15-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME oppo-r15-test COMMAND oppo-r15-test) + + ADD_EXECUTABLE(pixel-test test/mock/pixel.cc) + TARGET_INCLUDE_DIRECTORIES(pixel-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(pixel-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME pixel-test COMMAND pixel-test) + + ADD_EXECUTABLE(pixel-c-test test/mock/pixel-c.cc) + TARGET_INCLUDE_DIRECTORIES(pixel-c-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(pixel-c-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME pixel-c-test COMMAND pixel-c-test) + + ADD_EXECUTABLE(pixel-xl-test test/mock/pixel-xl.cc) + TARGET_INCLUDE_DIRECTORIES(pixel-xl-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(pixel-xl-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME pixel-xl-test COMMAND pixel-xl-test) + + ADD_EXECUTABLE(pixel-2-xl-test test/mock/pixel-2-xl.cc) + TARGET_INCLUDE_DIRECTORIES(pixel-2-xl-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(pixel-2-xl-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME pixel-2-xl-test COMMAND pixel-2-xl-test) + + ADD_EXECUTABLE(xiaomi-mi-5c-test test/mock/xiaomi-mi-5c.cc) + TARGET_INCLUDE_DIRECTORIES(xiaomi-mi-5c-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(xiaomi-mi-5c-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME xiaomi-mi-5c-test COMMAND xiaomi-mi-5c-test) + + ADD_EXECUTABLE(xiaomi-redmi-note-3-test test/mock/xiaomi-redmi-note-3.cc) + TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-note-3-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(xiaomi-redmi-note-3-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME xiaomi-redmi-note-3-test COMMAND xiaomi-redmi-note-3-test) + + ADD_EXECUTABLE(xiaomi-redmi-note-4-test test/mock/xiaomi-redmi-note-4.cc) + TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-note-4-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(xiaomi-redmi-note-4-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME xiaomi-redmi-note-4-test COMMAND xiaomi-redmi-note-4-test) + + ADD_EXECUTABLE(xperia-c4-dual-test test/mock/xperia-c4-dual.cc) + TARGET_INCLUDE_DIRECTORIES(xperia-c4-dual-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(xperia-c4-dual-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME xperia-c4-dual-test COMMAND xperia-c4-dual-test) + ENDIF() + + IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(i686|x86_64)$") + ADD_EXECUTABLE(alldocube-iwork8-test test/mock/alldocube-iwork8.cc) + TARGET_INCLUDE_DIRECTORIES(alldocube-iwork8-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(alldocube-iwork8-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME alldocube-iwork8-test COMMAND alldocube-iwork8-test) + + ADD_EXECUTABLE(leagoo-t5c-test test/mock/leagoo-t5c.cc) + TARGET_INCLUDE_DIRECTORIES(leagoo-t5c-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(leagoo-t5c-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME leagoo-t5c-test COMMAND leagoo-t5c-test) + + ADD_EXECUTABLE(memo-pad-7-test test/mock/memo-pad-7.cc) + TARGET_INCLUDE_DIRECTORIES(memo-pad-7-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(memo-pad-7-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME memo-pad-7-test COMMAND memo-pad-7-test) + + ADD_EXECUTABLE(zenfone-c-test test/mock/zenfone-c.cc) + TARGET_INCLUDE_DIRECTORIES(zenfone-c-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(zenfone-c-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME zenfone-c-test COMMAND zenfone-c-test) + + ADD_EXECUTABLE(zenfone-2-test test/mock/zenfone-2.cc) + TARGET_INCLUDE_DIRECTORIES(zenfone-2-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(zenfone-2-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME zenfone-2-test COMMAND zenfone-2-test) + + ADD_EXECUTABLE(zenfone-2e-test test/mock/zenfone-2e.cc) + TARGET_INCLUDE_DIRECTORIES(zenfone-2e-test BEFORE PRIVATE test/mock) + TARGET_LINK_LIBRARIES(zenfone-2e-test PRIVATE cpuinfo_mock gtest) + ADD_TEST(NAME zenfone-2e-test COMMAND zenfone-2e-test) + ENDIF() +ENDIF() + +# ---[ cpuinfo unit tests +IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_UNIT_TESTS) + ADD_EXECUTABLE(init-test test/init.cc) + CPUINFO_TARGET_ENABLE_CXX11(init-test) + CPUINFO_TARGET_RUNTIME_LIBRARY(init-test) + TARGET_LINK_LIBRARIES(init-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(NAME init-test COMMAND init-test) + + IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") + ADD_EXECUTABLE(get-current-test test/get-current.cc) + CPUINFO_TARGET_ENABLE_CXX11(get-current-test) + CPUINFO_TARGET_RUNTIME_LIBRARY(get-current-test) + TARGET_LINK_LIBRARIES(get-current-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(NAME get-current-test COMMAND get-current-test) + ENDIF() + + IF(CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)?)$") + ADD_EXECUTABLE(brand-string-test test/name/brand-string.cc) + CPUINFO_TARGET_ENABLE_CXX11(brand-string-test) + CPUINFO_TARGET_RUNTIME_LIBRARY(brand-string-test) + TARGET_LINK_LIBRARIES(brand-string-test PRIVATE cpuinfo_internals gtest gtest_main) + ADD_TEST(NAME brand-string-test COMMAND brand-string-test) + ENDIF() + + IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv[5-8].*|aarch64)$") + ADD_LIBRARY(android_properties_interface STATIC test/name/android-properties-interface.c) + CPUINFO_TARGET_ENABLE_C99(android_properties_interface) + CPUINFO_TARGET_RUNTIME_LIBRARY(android_properties_interface) + TARGET_LINK_LIBRARIES(android_properties_interface PRIVATE cpuinfo_internals) + + ADD_EXECUTABLE(chipset-test + test/name/proc-cpuinfo-hardware.cc + test/name/ro-product-board.cc + test/name/ro-board-platform.cc + test/name/ro-mediatek-platform.cc + test/name/ro-arch.cc + test/name/ro-chipname.cc + test/name/android-properties.cc) + CPUINFO_TARGET_ENABLE_CXX11(chipset-test) + CPUINFO_TARGET_RUNTIME_LIBRARY(chipset-test) + TARGET_LINK_LIBRARIES(chipset-test PRIVATE android_properties_interface gtest gtest_main) + ADD_TEST(NAME chipset-test COMMAND chipset-test) + + ADD_EXECUTABLE(cache-test test/arm-cache.cc) + CPUINFO_TARGET_ENABLE_CXX11(cache-test) + CPUINFO_TARGET_RUNTIME_LIBRARY(cache-test) + TARGET_COMPILE_DEFINITIONS(cache-test PRIVATE __STDC_LIMIT_MACROS=1 __STDC_CONSTANT_MACROS=1) + TARGET_LINK_LIBRARIES(cache-test PRIVATE cpuinfo_internals gtest gtest_main) + ADD_TEST(NAME cache-test COMMAND cache-test) + ENDIF() +ENDIF() + +# ---[ Helper and debug tools +IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_TOOLS) + ADD_EXECUTABLE(isa-info tools/isa-info.c) + CPUINFO_TARGET_ENABLE_C99(isa-info) + CPUINFO_TARGET_RUNTIME_LIBRARY(isa-info) + TARGET_LINK_LIBRARIES(isa-info PRIVATE cpuinfo) + INSTALL(TARGETS isa-info RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + ADD_EXECUTABLE(cpu-info tools/cpu-info.c) + CPUINFO_TARGET_ENABLE_C99(cpu-info) + CPUINFO_TARGET_RUNTIME_LIBRARY(cpu-info) + TARGET_LINK_LIBRARIES(cpu-info PRIVATE cpuinfo) + INSTALL(TARGETS cpu-info RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + ADD_EXECUTABLE(cache-info tools/cache-info.c) + CPUINFO_TARGET_ENABLE_C99(cache-info) + CPUINFO_TARGET_RUNTIME_LIBRARY(cache-info) + TARGET_LINK_LIBRARIES(cache-info PRIVATE cpuinfo) + INSTALL(TARGETS cache-info RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + IF(CMAKE_SYSTEM_NAME MATCHES "^(Android|Linux)$" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv[5-8].*|aarch64)$") + ADD_EXECUTABLE(auxv-dump tools/auxv-dump.c) + CPUINFO_TARGET_ENABLE_C99(auxv-dump) + CPUINFO_TARGET_RUNTIME_LIBRARY(auxv-dump) + TARGET_LINK_LIBRARIES(auxv-dump PRIVATE ${CMAKE_DL_LIBS} cpuinfo) + + ADD_EXECUTABLE(cpuinfo-dump tools/cpuinfo-dump.c) + CPUINFO_TARGET_ENABLE_C99(cpuinfo-dump) + CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo-dump) + ENDIF() + + IF(CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)?)$") + ADD_EXECUTABLE(cpuid-dump tools/cpuid-dump.c) + CPUINFO_TARGET_ENABLE_C99(cpuid-dump) + CPUINFO_TARGET_RUNTIME_LIBRARY(cpuid-dump) + TARGET_INCLUDE_DIRECTORIES(cpuid-dump BEFORE PRIVATE src) + TARGET_INCLUDE_DIRECTORIES(cpuid-dump BEFORE PRIVATE include) + INSTALL(TARGETS cpuid-dump RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + ENDIF() +ENDIF() + +# ---[ pkg-config manifest. This is mostly from JsonCpp... +IF(CPUINFO_BUILD_PKG_CONFIG) + + FUNCTION(JOIN_PATHS joined_path first_path_segment) + SET(temp_path "${first_path_segment}") + FOREACH(current_segment IN LISTS ARGN) + IF(NOT ("${current_segment}" STREQUAL "")) + IF(IS_ABSOLUTE "${current_segment}") + SET(temp_path "${current_segment}") + ELSE() + SET(temp_path "${temp_path}/${current_segment}") + ENDIF() + ENDIF() + ENDFOREACH() + SET(${joined_path} "${temp_path}" PARENT_SCOPE) + ENDFUNCTION() + + JOIN_PATHS(libdir_for_pc_file "\${exec_prefix}" "${CMAKE_INSTALL_LIBDIR}") + JOIN_PATHS(includedir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}") + + CONFIGURE_FILE( + "libcpuinfo.pc.in" + "libcpuinfo.pc" + @ONLY) + + INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/libcpuinfo.pc" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + ENDIF() -TARGET_LINK_LIBRARIES(cpuinfo PRIVATE clog) -TARGET_LINK_LIBRARIES(cpuinfo_internals PRIVATE clog) \ No newline at end of file diff --git a/3rdparty/cpuinfo/README.md b/3rdparty/cpuinfo/README.md index 0eb71a5d6c6bdb..82cadea643c986 100644 --- a/3rdparty/cpuinfo/README.md +++ b/3rdparty/cpuinfo/README.md @@ -48,7 +48,7 @@ Detect if target is a 32-bit or 64-bit ARM system: #endif ``` -Check if the host CPU support ARM NEON +Check if the host CPU supports ARM NEON ```c cpuinfo_initialize(); @@ -151,6 +151,36 @@ executable( ) ``` +### Bazel + +This project can be built using [Bazel](https://bazel.build/install). + +You can also use this library as a dependency to your Bazel project. Add to the `WORKSPACE` file: + +```python +load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") + +git_repository( + name = "org_pytorch_cpuinfo", + branch = "master", + remote = "https://github.com/Vertexwahn/cpuinfo.git", +) +``` + +And to your `BUILD` file: + +```python +cc_binary( + name = "cpuinfo_test", + srcs = [ + # ... + ], + deps = [ + "@org_pytorch_cpuinfo//:cpuinfo", + ], +) +``` + ### CMake To use with CMake use the [FindPkgConfig](https://cmake.org/cmake/help/latest/module/FindPkgConfig.html) module. Here is an example: @@ -220,12 +250,14 @@ LDFLAGS+= $(pkg-config --libs libcpuinfo) - [x] x86-64 (iPhone simulator) - [x] ARMv7 - [x] ARM64 -- [x] OS X +- [x] macOS - [x] x86 - [x] x86-64 + - [x] ARM64 (Apple silicon) - [x] Windows - [x] x86 - [x] x86-64 + - [x] arm64 ## Methods @@ -234,12 +266,13 @@ LDFLAGS+= $(pkg-config --libs libcpuinfo) - [x] Using `/proc/cpuinfo` on ARM - [x] Using `ro.chipname`, `ro.board.platform`, `ro.product.board`, `ro.mediatek.platform`, `ro.arch` properties (Android) - [ ] Using kernel log (`dmesg`) on ARM Linux + - [x] Using Windows registry on ARM64 Windows - Vendor and microarchitecture detection - [x] Intel-designed x86/x86-64 cores (up to Sunny Cove, Goldmont Plus, and Knights Mill) - [x] AMD-designed x86/x86-64 cores (up to Puma/Jaguar and Zen 2) - [ ] VIA-designed x86/x86-64 cores - [ ] Other x86 cores (DM&P, RDC, Transmeta, Cyrix, Rise) - - [x] ARM-designed ARM cores (up to Cortex-A55, Cortex-A77, and Neoverse E1/N1) + - [x] ARM-designed ARM cores (up to Cortex-A55, Cortex-A77, and Neoverse E1/V1/N2/V2) - [x] Qualcomm-designed ARM cores (Scorpion, Krait, and Kryo) - [x] Nvidia-designed ARM cores (Denver and Carmel) - [x] Samsung-designed ARM cores (Exynos) @@ -256,6 +289,7 @@ LDFLAGS+= $(pkg-config --libs libcpuinfo) - [x] Using `/proc/self/auxv` (Android/ARM) - [ ] Using instruction probing on ARM (Linux) - [ ] Using CPUID registers on ARM64 (Linux) + - [x] Using IsProcessorFeaturePresent on ARM64 Windows - Cache detection - [x] Using CPUID leaf 0x00000002 (x86/x86-64) - [x] Using CPUID leaf 0x00000004 (non-AMD x86/x86-64) @@ -267,6 +301,7 @@ LDFLAGS+= $(pkg-config --libs libcpuinfo) - [x] Using `sysctlbyname` (Mach) - [x] Using sysfs `typology` directories (ARM/Linux) - [ ] Using sysfs `cache` directories (Linux) + - [x] Using `GetLogicalProcessorInformationEx` on ARM64 Windows - TLB detection - [x] Using CPUID leaf 0x00000002 (x86/x86-64) - [ ] Using CPUID leaves 0x80000005-0x80000006 and 0x80000019 (AMD x86/x86-64) diff --git a/3rdparty/cpuinfo/cmake/DownloadGoogleBenchmark.cmake b/3rdparty/cpuinfo/cmake/DownloadGoogleBenchmark.cmake new file mode 100644 index 00000000000000..fd99d0ef818c10 --- /dev/null +++ b/3rdparty/cpuinfo/cmake/DownloadGoogleBenchmark.cmake @@ -0,0 +1,15 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR) + +PROJECT(googlebenchmark-download NONE) + +INCLUDE(ExternalProject) +ExternalProject_Add(googlebenchmark + URL https://github.com/google/benchmark/archive/v1.6.1.zip + URL_HASH SHA256=367e963b8620080aff8c831e24751852cffd1f74ea40f25d9cc1b667a9dd5e45 + SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark" + BINARY_DIR "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" +) diff --git a/3rdparty/cpuinfo/cmake/DownloadGoogleTest.cmake b/3rdparty/cpuinfo/cmake/DownloadGoogleTest.cmake new file mode 100644 index 00000000000000..c58fd0985c25be --- /dev/null +++ b/3rdparty/cpuinfo/cmake/DownloadGoogleTest.cmake @@ -0,0 +1,15 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR) + +PROJECT(googletest-download NONE) + +INCLUDE(ExternalProject) +ExternalProject_Add(googletest + URL https://github.com/google/googletest/archive/release-1.11.0.zip + URL_HASH SHA256=353571c2440176ded91c2de6d6cd88ddd41401d14692ec1f99e35d013feda55a + SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" + BINARY_DIR "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" +) diff --git a/3rdparty/cpuinfo/cmake/cpuinfo-config.cmake.in b/3rdparty/cpuinfo/cmake/cpuinfo-config.cmake.in new file mode 100644 index 00000000000000..fd52c8ca95c4c4 --- /dev/null +++ b/3rdparty/cpuinfo/cmake/cpuinfo-config.cmake.in @@ -0,0 +1,12 @@ +@PACKAGE_INIT@ + +get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +file(GLOB CONFIG_FILES "${_DIR}/cpuinfo-config-*.cmake") +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() + +# ${_DIR}/cpuinfo-targets-*.cmake will be included here +include("${_DIR}/cpuinfo-targets.cmake") + +check_required_components(@PROJECT_NAME@) diff --git a/3rdparty/cpuinfo/cpuinfo.vcxproj b/3rdparty/cpuinfo/cpuinfo.vcxproj index dab240192fe86c..623db781dd6b89 100644 --- a/3rdparty/cpuinfo/cpuinfo.vcxproj +++ b/3rdparty/cpuinfo/cpuinfo.vcxproj @@ -59,7 +59,7 @@ - %(PreprocessorDefinitions) + CPUINFO_LOG_LEVEL=0;%(PreprocessorDefinitions) TurnOffAllWarnings $(ProjectDir)include;$(ProjectDir)src;$(ProjectDir)deps\clog\include;%(AdditionalIncludeDirectories) $(IntDir)%(RelativeDir) diff --git a/3rdparty/cpuinfo/deps/clog/CMakeLists.txt b/3rdparty/cpuinfo/deps/clog/CMakeLists.txt index 0e65a1b8bdcd33..6e50c41c38a2b7 100644 --- a/3rdparty/cpuinfo/deps/clog/CMakeLists.txt +++ b/3rdparty/cpuinfo/deps/clog/CMakeLists.txt @@ -1,5 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.1 FATAL_ERROR) +INCLUDE(GNUInstallDirs) + # ---[ Project and semantic versioning. PROJECT(clog C CXX) @@ -11,6 +13,14 @@ IF(ANDROID) ELSE() OPTION(CLOG_LOG_TO_STDIO "Log errors, warnings, and information to stdout/stderr" ON) ENDIF() +OPTION(CLOG_BUILD_TESTS "Build clog tests" ON) +OPTION(USE_SYSTEM_LIBS "Use system libraries instead of downloading and building them" OFF) +OPTION(USE_SYSTEM_GOOGLETEST "Use system Google Test library instead of downloading and building it" ${USE_SYSTEM_LIBS}) + +# ---[ CMake options +IF(CLOG_BUILD_TESTS) + ENABLE_TESTING() +ENDIF() MACRO(CLOG_TARGET_RUNTIME_LIBRARY target) IF(MSVC AND NOT CLOG_RUNTIME_TYPE STREQUAL "default") @@ -24,6 +34,26 @@ MACRO(CLOG_TARGET_RUNTIME_LIBRARY target) ENDIF() ENDMACRO() +# ---[ Download deps +SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps + CACHE PATH "Confu-style dependencies source directory") +SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps + CACHE PATH "Confu-style dependencies binary directory") + +IF(CLOG_BUILD_TESTS) + IF(USE_SYSTEM_GOOGLETEST) + FIND_PACKAGE(GTest REQUIRED) + ELSEIF(NOT DEFINED GOOGLETEST_SOURCE_DIR) + MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)") + CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . + WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . + WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download") + SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory") + ENDIF() +ENDIF() + # ---[ clog library ADD_LIBRARY(clog STATIC src/clog.c) SET_TARGET_PROPERTIES(clog PROPERTIES @@ -31,7 +61,7 @@ SET_TARGET_PROPERTIES(clog PROPERTIES C_EXTENSIONS NO) CLOG_TARGET_RUNTIME_LIBRARY(clog) SET_TARGET_PROPERTIES(clog PROPERTIES PUBLIC_HEADER include/clog.h) -TARGET_INCLUDE_DIRECTORIES(clog BEFORE PUBLIC include) +TARGET_INCLUDE_DIRECTORIES(clog PUBLIC $ $) IF(CLOG_LOG_TO_STDIO) TARGET_COMPILE_DEFINITIONS(clog PRIVATE CLOG_LOG_TO_STDIO=1) ELSE() @@ -39,4 +69,33 @@ ELSE() ENDIF() IF(ANDROID AND NOT CLOG_LOG_TO_STDIO) TARGET_LINK_LIBRARIES(clog PRIVATE log) -ENDIF() \ No newline at end of file +ENDIF() + +ADD_LIBRARY(cpuinfo::clog ALIAS clog) + +INSTALL(TARGETS clog + EXPORT cpuinfo-targets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + +# ---[ clog tests +IF(CLOG_BUILD_TESTS) + # ---[ Build google test + IF(NOT TARGET gtest AND NOT USE_SYSTEM_GOOGLETEST) + IF(MSVC AND NOT CLOG_RUNTIME_TYPE STREQUAL "static") + SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + ENDIF() + ADD_SUBDIRECTORY( + "${GOOGLETEST_SOURCE_DIR}" + "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest") + ENDIF() + + ADD_EXECUTABLE(clog-test test/clog.cc) + SET_TARGET_PROPERTIES(clog-test PROPERTIES + CXX_STANDARD 11 + CXX_EXTENSIONS NO) + CLOG_TARGET_RUNTIME_LIBRARY(clog-test) + TARGET_LINK_LIBRARIES(clog-test PRIVATE clog gtest gtest_main) + ADD_TEST(clog-test clog-test) +ENDIF() diff --git a/3rdparty/cpuinfo/deps/clog/src/clog.c b/3rdparty/cpuinfo/deps/clog/src/clog.c index fe5d43e1f62490..27658f92ca4a5d 100644 --- a/3rdparty/cpuinfo/deps/clog/src/clog.c +++ b/3rdparty/cpuinfo/deps/clog/src/clog.c @@ -10,6 +10,9 @@ #ifdef __ANDROID__ #include #endif +#ifdef __hexagon__ + #include +#endif #ifndef CLOG_LOG_TO_STDIO #ifdef __ANDROID__ @@ -102,12 +105,14 @@ void clog_vlog_fatal(const char* module, const char* format, va_list args) { out_buffer = heap_buffer; } out_buffer[prefix_chars + format_chars] = '\n'; - #ifdef _WIN32 + #if defined(_WIN32) DWORD bytes_written; WriteFile( GetStdHandle(STD_ERROR_HANDLE), out_buffer, prefix_chars + format_chars + CLOG_SUFFIX_LENGTH, &bytes_written, NULL); + #elif defined(__hexagon__) + qurt_printf("%s", out_buffer); #else write(STDERR_FILENO, out_buffer, prefix_chars + format_chars + CLOG_SUFFIX_LENGTH); #endif @@ -178,12 +183,14 @@ void clog_vlog_error(const char* module, const char* format, va_list args) { out_buffer = heap_buffer; } out_buffer[prefix_chars + format_chars] = '\n'; - #ifdef _WIN32 + #if defined(_WIN32) DWORD bytes_written; WriteFile( GetStdHandle(STD_ERROR_HANDLE), out_buffer, prefix_chars + format_chars + CLOG_SUFFIX_LENGTH, &bytes_written, NULL); + #elif defined(__hexagon__) + qurt_printf("%s", out_buffer); #else write(STDERR_FILENO, out_buffer, prefix_chars + format_chars + CLOG_SUFFIX_LENGTH); #endif @@ -254,12 +261,14 @@ void clog_vlog_warning(const char* module, const char* format, va_list args) { out_buffer = heap_buffer; } out_buffer[prefix_chars + format_chars] = '\n'; - #ifdef _WIN32 + #if defined(_WIN32) DWORD bytes_written; WriteFile( GetStdHandle(STD_ERROR_HANDLE), out_buffer, prefix_chars + format_chars + CLOG_SUFFIX_LENGTH, &bytes_written, NULL); + #elif defined(__hexagon__) + qurt_printf("%s", out_buffer); #else write(STDERR_FILENO, out_buffer, prefix_chars + format_chars + CLOG_SUFFIX_LENGTH); #endif @@ -330,12 +339,14 @@ void clog_vlog_info(const char* module, const char* format, va_list args) { out_buffer = heap_buffer; } out_buffer[prefix_chars + format_chars] = '\n'; - #ifdef _WIN32 + #if defined(_WIN32) DWORD bytes_written; WriteFile( GetStdHandle(STD_OUTPUT_HANDLE), out_buffer, prefix_chars + format_chars + CLOG_SUFFIX_LENGTH, &bytes_written, NULL); + #elif defined(__hexagon__) + qurt_printf("%s", out_buffer); #else write(STDOUT_FILENO, out_buffer, prefix_chars + format_chars + CLOG_SUFFIX_LENGTH); #endif @@ -406,12 +417,14 @@ void clog_vlog_debug(const char* module, const char* format, va_list args) { out_buffer = heap_buffer; } out_buffer[prefix_chars + format_chars] = '\n'; - #ifdef _WIN32 + #if defined(_WIN32) DWORD bytes_written; WriteFile( GetStdHandle(STD_OUTPUT_HANDLE), out_buffer, prefix_chars + format_chars + CLOG_SUFFIX_LENGTH, &bytes_written, NULL); + #elif defined(__hexagon__) + qurt_printf("%s", out_buffer); #else write(STDOUT_FILENO, out_buffer, prefix_chars + format_chars + CLOG_SUFFIX_LENGTH); #endif diff --git a/3rdparty/cpuinfo/include/cpuinfo.h b/3rdparty/cpuinfo/include/cpuinfo.h index cffa299ede3e11..3fbcad2a08f317 100644 --- a/3rdparty/cpuinfo/include/cpuinfo.h +++ b/3rdparty/cpuinfo/include/cpuinfo.h @@ -46,6 +46,14 @@ #endif #endif +#if defined(__riscv) + #if (__riscv_xlen == 32) + #define CPUINFO_ARCH_RISCV32 1 + #elif (__riscv_xlen == 64) + #define CPUINFO_ARCH_RISCV64 1 + #endif +#endif + /* Define other architecture-specific macros as 0 */ #ifndef CPUINFO_ARCH_X86 @@ -80,6 +88,14 @@ #define CPUINFO_ARCH_WASMSIMD 0 #endif +#ifndef CPUINFO_ARCH_RISCV32 + #define CPUINFO_ARCH_RISCV32 0 +#endif + +#ifndef CPUINFO_ARCH_RISCV64 + #define CPUINFO_ARCH_RISCV64 0 +#endif + #if CPUINFO_ARCH_X86 && defined(_MSC_VER) #define CPUINFO_ABI __cdecl #elif CPUINFO_ARCH_X86 && defined(__GNUC__) @@ -188,6 +204,8 @@ enum cpuinfo_vendor { * Processors are variants of AMD cores. */ cpuinfo_vendor_hygon = 16, + /** SiFive, Inc. Vendor of RISC-V processor microarchitectures. */ + cpuinfo_vendor_sifive = 17, /* Active vendors of embedded CPUs */ @@ -363,6 +381,8 @@ enum cpuinfo_uarch { cpuinfo_uarch_zen2 = 0x0020010A, /** AMD Zen 3 microarchitecture. */ cpuinfo_uarch_zen3 = 0x0020010B, + /** AMD Zen 4 microarchitecture. */ + cpuinfo_uarch_zen4 = 0x0020010C, /** NSC Geode and AMD Geode GX and LX. */ cpuinfo_uarch_geode = 0x00200200, @@ -426,9 +446,26 @@ enum cpuinfo_uarch { cpuinfo_uarch_neoverse_n1 = 0x00300400, /** ARM Neoverse E1. */ cpuinfo_uarch_neoverse_e1 = 0x00300401, + /** ARM Neoverse V1. */ + cpuinfo_uarch_neoverse_v1 = 0x00300402, + /** ARM Neoverse N2. */ + cpuinfo_uarch_neoverse_n2 = 0x00300403, + /** ARM Neoverse V2. */ + cpuinfo_uarch_neoverse_v2 = 0x00300404, /** ARM Cortex-X1. */ - cpuinfo_uarch_cortex_x1 = 0x00300500, + cpuinfo_uarch_cortex_x1 = 0x00300501, + /** ARM Cortex-X2. */ + cpuinfo_uarch_cortex_x2 = 0x00300502, + /** ARM Cortex-X3. */ + cpuinfo_uarch_cortex_x3 = 0x00300503, + + /** ARM Cortex-A510. */ + cpuinfo_uarch_cortex_a510 = 0x00300551, + /** ARM Cortex-A710. */ + cpuinfo_uarch_cortex_a710 = 0x00300571, + /** ARM Cortex-A715. */ + cpuinfo_uarch_cortex_a715 = 0x00300572, /** Qualcomm Scorpion. */ cpuinfo_uarch_scorpion = 0x00400100, @@ -489,10 +526,14 @@ enum cpuinfo_uarch { cpuinfo_uarch_lightning = 0x00700109, /** Apple A13 processor (little cores). */ cpuinfo_uarch_thunder = 0x0070010A, - /** Apple M1 processor (big cores). */ + /** Apple A14 / M1 processor (big cores). */ cpuinfo_uarch_firestorm = 0x0070010B, - /** Apple M1 processor (little cores). */ + /** Apple A14 / M1 processor (little cores). */ cpuinfo_uarch_icestorm = 0x0070010C, + /** Apple A15 / M2 processor (big cores). */ + cpuinfo_uarch_avalanche = 0x0070010D, + /** Apple A15 / M2 processor (little cores). */ + cpuinfo_uarch_blizzard = 0x0070010E, /** Cavium ThunderX. */ cpuinfo_uarch_thunderx = 0x00800100, @@ -706,6 +747,7 @@ void CPUINFO_ABI cpuinfo_deinitialize(void); bool sse4a; bool misaligned_sse; bool avx; + bool avxvnni; bool fma3; bool fma4; bool xop; @@ -725,6 +767,7 @@ void CPUINFO_ABI cpuinfo_deinitialize(void); bool avx512vpopcntdq; bool avx512vnni; bool avx512bf16; + bool avx512fp16; bool avx512vp2intersect; bool avx512_4vnniw; bool avx512_4fmaps; @@ -1052,6 +1095,14 @@ static inline bool cpuinfo_has_x86_avx(void) { #endif } +static inline bool cpuinfo_has_x86_avxvnni(void) { + #if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64 + return cpuinfo_isa.avxvnni; + #else + return false; + #endif +} + static inline bool cpuinfo_has_x86_fma3(void) { #if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64 return cpuinfo_isa.fma3; @@ -1204,6 +1255,14 @@ static inline bool cpuinfo_has_x86_avx512bf16(void) { #endif } +static inline bool cpuinfo_has_x86_avx512fp16(void) { + #if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64 + return cpuinfo_isa.avx512fp16; + #else + return false; + #endif +} + static inline bool cpuinfo_has_x86_avx512vp2intersect(void) { #if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64 return cpuinfo_isa.avx512vp2intersect; @@ -1460,14 +1519,17 @@ static inline bool cpuinfo_has_x86_sha(void) { #endif #if CPUINFO_ARCH_ARM64 bool atomics; + bool bf16; bool sve; bool sve2; + bool i8mm; #endif bool rdm; bool fp16arith; bool dot; bool jscvt; bool fcma; + bool fhm; bool aes; bool sha1; @@ -1623,6 +1685,22 @@ static inline bool cpuinfo_has_arm_vfpv4_d32(void) { #endif } +static inline bool cpuinfo_has_arm_fp16_arith(void) { + #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 + return cpuinfo_isa.fp16arith; + #else + return false; + #endif +} + +static inline bool cpuinfo_has_arm_bf16(void) { + #if CPUINFO_ARCH_ARM64 + return cpuinfo_isa.bf16; + #else + return false; + #endif +} + static inline bool cpuinfo_has_arm_wmmx(void) { #if CPUINFO_ARCH_ARM return cpuinfo_isa.wmmx; @@ -1705,9 +1783,9 @@ static inline bool cpuinfo_has_arm_neon_fp16_arith(void) { #endif } -static inline bool cpuinfo_has_arm_fp16_arith(void) { +static inline bool cpuinfo_has_arm_fhm(void) { #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 - return cpuinfo_isa.fp16arith; + return cpuinfo_isa.fhm; #else return false; #endif @@ -1721,6 +1799,14 @@ static inline bool cpuinfo_has_arm_neon_dot(void) { #endif } +static inline bool cpuinfo_has_arm_neon_bf16(void) { + #if CPUINFO_ARCH_ARM64 + return cpuinfo_isa.bf16; + #else + return false; + #endif +} + static inline bool cpuinfo_has_arm_jscvt(void) { #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 return cpuinfo_isa.jscvt; @@ -1737,6 +1823,14 @@ static inline bool cpuinfo_has_arm_fcma(void) { #endif } +static inline bool cpuinfo_has_arm_i8mm(void) { + #if CPUINFO_ARCH_ARM64 + return cpuinfo_isa.i8mm; + #else + return false; + #endif +} + static inline bool cpuinfo_has_arm_aes(void) { #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 return cpuinfo_isa.aes; @@ -1785,6 +1879,14 @@ static inline bool cpuinfo_has_arm_sve(void) { #endif } +static inline bool cpuinfo_has_arm_sve_bf16(void) { + #if CPUINFO_ARCH_ARM64 + return cpuinfo_isa.sve && cpuinfo_isa.bf16; + #else + return false; + #endif +} + static inline bool cpuinfo_has_arm_sve2(void) { #if CPUINFO_ARCH_ARM64 return cpuinfo_isa.sve2; @@ -1793,6 +1895,109 @@ static inline bool cpuinfo_has_arm_sve2(void) { #endif } +#if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 + /* This structure is not a part of stable API. Use cpuinfo_has_riscv_* functions instead. */ + struct cpuinfo_riscv_isa { + /** + * Keep fields in line with the canonical order as defined by + * Section 27.11 Subset Naming Convention. + */ + /* RV32I/64I/128I Base ISA. */ + bool i; + #if CPUINFO_ARCH_RISCV32 + /* RV32E Base ISA. */ + bool e; + #endif + /* Integer Multiply/Divide Extension. */ + bool m; + /* Atomic Extension. */ + bool a; + /* Single-Precision Floating-Point Extension. */ + bool f; + /* Double-Precision Floating-Point Extension. */ + bool d; + /* Compressed Extension. */ + bool c; + /* Vector Extension. */ + bool v; + }; + + extern struct cpuinfo_riscv_isa cpuinfo_isa; +#endif + +static inline bool cpuinfo_has_riscv_i(void) { + #if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 + return cpuinfo_isa.i; + #else + return false; + #endif +} + +static inline bool cpuinfo_has_riscv_e(void) { + #if CPUINFO_ARCH_RISCV32 + return cpuinfo_isa.e; + #else + return false; + #endif +} + +static inline bool cpuinfo_has_riscv_m(void) { + #if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 + return cpuinfo_isa.m; + #else + return false; + #endif +} + +static inline bool cpuinfo_has_riscv_a(void) { + #if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 + return cpuinfo_isa.a; + #else + return false; + #endif +} + +static inline bool cpuinfo_has_riscv_f(void) { + #if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 + return cpuinfo_isa.f; + #else + return false; + #endif +} + +static inline bool cpuinfo_has_riscv_d(void) { + #if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 + return cpuinfo_isa.d; + #else + return false; + #endif +} + +static inline bool cpuinfo_has_riscv_g(void) { + // The 'G' extension is simply shorthand for 'IMAFD'. + return cpuinfo_has_riscv_i() + && cpuinfo_has_riscv_m() + && cpuinfo_has_riscv_a() + && cpuinfo_has_riscv_f() + && cpuinfo_has_riscv_d(); +} + +static inline bool cpuinfo_has_riscv_c(void) { + #if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 + return cpuinfo_isa.c; + #else + return false; + #endif +} + +static inline bool cpuinfo_has_riscv_v(void) { + #if CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 + return cpuinfo_isa.v; + #else + return false; + #endif +} + const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_processors(void); const struct cpuinfo_core* CPUINFO_ABI cpuinfo_get_cores(void); const struct cpuinfo_cluster* CPUINFO_ABI cpuinfo_get_clusters(void); diff --git a/3rdparty/cpuinfo/src/api.c b/3rdparty/cpuinfo/src/api.c index f91b421ccfa014..2f70aeffbb0697 100644 --- a/3rdparty/cpuinfo/src/api.c +++ b/3rdparty/cpuinfo/src/api.c @@ -30,7 +30,8 @@ uint32_t cpuinfo_packages_count = 0; uint32_t cpuinfo_cache_count[cpuinfo_cache_level_max] = { 0 }; uint32_t cpuinfo_max_cache_size = 0; -#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 +#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 \ + || CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 struct cpuinfo_uarch_info* cpuinfo_uarchs = NULL; uint32_t cpuinfo_uarchs_count = 0; #else @@ -41,7 +42,8 @@ uint32_t cpuinfo_max_cache_size = 0; uint32_t cpuinfo_linux_cpu_max = 0; const struct cpuinfo_processor** cpuinfo_linux_cpu_to_processor_map = NULL; const struct cpuinfo_core** cpuinfo_linux_cpu_to_core_map = NULL; - #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 + #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 \ + || CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 const uint32_t* cpuinfo_linux_cpu_to_uarch_index_map = NULL; #endif #endif @@ -79,7 +81,8 @@ const struct cpuinfo_uarch_info* cpuinfo_get_uarchs() { if (!cpuinfo_is_initialized) { cpuinfo_log_fatal("cpuinfo_get_%s called before cpuinfo is initialized", "uarchs"); } - #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 + #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 \ + || CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 return cpuinfo_uarchs; #else return &cpuinfo_global_uarch; @@ -130,7 +133,8 @@ const struct cpuinfo_uarch_info* cpuinfo_get_uarch(uint32_t index) { if (!cpuinfo_is_initialized) { cpuinfo_log_fatal("cpuinfo_get_%s called before cpuinfo is initialized", "uarch"); } - #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 + #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 \ + || CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 if CPUINFO_UNLIKELY(index >= cpuinfo_uarchs_count) { return NULL; } @@ -175,7 +179,8 @@ uint32_t cpuinfo_get_uarchs_count(void) { if (!cpuinfo_is_initialized) { cpuinfo_log_fatal("cpuinfo_get_%s called before cpuinfo is initialized", "uarchs_count"); } - #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 + #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 \ + || CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 return cpuinfo_uarchs_count; #else return 1; @@ -351,7 +356,8 @@ uint32_t CPUINFO_ABI cpuinfo_get_current_uarch_index(void) { if CPUINFO_UNLIKELY(!cpuinfo_is_initialized) { cpuinfo_log_fatal("cpuinfo_get_%s called before cpuinfo is initialized", "current_uarch_index"); } - #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 + #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 \ + || CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 #ifdef __linux__ if (cpuinfo_linux_cpu_to_uarch_index_map == NULL) { /* Special case: avoid syscall on systems with only a single type of cores */ @@ -373,7 +379,7 @@ uint32_t CPUINFO_ABI cpuinfo_get_current_uarch_index(void) { return 0; #endif #else - /* Only ARM/ARM64 processors may include cores of different types in the same package. */ + /* Only ARM/ARM64/RISCV processors may include cores of different types in the same package. */ return 0; #endif } @@ -382,7 +388,8 @@ uint32_t CPUINFO_ABI cpuinfo_get_current_uarch_index_with_default(uint32_t defau if CPUINFO_UNLIKELY(!cpuinfo_is_initialized) { cpuinfo_log_fatal("cpuinfo_get_%s called before cpuinfo is initialized", "current_uarch_index_with_default"); } - #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 + #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 \ + || CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 #ifdef __linux__ if (cpuinfo_linux_cpu_to_uarch_index_map == NULL) { /* Special case: avoid syscall on systems with only a single type of cores */ @@ -404,7 +411,7 @@ uint32_t CPUINFO_ABI cpuinfo_get_current_uarch_index_with_default(uint32_t defau return default_uarch_index; #endif #else - /* Only ARM/ARM64 processors may include cores of different types in the same package. */ + /* Only ARM/ARM64/RISCV processors may include cores of different types in the same package. */ return 0; #endif } diff --git a/3rdparty/cpuinfo/src/arm/api.h b/3rdparty/cpuinfo/src/arm/api.h index 48b99ddc90069e..469c84bd5c549b 100644 --- a/3rdparty/cpuinfo/src/arm/api.h +++ b/3rdparty/cpuinfo/src/arm/api.h @@ -28,6 +28,7 @@ enum cpuinfo_arm_chipset_vendor { cpuinfo_arm_chipset_vendor_spreadtrum, cpuinfo_arm_chipset_vendor_telechips, cpuinfo_arm_chipset_vendor_texas_instruments, + cpuinfo_arm_chipset_vendor_unisoc, cpuinfo_arm_chipset_vendor_wondermedia, cpuinfo_arm_chipset_vendor_max, }; @@ -62,6 +63,7 @@ enum cpuinfo_arm_chipset_series { cpuinfo_arm_chipset_series_spreadtrum_sc, cpuinfo_arm_chipset_series_telechips_tcc, cpuinfo_arm_chipset_series_texas_instruments_omap, + cpuinfo_arm_chipset_series_unisoc_t, cpuinfo_arm_chipset_series_wondermedia_wm, cpuinfo_arm_chipset_series_max, }; diff --git a/3rdparty/cpuinfo/src/arm/cache.c b/3rdparty/cpuinfo/src/arm/cache.c index 446b02b9e2b176..953abb72f645aa 100644 --- a/3rdparty/cpuinfo/src/arm/cache.c +++ b/3rdparty/cpuinfo/src/arm/cache.c @@ -1238,6 +1238,57 @@ void cpuinfo_arm_decode_cache( }; break; } + case cpuinfo_uarch_neoverse_n1: + case cpuinfo_uarch_neoverse_v1: + case cpuinfo_uarch_neoverse_n2: + case cpuinfo_uarch_neoverse_v2: + { + /* + * The specifications here below are taken from the + * Arm Core Technical Reference Manuals for + * - Neoverse N1: https://developer.arm.com/documentation/100616/0401/?lang=en + * - Neoverse N2: https://developer.arm.com/documentation/102099/0003/?lang=en + * - Neoverse V1: https://developer.arm.com/documentation/101427/0102/?lang=en + * - Neoverse V2: https://developer.arm.com/documentation/102375/0002/?lang=en + * + * All four Arm architectures have L1 memory system with instruction and data caches, + * both of fixed size of 64KB. The instruction side memory system is 4-way set associative + * with a cache line length of 64 bytes. The data cache is also 4-way set associative with + * a cache line length of 64 bytes. + * + * The L2 memory system differs across the four Architectures in the minimum + * length of the L2 cache. Namely: + * - Arm Neoverse N1/N2/V1 have a L2 cache of configurable size of 256KB, 512KB, or 1024KB + * - Arm Neoverse V2 has a L2 cache of configurable size of 1MB or 2MB + * For all four architectures, the L2 cache is 8-way set associative + * For all other information, please refer to the technical manuals linked above + */ + const uint32_t min_l2_size_KB = uarch == cpuinfo_uarch_neoverse_v2 ? 1024 : 256; + const uint32_t min_l3_size_KB = 0; + + *l1i = (struct cpuinfo_cache) { + .size = 64 * 1024, + .associativity = 4, + .line_size = 64, + }; + *l1d = (struct cpuinfo_cache) { + .size = 64 * 1024, + .associativity = 4, + .line_size = 64, + }; + *l2 = (struct cpuinfo_cache) { + .size = min_l2_size_KB * 1024, + .associativity = 8, + .line_size = 64, + .flags = CPUINFO_CACHE_INCLUSIVE, + }; + *l3 = (struct cpuinfo_cache) { + .size = min_l3_size_KB * 1024, + .associativity = 16, + .line_size = 64, + }; + break; + } #if CPUINFO_ARCH_ARM && !defined(__ARM_ARCH_8A__) case cpuinfo_uarch_scorpion: /* @@ -1655,6 +1706,10 @@ uint32_t cpuinfo_arm_compute_max_cache_size(const struct cpuinfo_processor* proc */ return 8 * 1024 * 1024; case cpuinfo_uarch_cortex_a55: + case cpuinfo_uarch_neoverse_n1: + case cpuinfo_uarch_neoverse_v1: + case cpuinfo_uarch_neoverse_n2: + case cpuinfo_uarch_neoverse_v2: case cpuinfo_uarch_cortex_a75: case cpuinfo_uarch_cortex_a76: case cpuinfo_uarch_exynos_m4: diff --git a/3rdparty/cpuinfo/src/arm/linux/aarch32-isa.c b/3rdparty/cpuinfo/src/arm/linux/aarch32-isa.c index df68aa147a4783..65c7826fcec6e8 100644 --- a/3rdparty/cpuinfo/src/arm/linux/aarch32-isa.c +++ b/3rdparty/cpuinfo/src/arm/linux/aarch32-isa.c @@ -33,6 +33,13 @@ void cpuinfo_arm_linux_decode_isa_from_proc_cpuinfo( const struct cpuinfo_arm_chipset chipset[restrict static 1], struct cpuinfo_arm_isa isa[restrict static 1]) { + if (architecture_version < 8) { + const uint32_t armv8_features2_mask = CPUINFO_ARM_LINUX_FEATURE2_AES | CPUINFO_ARM_LINUX_FEATURE2_PMULL | + CPUINFO_ARM_LINUX_FEATURE2_SHA1 | CPUINFO_ARM_LINUX_FEATURE2_SHA2 | CPUINFO_ARM_LINUX_FEATURE2_CRC32; + if (features2 & armv8_features2_mask) { + architecture_version = 8; + } + } if (architecture_version >= 8) { /* * ARMv7 code running on ARMv8: IDIV, VFP, NEON are always supported, @@ -57,13 +64,22 @@ void cpuinfo_arm_linux_decode_isa_from_proc_cpuinfo( * NEON FP16 compute extension and VQRDMLAH/VQRDMLSH instructions are not indicated in /proc/cpuinfo. * Use a MIDR-based heuristic to whitelist processors known to support it: * - Processors with Cortex-A55 cores - * - Processors with Cortex-A65 cores * - Processors with Cortex-A75 cores * - Processors with Cortex-A76 cores * - Processors with Cortex-A77 cores + * - Processors with Cortex-A78 cores + * - Processors with Cortex-A510 cores + * - Processors with Cortex-A710 cores + * - Processors with Cortex-A715 cores + * - Processors with Cortex-X1 cores + * - Processors with Cortex-X2 cores + * - Processors with Cortex-X3 cores * - Processors with Exynos M4 cores * - Processors with Exynos M5 cores * - Neoverse N1 cores + * - Neoverse N2 cores + * - Neoverse V1 cores + * - Neoverse V2 cores */ if (chipset->series == cpuinfo_arm_chipset_series_samsung_exynos && chipset->model == 9810) { /* Only little cores of Exynos 9810 support FP16 & RDM */ @@ -71,11 +87,21 @@ void cpuinfo_arm_linux_decode_isa_from_proc_cpuinfo( } else { switch (midr & (CPUINFO_ARM_MIDR_IMPLEMENTER_MASK | CPUINFO_ARM_MIDR_PART_MASK)) { case UINT32_C(0x4100D050): /* Cortex-A55 */ - case UINT32_C(0x4100D060): /* Cortex-A65 */ + case UINT32_C(0x4100D0A0): /* Cortex-A75 */ case UINT32_C(0x4100D0B0): /* Cortex-A76 */ case UINT32_C(0x4100D0C0): /* Neoverse N1 */ case UINT32_C(0x4100D0D0): /* Cortex-A77 */ case UINT32_C(0x4100D0E0): /* Cortex-A76AE */ + case UINT32_C(0x4100D400): /* Neoverse V1 */ + case UINT32_C(0x4100D410): /* Cortex-A78 */ + case UINT32_C(0x4100D440): /* Cortex-X1 */ + case UINT32_C(0x4100D460): /* Cortex-A510 */ + case UINT32_C(0x4100D470): /* Cortex-A710 */ + case UINT32_C(0x4100D480): /* Cortex-X2 */ + case UINT32_C(0x4100D490): /* Neoverse N2 */ + case UINT32_C(0x4100D4D0): /* Cortex-A715 */ + case UINT32_C(0x4100D4E0): /* Cortex-X3 */ + case UINT32_C(0x4100D4F0): /* Neoverse V2 */ case UINT32_C(0x4800D400): /* Cortex-A76 (HiSilicon) */ case UINT32_C(0x51008020): /* Kryo 385 Gold (Cortex-A75) */ case UINT32_C(0x51008030): /* Kryo 385 Silver (Cortex-A55) */ @@ -91,25 +117,57 @@ void cpuinfo_arm_linux_decode_isa_from_proc_cpuinfo( /* * NEON VDOT instructions are not indicated in /proc/cpuinfo. - * Use a MIDR-based heuristic to whitelist processors known to support it. + * Use a MIDR-based heuristic to whitelist processors known to support it: + * - Processors with Cortex-A76 cores + * - Processors with Cortex-A77 cores + * - Processors with Cortex-A78 cores + * - Processors with Cortex-A510 cores + * - Processors with Cortex-A710 cores + * - Processors with Cortex-A715 cores + * - Processors with Cortex-X1 cores + * - Processors with Cortex-X2 cores + * - Processors with Cortex-X3 cores + * - Processors with Exynos M4 cores + * - Processors with Exynos M5 cores + * - Neoverse N1 cores + * - Neoverse N2 cores + * - Neoverse V1 cores + * - Neoverse V2 cores */ - switch (midr & (CPUINFO_ARM_MIDR_IMPLEMENTER_MASK | CPUINFO_ARM_MIDR_PART_MASK)) { - case UINT32_C(0x4100D0B0): /* Cortex-A76 */ - case UINT32_C(0x4100D0D0): /* Cortex-A77 */ - case UINT32_C(0x4100D0E0): /* Cortex-A76AE */ - case UINT32_C(0x4800D400): /* Cortex-A76 (HiSilicon) */ - case UINT32_C(0x51008040): /* Kryo 485 Gold (Cortex-A76) */ - case UINT32_C(0x51008050): /* Kryo 485 Silver (Cortex-A55) */ - case UINT32_C(0x53000030): /* Exynos-M4 */ - case UINT32_C(0x53000040): /* Exynos-M5 */ - isa->dot = true; - break; - case UINT32_C(0x4100D050): /* Cortex A55: revision 1 or later only */ - isa->dot = !!(midr_get_variant(midr) >= 1); - break; - case UINT32_C(0x4100D0A0): /* Cortex A75: revision 2 or later only */ - isa->dot = !!(midr_get_variant(midr) >= 2); - break; + if (chipset->series == cpuinfo_arm_chipset_series_spreadtrum_sc && chipset->model == 9863) { + cpuinfo_log_warning("VDOT instructions disabled: cause occasional SIGILL on Spreadtrum SC9863A"); + } else if (chipset->series == cpuinfo_arm_chipset_series_unisoc_t && chipset->model == 310) { + cpuinfo_log_warning("VDOT instructions disabled: cause occasional SIGILL on Unisoc T310"); + } else { + switch (midr & (CPUINFO_ARM_MIDR_IMPLEMENTER_MASK | CPUINFO_ARM_MIDR_PART_MASK)) { + case UINT32_C(0x4100D0B0): /* Cortex-A76 */ + case UINT32_C(0x4100D0C0): /* Neoverse N1 */ + case UINT32_C(0x4100D0D0): /* Cortex-A77 */ + case UINT32_C(0x4100D0E0): /* Cortex-A76AE */ + case UINT32_C(0x4100D400): /* Neoverse V1 */ + case UINT32_C(0x4100D410): /* Cortex-A78 */ + case UINT32_C(0x4100D440): /* Cortex-X1 */ + case UINT32_C(0x4100D460): /* Cortex-A510 */ + case UINT32_C(0x4100D470): /* Cortex-A710 */ + case UINT32_C(0x4100D480): /* Cortex-X2 */ + case UINT32_C(0x4100D490): /* Neoverse N2 */ + case UINT32_C(0x4100D4D0): /* Cortex-A715 */ + case UINT32_C(0x4100D4E0): /* Cortex-X3 */ + case UINT32_C(0x4100D4F0): /* Neoverse V2 */ + case UINT32_C(0x4800D400): /* Cortex-A76 (HiSilicon) */ + case UINT32_C(0x51008040): /* Kryo 485 Gold (Cortex-A76) */ + case UINT32_C(0x51008050): /* Kryo 485 Silver (Cortex-A55) */ + case UINT32_C(0x53000030): /* Exynos M4 */ + case UINT32_C(0x53000040): /* Exynos M5 */ + isa->dot = true; + break; + case UINT32_C(0x4100D050): /* Cortex A55: revision 1 or later only */ + isa->dot = !!(midr_get_variant(midr) >= 1); + break; + case UINT32_C(0x4100D0A0): /* Cortex A75: revision 2 or later only */ + isa->dot = !!(midr_get_variant(midr) >= 2); + break; + } } } else { /* ARMv7 or lower: use feature flags to detect optional features */ @@ -167,19 +225,24 @@ void cpuinfo_arm_linux_decode_isa_from_proc_cpuinfo( } if (features & CPUINFO_ARM_LINUX_FEATURE_IWMMXT) { - const uint32_t wcid = read_wcid(); - cpuinfo_log_debug("WCID = 0x%08"PRIx32, wcid); - const uint32_t coprocessor_type = (wcid >> 8) & UINT32_C(0xFF); - if (coprocessor_type >= 0x10) { - isa->wmmx = true; - if (coprocessor_type >= 0x20) { - isa->wmmx2 = true; + #if !defined(__ARM_ARCH_8A__) && !(defined(__ARM_ARCH) && (__ARM_ARCH >= 8)) + const uint32_t wcid = read_wcid(); + cpuinfo_log_debug("WCID = 0x%08"PRIx32, wcid); + const uint32_t coprocessor_type = (wcid >> 8) & UINT32_C(0xFF); + if (coprocessor_type >= 0x10) { + isa->wmmx = true; + if (coprocessor_type >= 0x20) { + isa->wmmx2 = true; + } + } else { + cpuinfo_log_warning("WMMX ISA disabled: OS reported iwmmxt feature, " + "but WCID coprocessor type 0x%"PRIx32" indicates no WMMX support", + coprocessor_type); } - } else { + #else cpuinfo_log_warning("WMMX ISA disabled: OS reported iwmmxt feature, " - "but WCID coprocessor type 0x%"PRIx32" indicates no WMMX support", - coprocessor_type); - } + "but there is no iWMMXt coprocessor"); + #endif } if ((features & CPUINFO_ARM_LINUX_FEATURE_THUMB) || (architecture_flags & CPUINFO_ARM_LINUX_ARCH_T)) { diff --git a/3rdparty/cpuinfo/src/arm/linux/aarch64-isa.c b/3rdparty/cpuinfo/src/arm/linux/aarch64-isa.c index 2000e1a1567217..5dd4c4d07ae146 100644 --- a/3rdparty/cpuinfo/src/arm/linux/aarch64-isa.c +++ b/3rdparty/cpuinfo/src/arm/linux/aarch64-isa.c @@ -41,6 +41,9 @@ void cpuinfo_arm64_linux_decode_isa_from_proc_cpuinfo( * - Processors with Exynos M4 cores * - Processors with Exynos M5 cores * - Neoverse N1 cores + * - Neoverse V1 cores + * - Neoverse N2 cores + * - Neoverse V2 cores */ if (chipset->series == cpuinfo_arm_chipset_series_samsung_exynos && chipset->model == 9810) { /* Exynos 9810 reports that it supports FP16 compute, but in fact only little cores do */ @@ -50,10 +53,14 @@ void cpuinfo_arm64_linux_decode_isa_from_proc_cpuinfo( switch (midr & (CPUINFO_ARM_MIDR_IMPLEMENTER_MASK | CPUINFO_ARM_MIDR_PART_MASK)) { case UINT32_C(0x4100D050): /* Cortex-A55 */ case UINT32_C(0x4100D060): /* Cortex-A65 */ + case UINT32_C(0x4100D0A0): /* Cortex-A75 */ case UINT32_C(0x4100D0B0): /* Cortex-A76 */ case UINT32_C(0x4100D0C0): /* Neoverse N1 */ case UINT32_C(0x4100D0D0): /* Cortex-A77 */ case UINT32_C(0x4100D0E0): /* Cortex-A76AE */ + case UINT32_C(0x4100D400): /* Neoverse V1 */ + case UINT32_C(0x4100D490): /* Neoverse N2 */ + case UINT32_C(0x4100D4F0): /* Neoverse V2 */ case UINT32_C(0x4800D400): /* Cortex-A76 (HiSilicon) */ case UINT32_C(0x51008020): /* Kryo 385 Gold (Cortex-A75) */ case UINT32_C(0x51008030): /* Kryo 385 Silver (Cortex-A55) */ @@ -78,6 +85,9 @@ void cpuinfo_arm64_linux_decode_isa_from_proc_cpuinfo( break; } } + if (features2 & CPUINFO_ARM_LINUX_FEATURE2_I8MM) { + isa->i8mm = true; + } /* * Many phones ship with an old kernel configuration that doesn't report UDOT/SDOT instructions. @@ -89,7 +99,10 @@ void cpuinfo_arm64_linux_decode_isa_from_proc_cpuinfo( case UINT32_C(0x4100D0C0): /* Neoverse N1 */ case UINT32_C(0x4100D0D0): /* Cortex-A77 */ case UINT32_C(0x4100D0E0): /* Cortex-A76AE */ + case UINT32_C(0x4100D400): /* Neoverse V1 */ + case UINT32_C(0x4100D490): /* Neoverse N2 */ case UINT32_C(0x4100D4A0): /* Neoverse E1 */ + case UINT32_C(0x4100D4F0): /* Neoverse V2 */ case UINT32_C(0x4800D400): /* Cortex-A76 (HiSilicon) */ case UINT32_C(0x51008040): /* Kryo 485 Gold (Cortex-A76) */ case UINT32_C(0x51008050): /* Kryo 485 Silver (Cortex-A55) */ @@ -124,4 +137,13 @@ void cpuinfo_arm64_linux_decode_isa_from_proc_cpuinfo( if (features2 & CPUINFO_ARM_LINUX_FEATURE2_SVE2) { isa->sve2 = true; } + // SVEBF16 is set iff SVE and BF16 are both supported, but the SVEBF16 feature flag + // was added in Linux kernel before the BF16 feature flag, so we check for either. + if (features2 & (CPUINFO_ARM_LINUX_FEATURE2_BF16 | CPUINFO_ARM_LINUX_FEATURE2_SVEBF16)) { + isa->bf16 = true; + } + if (features & CPUINFO_ARM_LINUX_FEATURE_ASIMDFHM) { + isa->fhm = true; + } } + diff --git a/3rdparty/cpuinfo/src/arm/linux/api.h b/3rdparty/cpuinfo/src/arm/linux/api.h index 1c09f827e3436f..2e849431d3f5a7 100644 --- a/3rdparty/cpuinfo/src/arm/linux/api.h +++ b/3rdparty/cpuinfo/src/arm/linux/api.h @@ -314,7 +314,7 @@ CPUINFO_INTERNAL bool cpuinfo_arm_linux_parse_proc_cpuinfo( struct cpuinfo_arm_isa isa[restrict static 1]); #endif -#ifdef __ANDROID__ +#if defined(__ANDROID__) CPUINFO_INTERNAL struct cpuinfo_arm_chipset cpuinfo_arm_android_decode_chipset( const struct cpuinfo_android_properties properties[restrict static 1], diff --git a/3rdparty/cpuinfo/src/arm/linux/chipset.c b/3rdparty/cpuinfo/src/arm/linux/chipset.c index e36283c55fa51b..0e9191fd9c1f8d 100644 --- a/3rdparty/cpuinfo/src/arm/linux/chipset.c +++ b/3rdparty/cpuinfo/src/arm/linux/chipset.c @@ -37,29 +37,17 @@ static inline bool is_ascii_numeric(char c) { } static inline uint16_t load_u16le(const void* ptr) { -#if defined(__ARM_ARCH_7A__) || defined(__aarch64__) - return *((const uint16_t*) ptr); -#else const uint8_t* byte_ptr = (const uint8_t*) ptr; return ((uint16_t) byte_ptr[1] << 8) | (uint16_t) byte_ptr[0]; -#endif } static inline uint32_t load_u24le(const void* ptr) { -#if defined(__ARM_ARCH_7A__) || defined(__aarch64__) - return ((uint32_t) ((const uint8_t*) ptr)[2] << 16) | ((uint32_t) *((const uint16_t*) ptr)); -#else - const uint8_t* byte_ptr = (const uint8_t*) ptr; - return ((uint32_t) byte_ptr[2] << 16) | ((uint32_t) byte_ptr[1] << 8) | (uint32_t) byte_ptr[0]; -#endif + return ((uint32_t) ((const uint8_t*) ptr)[2] << 16) | (uint32_t) load_u16le(ptr); } static inline uint32_t load_u32le(const void* ptr) { -#if defined(__ARM_ARCH_7A__) || defined(__aarch64__) - return *((const uint32_t*) ptr); -#else - return ((uint32_t) ((const uint8_t*) ptr)[3] << 24) | load_u24le(ptr); -#endif + const uint8_t* byte_ptr = (const uint8_t*) ptr; + return ((uint32_t) byte_ptr[3] << 24) | ((uint32_t) byte_ptr[2] << 16) | ((uint32_t) byte_ptr[1] << 8) | (uint32_t) byte_ptr[0]; } /* @@ -96,6 +84,7 @@ static enum cpuinfo_arm_chipset_vendor chipset_series_vendor[cpuinfo_arm_chipset [cpuinfo_arm_chipset_series_spreadtrum_sc] = cpuinfo_arm_chipset_vendor_spreadtrum, [cpuinfo_arm_chipset_series_telechips_tcc] = cpuinfo_arm_chipset_vendor_telechips, [cpuinfo_arm_chipset_series_texas_instruments_omap] = cpuinfo_arm_chipset_vendor_texas_instruments, + [cpuinfo_arm_chipset_series_unisoc_t] = cpuinfo_arm_chipset_vendor_unisoc, [cpuinfo_arm_chipset_series_wondermedia_wm] = cpuinfo_arm_chipset_vendor_wondermedia, }; @@ -877,6 +866,63 @@ static bool match_sc( return true; } +/** + * Tries to match, case-sentitively, /Unisoc T\d{3,4}/ signature for Unisoc T chipset. + * If match successful, extracts model information into \p chipset argument. + * + * @param start - start of the platform identifier (/proc/cpuinfo Hardware string, ro.product.board, + * ro.board.platform, or ro.chipname) to match. + * @param end - end of the platform identifier (/proc/cpuinfo Hardware string, ro.product.board, + * ro.board.platform, or ro.chipname) to match. + * @param[out] chipset - location where chipset information will be stored upon a successful match. + * + * @returns true if signature matched, false otherwise. + */ +static bool match_t( + const char* start, const char* end, + struct cpuinfo_arm_chipset chipset[restrict static 1]) +{ + /* Expect 11-12 symbols: "Unisoc T" (8 symbols) + 3-4-digit model number */ + const size_t length = end - start; + switch (length) { + case 11: + case 12: + break; + default: + return false; + } + + /* Check that string starts with "Unisoc T". The first four characters are loaded as 32-bit little endian word */ + const uint32_t expected_unis = load_u32le(start); + if (expected_unis != UINT32_C(0x73696E55) /* "sinU" = reverse("Unis") */) { + return false; + } + + /* The next four characters are loaded as 32-bit little endian word */ + const uint32_t expected_oc_t = load_u32le(start + 4); + if (expected_oc_t != UINT32_C(0x5420636F) /* "T co" = reverse("oc T") */) { + return false; + } + + /* Validate and parse 3-4 digit model number */ + uint32_t model = 0; + for (uint32_t i = 8; i < length; i++) { + const uint32_t digit = (uint32_t) (uint8_t) start[i] - '0'; + if (digit >= 10) { + /* Not really a digit */ + return false; + } + model = model * 10 + digit; + } + + *chipset = (struct cpuinfo_arm_chipset) { + .vendor = cpuinfo_arm_chipset_vendor_unisoc, + .series = cpuinfo_arm_chipset_series_unisoc_t, + .model = model, + }; + return true; +} + /** * Tries to match /lc\d{4}[a-z]?$/ signature for Leadcore LC chipsets. * If match successful, extracts model information into \p chipset argument. @@ -891,7 +937,7 @@ static bool match_lc( const char* start, const char* end, struct cpuinfo_arm_chipset chipset[restrict static 1]) { - /* Expect at 6-7 symbols: "lc" (2 symbols) + 4-digit model number + optional 1-letter suffix */ + /* Expect 6-7 symbols: "lc" (2 symbols) + 4-digit model number + optional 1-letter suffix */ const size_t length = end - start; switch (length) { case 6: @@ -1351,7 +1397,7 @@ static bool match_and_parse_sunxi( return false; } - /* Compare sunXi platform id and number of cores to tabluted values to decode chipset name */ + /* Compare sunXi platform id and number of cores to tabulated values to decode chipset name */ uint32_t model = 0; char suffix = 0; for (size_t i = 0; i < CPUINFO_COUNT_OF(sunxi_map_entries); i++) { @@ -2354,6 +2400,16 @@ struct cpuinfo_arm_chipset cpuinfo_arm_linux_decode_chipset_from_proc_cpuinfo_ha cpuinfo_log_debug( "matched Spreadtrum SC signature in /proc/cpuinfo Hardware string \"%.*s\"", (int) hardware_length, hardware); + + return chipset; + } + + /* Check Unisoc T signature */ + if (match_t(hardware, hardware_end, &chipset)) { + cpuinfo_log_debug( + "matched Unisoc T signature in /proc/cpuinfo Hardware string \"%.*s\"", + (int) hardware_length, hardware); + return chipset; } @@ -3417,6 +3473,7 @@ static const char* chipset_vendor_string[cpuinfo_arm_chipset_vendor_max] = { [cpuinfo_arm_chipset_vendor_spreadtrum] = "Spreadtrum", [cpuinfo_arm_chipset_vendor_telechips] = "Telechips", [cpuinfo_arm_chipset_vendor_texas_instruments] = "Texas Instruments", + [cpuinfo_arm_chipset_vendor_unisoc] = "Unisoc", [cpuinfo_arm_chipset_vendor_wondermedia] = "WonderMedia", }; @@ -3451,6 +3508,7 @@ static const char* chipset_series_string[cpuinfo_arm_chipset_series_max] = { [cpuinfo_arm_chipset_series_spreadtrum_sc] = "SC", [cpuinfo_arm_chipset_series_telechips_tcc] = "TCC", [cpuinfo_arm_chipset_series_texas_instruments_omap] = "OMAP", + [cpuinfo_arm_chipset_series_unisoc_t] = "T", [cpuinfo_arm_chipset_series_wondermedia_wm] = "WM", }; @@ -3484,7 +3542,7 @@ void cpuinfo_arm_chipset_to_string( } } -#ifdef __ANDROID__ +#if defined(__ANDROID__) static inline struct cpuinfo_arm_chipset disambiguate_qualcomm_chipset( const struct cpuinfo_arm_chipset proc_cpuinfo_hardware_chipset[restrict static 1], const struct cpuinfo_arm_chipset ro_product_board_chipset[restrict static 1], @@ -3776,7 +3834,7 @@ void cpuinfo_arm_chipset_to_string( */ void cpuinfo_arm_fixup_raspberry_pi_chipset( struct cpuinfo_arm_chipset chipset[restrict static 1], - const char revision[restrict static CPUINFO_HARDWARE_VALUE_MAX]) + const char revision[restrict static CPUINFO_REVISION_VALUE_MAX]) { const size_t revision_length = strnlen(revision, CPUINFO_REVISION_VALUE_MAX); diff --git a/3rdparty/cpuinfo/src/arm/linux/clusters.c b/3rdparty/cpuinfo/src/arm/linux/clusters.c index c7a40457d28d37..430773d1d1748f 100644 --- a/3rdparty/cpuinfo/src/arm/linux/clusters.c +++ b/3rdparty/cpuinfo/src/arm/linux/clusters.c @@ -48,7 +48,7 @@ static inline bool bitmask_all(uint32_t bitfield, uint32_t mask) { * @param usable_processors - number of processors in the @p processors array with CPUINFO_LINUX_FLAG_VALID flags. * @param max_processors - number of elements in the @p processors array. * @param[in,out] processors - processor descriptors with pre-parsed POSSIBLE and PRESENT flags, minimum/maximum - * frequency, MIDR infromation, and core cluster (package siblings list) information. + * frequency, MIDR information, and core cluster (package siblings list) information. * * @retval true if the heuristic successfully assigned all processors into clusters of cores. * @retval false if known details about processors contradict the heuristic configuration of core clusters. @@ -292,9 +292,9 @@ bool cpuinfo_arm_linux_detect_core_clusters_by_heuristic( * - Processors assigned to these clusters stay assigned to the same clusters * - No new processors are added to these clusters * - Processors without pre-assigned cluster are clustered in one sequential scan: - * - If known details (min/max frequency, MIDR components) of a processor are compatible with a preceeding - * processor, without pre-assigned cluster, the processor is assigned to the cluster of the preceeding processor. - * - If known details (min/max frequency, MIDR components) of a processor are not compatible with a preceeding + * - If known details (min/max frequency, MIDR components) of a processor are compatible with a preceding + * processor, without pre-assigned cluster, the processor is assigned to the cluster of the preceding processor. + * - If known details (min/max frequency, MIDR components) of a processor are not compatible with a preceding * processor, the processor is assigned to a newly created cluster. * * The function must be called after parsing OS-provided information on core clusters, and usually is called only @@ -309,7 +309,7 @@ bool cpuinfo_arm_linux_detect_core_clusters_by_heuristic( * * @param max_processors - number of elements in the @p processors array. * @param[in,out] processors - processor descriptors with pre-parsed POSSIBLE and PRESENT flags, minimum/maximum - * frequency, MIDR infromation, and core cluster (package siblings list) information. + * frequency, MIDR information, and core cluster (package siblings list) information. * * @retval true if the heuristic successfully assigned all processors into clusters of cores. * @retval false if known details about processors contradict the heuristic configuration of core clusters. @@ -331,7 +331,7 @@ void cpuinfo_arm_linux_detect_core_clusters_by_sequential_scan( if (cluster_flags & CPUINFO_LINUX_FLAG_MIN_FREQUENCY) { if (cluster_min_frequency != processors[i].min_frequency) { cpuinfo_log_info( - "minimum frequency of processor %"PRIu32" (%"PRIu32" KHz) is different than of preceeding cluster (%"PRIu32" KHz); " + "minimum frequency of processor %"PRIu32" (%"PRIu32" KHz) is different than of preceding cluster (%"PRIu32" KHz); " "processor %"PRIu32" starts to a new cluster", i, processors[i].min_frequency, cluster_min_frequency, i); goto new_cluster; @@ -346,7 +346,7 @@ void cpuinfo_arm_linux_detect_core_clusters_by_sequential_scan( if (cluster_flags & CPUINFO_LINUX_FLAG_MAX_FREQUENCY) { if (cluster_max_frequency != processors[i].max_frequency) { cpuinfo_log_debug( - "maximum frequency of processor %"PRIu32" (%"PRIu32" KHz) is different than of preceeding cluster (%"PRIu32" KHz); " + "maximum frequency of processor %"PRIu32" (%"PRIu32" KHz) is different than of preceding cluster (%"PRIu32" KHz); " "processor %"PRIu32" starts a new cluster", i, processors[i].max_frequency, cluster_max_frequency, i); goto new_cluster; @@ -361,7 +361,7 @@ void cpuinfo_arm_linux_detect_core_clusters_by_sequential_scan( if (cluster_flags & CPUINFO_ARM_LINUX_VALID_IMPLEMENTER) { if ((cluster_midr & CPUINFO_ARM_MIDR_IMPLEMENTER_MASK) != (processors[i].midr & CPUINFO_ARM_MIDR_IMPLEMENTER_MASK)) { cpuinfo_log_debug( - "CPU Implementer of processor %"PRIu32" (0x%02"PRIx32") is different than of preceeding cluster (0x%02"PRIx32"); " + "CPU Implementer of processor %"PRIu32" (0x%02"PRIx32") is different than of preceding cluster (0x%02"PRIx32"); " "processor %"PRIu32" starts to a new cluster", i, midr_get_implementer(processors[i].midr), midr_get_implementer(cluster_midr), i); goto new_cluster; @@ -417,11 +417,11 @@ void cpuinfo_arm_linux_detect_core_clusters_by_sequential_scan( } } - /* All checks passed, attach processor to the preceeding cluster */ + /* All checks passed, attach processor to the preceding cluster */ cluster_processors++; processors[i].package_leader_id = cluster_start; processors[i].flags |= CPUINFO_LINUX_FLAG_PACKAGE_CLUSTER; - cpuinfo_log_debug("assigned processor %"PRIu32" to preceeding cluster of processor %"PRIu32, i, cluster_start); + cpuinfo_log_debug("assigned processor %"PRIu32" to preceding cluster of processor %"PRIu32, i, cluster_start); continue; new_cluster: diff --git a/3rdparty/cpuinfo/src/arm/linux/cp.h b/3rdparty/cpuinfo/src/arm/linux/cp.h index 63940ec5d85f19..0abd7d61e8e9a5 100644 --- a/3rdparty/cpuinfo/src/arm/linux/cp.h +++ b/3rdparty/cpuinfo/src/arm/linux/cp.h @@ -35,10 +35,16 @@ return mvfr0; } #endif - - static inline uint32_t read_wcid(void) { - uint32_t wcid; - __asm__ __volatile__("MRC p1, 0, %[wcid], c0, c0" : [wcid] "=r" (wcid)); - return wcid; - } + #if !defined(__ARM_ARCH_8A__) && !(defined(__ARM_ARCH) && (__ARM_ARCH >= 8)) + /* + * In ARMv8, AArch32 state supports only conceptual coprocessors CP10, CP11, CP14, and CP15. + * AArch64 does not support the concept of coprocessors. + * and clang refuses to compile inline assembly when targeting ARMv8+ + */ + static inline uint32_t read_wcid(void) { + uint32_t wcid; + __asm__ __volatile__("MRC p1, 0, %[wcid], c0, c0" : [wcid] "=r" (wcid)); + return wcid; + } + #endif #endif diff --git a/3rdparty/cpuinfo/src/arm/linux/cpuinfo.c b/3rdparty/cpuinfo/src/arm/linux/cpuinfo.c index 90e1631ee1c007..b7805b5ef418ae 100644 --- a/3rdparty/cpuinfo/src/arm/linux/cpuinfo.c +++ b/3rdparty/cpuinfo/src/arm/linux/cpuinfo.c @@ -177,6 +177,10 @@ static void parse_features( #if CPUINFO_ARCH_ARM64 processor->features |= CPUINFO_ARM_LINUX_FEATURE_FCMA; #endif + } else if (memcmp(feature_start, "i8mm", feature_length) == 0) { + #if CPUINFO_ARCH_ARM64 + processor->features2 |= CPUINFO_ARM_LINUX_FEATURE2_I8MM; + #endif #if CPUINFO_ARCH_ARM } else if (memcmp(feature_start, "half", feature_length) == 0) { processor->features |= CPUINFO_ARM_LINUX_FEATURE_HALF; @@ -283,6 +287,10 @@ static void parse_features( #if CPUINFO_ARCH_ARM64 processor->features |= CPUINFO_ARM_LINUX_FEATURE_ASIMDRDM; #endif + } else if (memcmp(feature_start, "asimdfhm", feature_length) == 0) { + #if CPUINFO_ARCH_ARM64 + processor->features |= CPUINFO_ARM_LINUX_FEATURE_ASIMDFHM; + #endif #if CPUINFO_ARCH_ARM } else if (memcmp(feature_start, "fastmult", feature_length) == 0) { processor->features |= CPUINFO_ARM_LINUX_FEATURE_FASTMULT; @@ -896,6 +904,7 @@ bool cpuinfo_arm_linux_parse_proc_cpuinfo( uint32_t max_processors_count, struct cpuinfo_arm_linux_processor processors[restrict static max_processors_count]) { + hardware[0] = '\0'; struct proc_cpuinfo_parser_state state = { .hardware = hardware, .revision = revision, diff --git a/3rdparty/cpuinfo/src/arm/linux/hwcap.c b/3rdparty/cpuinfo/src/arm/linux/hwcap.c index 35e9994f6939e3..984ab43c521972 100644 --- a/3rdparty/cpuinfo/src/arm/linux/hwcap.c +++ b/3rdparty/cpuinfo/src/arm/linux/hwcap.c @@ -1,3 +1,4 @@ +#include #include #include @@ -15,7 +16,8 @@ #include #include -#if CPUINFO_ARCH_ARM64 || CPUINFO_ARCH_ARM && !defined(__ANDROID__) +#if CPUINFO_ARCH_ARM64 || CPUINFO_ARCH_ARM && \ + defined(__GLIBC__) && defined(__GLIBC_MINOR__) && (__GLIBC__ > 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ >= 16) #include #else #define AT_HWCAP 16 @@ -74,11 +76,13 @@ libc = NULL; } return getauxval != NULL; - #else - /* GNU/Linux: getauxval is always supported */ + #elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) && (__GLIBC__ > 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ >= 16) + /* GNU/Linux: getauxval is supported since glibc-2.16 */ *hwcap = getauxval(AT_HWCAP); *hwcap2 = getauxval(AT_HWCAP2); return true; + #else + return false; #endif } diff --git a/3rdparty/cpuinfo/src/arm/linux/init.c b/3rdparty/cpuinfo/src/arm/linux/init.c index 23d84399678f78..2501f39c8dddbb 100644 --- a/3rdparty/cpuinfo/src/arm/linux/init.c +++ b/3rdparty/cpuinfo/src/arm/linux/init.c @@ -199,9 +199,13 @@ void cpuinfo_arm_linux_init(void) { for (uint32_t i = 0; i < arm_linux_processors_count; i++) { arm_linux_processors[i].system_processor_id = i; if (bitmask_all(arm_linux_processors[i].flags, CPUINFO_LINUX_FLAG_VALID)) { - valid_processors += 1; - - if (!(arm_linux_processors[i].flags & CPUINFO_ARM_LINUX_VALID_PROCESSOR)) { + if (arm_linux_processors[i].flags & CPUINFO_ARM_LINUX_VALID_PROCESSOR) { + /* + * Processor is in possible and present lists, and also reported in /proc/cpuinfo. + * This processor is availble for compute. + */ + valid_processors += 1; + } else { /* * Processor is in possible and present lists, but not reported in /proc/cpuinfo. * This is fairly common: high-index processors can be not reported if they are offline. @@ -510,7 +514,7 @@ void cpuinfo_arm_linux_init(void) { uint32_t l2_count = 0, l3_count = 0, big_l3_size = 0, cluster_id = UINT32_MAX; /* Indication whether L3 (if it exists) is shared between all cores */ bool shared_l3 = true; - /* Populate cache infromation structures in l1i, l1d */ + /* Populate cache information structures in l1i, l1d */ for (uint32_t i = 0; i < valid_processors; i++) { if (arm_linux_processors[i].package_leader_id == arm_linux_processors[i].system_processor_id) { cluster_id += 1; diff --git a/3rdparty/cpuinfo/src/arm/linux/midr.c b/3rdparty/cpuinfo/src/arm/linux/midr.c index 2c3116b624fb2b..0d8f03fa82f396 100644 --- a/3rdparty/cpuinfo/src/arm/linux/midr.c +++ b/3rdparty/cpuinfo/src/arm/linux/midr.c @@ -675,10 +675,10 @@ static bool cpuinfo_arm_linux_detect_cluster_midr_by_big_little_heuristic( /* * Initializes MIDR for leaders of core clusters in a single sequential scan: - * - Clusters preceeding the first reported MIDR value are assumed to have default MIDR value. + * - Clusters preceding the first reported MIDR value are assumed to have default MIDR value. * - Clusters following any reported MIDR value to have that MIDR value. * - * @param default_midr - MIDR value that will be assigned to cluster leaders preceeding any reported MIDR value. + * @param default_midr - MIDR value that will be assigned to cluster leaders preceding any reported MIDR value. * @param processors_count - number of logical processor descriptions in the @p processors array. * @param[in,out] processors - array of logical processor descriptions with pre-parsed MIDR, maximum frequency, * and decoded core cluster (package_leader_id) information. @@ -833,7 +833,7 @@ uint32_t cpuinfo_arm_linux_detect_cluster_midr( * 2. For systems with 2 clusters and MIDR known for one cluster, assume big.LITTLE configuration, * and estimate MIDR for the other cluster under assumption that MIDR for the big cluster is known. * 3. Initialize MIDRs for core clusters in a single sequential scan: - * - Clusters preceeding the first reported MIDR value are assumed to have the last reported MIDR value. + * - Clusters preceding the first reported MIDR value are assumed to have the last reported MIDR value. * - Clusters following any reported MIDR value to have that MIDR value. */ diff --git a/3rdparty/cpuinfo/src/arm/mach/init.c b/3rdparty/cpuinfo/src/arm/mach/init.c index dbea578c43428b..6a28b2db2f8c0c 100644 --- a/3rdparty/cpuinfo/src/arm/mach/init.c +++ b/3rdparty/cpuinfo/src/arm/mach/init.c @@ -15,43 +15,25 @@ #include /* Polyfill recent CPUFAMILY_ARM_* values for older SDKs */ -#ifndef CPUFAMILY_ARM_MONSOON_MISTRAL - #define CPUFAMILY_ARM_MONSOON_MISTRAL 0xE81E7EF6 -#endif #ifndef CPUFAMILY_ARM_VORTEX_TEMPEST - #define CPUFAMILY_ARM_VORTEX_TEMPEST 0x07D34B9F + #define CPUFAMILY_ARM_VORTEX_TEMPEST 0x07D34B9F #endif #ifndef CPUFAMILY_ARM_LIGHTNING_THUNDER - #define CPUFAMILY_ARM_LIGHTNING_THUNDER 0x462504D2 + #define CPUFAMILY_ARM_LIGHTNING_THUNDER 0x462504D2 #endif #ifndef CPUFAMILY_ARM_FIRESTORM_ICESTORM #define CPUFAMILY_ARM_FIRESTORM_ICESTORM 0x1B588BB3 #endif +#ifndef CPUFAMILY_ARM_AVALANCHE_BLIZZARD + #define CPUFAMILY_ARM_AVALANCHE_BLIZZARD 0xDA33D83D +#endif struct cpuinfo_arm_isa cpuinfo_isa = { -#if CPUINFO_ARCH_ARM - .thumb = true, - .thumb2 = true, - .thumbee = false, - .jazelle = false, - .armv5e = true, - .armv6 = true, - .armv6k = true, - .armv7 = true, - .vfpv2 = false, - .vfpv3 = true, - .d32 = true, - .wmmx = false, - .wmmx2 = false, - .neon = true, -#endif -#if CPUINFO_ARCH_ARM64 .aes = true, .sha1 = true, .sha2 = true, .pmull = true, .crc32 = true, -#endif }; static uint32_t get_sys_info(int type_specifier, const char* name) { @@ -83,10 +65,8 @@ static uint32_t get_sys_info_by_name(const char* type_specifier) { return result; } -static enum cpuinfo_uarch decode_uarch(uint32_t cpu_family, uint32_t cpu_subtype, uint32_t core_index, uint32_t core_count) { +static enum cpuinfo_uarch decode_uarch(uint32_t cpu_family, uint32_t core_index, uint32_t core_count) { switch (cpu_family) { - case CPUFAMILY_ARM_SWIFT: - return cpuinfo_uarch_swift; case CPUFAMILY_ARM_CYCLONE: return cpuinfo_uarch_cyclone; case CPUFAMILY_ARM_TYPHOON: @@ -107,25 +87,15 @@ static enum cpuinfo_uarch decode_uarch(uint32_t cpu_family, uint32_t cpu_subtype case CPUFAMILY_ARM_FIRESTORM_ICESTORM: /* Hexa-core: 2x Firestorm + 4x Icestorm; Octa-core: 4x Firestorm + 4x Icestorm */ return core_index + 4 < core_count ? cpuinfo_uarch_firestorm : cpuinfo_uarch_icestorm; + case CPUFAMILY_ARM_AVALANCHE_BLIZZARD: + /* Hexa-core: 2x Avalanche + 4x Blizzard */ + return core_index + 4 < core_count ? cpuinfo_uarch_avalanche : cpuinfo_uarch_blizzard; default: /* Use hw.cpusubtype for detection */ break; } - #if CPUINFO_ARCH_ARM - switch (cpu_subtype) { - case CPU_SUBTYPE_ARM_V7: - return cpuinfo_uarch_cortex_a8; - case CPU_SUBTYPE_ARM_V7F: - return cpuinfo_uarch_cortex_a9; - case CPU_SUBTYPE_ARM_V7K: - return cpuinfo_uarch_cortex_a7; - default: - return cpuinfo_uarch_unknown; - } - #else - return cpuinfo_uarch_unknown; - #endif + return cpuinfo_uarch_unknown; } static void decode_package_name(char* package_name) { @@ -299,71 +269,118 @@ void cpuinfo_arm_mach_init(void) { const uint32_t cpu_family = get_sys_info_by_name("hw.cpufamily"); - const uint32_t cpu_type = get_sys_info_by_name("hw.cputype"); - const uint32_t cpu_subtype = get_sys_info_by_name("hw.cpusubtype"); - switch (cpu_type) { - case CPU_TYPE_ARM64: - cpuinfo_isa.aes = true; - cpuinfo_isa.sha1 = true; - cpuinfo_isa.sha2 = true; - cpuinfo_isa.pmull = true; - cpuinfo_isa.crc32 = true; - break; -#if CPUINFO_ARCH_ARM - case CPU_TYPE_ARM: - switch (cpu_subtype) { - case CPU_SUBTYPE_ARM_V8: - cpuinfo_isa.armv8 = true; - cpuinfo_isa.aes = true; - cpuinfo_isa.sha1 = true; - cpuinfo_isa.sha2 = true; - cpuinfo_isa.pmull = true; - cpuinfo_isa.crc32 = true; - /* Fall-through to add ARMv7S features */ - case CPU_SUBTYPE_ARM_V7S: - case CPU_SUBTYPE_ARM_V7K: - cpuinfo_isa.fma = true; - /* Fall-through to add ARMv7F features */ - case CPU_SUBTYPE_ARM_V7F: - cpuinfo_isa.armv7mp = true; - cpuinfo_isa.fp16 = true; - /* Fall-through to add ARMv7 features */ - case CPU_SUBTYPE_ARM_V7: - break; - default: - break; - } - break; -#endif - } + /* - * Support for ARMv8.1 Atomics & FP16 arithmetic instructions is supposed to be detected via - * sysctlbyname calls with "hw.optional.armv8_1_atomics" and "hw.optional.neon_fp16" arguments - * (see https://devstreaming-cdn.apple.com/videos/wwdc/2018/409t8zw7rumablsh/409/409_whats_new_in_llvm.pdf), - * but on new iOS versions these calls just fail with EPERM. - * - * Thus, we whitelist CPUs known to support these instructions. + * iOS 15 and macOS 12 added sysctls for ARM features, use them where possible. + * Otherwise, fallback to hardcoded set of CPUs with known support. */ - switch (cpu_family) { - case CPUFAMILY_ARM_MONSOON_MISTRAL: - case CPUFAMILY_ARM_VORTEX_TEMPEST: - case CPUFAMILY_ARM_LIGHTNING_THUNDER: - case CPUFAMILY_ARM_FIRESTORM_ICESTORM: - #if CPUINFO_ARCH_ARM64 + const uint32_t has_feat_lse = get_sys_info_by_name("hw.optional.arm.FEAT_LSE"); + if (has_feat_lse != 0) { + cpuinfo_isa.atomics = true; + } else { + // Mandatory in ARMv8.1-A, list only cores released before iOS 15 / macOS 12 + switch (cpu_family) { + case CPUFAMILY_ARM_MONSOON_MISTRAL: + case CPUFAMILY_ARM_VORTEX_TEMPEST: + case CPUFAMILY_ARM_LIGHTNING_THUNDER: + case CPUFAMILY_ARM_FIRESTORM_ICESTORM: cpuinfo_isa.atomics = true; - #endif - cpuinfo_isa.fp16arith = true; + } } - /* - * There does not yet seem to exist an OS mechanism to detect support for - * ARMv8.2 optional dot-product instructions, so we currently whitelist CPUs - * known to support these instruction. - */ - switch (cpu_family) { - case CPUFAMILY_ARM_LIGHTNING_THUNDER: - case CPUFAMILY_ARM_FIRESTORM_ICESTORM: - cpuinfo_isa.dot = true; + const uint32_t has_feat_rdm = get_sys_info_by_name("hw.optional.arm.FEAT_RDM"); + if (has_feat_rdm != 0) { + cpuinfo_isa.rdm = true; + } else { + // Optional in ARMv8.2-A (implemented in Apple cores), + // list only cores released before iOS 15 / macOS 12 + switch (cpu_family) { + case CPUFAMILY_ARM_MONSOON_MISTRAL: + case CPUFAMILY_ARM_VORTEX_TEMPEST: + case CPUFAMILY_ARM_LIGHTNING_THUNDER: + case CPUFAMILY_ARM_FIRESTORM_ICESTORM: + cpuinfo_isa.rdm = true; + } + } + + const uint32_t has_feat_fp16 = get_sys_info_by_name("hw.optional.arm.FEAT_FP16"); + if (has_feat_fp16 != 0) { + cpuinfo_isa.fp16arith = true; + } else { + // Optional in ARMv8.2-A (implemented in Apple cores), + // list only cores released before iOS 15 / macOS 12 + switch (cpu_family) { + case CPUFAMILY_ARM_MONSOON_MISTRAL: + case CPUFAMILY_ARM_VORTEX_TEMPEST: + case CPUFAMILY_ARM_LIGHTNING_THUNDER: + case CPUFAMILY_ARM_FIRESTORM_ICESTORM: + cpuinfo_isa.fp16arith = true; + } + } + + const uint32_t has_feat_fhm = get_sys_info_by_name("hw.optional.arm.FEAT_FHM"); + if (has_feat_fhm != 0) { + cpuinfo_isa.fhm = true; + } else { + // Prior to iOS 15, use 'hw.optional.armv8_2_fhm' + const uint32_t has_feat_fhm_legacy = get_sys_info_by_name("hw.optional.armv8_2_fhm"); + if (has_feat_fhm_legacy != 0) { + cpuinfo_isa.fhm = true; + } else { + // Mandatory in ARMv8.4-A when FP16 arithmetics is implemented, + // list only cores released before iOS 15 / macOS 12 + switch (cpu_family) { + case CPUFAMILY_ARM_LIGHTNING_THUNDER: + case CPUFAMILY_ARM_FIRESTORM_ICESTORM: + cpuinfo_isa.fhm = true; + } + } + } + + const uint32_t has_feat_bf16 = get_sys_info_by_name("hw.optional.arm.FEAT_BF16"); + if (has_feat_bf16 != 0) { + cpuinfo_isa.bf16 = true; + } + + const uint32_t has_feat_fcma = get_sys_info_by_name("hw.optional.arm.FEAT_FCMA"); + if (has_feat_fcma != 0) { + cpuinfo_isa.fcma = true; + } else { + // Mandatory in ARMv8.3-A, list only cores released before iOS 15 / macOS 12 + switch (cpu_family) { + case CPUFAMILY_ARM_LIGHTNING_THUNDER: + case CPUFAMILY_ARM_FIRESTORM_ICESTORM: + cpuinfo_isa.fcma = true; + } + } + + const uint32_t has_feat_jscvt = get_sys_info_by_name("hw.optional.arm.FEAT_JSCVT"); + if (has_feat_jscvt != 0) { + cpuinfo_isa.jscvt = true; + } else { + // Mandatory in ARMv8.3-A, list only cores released before iOS 15 / macOS 12 + switch (cpu_family) { + case CPUFAMILY_ARM_LIGHTNING_THUNDER: + case CPUFAMILY_ARM_FIRESTORM_ICESTORM: + cpuinfo_isa.jscvt = true; + } + } + + const uint32_t has_feat_dotprod = get_sys_info_by_name("hw.optional.arm.FEAT_DotProd"); + if (has_feat_dotprod != 0) { + cpuinfo_isa.dot = true; + } else { + // Mandatory in ARMv8.4-A, list only cores released before iOS 15 / macOS 12 + switch (cpu_family) { + case CPUFAMILY_ARM_LIGHTNING_THUNDER: + case CPUFAMILY_ARM_FIRESTORM_ICESTORM: + cpuinfo_isa.dot = true; + } + } + + const uint32_t has_feat_i8mm = get_sys_info_by_name("hw.optional.arm.FEAT_I8MM"); + if (has_feat_i8mm != 0) { + cpuinfo_isa.i8mm = true; } uint32_t num_clusters = 1; @@ -374,7 +391,7 @@ void cpuinfo_arm_mach_init(void) { .core_id = i % cores_per_package, .package = packages + i / cores_per_package, .vendor = cpuinfo_vendor_apple, - .uarch = decode_uarch(cpu_family, cpu_subtype, i, mach_topology.cores), + .uarch = decode_uarch(cpu_family, i, mach_topology.cores), }; if (i != 0 && cores[i].uarch != cores[i - 1].uarch) { num_clusters++; diff --git a/3rdparty/cpuinfo/src/arm/midr.h b/3rdparty/cpuinfo/src/arm/midr.h index 739dc1906e6b7e..7255cfcf9f900a 100644 --- a/3rdparty/cpuinfo/src/arm/midr.h +++ b/3rdparty/cpuinfo/src/arm/midr.h @@ -174,23 +174,27 @@ inline static uint32_t midr_score_core(uint32_t midr) { case UINT32_C(0x53000030): /* Exynos M4 */ case UINT32_C(0x53000040): /* Exynos M5 */ case UINT32_C(0x4100D440): /* Cortex-X1 */ - /* These cores are in big role w.r.t Cortex-A75/-A76/-A77/-A78 */ + case UINT32_C(0x4100D480): /* Cortex-X2 */ + case UINT32_C(0x4100D4E0): /* Cortex-X3 */ + /* These cores are in big role w.r.t Cortex-A75/-A76/-A77/-A78/-A710/-A715 */ return 6; + case UINT32_C(0x4100D080): /* Cortex-A72 */ + case UINT32_C(0x4100D090): /* Cortex-A73 */ + case UINT32_C(0x4100D0A0): /* Cortex-A75 */ + case UINT32_C(0x4100D0B0): /* Cortex-A76 */ + case UINT32_C(0x4100D0D0): /* Cortex-A77 */ + case UINT32_C(0x4100D0E0): /* Cortex-A76AE */ + case UINT32_C(0x4100D410): /* Cortex-A78 */ + case UINT32_C(0x4100D470): /* Cortex-A710 */ + case UINT32_C(0x4100D4D0): /* Cortex-A715 */ + case UINT32_C(0x4800D400): /* Cortex-A76 (HiSilicon) */ case UINT32_C(0x4E000030): /* Denver 2 */ + case UINT32_C(0x51002050): /* Kryo Gold */ + case UINT32_C(0x51008000): /* Kryo 260 / 280 Gold */ + case UINT32_C(0x51008020): /* Kryo 385 Gold */ + case UINT32_C(0x51008040): /* Kryo 485 Gold / Gold Prime */ case UINT32_C(0x53000010): /* Exynos M1 and Exynos M2 */ case UINT32_C(0x53000020): /* Exynos M3 */ - case UINT32_C(0x51008040): /* Kryo 485 Gold / Gold Prime */ - case UINT32_C(0x51008020): /* Kryo 385 Gold */ - case UINT32_C(0x51008000): /* Kryo 260 / 280 Gold */ - case UINT32_C(0x51002050): /* Kryo Gold */ - case UINT32_C(0x4800D400): /* Cortex-A76 (HiSilicon) */ - case UINT32_C(0x4100D410): /* Cortex-A78 */ - case UINT32_C(0x4100D0D0): /* Cortex-A77 */ - case UINT32_C(0x4100D0E0): /* Cortex-A76AE */ - case UINT32_C(0x4100D0B0): /* Cortex-A76 */ - case UINT32_C(0x4100D0A0): /* Cortex-A75 */ - case UINT32_C(0x4100D090): /* Cortex-A73 */ - case UINT32_C(0x4100D080): /* Cortex-A72 */ #if CPUINFO_ARCH_ARM case UINT32_C(0x4100C0F0): /* Cortex-A15 */ case UINT32_C(0x4100C0E0): /* Cortex-A17 */ @@ -205,8 +209,9 @@ inline static uint32_t midr_score_core(uint32_t midr) { #if CPUINFO_ARCH_ARM64 case UINT32_C(0x4100D060): /* Cortex-A65 */ #endif /* CPUINFO_ARCH_ARM64 */ - case UINT32_C(0x4100D050): /* Cortex-A55 */ case UINT32_C(0x4100D030): /* Cortex-A53 */ + case UINT32_C(0x4100D050): /* Cortex-A55 */ + case UINT32_C(0x4100D460): /* Cortex-A510 */ /* Cortex-A53 is usually in LITTLE role, but can be in big role w.r.t. Cortex-A35 */ return 2; case UINT32_C(0x4100D040): /* Cortex-A35 */ diff --git a/3rdparty/cpuinfo/src/arm/uarch.c b/3rdparty/cpuinfo/src/arm/uarch.c index 8b5362b9848ddb..f1dd49349a0ead 100644 --- a/3rdparty/cpuinfo/src/arm/uarch.c +++ b/3rdparty/cpuinfo/src/arm/uarch.c @@ -80,28 +80,50 @@ void cpuinfo_arm_decode_vendor_uarch( case 0xD0B: *uarch = cpuinfo_uarch_cortex_a76; break; -#if CPUINFO_ARCH_ARM64 && !defined(__ANDROID__) case 0xD0C: *uarch = cpuinfo_uarch_neoverse_n1; break; -#endif /* CPUINFO_ARCH_ARM64 && !defined(__ANDROID__) */ case 0xD0D: *uarch = cpuinfo_uarch_cortex_a77; break; case 0xD0E: /* Cortex-A76AE */ *uarch = cpuinfo_uarch_cortex_a76; break; + case 0xD40: /* Neoverse V1 */ + *uarch = cpuinfo_uarch_neoverse_v1; + break; case 0xD41: /* Cortex-A78 */ *uarch = cpuinfo_uarch_cortex_a78; break; case 0xD44: /* Cortex-X1 */ *uarch = cpuinfo_uarch_cortex_x1; break; -#if CPUINFO_ARCH_ARM64 && !defined(__ANDROID__) + case 0xD46: /* Cortex-A510 */ + *uarch = cpuinfo_uarch_cortex_a510; + break; + case 0xD47: /* Cortex-A710 */ + *uarch = cpuinfo_uarch_cortex_a710; + break; + case 0xD48: /* Cortex-X2 */ + *uarch = cpuinfo_uarch_cortex_x2; + break; + case 0xD49: /* Neoverse N2 */ + *uarch = cpuinfo_uarch_neoverse_n2; + break; +#if CPUINFO_ARCH_ARM64 case 0xD4A: *uarch = cpuinfo_uarch_neoverse_e1; break; -#endif /* CPUINFO_ARCH_ARM64 && !defined(__ANDROID__) */ +#endif /* CPUINFO_ARCH_ARM64 */ + case 0xD4D: /* Cortex-A715 */ + *uarch = cpuinfo_uarch_cortex_a715; + break; + case 0xD4E: /* Cortex-X3 */ + *uarch = cpuinfo_uarch_cortex_x3; + break; + case 0xD4F: /* Neoverse V2 */ + *uarch = cpuinfo_uarch_neoverse_v2; + break; default: switch (midr_get_part(midr) >> 8) { #if CPUINFO_ARCH_ARM @@ -129,18 +151,18 @@ void cpuinfo_arm_decode_vendor_uarch( case 0x100: *uarch = cpuinfo_uarch_brahma_b53; break; -#if CPUINFO_ARCH_ARM64 && !defined(__ANDROID__) +#if CPUINFO_ARCH_ARM64 case 0x516: /* Broadcom Vulkan was sold to Cavium before it reached the market, so we identify it as Cavium ThunderX2 */ *vendor = cpuinfo_vendor_cavium; *uarch = cpuinfo_uarch_thunderx2; break; -#endif +#endif /* CPUINFO_ARCH_ARM64 */ default: cpuinfo_log_warning("unknown Broadcom CPU part 0x%03"PRIx32" ignored", midr_get_part(midr)); } break; -#if CPUINFO_ARCH_ARM64 && !defined(__ANDROID__) +#if CPUINFO_ARCH_ARM64 case 'C': *vendor = cpuinfo_vendor_cavium; switch (midr_get_part(midr)) { @@ -157,15 +179,15 @@ void cpuinfo_arm_decode_vendor_uarch( cpuinfo_log_warning("unknown Cavium CPU part 0x%03"PRIx32" ignored", midr_get_part(midr)); } break; -#endif +#endif /* CPUINFO_ARCH_ARM64 */ case 'H': *vendor = cpuinfo_vendor_huawei; switch (midr_get_part(midr)) { -#if CPUINFO_ARCH_ARM64 && !defined(__ANDROID__) +#if CPUINFO_ARCH_ARM64 case 0xD01: /* Kunpeng 920 series */ *uarch = cpuinfo_uarch_taishan_v110; break; -#endif +#endif /* CPUINFO_ARCH_ARM64 */ case 0xD40: /* Kirin 980 Big/Medium cores -> Cortex-A76 */ *vendor = cpuinfo_vendor_arm; *uarch = cpuinfo_uarch_cortex_a76; @@ -204,7 +226,6 @@ void cpuinfo_arm_decode_vendor_uarch( cpuinfo_log_warning("unknown Nvidia CPU part 0x%03"PRIx32" ignored", midr_get_part(midr)); } break; -#if !defined(__ANDROID__) case 'P': *vendor = cpuinfo_vendor_apm; switch (midr_get_part(midr)) { @@ -215,7 +236,6 @@ void cpuinfo_arm_decode_vendor_uarch( cpuinfo_log_warning("unknown Applied Micro CPU part 0x%03"PRIx32" ignored", midr_get_part(midr)); } break; -#endif case 'Q': *vendor = cpuinfo_vendor_qualcomm; switch (midr_get_part(midr)) { @@ -282,14 +302,14 @@ void cpuinfo_arm_decode_vendor_uarch( *vendor = cpuinfo_vendor_arm; *uarch = cpuinfo_uarch_cortex_a55; break; -#if CPUINFO_ARCH_ARM64 && !defined(__ANDROID__) +#if CPUINFO_ARCH_ARM64 case 0xC00: *uarch = cpuinfo_uarch_falkor; break; case 0xC01: *uarch = cpuinfo_uarch_saphira; break; -#endif /* CPUINFO_ARCH_ARM64 && !defined(__ANDROID__) */ +#endif /* CPUINFO_ARCH_ARM64 */ default: cpuinfo_log_warning("unknown Qualcomm CPU part 0x%03"PRIx32" ignored", midr_get_part(midr)); } diff --git a/3rdparty/cpuinfo/src/arm/windows/init-by-logical-sys-info.c b/3rdparty/cpuinfo/src/arm/windows/init-by-logical-sys-info.c new file mode 100644 index 00000000000000..b7b3990c15cbab --- /dev/null +++ b/3rdparty/cpuinfo/src/arm/windows/init-by-logical-sys-info.c @@ -0,0 +1,901 @@ +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "windows-arm-init.h" + +#define MAX_NR_OF_CACHES (cpuinfo_cache_level_max - 1) + +/* Call chain: + * cpu_info_init_by_logical_sys_info + * read_packages_for_processors + * read_cores_for_processors + * read_caches_for_processors + * read_all_logical_processor_info_of_relation + * parse_relation_processor_info + * store_package_info_per_processor + * store_core_info_per_processor + * parse_relation_cache_info + * store_cache_info_per_processor + */ + +static uint32_t count_logical_processors( + const uint32_t max_group_count, + uint32_t* global_proc_index_per_group); + +static uint32_t read_packages_for_processors( + struct cpuinfo_processor* processors, + const uint32_t number_of_processors, + const uint32_t* global_proc_index_per_group, + const struct woa_chip_info *chip_info); + +static uint32_t read_cores_for_processors( + struct cpuinfo_processor* processors, + const uint32_t number_of_processors, + const uint32_t* global_proc_index_per_group, + struct cpuinfo_core* cores, + const struct woa_chip_info *chip_info); + +static uint32_t read_caches_for_processors( + struct cpuinfo_processor *processors, + const uint32_t number_of_processors, + struct cpuinfo_cache *caches, + uint32_t* numbers_of_caches, + const uint32_t* global_proc_index_per_group, + const struct woa_chip_info *chip_info); + +static uint32_t read_all_logical_processor_info_of_relation( + LOGICAL_PROCESSOR_RELATIONSHIP info_type, + struct cpuinfo_processor* processors, + const uint32_t number_of_processors, + struct cpuinfo_cache* caches, + uint32_t* numbers_of_caches, + struct cpuinfo_core* cores, + const uint32_t* global_proc_index_per_group, + const struct woa_chip_info *chip_info); + +static bool parse_relation_processor_info( + struct cpuinfo_processor* processors, + uint32_t nr_of_processors, + const uint32_t* global_proc_index_per_group, + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info, + const uint32_t info_id, + struct cpuinfo_core* cores, + const struct woa_chip_info *chip_info); + +static bool parse_relation_cache_info( + struct cpuinfo_processor* processors, + struct cpuinfo_cache* caches, + uint32_t* numbers_of_caches, + const uint32_t* global_proc_index_per_group, + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info); + +static void store_package_info_per_processor( + struct cpuinfo_processor* processors, + const uint32_t processor_global_index, + const uint32_t package_id, + const uint32_t group_id, + const uint32_t processor_id_in_group); + +static void store_core_info_per_processor( + struct cpuinfo_processor* processors, + const uint32_t processor_global_index, + const uint32_t core_id, + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX core_info, + struct cpuinfo_core* cores, + const struct woa_chip_info *chip_info); + +static void store_cache_info_per_processor( + struct cpuinfo_processor* processors, + const uint32_t processor_global_index, + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info, + struct cpuinfo_cache* current_cache); + +static bool connect_packages_cores_clusters_by_processors( + struct cpuinfo_processor* processors, + const uint32_t nr_of_processors, + struct cpuinfo_package* packages, + const uint32_t nr_of_packages, + struct cpuinfo_cluster* clusters, + struct cpuinfo_core* cores, + const uint32_t nr_of_cores, + const struct woa_chip_info* chip_info, + enum cpuinfo_vendor vendor); + +static inline uint32_t low_index_from_kaffinity(KAFFINITY kaffinity); + + +bool cpu_info_init_by_logical_sys_info( + const struct woa_chip_info *chip_info, + const enum cpuinfo_vendor vendor) +{ + struct cpuinfo_processor* processors = NULL; + struct cpuinfo_package* packages = NULL; + struct cpuinfo_cluster* clusters = NULL; + struct cpuinfo_core* cores = NULL; + struct cpuinfo_cache* caches = NULL; + struct cpuinfo_uarch_info* uarchs = NULL; + + uint32_t nr_of_packages = 0; + uint32_t nr_of_cores = 0; + uint32_t nr_of_all_caches = 0; + uint32_t numbers_of_caches[MAX_NR_OF_CACHES] = {0}; + + uint32_t nr_of_uarchs = 0; + bool result = false; + + HANDLE heap = GetProcessHeap(); + + /* 1. Count available logical processor groups and processors */ + const uint32_t max_group_count = (uint32_t) GetMaximumProcessorGroupCount(); + cpuinfo_log_debug("detected %"PRIu32" processor group(s)", max_group_count); + /* We need to store the absolute processor ID offsets for every groups, because + * 1. We can't assume every processor groups include the same number of + * logical processors. + * 2. Every processor groups know its group number and processor IDs within + * the group, but not the global processor IDs. + * 3. We need to list every logical processors by global IDs. + */ + uint32_t* global_proc_index_per_group = + (uint32_t*) HeapAlloc(heap, 0, max_group_count * sizeof(uint32_t)); + if (global_proc_index_per_group == NULL) { + cpuinfo_log_error( + "failed to allocate %zu bytes for descriptions of %"PRIu32" processor groups", + max_group_count * sizeof(struct cpuinfo_processor), max_group_count); + goto clean_up; + } + + uint32_t nr_of_processors = + count_logical_processors(max_group_count, global_proc_index_per_group); + processors = HeapAlloc(heap, HEAP_ZERO_MEMORY, nr_of_processors * sizeof(struct cpuinfo_processor)); + if (processors == NULL) { + cpuinfo_log_error( + "failed to allocate %zu bytes for descriptions of %"PRIu32" logical processors", + nr_of_processors * sizeof(struct cpuinfo_processor), nr_of_processors); + goto clean_up; + } + + /* 2. Read topology information via MSDN API: packages, cores and caches*/ + nr_of_packages = read_packages_for_processors( + processors, nr_of_processors, + global_proc_index_per_group, + chip_info); + if (!nr_of_packages) { + cpuinfo_log_error("error in reading package information"); + goto clean_up; + } + cpuinfo_log_debug("detected %"PRIu32" processor package(s)", nr_of_packages); + + /* We need the EfficiencyClass to parse uarch from the core information, + * but we need to iterate first to count cores and allocate memory then + * we will iterate again to read and store data to cpuinfo_core structures. + */ + nr_of_cores = read_cores_for_processors( + processors, nr_of_processors, + global_proc_index_per_group, NULL, + chip_info); + if (!nr_of_cores) { + cpuinfo_log_error("error in reading core information"); + goto clean_up; + } + cpuinfo_log_debug("detected %"PRIu32" processor core(s)", nr_of_cores); + + /* There is no API to read number of caches, so we need to iterate twice on caches: + 1. Count all type of caches -> allocate memory + 2. Read out cache data and store to allocated memory + */ + nr_of_all_caches = read_caches_for_processors( + processors, nr_of_processors, + caches, numbers_of_caches, + global_proc_index_per_group, chip_info); + if (!nr_of_all_caches) { + cpuinfo_log_error("error in reading cache information"); + goto clean_up; + } + cpuinfo_log_debug("detected %"PRIu32" processor cache(s)", nr_of_all_caches); + + /* 3. Allocate memory for package, cluster, core and cache structures */ + packages = HeapAlloc(heap, HEAP_ZERO_MEMORY, nr_of_packages * sizeof(struct cpuinfo_package)); + if (packages == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for descriptions of %"PRIu32" physical packages", + nr_of_packages * sizeof(struct cpuinfo_package), nr_of_packages); + goto clean_up; + } + + /* We don't have cluster information so we explicitly set clusters to equal to cores. */ + clusters = HeapAlloc(heap, HEAP_ZERO_MEMORY, nr_of_cores * sizeof(struct cpuinfo_cluster)); + if (clusters == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for descriptions of %"PRIu32" core clusters", + nr_of_cores * sizeof(struct cpuinfo_cluster), nr_of_cores); + goto clean_up; + } + + cores = HeapAlloc(heap, HEAP_ZERO_MEMORY, nr_of_cores * sizeof(struct cpuinfo_core)); + if (cores == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for descriptions of %"PRIu32" cores", + nr_of_cores * sizeof(struct cpuinfo_core), nr_of_cores); + goto clean_up; + } + + /* We allocate one contiguous cache array for all caches, then use offsets per cache type. */ + caches = HeapAlloc(heap, HEAP_ZERO_MEMORY, nr_of_all_caches * sizeof(struct cpuinfo_cache)); + if (caches == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for descriptions of %"PRIu32" caches", + nr_of_all_caches * sizeof(struct cpuinfo_cache), nr_of_all_caches); + goto clean_up; + } + + /* 4.Read missing topology information that can't be saved without counted + * allocate structures in the first round. + */ + nr_of_all_caches = read_caches_for_processors( + processors, nr_of_processors, + caches, numbers_of_caches, global_proc_index_per_group, chip_info); + if (!nr_of_all_caches) { + cpuinfo_log_error("error in reading cache information"); + goto clean_up; + } + + nr_of_cores = read_cores_for_processors( + processors, nr_of_processors, + global_proc_index_per_group, cores, + chip_info); + if (!nr_of_cores) { + cpuinfo_log_error("error in reading core information"); + goto clean_up; + } + + /* 5. Now that we read out everything from the system we can, fill the package, cluster + * and core structures respectively. + */ + result = connect_packages_cores_clusters_by_processors( + processors, nr_of_processors, + packages, nr_of_packages, + clusters, + cores, nr_of_cores, + chip_info, + vendor); + if(!result) { + cpuinfo_log_error("error in connecting information"); + goto clean_up; + } + + /* 6. Count and store uarchs of cores, assuming same uarchs are neighbors */ + enum cpuinfo_uarch prev_uarch = cpuinfo_uarch_unknown; + for (uint32_t i = 0; i < nr_of_cores; i++) { + if (prev_uarch != cores[i].uarch) { + nr_of_uarchs++; + prev_uarch = cores[i].uarch; + } + } + uarchs = HeapAlloc(heap, HEAP_ZERO_MEMORY, nr_of_uarchs * sizeof(struct cpuinfo_uarch_info)); + if (uarchs == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for descriptions of %"PRIu32" uarchs", + nr_of_uarchs * sizeof(struct cpuinfo_uarch_info), nr_of_uarchs); + goto clean_up; + } + prev_uarch = cpuinfo_uarch_unknown; + for (uint32_t i = 0, uarch_index = 0; i < nr_of_cores; i++) { + if (prev_uarch != cores[i].uarch) { + if (i != 0) { + uarch_index++; + } + if (uarch_index >= nr_of_uarchs) { + cpuinfo_log_error("more uarchs detected than reported"); + } + prev_uarch = cores[i].uarch; + uarchs[uarch_index].uarch = cores[i].uarch; + uarchs[uarch_index].core_count = 1; + uarchs[uarch_index].processor_count = cores[i].processor_count; + } else if (prev_uarch != cpuinfo_uarch_unknown) { + uarchs[uarch_index].core_count++; + uarchs[uarch_index].processor_count += cores[i].processor_count; + } + } + + /* 7. Commit changes */ + cpuinfo_processors = processors; + cpuinfo_packages = packages; + cpuinfo_clusters = clusters; + cpuinfo_cores = cores; + cpuinfo_uarchs = uarchs; + + cpuinfo_processors_count = nr_of_processors; + cpuinfo_packages_count = nr_of_packages; + cpuinfo_clusters_count = nr_of_cores; + cpuinfo_cores_count = nr_of_cores; + cpuinfo_uarchs_count = nr_of_uarchs; + + for (uint32_t i = 0; i < MAX_NR_OF_CACHES; i++) { + cpuinfo_cache_count[i] = numbers_of_caches[i]; + } + cpuinfo_cache[cpuinfo_cache_level_1i] = caches; + cpuinfo_cache[cpuinfo_cache_level_1d] = cpuinfo_cache[cpuinfo_cache_level_1i] + cpuinfo_cache_count[cpuinfo_cache_level_1i]; + cpuinfo_cache[cpuinfo_cache_level_2] = cpuinfo_cache[cpuinfo_cache_level_1d] + cpuinfo_cache_count[cpuinfo_cache_level_1d]; + cpuinfo_cache[cpuinfo_cache_level_3] = cpuinfo_cache[cpuinfo_cache_level_2] + cpuinfo_cache_count[cpuinfo_cache_level_2]; + cpuinfo_cache[cpuinfo_cache_level_4] = cpuinfo_cache[cpuinfo_cache_level_3] + cpuinfo_cache_count[cpuinfo_cache_level_3]; + cpuinfo_max_cache_size = cpuinfo_compute_max_cache_size(&processors[0]); + + result = true; + MemoryBarrier(); + + processors = NULL; + packages = NULL; + clusters = NULL; + cores = NULL; + caches = NULL; + uarchs = NULL; + +clean_up: + /* The propagated pointers, shouldn't be freed, only in case of error + * and unfinished init. + */ + if (processors != NULL) { + HeapFree(heap, 0, processors); + } + if (packages != NULL) { + HeapFree(heap, 0, packages); + } + if (clusters != NULL) { + HeapFree(heap, 0, clusters); + } + if (cores != NULL) { + HeapFree(heap, 0, cores); + } + if (caches != NULL) { + HeapFree(heap, 0, caches); + } + if (uarchs != NULL) { + HeapFree(heap, 0, uarchs); + } + + /* Free the locally used temporary pointers */ + HeapFree(heap, 0, global_proc_index_per_group); + global_proc_index_per_group = NULL; + return result; +} + +static uint32_t count_logical_processors( + const uint32_t max_group_count, + uint32_t* global_proc_index_per_group) +{ + uint32_t nr_of_processors = 0; + + for (uint32_t i = 0; i < max_group_count; i++) { + uint32_t nr_of_processors_per_group = GetMaximumProcessorCount((WORD) i); + cpuinfo_log_debug("detected %"PRIu32" processor(s) in group %"PRIu32"", + nr_of_processors_per_group, i); + global_proc_index_per_group[i] = nr_of_processors; + nr_of_processors += nr_of_processors_per_group; + } + return nr_of_processors; +} + +static uint32_t read_packages_for_processors( + struct cpuinfo_processor* processors, + const uint32_t number_of_processors, + const uint32_t* global_proc_index_per_group, + const struct woa_chip_info *chip_info) +{ + return read_all_logical_processor_info_of_relation( + RelationProcessorPackage, + processors, + number_of_processors, + NULL, + NULL, + NULL, + global_proc_index_per_group, + chip_info); +} + +uint32_t read_cores_for_processors( + struct cpuinfo_processor* processors, + const uint32_t number_of_processors, + const uint32_t* global_proc_index_per_group, + struct cpuinfo_core* cores, + const struct woa_chip_info *chip_info) +{ + return read_all_logical_processor_info_of_relation( + RelationProcessorCore, + processors, + number_of_processors, + NULL, + NULL, + cores, + global_proc_index_per_group, + chip_info); +} + +static uint32_t read_caches_for_processors( + struct cpuinfo_processor* processors, + const uint32_t number_of_processors, + struct cpuinfo_cache* caches, + uint32_t* numbers_of_caches, + const uint32_t* global_proc_index_per_group, + const struct woa_chip_info *chip_info) +{ + /* Reset processor start indexes */ + if (caches) { + uint32_t cache_offset = 0; + for (uint32_t i = 0; i < MAX_NR_OF_CACHES; i++) { + for (uint32_t j = 0; j < numbers_of_caches[i]; j++) { + caches[cache_offset + j].processor_start = UINT32_MAX; + } + cache_offset += numbers_of_caches[i]; + } + } + + return read_all_logical_processor_info_of_relation( + RelationCache, + processors, + number_of_processors, + caches, + numbers_of_caches, + NULL, + global_proc_index_per_group, + chip_info); +} + +static uint32_t read_all_logical_processor_info_of_relation( + LOGICAL_PROCESSOR_RELATIONSHIP info_type, + struct cpuinfo_processor* processors, + const uint32_t number_of_processors, + struct cpuinfo_cache* caches, + uint32_t* numbers_of_caches, + struct cpuinfo_core* cores, + const uint32_t* global_proc_index_per_group, + const struct woa_chip_info* chip_info) +{ + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX infos = NULL; + uint32_t nr_of_structs = 0; + DWORD info_size = 0; + bool result = false; + HANDLE heap = GetProcessHeap(); + + /* 1. Query the size of the information structure first */ + if (GetLogicalProcessorInformationEx(info_type, NULL, &info_size) == FALSE) { + const DWORD last_error = GetLastError(); + if (last_error != ERROR_INSUFFICIENT_BUFFER) { + cpuinfo_log_error( + "failed to query size of processor %"PRIu32" information information: error %"PRIu32"", + (uint32_t)info_type, (uint32_t) last_error); + goto clean_up; + } + } + /* 2. Allocate memory for the information structure */ + infos = HeapAlloc(heap, 0, info_size); + if (infos == NULL) { + cpuinfo_log_error("failed to allocate %"PRIu32" bytes for logical processor information", + (uint32_t) info_size); + goto clean_up; + } + /* 3. Read the information structure */ + if (GetLogicalProcessorInformationEx(info_type, infos, &info_size) == FALSE) { + cpuinfo_log_error("failed to query processor %"PRIu32" information: error %"PRIu32"", + (uint32_t)info_type, (uint32_t) GetLastError()); + goto clean_up; + } + + /* 4. Parse the structure and store relevant data */ + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info_end = + (PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX) ((uintptr_t) infos + info_size); + for (PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info = infos; + info < info_end; + info = (PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX) ((uintptr_t) info + info->Size)) + { + if (info->Relationship != info_type) { + cpuinfo_log_warning( + "unexpected processor info type (%"PRIu32") for processor information", + (uint32_t) info->Relationship); + continue; + } + + const uint32_t info_id = nr_of_structs++; + + switch(info_type) { + case RelationProcessorPackage: + result = parse_relation_processor_info( + processors, + number_of_processors, + global_proc_index_per_group, + info, + info_id, + cores, + chip_info); + break; + case RelationProcessorCore: + result = parse_relation_processor_info( + processors, + number_of_processors, + global_proc_index_per_group, + info, + info_id, + cores, + chip_info); + break; + case RelationCache: + result = parse_relation_cache_info( + processors, + caches, + numbers_of_caches, + global_proc_index_per_group, + info); + break; + default: + cpuinfo_log_error( + "unexpected processor info type (%"PRIu32") for processor information", + (uint32_t) info->Relationship); + result = false; + break; + } + if (!result) { + nr_of_structs = 0; + goto clean_up; + } + } +clean_up: + /* 5. Release dynamically allocated info structure. */ + HeapFree(heap, 0, infos); + infos = NULL; + return nr_of_structs; +} + +static bool parse_relation_processor_info( + struct cpuinfo_processor* processors, + uint32_t nr_of_processors, + const uint32_t* global_proc_index_per_group, + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info, + const uint32_t info_id, + struct cpuinfo_core* cores, + const struct woa_chip_info *chip_info) +{ + for (uint32_t i = 0; i < info->Processor.GroupCount; i++) { + const uint32_t group_id = info->Processor.GroupMask[i].Group; + /* Bitmask representing processors in this group belonging to this package */ + KAFFINITY group_processors_mask = info->Processor.GroupMask[i].Mask; + while (group_processors_mask != 0) { + const uint32_t processor_id_in_group = + low_index_from_kaffinity(group_processors_mask); + const uint32_t processor_global_index = + global_proc_index_per_group[group_id] + processor_id_in_group; + + if(processor_global_index >= nr_of_processors) { + cpuinfo_log_error("unexpected processor index %"PRIu32"", + processor_global_index); + return false; + } + + switch(info->Relationship) { + case RelationProcessorPackage: + store_package_info_per_processor( + processors, processor_global_index, info_id, + group_id, processor_id_in_group); + break; + case RelationProcessorCore: + store_core_info_per_processor( + processors, processor_global_index, + info_id, info, + cores, chip_info); + break; + default: + cpuinfo_log_error( + "unexpected processor info type (%"PRIu32") for processor information", + (uint32_t) info->Relationship); + break; + } + /* Clear the bits in affinity mask, lower the least set bit. */ + group_processors_mask &= (group_processors_mask - 1); + } + } + return true; +} + +static bool parse_relation_cache_info( + struct cpuinfo_processor* processors, + struct cpuinfo_cache* caches, + uint32_t* numbers_of_caches, + const uint32_t* global_proc_index_per_group, + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info) +{ + static uint32_t l1i_counter = 0; + static uint32_t l1d_counter = 0; + static uint32_t l2_counter = 0; + static uint32_t l3_counter = 0; + + /* Count cache types for allocation at first. */ + if (caches == NULL) { + switch(info->Cache.Level) { + case 1: + switch (info->Cache.Type) { + case CacheInstruction: + numbers_of_caches[cpuinfo_cache_level_1i]++; + break; + case CacheData: + numbers_of_caches[cpuinfo_cache_level_1d]++; + break; + case CacheUnified: + break; + case CacheTrace: + break; + default: + break; + } + break; + case 2: + numbers_of_caches[cpuinfo_cache_level_2]++; + break; + case 3: + numbers_of_caches[cpuinfo_cache_level_3]++; + break; + } + return true; + } + struct cpuinfo_cache* l1i_base = caches; + struct cpuinfo_cache* l1d_base = l1i_base + numbers_of_caches[cpuinfo_cache_level_1i]; + struct cpuinfo_cache* l2_base = l1d_base + numbers_of_caches[cpuinfo_cache_level_1d]; + struct cpuinfo_cache* l3_base = l2_base + numbers_of_caches[cpuinfo_cache_level_2]; + + cpuinfo_log_debug( + "info->Cache.GroupCount:%"PRIu32", info->Cache.GroupMask:%"PRIu32"," + "info->Cache.Level:%"PRIu32", info->Cache.Associativity:%"PRIu32"," + "info->Cache.LineSize:%"PRIu32"," + "info->Cache.CacheSize:%"PRIu32", info->Cache.Type:%"PRIu32"", + info->Cache.GroupCount, (unsigned int)info->Cache.GroupMask.Mask, + info->Cache.Level, info->Cache.Associativity, info->Cache.LineSize, + info->Cache.CacheSize, info->Cache.Type); + + struct cpuinfo_cache* current_cache = NULL; + switch (info->Cache.Level) { + case 1: + switch (info->Cache.Type) { + case CacheInstruction: + current_cache = l1i_base + l1i_counter; + l1i_counter++; + break; + case CacheData: + current_cache = l1d_base + l1d_counter; + l1d_counter++; + break; + case CacheUnified: + break; + case CacheTrace: + break; + default: + break; + } + break; + case 2: + current_cache = l2_base + l2_counter; + l2_counter++; + break; + case 3: + current_cache = l3_base + l3_counter; + l3_counter++; + break; + } + current_cache->size = info->Cache.CacheSize; + current_cache->line_size = info->Cache.LineSize; + current_cache->associativity = info->Cache.Associativity; + /* We don't have partition and set information of caches on Windows, + * so we set partitions to 1 and calculate the expected sets. + */ + current_cache->partitions = 1; + current_cache->sets = + current_cache->size / current_cache->line_size / current_cache->associativity; + if (info->Cache.Type == CacheUnified) { + current_cache->flags = CPUINFO_CACHE_UNIFIED; + } + + for (uint32_t i = 0; i < info->Cache.GroupCount; i++) { + /* Zero GroupCount is valid, GroupMask still can store bits set. */ + const uint32_t group_id = info->Cache.GroupMasks[i].Group; + /* Bitmask representing processors in this group belonging to this package */ + KAFFINITY group_processors_mask = info->Cache.GroupMasks[i].Mask; + while (group_processors_mask != 0) { + const uint32_t processor_id_in_group = + low_index_from_kaffinity(group_processors_mask); + const uint32_t processor_global_index = + global_proc_index_per_group[group_id] + processor_id_in_group; + + store_cache_info_per_processor( + processors, processor_global_index, + info, current_cache); + + /* Clear the bits in affinity mask, lower the least set bit. */ + group_processors_mask &= (group_processors_mask - 1); + } + } + return true; +} + +static void store_package_info_per_processor( + struct cpuinfo_processor* processors, + const uint32_t processor_global_index, + const uint32_t package_id, + const uint32_t group_id, + const uint32_t processor_id_in_group) +{ + processors[processor_global_index].windows_group_id = + (uint16_t) group_id; + processors[processor_global_index].windows_processor_id = + (uint16_t) processor_id_in_group; + + /* As we're counting the number of packages now, we haven't allocated memory for + * cpuinfo_packages yet, so we only set the package pointer's offset now. + */ + processors[processor_global_index].package = + (const struct cpuinfo_package*) NULL + package_id; +} + +void store_core_info_per_processor( + struct cpuinfo_processor* processors, + const uint32_t processor_global_index, + const uint32_t core_id, + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX core_info, + struct cpuinfo_core* cores, + const struct woa_chip_info *chip_info) +{ + if (cores) { + processors[processor_global_index].core = cores + core_id; + cores[core_id].core_id = core_id; + get_core_uarch_for_efficiency( + chip_info->chip_name, core_info->Processor.EfficiencyClass, + &(cores[core_id].uarch), &(cores[core_id].frequency)); + + /* We don't have cluster information, so we handle it as + * fixed 1 to (cluster / cores). + * Set the cluster offset ID now, as soon as we have the + * cluster base address, we'll set the absolute address. + */ + processors[processor_global_index].cluster = + (const struct cpuinfo_cluster*) NULL + core_id; + } +} + +static void store_cache_info_per_processor( + struct cpuinfo_processor* processors, + const uint32_t processor_global_index, + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info, + struct cpuinfo_cache* current_cache) +{ + if (current_cache->processor_start > processor_global_index) { + current_cache->processor_start = processor_global_index; + } + current_cache->processor_count++; + + switch(info->Cache.Level) { + case 1: + switch (info->Cache.Type) { + case CacheInstruction: + processors[processor_global_index].cache.l1i = current_cache; + break; + case CacheData: + processors[processor_global_index].cache.l1d = current_cache; + break; + case CacheUnified: + break; + case CacheTrace: + break; + default: + break; + } + break; + case 2: + processors[processor_global_index].cache.l2 = current_cache; + break; + case 3: + processors[processor_global_index].cache.l3 = current_cache; + break; + } +} + +static bool connect_packages_cores_clusters_by_processors( + struct cpuinfo_processor* processors, + const uint32_t nr_of_processors, + struct cpuinfo_package* packages, + const uint32_t nr_of_packages, + struct cpuinfo_cluster* clusters, + struct cpuinfo_core* cores, + const uint32_t nr_of_cores, + const struct woa_chip_info* chip_info, + enum cpuinfo_vendor vendor) +{ + /* Adjust core and package pointers for all logical processors. */ + for (uint32_t i = nr_of_processors; i != 0; i--) { + const uint32_t processor_id = i - 1; + struct cpuinfo_processor* processor = processors + processor_id; + + struct cpuinfo_core* core = (struct cpuinfo_core*)processor->core; + + /* We stored the offset of pointers when we haven't allocated memory + * for packages and clusters, so now add offsets to base addresses. + */ + struct cpuinfo_package* package = + (struct cpuinfo_package*) ((uintptr_t) packages + (uintptr_t) processor->package); + if (package < packages || + package >= (packages + nr_of_packages)) { + cpuinfo_log_error("invalid package indexing"); + return false; + } + processor->package = package; + + struct cpuinfo_cluster* cluster = + (struct cpuinfo_cluster*) ((uintptr_t) clusters + (uintptr_t) processor->cluster); + if (cluster < clusters || + cluster >= (clusters + nr_of_cores)) { + cpuinfo_log_error("invalid cluster indexing"); + return false; + } + processor->cluster = cluster; + + if (chip_info) { + size_t converted_chars = 0; + if (!WideCharToMultiByte( + CP_UTF8, + WC_ERR_INVALID_CHARS, + chip_info->chip_name_string, + -1, + package->name, + CPUINFO_PACKAGE_NAME_MAX, + NULL, + NULL)) { + cpuinfo_log_error("cpu name character conversion error"); + return false; + }; + } + + /* Set start indexes and counts per packages / clusters / cores - going backwards */ + + /* This can be overwritten by lower-index processors on the same package. */ + package->processor_start = processor_id; + package->processor_count++; + + /* This can be overwritten by lower-index processors on the same cluster. */ + cluster->processor_start = processor_id; + cluster->processor_count++; + + /* This can be overwritten by lower-index processors on the same core. */ + core->processor_start = processor_id; + core->processor_count++; + } + /* Fill cores */ + for (uint32_t i = nr_of_cores; i != 0; i--) { + const uint32_t global_core_id = i - 1; + struct cpuinfo_core* core = cores + global_core_id; + const struct cpuinfo_processor* processor = processors + core->processor_start; + struct cpuinfo_package* package = (struct cpuinfo_package*) processor->package; + struct cpuinfo_cluster* cluster = (struct cpuinfo_cluster*) processor->cluster; + + core->package = package; + core->cluster = cluster; + core->vendor = vendor; + + /* This can be overwritten by lower-index cores on the same cluster/package. */ + cluster->core_start = global_core_id; + cluster->core_count++; + package->core_start = global_core_id; + package->core_count++; + package->cluster_start = global_core_id; + package->cluster_count = package->core_count; + + cluster->package = package; + cluster->vendor = cores[cluster->core_start].vendor; + cluster->uarch = cores[cluster->core_start].uarch; + cluster->frequency = cores[cluster->core_start].frequency; + } + return true; +} + +static inline uint32_t low_index_from_kaffinity(KAFFINITY kaffinity) { + unsigned long index; + _BitScanForward64(&index, (unsigned __int64) kaffinity); + return (uint32_t) index; +} diff --git a/3rdparty/cpuinfo/src/arm/windows/init.c b/3rdparty/cpuinfo/src/arm/windows/init.c new file mode 100644 index 00000000000000..cff89196bf6f14 --- /dev/null +++ b/3rdparty/cpuinfo/src/arm/windows/init.c @@ -0,0 +1,243 @@ +#include +#include +#include +#include + +#include +#include +#include + +#include "windows-arm-init.h" + +struct cpuinfo_arm_isa cpuinfo_isa; + +static void set_cpuinfo_isa_fields(void); +static struct woa_chip_info* get_system_info_from_registry(void); + +static struct woa_chip_info woa_chip_unknown = { + L"Unknown", + woa_chip_name_unknown, + { + { + cpuinfo_vendor_unknown, + cpuinfo_uarch_unknown, + 0 + } + } +}; + +/* Please add new SoC/chip info here! */ +static struct woa_chip_info woa_chips[] = { + /* Microsoft SQ1 Kryo 495 4 + 4 cores (3 GHz + 1.80 GHz) */ + { + L"Microsoft SQ1", + woa_chip_name_microsoft_sq_1, + { + { + cpuinfo_vendor_arm, + cpuinfo_uarch_cortex_a55, + 1800000000, + }, + { + cpuinfo_vendor_arm, + cpuinfo_uarch_cortex_a76, + 3000000000, + } + } + }, + /* Microsoft SQ2 Kryo 495 4 + 4 cores (3.15 GHz + 2.42 GHz) */ + { + L"Microsoft SQ2", + woa_chip_name_microsoft_sq_2, + { + { + cpuinfo_vendor_arm, + cpuinfo_uarch_cortex_a55, + 2420000000, + }, + { + cpuinfo_vendor_arm, + cpuinfo_uarch_cortex_a76, + 3150000000 + } + } + }, + /* Microsoft Windows Dev Kit 2023 */ + { + L"Snapdragon Compute Platform", + woa_chip_name_microsoft_sq_3, + { + { + cpuinfo_vendor_arm, + cpuinfo_uarch_cortex_a78, + 2420000000, + }, + { + cpuinfo_vendor_arm, + cpuinfo_uarch_cortex_x1, + 3000000000 + } + } + }, + /* Ampere Altra */ + { + L"Ampere(R) Altra(R) Processor", + woa_chip_name_ampere_altra, + { + { + cpuinfo_vendor_arm, + cpuinfo_uarch_neoverse_n1, + 3000000000 + } + } + } +}; + +BOOL CALLBACK cpuinfo_arm_windows_init( + PINIT_ONCE init_once, PVOID parameter, PVOID* context) +{ + struct woa_chip_info *chip_info = NULL; + enum cpuinfo_vendor vendor = cpuinfo_vendor_unknown; + + set_cpuinfo_isa_fields(); + + chip_info = get_system_info_from_registry(); + if (chip_info == NULL) { + chip_info = &woa_chip_unknown; + } + + cpuinfo_is_initialized = cpu_info_init_by_logical_sys_info(chip_info, chip_info->uarchs[0].vendor); + + return true; +} + +bool get_core_uarch_for_efficiency( + enum woa_chip_name chip, BYTE EfficiencyClass, + enum cpuinfo_uarch* uarch, uint64_t* frequency) +{ + /* For currently supported WoA chips, the Efficiency class selects + * the pre-defined little and big core. + * Any further supported SoC's logic should be implemented here. + */ + if (uarch && frequency && chip < woa_chip_name_last && + EfficiencyClass < MAX_WOA_VALID_EFFICIENCY_CLASSES) { + *uarch = woa_chips[chip].uarchs[EfficiencyClass].uarch; + *frequency = woa_chips[chip].uarchs[EfficiencyClass].frequency; + return true; + } + return false; +} + +/* Static helper functions */ + +static wchar_t* read_registry( + LPCWSTR subkey, + LPCWSTR value) +{ + DWORD key_type = 0; + DWORD data_size = 0; + const DWORD flags = RRF_RT_REG_SZ; /* Only read strings (REG_SZ) */ + wchar_t *text_buffer = NULL; + LSTATUS result = 0; + HANDLE heap = GetProcessHeap(); + + result = RegGetValueW( + HKEY_LOCAL_MACHINE, + subkey, + value, + flags, + &key_type, + NULL, /* Request buffer size */ + &data_size); + if (result != 0 || data_size == 0) { + cpuinfo_log_error("Registry entry size read error"); + return NULL; + } + + text_buffer = HeapAlloc(heap, HEAP_ZERO_MEMORY, data_size); + if (text_buffer == NULL) { + cpuinfo_log_error("Registry textbuffer allocation error"); + return NULL; + } + + result = RegGetValueW( + HKEY_LOCAL_MACHINE, + subkey, + value, + flags, + NULL, + text_buffer, /* Write string in this destination buffer */ + &data_size); + if (result != 0) { + cpuinfo_log_error("Registry read error"); + HeapFree(heap, 0, text_buffer); + return NULL; + } + return text_buffer; +} + +static struct woa_chip_info* get_system_info_from_registry(void) +{ + wchar_t* text_buffer = NULL; + LPCWSTR cpu0_subkey = L"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"; + LPCWSTR chip_name_value = L"ProcessorNameString"; + struct woa_chip_info* chip_info = NULL; + + HANDLE heap = GetProcessHeap(); + + /* Read processor model name from registry and find in the hard-coded list. */ + text_buffer = read_registry(cpu0_subkey, chip_name_value); + if (text_buffer == NULL) { + cpuinfo_log_error("Registry read error"); + return NULL; + } + for (uint32_t i = 0; i < (uint32_t) woa_chip_name_last; i++) { + size_t compare_length = wcsnlen(woa_chips[i].chip_name_string, CPUINFO_PACKAGE_NAME_MAX); + int compare_result = wcsncmp(text_buffer, woa_chips[i].chip_name_string, compare_length); + if (compare_result == 0) { + chip_info = woa_chips+i; + break; + } + } + if (chip_info == NULL) { + /* No match was found, so print a warning and assign the unknown case. */ + cpuinfo_log_error("Unknown chip model name '%ls'.\nPlease add new Windows on Arm SoC/chip support to arm/windows/init.c!", text_buffer); + } else { + cpuinfo_log_debug("detected chip model name: %s", chip_info->chip_name_string); + } + + HeapFree(heap, 0, text_buffer); + return chip_info; +} + +static void set_cpuinfo_isa_fields(void) +{ + cpuinfo_isa.atomics = IsProcessorFeaturePresent(PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE) != 0; + + const bool dotprod = IsProcessorFeaturePresent(PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE) != 0; + cpuinfo_isa.dot = dotprod; + + SYSTEM_INFO system_info; + GetSystemInfo(&system_info); + switch (system_info.wProcessorLevel) { + case 0x803: // Kryo 385 Silver (Snapdragon 850) + cpuinfo_isa.fp16arith = dotprod; + cpuinfo_isa.rdm = dotprod; + break; + default: + // Assume that Dot Product support implies FP16 arithmetics and RDM support. + // ARM manuals don't guarantee that, but it holds in practice. + cpuinfo_isa.fp16arith = dotprod; + cpuinfo_isa.rdm = dotprod; + break; + } + + /* Windows API reports all or nothing for cryptographic instructions. */ + const bool crypto = IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) != 0; + cpuinfo_isa.aes = crypto; + cpuinfo_isa.sha1 = crypto; + cpuinfo_isa.sha2 = crypto; + cpuinfo_isa.pmull = crypto; + + cpuinfo_isa.crc32 = IsProcessorFeaturePresent(PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE) != 0; +} diff --git a/3rdparty/cpuinfo/src/arm/windows/windows-arm-init.h b/3rdparty/cpuinfo/src/arm/windows/windows-arm-init.h new file mode 100644 index 00000000000000..e327431bd9aca8 --- /dev/null +++ b/3rdparty/cpuinfo/src/arm/windows/windows-arm-init.h @@ -0,0 +1,38 @@ +#pragma once + +/* Efficiency class = 0 means little core, while 1 means big core for now. */ +#define MAX_WOA_VALID_EFFICIENCY_CLASSES 2 + +/* List of known and supported Windows on Arm SoCs/chips. */ +enum woa_chip_name { + woa_chip_name_microsoft_sq_1 = 0, + woa_chip_name_microsoft_sq_2 = 1, + woa_chip_name_microsoft_sq_3 = 2, + woa_chip_name_ampere_altra = 3, + woa_chip_name_unknown = 4, + woa_chip_name_last = woa_chip_name_unknown +}; + +/* Topology information hard-coded by SoC/chip name */ +struct core_info_by_chip_name { + enum cpuinfo_vendor vendor; + enum cpuinfo_uarch uarch; + uint64_t frequency; /* Hz */ +}; + +/* SoC/chip info that's currently not readable by logical system information, + * but can be read from registry. + */ +struct woa_chip_info { + wchar_t* chip_name_string; + enum woa_chip_name chip_name; + struct core_info_by_chip_name uarchs[MAX_WOA_VALID_EFFICIENCY_CLASSES]; +}; + +bool get_core_uarch_for_efficiency( + enum woa_chip_name chip, BYTE EfficiencyClass, + enum cpuinfo_uarch* uarch, uint64_t* frequency); + +bool cpu_info_init_by_logical_sys_info( + const struct woa_chip_info *chip_info, + enum cpuinfo_vendor vendor); diff --git a/3rdparty/cpuinfo/src/cpuinfo/internal-api.h b/3rdparty/cpuinfo/src/cpuinfo/internal-api.h index 9c23d7c8b73b8d..69a9ec984deb53 100644 --- a/3rdparty/cpuinfo/src/cpuinfo/internal-api.h +++ b/3rdparty/cpuinfo/src/cpuinfo/internal-api.h @@ -35,7 +35,7 @@ extern CPUINFO_INTERNAL uint32_t cpuinfo_packages_count; extern CPUINFO_INTERNAL uint32_t cpuinfo_cache_count[cpuinfo_cache_level_max]; extern CPUINFO_INTERNAL uint32_t cpuinfo_max_cache_size; -#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 +#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64 || CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 extern CPUINFO_INTERNAL struct cpuinfo_uarch_info* cpuinfo_uarchs; extern CPUINFO_INTERNAL uint32_t cpuinfo_uarchs_count; #else @@ -51,10 +51,15 @@ extern CPUINFO_INTERNAL uint32_t cpuinfo_max_cache_size; CPUINFO_PRIVATE void cpuinfo_x86_mach_init(void); CPUINFO_PRIVATE void cpuinfo_x86_linux_init(void); #if defined(_WIN32) || defined(__CYGWIN__) - CPUINFO_PRIVATE BOOL CALLBACK cpuinfo_x86_windows_init(PINIT_ONCE init_once, PVOID parameter, PVOID* context); + #if CPUINFO_ARCH_ARM64 + CPUINFO_PRIVATE BOOL CALLBACK cpuinfo_arm_windows_init(PINIT_ONCE init_once, PVOID parameter, PVOID* context); + #else + CPUINFO_PRIVATE BOOL CALLBACK cpuinfo_x86_windows_init(PINIT_ONCE init_once, PVOID parameter, PVOID* context); + #endif #endif CPUINFO_PRIVATE void cpuinfo_arm_mach_init(void); CPUINFO_PRIVATE void cpuinfo_arm_linux_init(void); +CPUINFO_PRIVATE void cpuinfo_riscv_linux_init(void); CPUINFO_PRIVATE void cpuinfo_emscripten_init(void); CPUINFO_PRIVATE uint32_t cpuinfo_compute_max_cache_size(const struct cpuinfo_processor* processor); diff --git a/3rdparty/cpuinfo/src/cpuinfo/log.h b/3rdparty/cpuinfo/src/cpuinfo/log.h index dac8cdb663dc22..5bd43055658f08 100644 --- a/3rdparty/cpuinfo/src/cpuinfo/log.h +++ b/3rdparty/cpuinfo/src/cpuinfo/log.h @@ -1,17 +1,103 @@ #pragma once #include +#include +#include -#include +#ifndef CPUINFO_LOG_LEVEL + #error "Undefined CPUINFO_LOG_LEVEL" +#endif -#define CPUINFO_LOG_DEBUG_PARSERS 0 +#define CPUINFO_LOG_NONE 0 +#define CPUINFO_LOG_FATAL 1 +#define CPUINFO_LOG_ERROR 2 +#define CPUINFO_LOG_WARNING 3 +#define CPUINFO_LOG_INFO 4 +#define CPUINFO_LOG_DEBUG 5 -#ifndef CPUINFO_LOG_LEVEL - #define CPUINFO_LOG_LEVEL CLOG_ERROR +#ifndef CPUINFO_LOG_DEBUG_PARSERS + #define CPUINFO_LOG_DEBUG_PARSERS 0 +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +#if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_DEBUG + void cpuinfo_vlog_debug(const char* format, va_list args); +#endif + +#if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_INFO + void cpuinfo_vlog_info(const char* format, va_list args); +#endif + +#if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_WARNING + void cpuinfo_vlog_warning(const char* format, va_list args); #endif -CLOG_DEFINE_LOG_DEBUG(cpuinfo_log_debug, "cpuinfo", CPUINFO_LOG_LEVEL); -CLOG_DEFINE_LOG_INFO(cpuinfo_log_info, "cpuinfo", CPUINFO_LOG_LEVEL); -CLOG_DEFINE_LOG_WARNING(cpuinfo_log_warning, "cpuinfo", CPUINFO_LOG_LEVEL); -CLOG_DEFINE_LOG_ERROR(cpuinfo_log_error, "cpuinfo", CPUINFO_LOG_LEVEL); -CLOG_DEFINE_LOG_FATAL(cpuinfo_log_fatal, "cpuinfo", CPUINFO_LOG_LEVEL); +#if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_ERROR + void cpuinfo_vlog_error(const char* format, va_list args); +#endif + +#if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_FATAL + void cpuinfo_vlog_fatal(const char* format, va_list args); +#endif + +#ifdef __cplusplus +} // extern "C" +#endif + +#ifndef CPUINFO_LOG_ARGUMENTS_FORMAT + #ifdef __GNUC__ + #define CPUINFO_LOG_ARGUMENTS_FORMAT __attribute__((__format__(__printf__, 1, 2))) + #else + #define CPUINFO_LOG_ARGUMENTS_FORMAT + #endif +#endif + +CPUINFO_LOG_ARGUMENTS_FORMAT inline static void cpuinfo_log_debug(const char* format, ...) { + #if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_DEBUG + va_list args; + va_start(args, format); + cpuinfo_vlog_debug(format, args); + va_end(args); + #endif +} + +CPUINFO_LOG_ARGUMENTS_FORMAT inline static void cpuinfo_log_info(const char* format, ...) { + #if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_INFO + va_list args; + va_start(args, format); + cpuinfo_vlog_info(format, args); + va_end(args); + #endif +} + +CPUINFO_LOG_ARGUMENTS_FORMAT inline static void cpuinfo_log_warning(const char* format, ...) { + #if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_WARNING + va_list args; + va_start(args, format); + cpuinfo_vlog_warning(format, args); + va_end(args); + #endif +} + +CPUINFO_LOG_ARGUMENTS_FORMAT inline static void cpuinfo_log_error(const char* format, ...) { + #if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_ERROR + va_list args; + va_start(args, format); + cpuinfo_vlog_error(format, args); + va_end(args); + #endif +} + +CPUINFO_LOG_ARGUMENTS_FORMAT inline static void cpuinfo_log_fatal(const char* format, ...) { + #if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_FATAL + va_list args; + va_start(args, format); + cpuinfo_vlog_fatal(format, args); + va_end(args); + #endif + abort(); +} \ No newline at end of file diff --git a/3rdparty/cpuinfo/src/cpuinfo/utils.h b/3rdparty/cpuinfo/src/cpuinfo/utils.h index d2aa731ebd3cfd..6cfaca7bb4c088 100644 --- a/3rdparty/cpuinfo/src/cpuinfo/utils.h +++ b/3rdparty/cpuinfo/src/cpuinfo/utils.h @@ -1,10 +1,9 @@ #pragma once -#include - #ifdef _MSC_VER -#include // _BitScanReverse +#include #endif +#include inline static uint32_t bit_length(uint32_t n) { diff --git a/3rdparty/cpuinfo/src/init.c b/3rdparty/cpuinfo/src/init.c index d61e7be6eba7a4..57482715681039 100644 --- a/3rdparty/cpuinfo/src/init.c +++ b/3rdparty/cpuinfo/src/init.c @@ -37,6 +37,14 @@ bool CPUINFO_ABI cpuinfo_initialize(void) { pthread_once(&init_guard, &cpuinfo_arm_linux_init); #elif defined(__MACH__) && defined(__APPLE__) pthread_once(&init_guard, &cpuinfo_arm_mach_init); + #elif defined(_WIN32) + InitOnceExecuteOnce(&init_guard, &cpuinfo_arm_windows_init, NULL, NULL); + #else + cpuinfo_log_error("operating system is not supported in cpuinfo"); + #endif +#elif CPUINFO_ARCH_RISCV32 || CPUINFO_ARCH_RISCV64 + #if defined(__linux__) + pthread_once(&init_guard, &cpuinfo_riscv_linux_init); #else cpuinfo_log_error("operating system is not supported in cpuinfo"); #endif diff --git a/3rdparty/cpuinfo/src/linux/api.h b/3rdparty/cpuinfo/src/linux/api.h index f55b8ac73ffe56..d33cbd7dc7fea2 100644 --- a/3rdparty/cpuinfo/src/linux/api.h +++ b/3rdparty/cpuinfo/src/linux/api.h @@ -21,7 +21,8 @@ #define CPUINFO_LINUX_FLAG_PACKAGE_CLUSTER UINT32_C(0x00000400) #define CPUINFO_LINUX_FLAG_PROC_CPUINFO UINT32_C(0x00000800) #define CPUINFO_LINUX_FLAG_VALID UINT32_C(0x00001000) - +#define CPUINFO_LINUX_FLAG_CUR_FREQUENCY UINT32_C(0x00002000) +#define CPUINFO_LINUX_FLAG_CLUSTER_CLUSTER UINT32_C(0x00004000) typedef bool (*cpuinfo_cpulist_callback)(uint32_t, uint32_t, void*); CPUINFO_INTERNAL bool cpuinfo_linux_parse_cpulist(const char* filename, cpuinfo_cpulist_callback callback, void* context); @@ -33,6 +34,7 @@ CPUINFO_INTERNAL bool cpuinfo_linux_parse_multiline_file(const char* filename, s CPUINFO_INTERNAL uint32_t cpuinfo_linux_get_max_processors_count(void); CPUINFO_INTERNAL uint32_t cpuinfo_linux_get_max_possible_processor(uint32_t max_processors_count); CPUINFO_INTERNAL uint32_t cpuinfo_linux_get_max_present_processor(uint32_t max_processors_count); +CPUINFO_INTERNAL uint32_t cpuinfo_linux_get_processor_cur_frequency(uint32_t processor); CPUINFO_INTERNAL uint32_t cpuinfo_linux_get_processor_min_frequency(uint32_t processor); CPUINFO_INTERNAL uint32_t cpuinfo_linux_get_processor_max_frequency(uint32_t processor); CPUINFO_INTERNAL bool cpuinfo_linux_get_processor_package_id(uint32_t processor, uint32_t package_id[restrict static 1]); @@ -54,6 +56,21 @@ CPUINFO_INTERNAL bool cpuinfo_linux_detect_thread_siblings( uint32_t processor, cpuinfo_siblings_callback callback, void* context); +CPUINFO_INTERNAL bool cpuinfo_linux_detect_cluster_cpus( + uint32_t max_processors_count, + uint32_t processor, + cpuinfo_siblings_callback callback, + void* context); +CPUINFO_INTERNAL bool cpuinfo_linux_detect_core_cpus( + uint32_t max_processors_count, + uint32_t processor, + cpuinfo_siblings_callback callback, + void* context); +CPUINFO_INTERNAL bool cpuinfo_linux_detect_package_cpus( + uint32_t max_processors_count, + uint32_t processor, + cpuinfo_siblings_callback callback, + void* context); extern CPUINFO_INTERNAL const struct cpuinfo_processor** cpuinfo_linux_cpu_to_processor_map; extern CPUINFO_INTERNAL const struct cpuinfo_core** cpuinfo_linux_cpu_to_core_map; diff --git a/3rdparty/cpuinfo/src/linux/processors.c b/3rdparty/cpuinfo/src/linux/processors.c index aedba743823b4e..246b4a2eed7aea 100644 --- a/3rdparty/cpuinfo/src/linux/processors.c +++ b/3rdparty/cpuinfo/src/linux/processors.c @@ -21,6 +21,7 @@ #define KERNEL_MAX_FILENAME "/sys/devices/system/cpu/kernel_max" #define KERNEL_MAX_FILESIZE 32 #define FREQUENCY_FILENAME_SIZE (sizeof("/sys/devices/system/cpu/cpu" STRINGIFY(UINT32_MAX) "/cpufreq/cpuinfo_max_freq")) +#define CUR_FREQUENCY_FILENAME_FORMAT "/sys/devices/system/cpu/cpu%" PRIu32 "/cpufreq/cpuinfo_cur_freq" #define MAX_FREQUENCY_FILENAME_FORMAT "/sys/devices/system/cpu/cpu%" PRIu32 "/cpufreq/cpuinfo_max_freq" #define MIN_FREQUENCY_FILENAME_FORMAT "/sys/devices/system/cpu/cpu%" PRIu32 "/cpufreq/cpuinfo_min_freq" #define FREQUENCY_FILESIZE 32 @@ -31,8 +32,14 @@ #define CORE_ID_FILENAME_FORMAT "/sys/devices/system/cpu/cpu%" PRIu32 "/topology/core_id" #define CORE_ID_FILESIZE 32 +#define CORE_CPUS_FILENAME_SIZE (sizeof("/sys/devices/system/cpu/cpu" STRINGIFY(UINT32_MAX) "/topology/core_cpus_list")) +#define CORE_CPUS_FILENAME_FORMAT "/sys/devices/system/cpu/cpu%" PRIu32 "/topology/core_cpus_list" #define CORE_SIBLINGS_FILENAME_SIZE (sizeof("/sys/devices/system/cpu/cpu" STRINGIFY(UINT32_MAX) "/topology/core_siblings_list")) #define CORE_SIBLINGS_FILENAME_FORMAT "/sys/devices/system/cpu/cpu%" PRIu32 "/topology/core_siblings_list" +#define CLUSTER_CPUS_FILENAME_SIZE (sizeof("/sys/devices/system/cpu/cpu" STRINGIFY(UINT32_MAX) "/topology/cluster_cpus_list")) +#define CLUSTER_CPUS_FILENAME_FORMAT "/sys/devices/system/cpu/cpu%" PRIu32 "/topology/cluster_cpus_list" +#define PACKAGE_CPUS_FILENAME_SIZE (sizeof("/sys/devices/system/cpu/cpu" STRINGIFY(UINT32_MAX) "/topology/package_cpus_list")) +#define PACKAGE_CPUS_FILENAME_FORMAT "/sys/devices/system/cpu/cpu%" PRIu32 "/topology/package_cpus_list" #define THREAD_SIBLINGS_FILENAME_SIZE (sizeof("/sys/devices/system/cpu/cpu" STRINGIFY(UINT32_MAX) "/topology/thread_siblings_list")) #define THREAD_SIBLINGS_FILENAME_FORMAT "/sys/devices/system/cpu/cpu%" PRIu32 "/topology/thread_siblings_list" @@ -125,6 +132,27 @@ uint32_t cpuinfo_linux_get_max_processors_count(void) { } } +uint32_t cpuinfo_linux_get_processor_cur_frequency(uint32_t processor) { + char cur_frequency_filename[FREQUENCY_FILENAME_SIZE]; + const int chars_formatted = snprintf( + cur_frequency_filename, FREQUENCY_FILENAME_SIZE, CUR_FREQUENCY_FILENAME_FORMAT, processor); + if ((unsigned int) chars_formatted >= FREQUENCY_FILENAME_SIZE) { + cpuinfo_log_warning("failed to format filename for current frequency of processor %"PRIu32, processor); + return 0; + } + + uint32_t cur_frequency; + if (cpuinfo_linux_parse_small_file(cur_frequency_filename, FREQUENCY_FILESIZE, uint32_parser, &cur_frequency)) { + cpuinfo_log_debug("parsed currrent frequency value of %"PRIu32" KHz for logical processor %"PRIu32" from %s", + cur_frequency, processor, cur_frequency_filename); + return cur_frequency; + } else { + cpuinfo_log_warning("failed to parse current frequency for processor %"PRIu32" from %s", + processor, cur_frequency_filename); + return 0; + } +} + uint32_t cpuinfo_linux_get_processor_max_frequency(uint32_t processor) { char max_frequency_filename[FREQUENCY_FILENAME_SIZE]; const int chars_formatted = snprintf( @@ -285,8 +313,7 @@ static bool detect_processor_parser(uint32_t processor_list_start, uint32_t proc } bool cpuinfo_linux_detect_possible_processors(uint32_t max_processors_count, - uint32_t* processor0_flags, uint32_t processor_struct_size, uint32_t possible_flag) -{ + uint32_t* processor0_flags, uint32_t processor_struct_size, uint32_t possible_flag) { struct detect_processors_context context = { .max_processors_count = max_processors_count, .processor0_flags = processor0_flags, @@ -302,8 +329,7 @@ bool cpuinfo_linux_detect_possible_processors(uint32_t max_processors_count, } bool cpuinfo_linux_detect_present_processors(uint32_t max_processors_count, - uint32_t* processor0_flags, uint32_t processor_struct_size, uint32_t present_flag) -{ + uint32_t* processor0_flags, uint32_t processor_struct_size, uint32_t present_flag) { struct detect_processors_context context = { .max_processors_count = max_processors_count, .processor0_flags = processor0_flags, @@ -340,12 +366,41 @@ static bool siblings_parser(uint32_t sibling_list_start, uint32_t sibling_list_e return context->callback(processor, sibling_list_start, sibling_list_end, context->callback_context); } +bool cpuinfo_linux_detect_core_cpus( + uint32_t max_processors_count, + uint32_t processor, + cpuinfo_siblings_callback callback, + void* context) { + char core_cpus_filename[CORE_CPUS_FILENAME_SIZE]; + const int chars_formatted = snprintf( + core_cpus_filename, CORE_CPUS_FILENAME_SIZE, CORE_CPUS_FILENAME_FORMAT, processor); + if ((unsigned int) chars_formatted >= CORE_CPUS_FILENAME_SIZE) { + cpuinfo_log_warning("failed to format filename for core cpus of processor %"PRIu32, processor); + return false; + } + + struct siblings_context siblings_context = { + .group_name = "cpus", + .max_processors_count = max_processors_count, + .processor = processor, + .callback = callback, + .callback_context = context, + }; + if (cpuinfo_linux_parse_cpulist(core_cpus_filename, + (cpuinfo_cpulist_callback) siblings_parser, &siblings_context)) { + return true; + } else { + cpuinfo_log_info("failed to parse the list of core cpus for processor %"PRIu32" from %s", + processor, core_cpus_filename); + return false; + } +} + bool cpuinfo_linux_detect_core_siblings( uint32_t max_processors_count, uint32_t processor, cpuinfo_siblings_callback callback, - void* context) -{ + void* context) { char core_siblings_filename[CORE_SIBLINGS_FILENAME_SIZE]; const int chars_formatted = snprintf( core_siblings_filename, CORE_SIBLINGS_FILENAME_SIZE, CORE_SIBLINGS_FILENAME_FORMAT, processor); @@ -362,8 +417,7 @@ bool cpuinfo_linux_detect_core_siblings( .callback_context = context, }; if (cpuinfo_linux_parse_cpulist(core_siblings_filename, - (cpuinfo_cpulist_callback) siblings_parser, &siblings_context)) - { + (cpuinfo_cpulist_callback) siblings_parser, &siblings_context)) { return true; } else { cpuinfo_log_info("failed to parse the list of core siblings for processor %"PRIu32" from %s", @@ -376,8 +430,7 @@ bool cpuinfo_linux_detect_thread_siblings( uint32_t max_processors_count, uint32_t processor, cpuinfo_siblings_callback callback, - void* context) -{ + void* context) { char thread_siblings_filename[THREAD_SIBLINGS_FILENAME_SIZE]; const int chars_formatted = snprintf( thread_siblings_filename, THREAD_SIBLINGS_FILENAME_SIZE, THREAD_SIBLINGS_FILENAME_FORMAT, processor); @@ -394,8 +447,7 @@ bool cpuinfo_linux_detect_thread_siblings( .callback_context = context, }; if (cpuinfo_linux_parse_cpulist(thread_siblings_filename, - (cpuinfo_cpulist_callback) siblings_parser, &siblings_context)) - { + (cpuinfo_cpulist_callback) siblings_parser, &siblings_context)) { return true; } else { cpuinfo_log_info("failed to parse the list of thread siblings for processor %"PRIu32" from %s", @@ -404,3 +456,62 @@ bool cpuinfo_linux_detect_thread_siblings( } } +bool cpuinfo_linux_detect_cluster_cpus( + uint32_t max_processors_count, + uint32_t processor, + cpuinfo_siblings_callback callback, + void* context) { + char cluster_cpus_filename[CLUSTER_CPUS_FILENAME_SIZE]; + const int chars_formatted = snprintf( + cluster_cpus_filename, CLUSTER_CPUS_FILENAME_SIZE, CLUSTER_CPUS_FILENAME_FORMAT, processor); + if ((unsigned int) chars_formatted >= CLUSTER_CPUS_FILENAME_SIZE) { + cpuinfo_log_warning("failed to format filename for cluster cpus of processor %"PRIu32, processor); + return false; + } + + struct siblings_context siblings_context = { + .group_name = "cluster", + .max_processors_count = max_processors_count, + .processor = processor, + .callback = callback, + .callback_context = context, + }; + if (cpuinfo_linux_parse_cpulist(cluster_cpus_filename, + (cpuinfo_cpulist_callback) siblings_parser, &siblings_context)) { + return true; + } else { + cpuinfo_log_info("failed to parse the list of cluster cpus for processor %"PRIu32" from %s", + processor, cluster_cpus_filename); + return false; + } +} + +bool cpuinfo_linux_detect_package_cpus( + uint32_t max_processors_count, + uint32_t processor, + cpuinfo_siblings_callback callback, + void* context) { + char package_cpus_filename[PACKAGE_CPUS_FILENAME_SIZE]; + const int chars_formatted = snprintf( + package_cpus_filename, PACKAGE_CPUS_FILENAME_SIZE, PACKAGE_CPUS_FILENAME_FORMAT, processor); + if ((unsigned int) chars_formatted >= PACKAGE_CPUS_FILENAME_SIZE) { + cpuinfo_log_warning("failed to format filename for package cpus of processor %"PRIu32, processor); + return false; + } + + struct siblings_context siblings_context = { + .group_name = "package", + .max_processors_count = max_processors_count, + .processor = processor, + .callback = callback, + .callback_context = context, + }; + if (cpuinfo_linux_parse_cpulist(package_cpus_filename, + (cpuinfo_cpulist_callback) siblings_parser, &siblings_context)) { + return true; + } else { + cpuinfo_log_info("failed to parse the list of package cpus for processor %"PRIu32" from %s", + processor, package_cpus_filename); + return false; + } +} diff --git a/3rdparty/cpuinfo/src/log.c b/3rdparty/cpuinfo/src/log.c new file mode 100644 index 00000000000000..bec604eeeac594 --- /dev/null +++ b/3rdparty/cpuinfo/src/log.c @@ -0,0 +1,192 @@ +#include +#include +#include +#include +#include +#ifdef _WIN32 + #include +#else + #include +#endif +#if defined(__ANDROID__) + #include +#endif +#if defined(__hexagon__) + #include +#endif + +#ifndef CPUINFO_LOG_TO_STDIO + #if defined(__ANDROID__) + #define CPUINFO_LOG_TO_STDIO 0 + #else + #define CPUINFO_LOG_TO_STDIO 1 + #endif +#endif + +#include + + +/* Messages up to this size are formatted entirely on-stack, and don't allocate heap memory */ +#define CPUINFO_LOG_STACK_BUFFER_SIZE 1024 + +#ifdef _WIN32 + #define CPUINFO_LOG_NEWLINE_LENGTH 2 + + #define CPUINFO_LOG_STDERR STD_ERROR_HANDLE + #define CPUINFO_LOG_STDOUT STD_OUTPUT_HANDLE +#elif defined(__hexagon__) + #define CPUINFO_LOG_NEWLINE_LENGTH 1 + + #define CPUINFO_LOG_STDERR 0 + #define CPUINFO_LOG_STDOUT 0 +#else + #define CPUINFO_LOG_NEWLINE_LENGTH 1 + + #define CPUINFO_LOG_STDERR STDERR_FILENO + #define CPUINFO_LOG_STDOUT STDOUT_FILENO +#endif + +#if CPUINFO_LOG_TO_STDIO +static void cpuinfo_vlog(int output_handle, const char* prefix, size_t prefix_length, const char* format, va_list args) { + char stack_buffer[CPUINFO_LOG_STACK_BUFFER_SIZE]; + char* heap_buffer = NULL; + char* out_buffer = &stack_buffer[0]; + + /* The first call to vsnprintf will clobber args, thus need a copy in case a second vsnprintf call is needed */ + va_list args_copy; + va_copy(args_copy, args); + + memcpy(stack_buffer, prefix, prefix_length * sizeof(char)); + assert((prefix_length + CPUINFO_LOG_NEWLINE_LENGTH) * sizeof(char) <= CPUINFO_LOG_STACK_BUFFER_SIZE); + + const int format_chars = vsnprintf( + &stack_buffer[prefix_length], + CPUINFO_LOG_STACK_BUFFER_SIZE - (prefix_length + CPUINFO_LOG_NEWLINE_LENGTH) * sizeof(char), + format, + args); + if (format_chars < 0) { + /* Format error in the message: silently ignore this particular message. */ + goto cleanup; + } + const size_t format_length = (size_t) format_chars; + if ((prefix_length + format_length + CPUINFO_LOG_NEWLINE_LENGTH) * sizeof(char) > CPUINFO_LOG_STACK_BUFFER_SIZE) { + /* Allocate a buffer on heap, and vsnprintf to this buffer */ + const size_t heap_buffer_size = (prefix_length + format_length + CPUINFO_LOG_NEWLINE_LENGTH) * sizeof(char); + #if _WIN32 + heap_buffer = HeapAlloc(GetProcessHeap(), 0, heap_buffer_size); + #else + heap_buffer = malloc(heap_buffer_size); + #endif + if (heap_buffer == NULL) { + goto cleanup; + } + + /* Copy pre-formatted prefix into the on-heap buffer */ + memcpy(heap_buffer, prefix, prefix_length * sizeof(char)); + vsnprintf(&heap_buffer[prefix_length], (format_length + CPUINFO_LOG_NEWLINE_LENGTH) * sizeof(char), format, args_copy); + out_buffer = heap_buffer; + } + #ifdef _WIN32 + out_buffer[prefix_length + format_length] = '\r'; + out_buffer[prefix_length + format_length + 1] = '\n'; + + DWORD bytes_written; + WriteFile( + GetStdHandle((DWORD) output_handle), + out_buffer, (prefix_length + format_length + CPUINFO_LOG_NEWLINE_LENGTH) * sizeof(char), + &bytes_written, NULL); + #elif defined(__hexagon__) + qurt_printf("%s", out_buffer); + #else + out_buffer[prefix_length + format_length] = '\n'; + + ssize_t bytes_written = write(output_handle, out_buffer, (prefix_length + format_length + CPUINFO_LOG_NEWLINE_LENGTH) * sizeof(char)); + (void) bytes_written; + #endif + +cleanup: + #ifdef _WIN32 + HeapFree(GetProcessHeap(), 0, heap_buffer); + #else + free(heap_buffer); + #endif + va_end(args_copy); +} +#elif defined(__ANDROID__) && CPUINFO_LOG_LEVEL > CPUINFO_LOG_NONE + static const char cpuinfo_module[] = "XNNPACK"; +#endif + +#if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_DEBUG + void cpuinfo_vlog_debug(const char* format, va_list args) { + #if CPUINFO_LOG_TO_STDIO + static const char debug_prefix[17] = { + 'D', 'e', 'b', 'u', 'g', ' ', '(', 'c', 'p', 'u', 'i', 'n', 'f', 'o', ')', ':', ' ' + }; + cpuinfo_vlog(CPUINFO_LOG_STDOUT, debug_prefix, 17, format, args); + #elif defined(__ANDROID__) + __android_log_vprint(ANDROID_LOG_DEBUG, cpuinfo_module, format, args); + #else + #error "Platform-specific implementation required" + #endif + } +#endif + +#if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_INFO + void cpuinfo_vlog_info(const char* format, va_list args) { + #if CPUINFO_LOG_TO_STDIO + static const char info_prefix[16] = { + 'N', 'o', 't', 'e', ' ', '(', 'c', 'p', 'u', 'i', 'n', 'f', 'o', ')', ':', ' ' + }; + cpuinfo_vlog(CPUINFO_LOG_STDOUT, info_prefix, 16, format, args); + #elif defined(__ANDROID__) + __android_log_vprint(ANDROID_LOG_INFO, cpuinfo_module, format, args); + #else + #error "Platform-specific implementation required" + #endif + } +#endif + +#if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_WARNING + void cpuinfo_vlog_warning(const char* format, va_list args) { + #if CPUINFO_LOG_TO_STDIO + static const char warning_prefix[20] = { + 'W', 'a', 'r', 'n', 'i', 'n', 'g', ' ', 'i', 'n', ' ', 'c', 'p', 'u', 'i', 'n', 'f', 'o', ':', ' ' + }; + cpuinfo_vlog(CPUINFO_LOG_STDERR, warning_prefix, 20, format, args); + #elif defined(__ANDROID__) + __android_log_vprint(ANDROID_LOG_WARN, cpuinfo_module, format, args); + #else + #error "Platform-specific implementation required" + #endif + } +#endif + +#if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_ERROR + void cpuinfo_vlog_error(const char* format, va_list args) { + #if CPUINFO_LOG_TO_STDIO + static const char error_prefix[18] = { + 'E', 'r', 'r', 'o', 'r', ' ', 'i', 'n', ' ', 'c', 'p', 'u', 'i', 'n', 'f', 'o', ':', ' ' + }; + cpuinfo_vlog(CPUINFO_LOG_STDERR, error_prefix, 18, format, args); + #elif defined(__ANDROID__) + __android_log_vprint(ANDROID_LOG_ERROR, cpuinfo_module, format, args); + #else + #error "Platform-specific implementation required" + #endif + } +#endif + +#if CPUINFO_LOG_LEVEL >= CPUINFO_LOG_FATAL + void cpuinfo_vlog_fatal(const char* format, va_list args) { + #if CPUINFO_LOG_TO_STDIO + static const char fatal_prefix[24] = { + 'F', 'a', 't', 'a', 'l', ' ', 'e', 'r', 'r', 'o', 'r', ' ', 'i', 'n', ' ', 'c', 'p', 'u', 'i', 'n', 'f', 'o', ':', ' ' + }; + cpuinfo_vlog(CPUINFO_LOG_STDERR, fatal_prefix, 24, format, args); + #elif defined(__ANDROID__) + __android_log_vprint(ANDROID_LOG_FATAL, cpuinfo_module, format, args); + #else + #error "Platform-specific implementation required" + #endif + } +#endif diff --git a/3rdparty/cpuinfo/src/riscv/api.h b/3rdparty/cpuinfo/src/riscv/api.h new file mode 100644 index 00000000000000..cd4bf464ff052a --- /dev/null +++ b/3rdparty/cpuinfo/src/riscv/api.h @@ -0,0 +1,42 @@ +#pragma once + +#include + +#include +#include + +/* RISC-V Vendor IDs. */ +enum cpuinfo_riscv_chipset_vendor { + cpuinfo_riscv_chipset_vendor_unknown = 0, + cpuinfo_riscv_chipset_sifive = 0x489, + cpuinfo_riscv_chipset_vendor_max, +}; + +/* RISC-V Architecture IDs. */ +enum cpuinfo_riscv_chipset_arch { + cpuinfo_riscv_chipset_arch_unknown = 0, + cpuinfo_riscv_chipset_arch_max, +}; + +/* RISC-V Implementation IDs. */ +enum cpuinfo_riscv_chipset_impl { + cpuinfo_riscv_chipset_impl_unknown = 0, + cpuinfo_riscv_chipset_impl_max, +}; + +/** + * Decodes the vendor and micro-architecture based on the provided input + * parameters, regardless of underlying operating system. + * + * @param[vendor_id]: The 'mvendorid' as described by the RISC-V Manual. + * @param[arch_id]: The 'marchid' as described by the RISC-V Manual. + * @param[imp_id]: The 'mimplid' as described by the RISC-V Manual. + * @param[vendor] - Reference to the cpuinfo_vendor to populate. + * @param[uarch] - Reference to the cpuinfo_uarch to populate. + */ +CPUINFO_INTERNAL void cpuinfo_riscv_decode_vendor_uarch( + uint32_t vendor_id, + uint32_t arch_id, + uint32_t imp_id, + enum cpuinfo_vendor vendor[restrict static 1], + enum cpuinfo_uarch uarch[restrict static 1]); diff --git a/3rdparty/cpuinfo/src/riscv/linux/api.h b/3rdparty/cpuinfo/src/riscv/linux/api.h new file mode 100644 index 00000000000000..5f1a8cf359cb30 --- /dev/null +++ b/3rdparty/cpuinfo/src/riscv/linux/api.h @@ -0,0 +1,69 @@ +#pragma once + +#include +#include + +/** + * Definition of a RISC-V Linux processor. It is composed of the base processor + * definition in "include/cpuinfo.h" and flags specific to RISC-V Linux + * implementations. + */ +struct cpuinfo_riscv_linux_processor { + /* Public ABI cpuinfo structures. */ + struct cpuinfo_processor processor; + struct cpuinfo_core core; + struct cpuinfo_cluster cluster; + struct cpuinfo_package package; + + /** + * Linux-specific flags for the logical processor: + * - Bit field that can be masked with CPUINFO_LINUX_FLAG_*. + */ + uint32_t flags; + + /** + * Minimum processor ID on the cluster which includes this logical processor. + * This value can serve as an ID for the cluster of logical processors: it is the + * same for all logical processors on the same package. + */ + uint32_t cluster_leader_id; + + /** + * Minimum processor ID on the core which includes this logical processor. + * This value can serve as an ID for the core of logical processors: it + * is the same for all logical processors on the same core. + */ + uint32_t core_leader_id; + + /** + * Minimum processor ID on the package which includes this logical processor. + * This value can serve as an ID for the package of logical processors: it + * is the same for all logical processors on the same package. + */ + uint32_t package_leader_id; +}; + +/** + * Reads AT_HWCAP from `getauxval` and populates the cpuinfo_riscv_isa + * structure. + * + * @param[isa] - Reference to cpuinfo_riscv_isa structure to populate. + */ +CPUINFO_INTERNAL void cpuinfo_riscv_linux_decode_isa_from_hwcap( + struct cpuinfo_riscv_isa isa[restrict static 1]); + +/** + * Reads `sys_riscv_hwprobe` and determines the processor vendor and + * micro-architecture. + * + * @param[processor] - The Linux ID of the target processor. + * @param[vendor] - Reference to the cpuinfo_vendor to populate. + * @param[uarch] - Reference to the cpuinfo_uarch to populate. + */ +CPUINFO_INTERNAL void cpuinfo_riscv_linux_decode_vendor_uarch_from_hwprobe( + uint32_t processor, + enum cpuinfo_vendor vendor[restrict static 1], + enum cpuinfo_uarch uarch[restrict static 1]); + +/* Used to determine which uarch is associated with the current thread. */ +extern CPUINFO_INTERNAL const uint32_t* cpuinfo_linux_cpu_to_uarch_index_map; diff --git a/3rdparty/cpuinfo/src/riscv/linux/init.c b/3rdparty/cpuinfo/src/riscv/linux/init.c new file mode 100644 index 00000000000000..d1c43c542a6165 --- /dev/null +++ b/3rdparty/cpuinfo/src/riscv/linux/init.c @@ -0,0 +1,620 @@ +#include + +#include +#include +#include +#include + +/* ISA structure to hold supported extensions. */ +struct cpuinfo_riscv_isa cpuinfo_isa; + +/* Helper function to bitmask flags and ensure operator precedence. */ +static inline bool bitmask_all(uint32_t flags, uint32_t mask) { + return (flags & mask) == mask; +} + +static int compare_riscv_linux_processors(const void* a, const void* b) { + /** + * For our purposes, it is only relevant that the list is sorted by + * micro-architecture, so the nature of ordering is irrelevant. + */ + return ((const struct cpuinfo_riscv_linux_processor*)a)->core.uarch + - ((const struct cpuinfo_riscv_linux_processor*)b)->core.uarch; +} + +/** + * Parses the core cpus list for each processor. This function is called once + * per-processor, with the IDs of all other processors in the core list. + * + * The 'processor_[start|count]' are populated in the processor's 'core' + * attribute, with 'start' being the smallest ID in the core list. + * + * The 'core_leader_id' of each processor is set to the smallest ID in it's + * cluster CPU list. + * + * Precondition: The element in the 'processors' list must be initialized with + * their 'core_leader_id' to their index in the list. + + * E.g. processors[0].core_leader_id = 0. + */ +static bool core_cpus_parser(uint32_t processor, + uint32_t core_cpus_start, + uint32_t core_cpus_end, + struct cpuinfo_riscv_linux_processor* processors) { + uint32_t processor_start = UINT32_MAX; + uint32_t processor_count = 0; + + /* If the processor already has a leader, use it. */ + if (bitmask_all(processors[processor].flags, CPUINFO_LINUX_FLAG_CORE_CLUSTER)) { + processor_start = processors[processor].core_leader_id; + } + + for (size_t core_cpu = core_cpus_start; core_cpu < core_cpus_end; core_cpu++) { + if (!bitmask_all(processors[core_cpu].flags, CPUINFO_LINUX_FLAG_VALID)) { + continue; + } + /** + * The first valid processor observed is the smallest ID in the + * list that attaches to this core. + */ + if (processor_start == UINT32_MAX) { + processor_start = core_cpu; + } + processors[core_cpu].core_leader_id = processor_start; + processor_count++; + } + /** + * If the cluster flag has not been set, assign the processor start. If + * it has been set, only apply the processor start if it's less than the + * held value. This can happen if the callback is invoked twice: + * + * e.g. core_cpu_list=1,10-12 + */ + if (!bitmask_all(processors[processor].flags, CPUINFO_LINUX_FLAG_CORE_CLUSTER) + || processors[processor].core.processor_start > processor_start) { + processors[processor].core.processor_start = processor_start; + processors[processor].core_leader_id = processor_start; + } + processors[processor].core.processor_count += processor_count; + processors[processor].flags |= CPUINFO_LINUX_FLAG_CORE_CLUSTER; + /* The parser has failed only if no processors were found. */ + return processor_count != 0; +} + +/** + * Parses the cluster cpu list for each processor. This function is called once + * per-processor, with the IDs of all other processors in the cluster. + * + * The 'cluster_leader_id' of each processor is set to the smallest ID in it's + * cluster CPU list. + * + * Precondition: The element in the 'processors' list must be initialized with + * their 'cluster_leader_id' to their index in the list. + * E.g. processors[0].cluster_leader_id = 0. + */ +static bool cluster_cpus_parser(uint32_t processor, + uint32_t cluster_cpus_start, + uint32_t cluster_cpus_end, + struct cpuinfo_riscv_linux_processor* processors) { + uint32_t processor_start = UINT32_MAX; + uint32_t processor_count = 0; + uint32_t core_count = 0; + + /* If the processor already has a leader, use it. */ + if (bitmask_all(processors[processor].flags, CPUINFO_LINUX_FLAG_CLUSTER_CLUSTER)) { + processor_start = processors[processor].cluster_leader_id; + } + + for (size_t cluster_cpu = cluster_cpus_start; cluster_cpu < cluster_cpus_end; cluster_cpu++) { + if (!bitmask_all(processors[cluster_cpu].flags, CPUINFO_LINUX_FLAG_VALID)) { + continue; + } + /** + * The first valid processor observed is the smallest ID in the + * list that attaches to this core. + */ + if (processor_start == UINT32_MAX) { + processor_start = cluster_cpu; + } + processors[cluster_cpu].cluster_leader_id = processor_start; + processor_count++; + /** + * A processor should only represent it's core if it is the + * assigned leader of that core. + */ + if (processors[cluster_cpu].core_leader_id == cluster_cpu) { + core_count++; + } + } + /** + * If the cluster flag has not been set, assign the processor start. If + * it has been set, only apply the processor start if it's less than the + * held value. This can happen if the callback is invoked twice: + * + * e.g. cluster_cpus_list=1,10-12 + */ + if (!bitmask_all(processors[processor].flags, CPUINFO_LINUX_FLAG_CLUSTER_CLUSTER) + || processors[processor].cluster.processor_start > processor_start) { + processors[processor].cluster.processor_start = processor_start; + processors[processor].cluster.core_start = processor_start; + processors[processor].cluster.cluster_id = processor_start; + processors[processor].cluster_leader_id = processor_start; + } + processors[processor].cluster.processor_count += processor_count; + processors[processor].cluster.core_count += core_count; + processors[processor].flags |= CPUINFO_LINUX_FLAG_CLUSTER_CLUSTER; + return true; +} + +/** + * Parses the package cpus list for each processor. This function is called once + * per-processor, with the IDs of all other processors in the package list. + * + * The 'processor_[start|count]' are populated in the processor's 'package' + * attribute, with 'start' being the smallest ID in the package list. + * + * The 'package_leader_id' of each processor is set to the smallest ID in it's + * cluster CPU list. + * + * Precondition: The element in the 'processors' list must be initialized with + * their 'package_leader_id' to their index in the list. + * E.g. processors[0].package_leader_id = 0. + */ +static bool package_cpus_parser(uint32_t processor, + uint32_t package_cpus_start, + uint32_t package_cpus_end, + struct cpuinfo_riscv_linux_processor* processors) { + uint32_t processor_start = UINT32_MAX; + uint32_t processor_count = 0; + uint32_t cluster_count = 0; + uint32_t core_count = 0; + + /* If the processor already has a leader, use it. */ + if (bitmask_all(processors[processor].flags, CPUINFO_LINUX_FLAG_PACKAGE_CLUSTER)) { + processor_start = processors[processor].package_leader_id; + } + + for (size_t package_cpu = package_cpus_start; package_cpu < package_cpus_end; package_cpu++) { + if (!bitmask_all(processors[package_cpu].flags, CPUINFO_LINUX_FLAG_VALID)) { + continue; + } + /** + * The first valid processor observed is the smallest ID in the + * list that attaches to this package. + */ + if (processor_start == UINT32_MAX) { + processor_start = package_cpu; + } + processors[package_cpu].package_leader_id = processor_start; + processor_count++; + /** + * A processor should only represent it's core if it is the + * assigned leader of that core, and similarly for it's cluster. + */ + if (processors[package_cpu].cluster_leader_id == package_cpu) { + cluster_count++; + } + if (processors[package_cpu].core_leader_id == package_cpu) { + core_count++; + } + } + /** + * If the cluster flag has not been set, assign the processor start. If + * it has been set, only apply the processor start if it's less than the + * held value. This can happen if the callback is invoked twice: + * + * e.g. package_cpus_list=1,10-12 + */ + if (!bitmask_all(processors[processor].flags, CPUINFO_LINUX_FLAG_PACKAGE_CLUSTER) + || processors[processor].package.processor_start > processor_start) { + processors[processor].package.processor_start = processor_start; + processors[processor].package.cluster_start = processor_start; + processors[processor].package.core_start = processor_start; + processors[processor].package_leader_id = processor_start; + } + processors[processor].package.processor_count += processor_count; + processors[processor].package.cluster_count += cluster_count; + processors[processor].package.core_count += core_count; + processors[processor].flags |= CPUINFO_LINUX_FLAG_PACKAGE_CLUSTER; + return true; +} + +/* Initialization for the RISC-V Linux system. */ +void cpuinfo_riscv_linux_init(void) { + struct cpuinfo_riscv_linux_processor* riscv_linux_processors = NULL; + struct cpuinfo_processor* processors = NULL; + struct cpuinfo_package* packages = NULL; + struct cpuinfo_cluster* clusters = NULL; + struct cpuinfo_core* cores = NULL; + struct cpuinfo_uarch_info* uarchs = NULL; + const struct cpuinfo_processor** linux_cpu_to_processor_map = NULL; + const struct cpuinfo_core** linux_cpu_to_core_map = NULL; + uint32_t* linux_cpu_to_uarch_index_map = NULL; + + /** + * The interesting set of processors are the number of 'present' + * processors on the system. There may be more 'possible' processors, but + * processor information cannot be gathered on non-present processors. + * + * Note: For SoCs, it is largely the case that all processors are known + * at boot and no processors are hotplugged at runtime, so the + * 'present' and 'possible' list is often the same. + * + * Note: This computes the maximum processor ID of the 'present' + * processors. It is not a count of the number of processors on the + * system. + */ + const uint32_t max_processor_id = 1 + + cpuinfo_linux_get_max_present_processor( + cpuinfo_linux_get_max_processors_count()); + if (max_processor_id == 0) { + cpuinfo_log_error("failed to discover any processors"); + return; + } + + /** + * Allocate space to store all processor information. This array is + * sized to the max processor ID as opposed to the number of 'present' + * processors, to leverage pointer math in the common utility functions. + */ + riscv_linux_processors = calloc(max_processor_id, + sizeof(struct cpuinfo_riscv_linux_processor)); + if (riscv_linux_processors == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for %"PRIu32" processors.", + max_processor_id * sizeof(struct cpuinfo_riscv_linux_processor), + max_processor_id); + goto cleanup; + } + + /** + * Attempt to detect all processors and apply the corresponding flag to + * each processor struct that we find. + */ + if (!cpuinfo_linux_detect_present_processors(max_processor_id, + &riscv_linux_processors->flags, + sizeof(struct cpuinfo_riscv_linux_processor), + CPUINFO_LINUX_FLAG_PRESENT | CPUINFO_LINUX_FLAG_VALID)) { + cpuinfo_log_error("failed to detect present processors"); + goto cleanup; + } + + /* Populate processor information. */ + for (size_t processor = 0; processor < max_processor_id; processor++) { + if (!bitmask_all(riscv_linux_processors[processor].flags, CPUINFO_LINUX_FLAG_VALID)) { + continue; + } + /* TODO: Determine if an 'smt_id' is available. */ + riscv_linux_processors[processor].processor.linux_id = processor; + } + + /* Populate core information. */ + for (size_t processor = 0; processor < max_processor_id; processor++) { + if (!bitmask_all(riscv_linux_processors[processor].flags, CPUINFO_LINUX_FLAG_VALID)) { + continue; + } + + /* Populate processor start and count information. */ + if (!cpuinfo_linux_detect_core_cpus( + max_processor_id, + processor, + (cpuinfo_siblings_callback) core_cpus_parser, + riscv_linux_processors)) { + cpuinfo_log_error("failed to detect core cpus for processor %zu.", processor); + goto cleanup; + } + + /* Populate core ID information. */ + if (cpuinfo_linux_get_processor_core_id( + processor, + &riscv_linux_processors[processor].core.core_id)) { + riscv_linux_processors[processor].flags |= CPUINFO_LINUX_FLAG_CORE_ID; + } + + /** + * Populate the vendor and uarch of this core from this + * processor. When the final 'cores' list is constructed, only + * the values from the core leader will be honored. + */ + cpuinfo_riscv_linux_decode_vendor_uarch_from_hwprobe( + processor, + &riscv_linux_processors[processor].core.vendor, + &riscv_linux_processors[processor].core.uarch); + + /* Populate frequency information of this core. */ + uint32_t frequency = cpuinfo_linux_get_processor_cur_frequency(processor); + if (frequency != 0) { + riscv_linux_processors[processor].core.frequency = frequency; + riscv_linux_processors[processor].flags |= CPUINFO_LINUX_FLAG_CUR_FREQUENCY; + } + } + + /* Populate cluster information. */ + for (size_t processor = 0; processor < max_processor_id; processor++) { + if (!bitmask_all(riscv_linux_processors[processor].flags, CPUINFO_LINUX_FLAG_VALID)) { + continue; + } + if (!cpuinfo_linux_detect_cluster_cpus( + max_processor_id, + processor, + (cpuinfo_siblings_callback) cluster_cpus_parser, + riscv_linux_processors)) { + cpuinfo_log_warning("failed to detect cluster cpus for processor %zu.", processor); + goto cleanup; + } + + /** + * Populate the vendor, uarch and frequency of this cluster from + * this logical processor. When the 'clusters' list is constructed, + * only the values from the cluster leader will be honored. + */ + riscv_linux_processors[processor].cluster.vendor = + riscv_linux_processors[processor].core.vendor; + riscv_linux_processors[processor].cluster.uarch = + riscv_linux_processors[processor].core.uarch; + riscv_linux_processors[processor].cluster.frequency = + riscv_linux_processors[processor].core.frequency; + } + + /* Populate package information. */ + for (size_t processor = 0; processor < max_processor_id; processor++) { + if (!bitmask_all(riscv_linux_processors[processor].flags, CPUINFO_LINUX_FLAG_VALID)) { + continue; + } + if (!cpuinfo_linux_detect_package_cpus( + max_processor_id, + processor, + (cpuinfo_siblings_callback) package_cpus_parser, + riscv_linux_processors)) { + cpuinfo_log_warning("failed to detect package cpus for processor %zu.", processor); + goto cleanup; + } + } + + /* Populate ISA structure with hwcap information. */ + cpuinfo_riscv_linux_decode_isa_from_hwcap(&cpuinfo_isa); + + /** + * To efficiently compute the number of unique micro-architectures + * present on the system, sort the processor list by micro-architecture + * and then scan through the list to count the differences. + * + * Ensure this is done at the end of composing the processor list - the + * parsing functions assume that the position of the processor in the + * list matches it's Linux ID, which this sorting operation breaks. + */ + qsort(riscv_linux_processors, + max_processor_id, + sizeof(struct cpuinfo_riscv_linux_processor), + compare_riscv_linux_processors); + + /** + * Determine the number of *valid* detected processors, cores, + * clusters, packages and uarchs in the list. + */ + size_t valid_processors_count = 0; + size_t valid_cores_count = 0; + size_t valid_clusters_count = 0; + size_t valid_packages_count = 0; + size_t valid_uarchs_count = 0; + enum cpuinfo_uarch last_uarch = cpuinfo_uarch_unknown; + for (size_t processor = 0; processor < max_processor_id; processor++) { + if (!bitmask_all(riscv_linux_processors[processor].flags, CPUINFO_LINUX_FLAG_VALID)) { + continue; + } + + /** + * All comparisons to the leader id values MUST be done against + * the 'linux_id' as opposed to 'processor'. The sort function + * above no longer allows us to make the assumption that these + * two values are the same. + */ + uint32_t linux_id = riscv_linux_processors[processor].processor.linux_id; + + valid_processors_count++; + if (riscv_linux_processors[processor].core_leader_id == linux_id) { + valid_cores_count++; + } + if (riscv_linux_processors[processor].cluster_leader_id == linux_id) { + valid_clusters_count++; + } + if (riscv_linux_processors[processor].package_leader_id == linux_id) { + valid_packages_count++; + } + /** + * As we've sorted by micro-architecture, when the uarch differs + * between two entries, a unique uarch has been observed. + */ + if (last_uarch != riscv_linux_processors[processor].core.uarch + || valid_uarchs_count == 0) { + valid_uarchs_count++; + last_uarch = riscv_linux_processors[processor].core.uarch; + } + } + + /* Allocate and populate final public ABI structures. */ + processors = calloc(valid_processors_count, + sizeof(struct cpuinfo_processor)); + if (processors == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for %zu processors.", + valid_processors_count * sizeof(struct cpuinfo_processor), + valid_processors_count); + goto cleanup; + } + + cores = calloc(valid_cores_count, + sizeof(struct cpuinfo_core)); + if (cores == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for %zu cores.", + valid_cores_count * sizeof(struct cpuinfo_core), + valid_cores_count); + goto cleanup; + } + + clusters = calloc(valid_clusters_count, + sizeof(struct cpuinfo_cluster)); + if (clusters == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for %zu clusters.", + valid_clusters_count * sizeof(struct cpuinfo_cluster), + valid_clusters_count); + goto cleanup; + } + + packages = calloc(valid_packages_count, + sizeof(struct cpuinfo_package)); + if (packages == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for %zu packages.", + valid_packages_count * sizeof(struct cpuinfo_package), + valid_packages_count); + goto cleanup; + } + + uarchs = calloc(valid_uarchs_count, sizeof(struct cpuinfo_uarch_info)); + if (uarchs == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for %zu packages.", + valid_uarchs_count * sizeof(struct cpuinfo_uarch_info), + valid_uarchs_count); + goto cleanup; + } + + linux_cpu_to_processor_map = calloc(max_processor_id, + sizeof(struct cpuinfo_processor*)); + if (linux_cpu_to_processor_map == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for %"PRIu32" processor map.", + max_processor_id * sizeof(struct cpuinfo_processor*), + max_processor_id); + goto cleanup; + } + + linux_cpu_to_core_map = calloc(max_processor_id, + sizeof(struct cpuinfo_core*)); + if (linux_cpu_to_core_map == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for %"PRIu32" core map.", + max_processor_id * sizeof(struct cpuinfo_core*), + max_processor_id); + goto cleanup; + } + + linux_cpu_to_uarch_index_map = calloc(max_processor_id, + sizeof(struct cpuinfo_uarch_info*)); + if (linux_cpu_to_uarch_index_map == NULL) { + cpuinfo_log_error("failed to allocate %zu bytes for %"PRIu32" uarch map.", + max_processor_id * sizeof(struct cpuinfo_uarch_info*), + max_processor_id); + goto cleanup; + } + + /* Transfer contents of processor list to ABI structures. */ + size_t valid_processors_index = 0; + size_t valid_cores_index = 0; + size_t valid_clusters_index = 0; + size_t valid_packages_index = 0; + size_t valid_uarchs_index = 0; + last_uarch = cpuinfo_uarch_unknown; + for (size_t processor = 0; processor < max_processor_id; processor++) { + if (!bitmask_all(riscv_linux_processors[processor].flags, CPUINFO_LINUX_FLAG_VALID)) { + continue; + } + + /** + * All comparisons to the leader id values MUST be done against + * the 'linux_id' as opposed to 'processor'. The sort function + * above no longer allows us to make the assumption that these + * two values are the same. + */ + uint32_t linux_id = riscv_linux_processors[processor].processor.linux_id; + + /* Create uarch entry if this uarch has not been seen before. */ + if (last_uarch != riscv_linux_processors[processor].core.uarch + || valid_uarchs_index == 0) { + uarchs[valid_uarchs_index++].uarch = + riscv_linux_processors[processor].core.uarch; + last_uarch = riscv_linux_processors[processor].core.uarch; + } + + /* Copy cpuinfo_processor information. */ + memcpy(&processors[valid_processors_index++], + &riscv_linux_processors[processor].processor, + sizeof(struct cpuinfo_processor)); + + /* Update uarch processor count. */ + uarchs[valid_uarchs_index - 1].processor_count++; + + /* Copy cpuinfo_core information, if this is the leader. */ + if (riscv_linux_processors[processor].core_leader_id == linux_id) { + memcpy(&cores[valid_cores_index++], + &riscv_linux_processors[processor].core, + sizeof(struct cpuinfo_core)); + /* Update uarch core count. */ + uarchs[valid_uarchs_index - 1].core_count++; + } + + /* Copy cpuinfo_cluster information, if this is the leader. */ + if (riscv_linux_processors[processor].cluster_leader_id == linux_id) { + memcpy(&clusters[valid_clusters_index++], + &riscv_linux_processors[processor].cluster, + sizeof(struct cpuinfo_cluster)); + } + + /* Copy cpuinfo_package information, if this is the leader. */ + if (riscv_linux_processors[processor].package_leader_id == linux_id) { + memcpy(&packages[valid_packages_index++], + &riscv_linux_processors[processor].package, + sizeof(struct cpuinfo_package)); + } + + /* Commit pointers on the final structures. */ + processors[valid_processors_index - 1].core = &cores[valid_cores_index - 1]; + processors[valid_processors_index - 1].cluster = &clusters[valid_clusters_index - 1]; + processors[valid_processors_index - 1].package = &packages[valid_packages_index - 1]; + + cores[valid_cores_index - 1].cluster = &clusters[valid_clusters_index - 1]; + cores[valid_cores_index - 1].package = &packages[valid_packages_index - 1]; + + clusters[valid_clusters_index - 1].package = &packages[valid_packages_index - 1]; + + linux_cpu_to_processor_map[linux_id] = &processors[valid_processors_index - 1]; + linux_cpu_to_core_map[linux_id] = &cores[valid_cores_index - 1]; + linux_cpu_to_uarch_index_map[linux_id] = valid_uarchs_index - 1; + } + + /* Commit */ + cpuinfo_processors = processors; + cpuinfo_processors_count = valid_processors_count; + cpuinfo_cores = cores; + cpuinfo_cores_count = valid_cores_count; + cpuinfo_clusters = clusters; + cpuinfo_clusters_count = valid_clusters_count; + cpuinfo_packages = packages; + cpuinfo_packages_count = valid_packages_count; + cpuinfo_uarchs = uarchs; + cpuinfo_uarchs_count = valid_uarchs_count; + + cpuinfo_linux_cpu_max = max_processor_id; + cpuinfo_linux_cpu_to_processor_map = linux_cpu_to_processor_map; + cpuinfo_linux_cpu_to_core_map = linux_cpu_to_core_map; + cpuinfo_linux_cpu_to_uarch_index_map = linux_cpu_to_uarch_index_map; + + __sync_synchronize(); + + cpuinfo_is_initialized = true; + + /* Mark all public structures NULL to prevent cleanup from erasing them. */ + processors = NULL; + cores = NULL; + clusters = NULL; + packages = NULL; + uarchs = NULL; + linux_cpu_to_processor_map = NULL; + linux_cpu_to_core_map = NULL; + linux_cpu_to_uarch_index_map = NULL; +cleanup: + free(riscv_linux_processors); + free(processors); + free(cores); + free(clusters); + free(packages); + free(uarchs); + free(linux_cpu_to_processor_map); + free(linux_cpu_to_core_map); + free(linux_cpu_to_uarch_index_map); +} diff --git a/3rdparty/cpuinfo/src/riscv/linux/riscv-hw.c b/3rdparty/cpuinfo/src/riscv/linux/riscv-hw.c new file mode 100644 index 00000000000000..ccee848cf48e51 --- /dev/null +++ b/3rdparty/cpuinfo/src/riscv/linux/riscv-hw.c @@ -0,0 +1,62 @@ +#include +#include + +#include +#include +#include + +void cpuinfo_riscv_linux_decode_vendor_uarch_from_hwprobe( + uint32_t processor, + enum cpuinfo_vendor vendor[restrict static 1], + enum cpuinfo_uarch uarch[restrict static 1]) { + struct riscv_hwprobe pairs[] = { + { .key = RISCV_HWPROBE_KEY_MVENDORID, }, + { .key = RISCV_HWPROBE_KEY_MARCHID, }, + { .key = RISCV_HWPROBE_KEY_MIMPID, }, + }; + const size_t pairs_count = sizeof(pairs) / sizeof(struct riscv_hwprobe); + + /* In case of failure, report unknown. */ + *vendor = cpuinfo_vendor_unknown; + *uarch = cpuinfo_uarch_unknown; + + /* Create a CPU set with this processor flagged. */ + const size_t cpu_set_size = processor + 1; + cpu_set_t* cpu_set = CPU_ALLOC(cpu_set_size); + CPU_SET(processor, cpu_set); + + /* Request all available information from hwprobe. */ + int ret = __riscv_hwprobe(pairs, pairs_count, + cpu_set_size, (unsigned long*)cpu_set, + 0 /* flags */); + if (ret < 0) { + cpuinfo_log_warning("failed to get hwprobe information, err: %d", ret); + return; + } + + /** + * The syscall may not have populated all requested keys, loop through + * the list and store the values that were discovered. + */ + uint32_t vendor_id = 0; + uint32_t arch_id = 0; + uint32_t imp_id = 0; + for (size_t pair = 0; pair < pairs_count; pair++) { + switch (pairs[pair].key) { + case RISCV_HWPROBE_KEY_MVENDORID: + vendor_id = pairs[pair].value; + break; + case RISCV_HWPROBE_KEY_MARCHID: + arch_id = pairs[pair].value; + break; + case RISCV_HWPROBE_KEY_MIMPID: + imp_id = pairs[pair].value; + break; + default: + /* The key value may be -1 if unsupported. */ + break; + } + } + cpuinfo_riscv_decode_vendor_uarch(vendor_id, arch_id, imp_id, + vendor, uarch); +} diff --git a/3rdparty/cpuinfo/src/riscv/linux/riscv-isa.c b/3rdparty/cpuinfo/src/riscv/linux/riscv-isa.c new file mode 100644 index 00000000000000..ace451b8582bfe --- /dev/null +++ b/3rdparty/cpuinfo/src/riscv/linux/riscv-isa.c @@ -0,0 +1,44 @@ +#include +#include + +#include + +/** + * arch/riscv/include/uapi/asm/hwcap.h + * + * This must be kept in sync with the upstream kernel header. + */ +#define COMPAT_HWCAP_ISA_I (1 << ('I' - 'A')) +#define COMPAT_HWCAP_ISA_M (1 << ('M' - 'A')) +#define COMPAT_HWCAP_ISA_A (1 << ('A' - 'A')) +#define COMPAT_HWCAP_ISA_F (1 << ('F' - 'A')) +#define COMPAT_HWCAP_ISA_D (1 << ('D' - 'A')) +#define COMPAT_HWCAP_ISA_C (1 << ('C' - 'A')) +#define COMPAT_HWCAP_ISA_V (1 << ('V' - 'A')) + +void cpuinfo_riscv_linux_decode_isa_from_hwcap( + struct cpuinfo_riscv_isa isa[restrict static 1]) { + const unsigned long hwcap = getauxval(AT_HWCAP); + + if (hwcap & COMPAT_HWCAP_ISA_I) { + isa->i = true; + } + if (hwcap & COMPAT_HWCAP_ISA_M) { + isa->m = true; + } + if (hwcap & COMPAT_HWCAP_ISA_A) { + isa->a = true; + } + if (hwcap & COMPAT_HWCAP_ISA_F) { + isa->f = true; + } + if (hwcap & COMPAT_HWCAP_ISA_D) { + isa->d = true; + } + if (hwcap & COMPAT_HWCAP_ISA_C) { + isa->c = true; + } + if (hwcap & COMPAT_HWCAP_ISA_V) { + isa->v = true; + } +} diff --git a/3rdparty/cpuinfo/src/riscv/uarch.c b/3rdparty/cpuinfo/src/riscv/uarch.c new file mode 100644 index 00000000000000..bf93e867d7553c --- /dev/null +++ b/3rdparty/cpuinfo/src/riscv/uarch.c @@ -0,0 +1,27 @@ +#include + +#include +#include + +void cpuinfo_riscv_decode_vendor_uarch( + uint32_t vendor_id, + uint32_t arch_id, + uint32_t imp_id, + enum cpuinfo_vendor vendor[restrict static 1], + enum cpuinfo_uarch uarch[restrict static 1]) { + /* The vendor ID is sufficient to determine the cpuinfo_vendor. */ + switch(vendor_id) { + case cpuinfo_riscv_chipset_sifive: + *vendor = cpuinfo_vendor_sifive; + break; + default: + *vendor = cpuinfo_vendor_unknown; + cpuinfo_log_warning("unknown vendor ID: %"PRIu32, vendor_id); + break; + } + /** + * TODO: Add support for parsing chipset architecture and implementation + * IDs here, when a chipset of interest comes along. + */ + *uarch = cpuinfo_uarch_unknown; +} diff --git a/3rdparty/cpuinfo/src/x86/isa.c b/3rdparty/cpuinfo/src/x86/isa.c index f2e5a281bca2c3..3f36cee148f9a1 100644 --- a/3rdparty/cpuinfo/src/x86/isa.c +++ b/3rdparty/cpuinfo/src/x86/isa.c @@ -490,6 +490,18 @@ struct cpuinfo_x86_isa cpuinfo_x86_detect_isa( */ isa.avx512vp2intersect = avx512_regs && !!(structured_feature_info0.edx & UINT32_C(0x00000100)); + /* + * AVX512_FP16 instructions: + * - Intel: edx[bit 23] in structured feature info (ecx = 0). + */ + isa.avx512fp16 = avx512_regs && !!(structured_feature_info0.edx & UINT32_C(0x00800000)); + + /* + * AVX_VNNI instructions: + * - Intel: eax[bit 4] in structured feature info (ecx = 1). + */ + isa.avxvnni = avx_regs && !!(structured_feature_info1.eax & UINT32_C(0x00000010)); + /* * AVX512_BF16 instructions: * - Intel: eax[bit 5] in structured feature info (ecx = 1). diff --git a/3rdparty/cpuinfo/src/x86/name.c b/3rdparty/cpuinfo/src/x86/name.c index a7cc7c68cb876e..38c47a346530f2 100644 --- a/3rdparty/cpuinfo/src/x86/name.c +++ b/3rdparty/cpuinfo/src/x86/name.c @@ -234,7 +234,7 @@ static bool transform_token(char* token_start, char* token_end, struct parser_st return true; } /* - * Erase everywhing after "SOC" on AMD System-on-Chips, e.g. + * Erase everything after "SOC" on AMD System-on-Chips, e.g. * "AMD GX-212JC SOC with Radeon(TM) R2E Graphics \0" */ if (erase_matching(token_start, token_length, "SOC")) { @@ -581,7 +581,7 @@ uint32_t cpuinfo_x86_normalize_brand_string( /* Iterate through all tokens and erase redundant parts */ { bool is_token = false; - char* token_start; + char* token_start = NULL; for (char* char_ptr = name; char_ptr != name_end; char_ptr++) { if (*char_ptr == ' ') { if (is_token) { @@ -619,7 +619,7 @@ uint32_t cpuinfo_x86_normalize_brand_string( /* Compact tokens: collapse multiple spacing into one */ { char* output_ptr = normalized_name; - char* token_start; + char* token_start = NULL; bool is_token = false; bool previous_token_ends_with_dash = true; bool current_token_starts_with_dash = false; diff --git a/3rdparty/cpuinfo/src/x86/uarch.c b/3rdparty/cpuinfo/src/x86/uarch.c index 3705499422d433..a38d7b0555a419 100644 --- a/3rdparty/cpuinfo/src/x86/uarch.c +++ b/3rdparty/cpuinfo/src/x86/uarch.c @@ -195,35 +195,37 @@ enum cpuinfo_uarch cpuinfo_x86_decode_uarch( } break; case 0x16: - if (model_info->model >= 0x03) { + if (model_info->extended_model >= 0x03) { return cpuinfo_uarch_puma; } else { return cpuinfo_uarch_jaguar; } case 0x17: - switch (model_info->model) { - case 0x01: // 14 nm Naples, Whitehaven, Summit Ridge, Snowy Owl - case 0x08: // 12 nm Pinnacle Ridge - case 0x11: // 14 nm Raven Ridge, Great Horned Owl - case 0x18: // 12 nm Picasso + switch (model_info->extended_model) { + case 0x0: // model 01h -> 14 nm Naples/Whitehaven/Summit Ridge/Snowy Owl, model 08h -> 12 nm Colfax/Pinnacle Ridge + case 0x1: // model 11h -> 14 nm Raven Ridge/Great Horned Owl, model 18h -> 14 nm Banded Kestrel / 12 nm Picasso return cpuinfo_uarch_zen; - case 0x31: // Rome, Castle Peak - case 0x60: // Renoir - case 0x68: // Lucienne - case 0x71: // Matisse - case 0x90: // Van Gogh - case 0x98: // Mero + case 0x3: // model 31h -> Rome/Castle Peak + case 0x4: // model 47h -> Xbox Series X + case 0x6: // model 60h -> Renoir/Grey Hawk, model 68h -> Lucienne + case 0x7: // model 71h -> Matisse + case 0x9: // model 90h -> Van Gogh, model 98h -> Mero return cpuinfo_uarch_zen2; } break; case 0x19: - switch (model_info->model) { - case 0x01: // Genesis - case 0x21: // Vermeer - case 0x30: // Badami, Trento - case 0x40: // Rembrandt - case 0x50: // Cezanne + switch (model_info->extended_model) { + case 0x0: // model 00h -> Genesis, model 01h -> Milan, model 08h -> Chagall + case 0x2: // model 21h -> Vermeer + case 0x3: // model 30h -> Badami, Trento + case 0x4: // model 40h -> Rembrandt + case 0x5: // model 50h -> Cezanne return cpuinfo_uarch_zen3; + case 0x1: // model 10h..1Fh -> Stones + case 0x6: // model 60h..6Fh -> Raphael + case 0x7: // model 70h..77h -> Phoenix/Hawkpoint1, model 78h..7Fh -> Phoenix 2/Hawkpoint2 + case 0xA: // model A0h..AFh -> Stones-Dense + return cpuinfo_uarch_zen4; } break; } diff --git a/3rdparty/cubeb/CMakeLists.txt b/3rdparty/cubeb/CMakeLists.txt index 447ef7f9ebd4e8..cca61d5cfb1b65 100644 --- a/3rdparty/cubeb/CMakeLists.txt +++ b/3rdparty/cubeb/CMakeLists.txt @@ -2,10 +2,8 @@ # - backend selection via command line, rather than simply detecting headers. cmake_minimum_required(VERSION 3.14 FATAL_ERROR) -project(cubeb - VERSION 0.0.0) +project(cubeb C CXX) -option(BUILD_RUST_LIBS "Build rust backends" OFF) option(LAZY_LOAD_LIBS "Lazily load shared libraries" ON) if(NOT CMAKE_BUILD_TYPE) @@ -14,25 +12,17 @@ if(NOT CMAKE_BUILD_TYPE) endif() set(CMAKE_C_STANDARD 99) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) - -if (BUILD_RUST_LIBS) - if(EXISTS "${PROJECT_SOURCE_DIR}/src/cubeb-pulse-rs") - set(USE_PULSE_RUST 1) - endif() - if(EXISTS "${PROJECT_SOURCE_DIR}/src/cubeb-coreaudio-rs") - set(USE_AUDIOUNIT_RUST 1) - endif() -endif() +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_CXX_WARNING_LEVEL 4) if(NOT MSVC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-parameter") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter -fno-exceptions -fno-rtti") else() - string(REPLACE "/GR" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Disable RTTI - string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Disable Exceptions + string(REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # Disable RTTI + string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # Disable Exceptions endif() add_library(cubeb @@ -46,43 +36,15 @@ add_library(cubeb target_include_directories(cubeb PUBLIC $ $ ) -set_target_properties(cubeb PROPERTIES - VERSION ${cubeb_VERSION} - SOVERSION ${cubeb_VERSION_MAJOR} -) - -include(CMakePackageConfigHelpers) -write_basic_package_version_file( - "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" - COMPATIBILITY SameMajorVersion -) - -configure_package_config_file( - "Config.cmake.in" - "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" - INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" -) - -install( - FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" -) - -install(TARGETS cubeb EXPORT "${PROJECT_NAME}Targets") -install( - EXPORT "${PROJECT_NAME}Targets" - NAMESPACE "${PROJECT_NAME}::" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" -) add_library(speex OBJECT subprojects/speex/resample.c) set_target_properties(speex PROPERTIES POSITION_INDEPENDENT_CODE TRUE) target_include_directories(speex INTERFACE subprojects) target_compile_definitions(speex PUBLIC -OUTSIDE_SPEEX -FLOATING_POINT -EXPORT= -RANDOM_PREFIX=speex + OUTSIDE_SPEEX + FLOATING_POINT + EXPORT= + RANDOM_PREFIX=speex ) # $ required because of https://gitlab.kitware.com/cmake/cmake/-/issues/15415 @@ -96,17 +58,19 @@ find_package(Threads) target_link_libraries(cubeb PRIVATE Threads::Threads) if(LAZY_LOAD_LIBS) - check_include_files(pulse/pulseaudio.h USE_PULSE) - check_include_files(alsa/asoundlib.h USE_ALSA) - check_include_files(jack/jack.h USE_JACK) - check_include_files(sndio.h USE_SNDIO) - check_include_files(aaudio/AAudio.h USE_AAUDIO) - - if(USE_PULSE OR USE_ALSA OR USE_JACK OR USE_SNDIO OR USE_AAUDIO) - target_link_libraries(cubeb PRIVATE ${CMAKE_DL_LIBS}) + if(NOT APPLE AND NOT WIN32) + # Skip checks on MacOS because it takes ages in XCode. + check_include_files(pulse/pulseaudio.h USE_PULSE) + check_include_files(alsa/asoundlib.h USE_ALSA) + check_include_files(jack/jack.h USE_JACK) + check_include_files(sndio.h USE_SNDIO) + + if(USE_PULSE OR USE_ALSA OR USE_JACK OR USE_SNDIO) + target_link_libraries(cubeb PRIVATE ${CMAKE_DL_LIBS}) + endif() endif() -else() +elseif(NOT APPLE AND NOT WIN32) find_package(PkgConfig REQUIRED) @@ -136,12 +100,6 @@ else() target_compile_definitions(cubeb PRIVATE DISABLE_LIBSNDIO_DLOPEN) target_link_libraries(cubeb PRIVATE sndio) endif() - - check_include_files(aaudio/AAudio.h USE_AAUDIO) - if(USE_AAUDIO) - target_compile_definitions(cubeb PRIVATE DISABLE_LIBAAUDIO_DLOPEN) - target_link_libraries(cubeb PRIVATE aaudio) - endif() endif() if(USE_PULSE) @@ -164,138 +122,57 @@ if(USE_SNDIO) target_compile_definitions(cubeb PRIVATE USE_SNDIO) endif() -if(USE_AAUDIO) - target_sources(cubeb PRIVATE src/cubeb_aaudio.cpp) - target_compile_definitions(cubeb PRIVATE USE_AAUDIO) - - # set this definition to enable low latency mode. Possibly bad for battery - target_compile_definitions(cubeb PRIVATE CUBEB_AAUDIO_LOW_LATENCY) - - # set this definition to enable power saving mode. Possibly resulting - # in high latency - # target_compile_definitions(cubeb PRIVATE CUBEB_AAUDIO_LOW_POWER_SAVING) - - # set this mode to make the backend use an exclusive stream. - # will decrease latency. - # target_compile_definitions(cubeb PRIVATE CUBEB_AAUDIO_EXCLUSIVE_STREAM) -endif() - -check_include_files(AudioUnit/AudioUnit.h USE_AUDIOUNIT) -if(USE_AUDIOUNIT) - target_sources(cubeb PRIVATE - src/cubeb_audiounit.cpp - src/cubeb_osx_run_loop.cpp) - target_compile_definitions(cubeb PRIVATE USE_AUDIOUNIT) - target_link_libraries(cubeb PRIVATE "-framework AudioUnit" "-framework CoreAudio" "-framework CoreServices") -endif() - -check_include_files(audioclient.h USE_WASAPI) -if(USE_WASAPI) - target_sources(cubeb PRIVATE - src/cubeb_wasapi.cpp) - target_compile_definitions(cubeb PRIVATE USE_WASAPI) - target_link_libraries(cubeb PRIVATE avrt ole32 ksuser) +if(APPLE) + check_include_files(AudioUnit/AudioUnit.h USE_AUDIOUNIT) + if(USE_AUDIOUNIT) + target_sources(cubeb PRIVATE + src/cubeb_audiounit.cpp + src/cubeb_osx_run_loop.cpp) + target_compile_definitions(cubeb PRIVATE USE_AUDIOUNIT) + target_link_libraries(cubeb PRIVATE "-framework AudioUnit" "-framework CoreAudio" "-framework CoreServices") + endif() endif() -check_include_files("windows.h;mmsystem.h" USE_WINMM) -if(USE_WINMM) - target_sources(cubeb PRIVATE - src/cubeb_winmm.c) - target_compile_definitions(cubeb PRIVATE USE_WINMM) - target_link_libraries(cubeb PRIVATE winmm) -endif() +if(WIN32) + check_include_files(audioclient.h USE_WASAPI) + if(USE_WASAPI) + target_sources(cubeb PRIVATE + src/cubeb_wasapi.cpp) + target_compile_definitions(cubeb PRIVATE USE_WASAPI) + target_link_libraries(cubeb PRIVATE avrt ole32 ksuser) + endif() -check_include_files(SLES/OpenSLES.h USE_OPENSL) -if(USE_OPENSL) - target_sources(cubeb PRIVATE - src/cubeb_opensl.c - src/cubeb-jni.cpp) - target_compile_definitions(cubeb PRIVATE USE_OPENSL) - target_link_libraries(cubeb PRIVATE OpenSLES) + check_include_files("windows.h;mmsystem.h" USE_WINMM) + if(USE_WINMM) + target_sources(cubeb PRIVATE + src/cubeb_winmm.c) + target_compile_definitions(cubeb PRIVATE USE_WINMM) + target_link_libraries(cubeb PRIVATE winmm) + endif() endif() -check_include_files(sys/soundcard.h HAVE_SYS_SOUNDCARD_H) -if(HAVE_SYS_SOUNDCARD_H) - try_compile(USE_OSS "${PROJECT_BINARY_DIR}/compile_tests" - ${PROJECT_SOURCE_DIR}/cmake/compile_tests/oss_is_v4.c) - if(USE_OSS) - # strlcpy is not available on BSD systems that use glibc, - # like Debian kfreebsd, so try using libbsd if available - include(CheckSymbolExists) - check_symbol_exists(strlcpy string.h HAVE_STRLCPY) - if(NOT HAVE_STRLCPY) - pkg_check_modules(libbsd-overlay IMPORTED_TARGET libbsd-overlay) - if(libbsd-overlay_FOUND) - target_link_libraries(cubeb PRIVATE PkgConfig::libbsd-overlay) - set(HAVE_STRLCPY true) +if(NOT WIN32 AND NOT APPLE) + check_include_files(sys/soundcard.h HAVE_SYS_SOUNDCARD_H) + if(HAVE_SYS_SOUNDCARD_H) + try_compile(USE_OSS "${PROJECT_BINARY_DIR}/compile_tests" + ${PROJECT_SOURCE_DIR}/cmake/compile_tests/oss_is_v4.c) + if(USE_OSS) + # strlcpy is not available on BSD systems that use glibc, + # like Debian kfreebsd, so try using libbsd if available + include(CheckSymbolExists) + check_symbol_exists(strlcpy string.h HAVE_STRLCPY) + if(NOT HAVE_STRLCPY) + pkg_check_modules(libbsd-overlay IMPORTED_TARGET libbsd-overlay) + if(libbsd-overlay_FOUND) + target_link_libraries(cubeb PRIVATE PkgConfig::libbsd-overlay) + set(HAVE_STRLCPY true) + endif() + endif() + if (HAVE_STRLCPY) + target_sources(cubeb PRIVATE + src/cubeb_oss.c) + target_compile_definitions(cubeb PRIVATE USE_OSS) endif() - endif() - if (HAVE_STRLCPY) - target_sources(cubeb PRIVATE - src/cubeb_oss.c) - target_compile_definitions(cubeb PRIVATE USE_OSS) endif() endif() endif() - -check_include_files(android/log.h USE_AUDIOTRACK) -if(USE_AUDIOTRACK) - target_sources(cubeb PRIVATE - src/cubeb_audiotrack.c) - target_compile_definitions(cubeb PRIVATE USE_AUDIOTRACK) - target_link_libraries(cubeb PRIVATE log) -endif() - -check_include_files(sys/audioio.h USE_SUN) -if(USE_SUN) - target_sources(cubeb PRIVATE - src/cubeb_sun.c) - target_compile_definitions(cubeb PRIVATE USE_SUN) -endif() - -check_include_files(kai.h USE_KAI) -if(USE_KAI) - target_sources(cubeb PRIVATE - src/cubeb_kai.c) - target_compile_definitions(cubeb PRIVATE USE_KAI) - target_link_libraries(cubeb PRIVATE kai) -endif() - -if(USE_PULSE AND USE_PULSE_RUST) - include(ExternalProject) - set_directory_properties(PROPERTIES EP_PREFIX ${CMAKE_BINARY_DIR}/rust) - ExternalProject_Add( - cubeb_pulse_rs - DOWNLOAD_COMMAND "" - CONFIGURE_COMMAND "" - BUILD_COMMAND cargo build COMMAND cargo build --release - BUILD_ALWAYS ON - BINARY_DIR "${PROJECT_SOURCE_DIR}/src/cubeb-pulse-rs" - INSTALL_COMMAND "" - LOG_BUILD ON) - add_dependencies(cubeb cubeb_pulse_rs) - target_compile_definitions(cubeb PRIVATE USE_PULSE_RUST) - target_link_libraries(cubeb PRIVATE - debug "${PROJECT_SOURCE_DIR}/src/cubeb-pulse-rs/target/debug/libcubeb_pulse.a" - optimized "${PROJECT_SOURCE_DIR}/src/cubeb-pulse-rs/target/release/libcubeb_pulse.a" pulse) -endif() - -if(USE_AUDIOUNIT AND USE_AUDIOUNIT_RUST) - include(ExternalProject) - set_directory_properties(PROPERTIES EP_PREFIX ${CMAKE_BINARY_DIR}/rust) - ExternalProject_Add( - cubeb_coreaudio_rs - DOWNLOAD_COMMAND "" - CONFIGURE_COMMAND "" - BUILD_COMMAND cargo build COMMAND cargo build --release - BUILD_ALWAYS ON - BINARY_DIR "${PROJECT_SOURCE_DIR}/src/cubeb-coreaudio-rs" - INSTALL_COMMAND "" - LOG_BUILD ON) - add_dependencies(cubeb cubeb_coreaudio_rs) - target_compile_definitions(cubeb PRIVATE USE_AUDIOUNIT_RUST) - target_link_libraries(cubeb PRIVATE - debug "${PROJECT_SOURCE_DIR}/src/cubeb-coreaudio-rs/target/debug/libcubeb_coreaudio.a" - optimized "${PROJECT_SOURCE_DIR}/src/cubeb-coreaudio-rs/target/release/libcubeb_coreaudio.a") -endif() - diff --git a/3rdparty/cubeb/Config.cmake.in b/3rdparty/cubeb/Config.cmake.in deleted file mode 100644 index be464aa4923e21..00000000000000 --- a/3rdparty/cubeb/Config.cmake.in +++ /dev/null @@ -1,4 +0,0 @@ -@PACKAGE_INIT@ - -include("${CMAKE_CURRENT_LIST_DIR}/cubebTargets.cmake") -check_required_components(cubeb) diff --git a/3rdparty/cubeb/cmake/toolchain-cross-mingw.cmake b/3rdparty/cubeb/cmake/toolchain-cross-mingw.cmake deleted file mode 100644 index 6d29fe24051a2b..00000000000000 --- a/3rdparty/cubeb/cmake/toolchain-cross-mingw.cmake +++ /dev/null @@ -1,14 +0,0 @@ -SET(CMAKE_SYSTEM_NAME Windows) - -set(COMPILER_PREFIX "i686-w64-mingw32") - -find_program(CMAKE_RC_COMPILER NAMES ${COMPILER_PREFIX}-windres) -find_program(CMAKE_C_COMPILER NAMES ${COMPILER_PREFIX}-gcc-posix) -find_program(CMAKE_CXX_COMPILER NAMES ${COMPILER_PREFIX}-g++-posix) - -SET(CMAKE_FIND_ROOT_PATH /usr/${COMPILER_PREFIX}) - -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - diff --git a/3rdparty/cubeb/cubeb.supp b/3rdparty/cubeb/cubeb.supp deleted file mode 100644 index 0012ea51e6543a..00000000000000 --- a/3rdparty/cubeb/cubeb.supp +++ /dev/null @@ -1,36 +0,0 @@ -{ - snd_config_update-malloc - Memcheck:Leak - fun:malloc - ... - fun:snd_config_update_r -} -{ - snd1_dlobj_cache_get-malloc - Memcheck:Leak - fun:malloc - ... - fun:snd1_dlobj_cache_get -} -{ - parse_defs-malloc - Memcheck:Leak - fun:malloc - ... - fun:parse_defs -} -{ - parse_defs-calloc - Memcheck:Leak - fun:calloc - ... - fun:parse_defs -} -{ - pa_client_conf_from_x11-malloc - Memcheck:Leak - fun:malloc - ... - fun:pa_client_conf_from_x11 -} - diff --git a/3rdparty/cubeb/cubeb.vcxproj b/3rdparty/cubeb/cubeb.vcxproj index 3bc1551eca4303..fdcb90225330cc 100644 --- a/3rdparty/cubeb/cubeb.vcxproj +++ b/3rdparty/cubeb/cubeb.vcxproj @@ -49,7 +49,6 @@ - @@ -73,6 +72,11 @@ + + + ksuser.lib;%(AdditionalDependencies) + + \ No newline at end of file diff --git a/3rdparty/cubeb/cubeb.vcxproj.filters b/3rdparty/cubeb/cubeb.vcxproj.filters index 5920cfb6b16197..9d203d815326ce 100644 --- a/3rdparty/cubeb/cubeb.vcxproj.filters +++ b/3rdparty/cubeb/cubeb.vcxproj.filters @@ -3,7 +3,6 @@ - diff --git a/3rdparty/cubeb/include/cubeb/cubeb.h b/3rdparty/cubeb/include/cubeb/cubeb.h index 300e4b31881495..9c7e607ad2158f 100644 --- a/3rdparty/cubeb/include/cubeb/cubeb.h +++ b/3rdparty/cubeb/include/cubeb/cubeb.h @@ -163,6 +163,7 @@ typedef enum { implications. */ } cubeb_log_level; +/// A single channel position, to be used in a bitmask. typedef enum { CHANNEL_UNKNOWN = 0, CHANNEL_FRONT_LEFT = 1 << 0, @@ -185,43 +186,46 @@ typedef enum { CHANNEL_TOP_BACK_RIGHT = 1 << 17 } cubeb_channel; +/// A bitmask representing the channel layout of a cubeb stream. This is +/// bit-compatible with WAVEFORMATEXENSIBLE and in the same order as the SMPTE +/// ordering. typedef uint32_t cubeb_channel_layout; // Some common layout definitions. enum { CUBEB_LAYOUT_UNDEFINED = 0, // Indicate the speaker's layout is undefined. - CUBEB_LAYOUT_MONO = CHANNEL_FRONT_CENTER, - CUBEB_LAYOUT_MONO_LFE = CUBEB_LAYOUT_MONO | CHANNEL_LOW_FREQUENCY, - CUBEB_LAYOUT_STEREO = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT, - CUBEB_LAYOUT_STEREO_LFE = CUBEB_LAYOUT_STEREO | CHANNEL_LOW_FREQUENCY, + CUBEB_LAYOUT_MONO = (uint32_t)CHANNEL_FRONT_CENTER, + CUBEB_LAYOUT_MONO_LFE = (uint32_t)CUBEB_LAYOUT_MONO | (uint32_t)CHANNEL_LOW_FREQUENCY, + CUBEB_LAYOUT_STEREO = (uint32_t)CHANNEL_FRONT_LEFT | (uint32_t)CHANNEL_FRONT_RIGHT, + CUBEB_LAYOUT_STEREO_LFE = (uint32_t)CUBEB_LAYOUT_STEREO | (uint32_t)CHANNEL_LOW_FREQUENCY, CUBEB_LAYOUT_3F = - CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT | CHANNEL_FRONT_CENTER, - CUBEB_LAYOUT_3F_LFE = CUBEB_LAYOUT_3F | CHANNEL_LOW_FREQUENCY, + (uint32_t)CHANNEL_FRONT_LEFT | (uint32_t)CHANNEL_FRONT_RIGHT | (uint32_t)CHANNEL_FRONT_CENTER, + CUBEB_LAYOUT_3F_LFE = (uint32_t)CUBEB_LAYOUT_3F | (uint32_t)CHANNEL_LOW_FREQUENCY, CUBEB_LAYOUT_2F1 = - CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT | CHANNEL_BACK_CENTER, - CUBEB_LAYOUT_2F1_LFE = CUBEB_LAYOUT_2F1 | CHANNEL_LOW_FREQUENCY, - CUBEB_LAYOUT_3F1 = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT | - CHANNEL_FRONT_CENTER | CHANNEL_BACK_CENTER, - CUBEB_LAYOUT_3F1_LFE = CUBEB_LAYOUT_3F1 | CHANNEL_LOW_FREQUENCY, - CUBEB_LAYOUT_2F2 = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT | - CHANNEL_SIDE_LEFT | CHANNEL_SIDE_RIGHT, - CUBEB_LAYOUT_2F2_LFE = CUBEB_LAYOUT_2F2 | CHANNEL_LOW_FREQUENCY, - CUBEB_LAYOUT_QUAD = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT | - CHANNEL_BACK_LEFT | CHANNEL_BACK_RIGHT, - CUBEB_LAYOUT_QUAD_LFE = CUBEB_LAYOUT_QUAD | CHANNEL_LOW_FREQUENCY, - CUBEB_LAYOUT_3F2 = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT | - CHANNEL_FRONT_CENTER | CHANNEL_SIDE_LEFT | - CHANNEL_SIDE_RIGHT, - CUBEB_LAYOUT_3F2_LFE = CUBEB_LAYOUT_3F2 | CHANNEL_LOW_FREQUENCY, - CUBEB_LAYOUT_3F2_BACK = CUBEB_LAYOUT_QUAD | CHANNEL_FRONT_CENTER, - CUBEB_LAYOUT_3F2_LFE_BACK = CUBEB_LAYOUT_3F2_BACK | CHANNEL_LOW_FREQUENCY, - CUBEB_LAYOUT_3F3R_LFE = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT | - CHANNEL_FRONT_CENTER | CHANNEL_LOW_FREQUENCY | - CHANNEL_BACK_CENTER | CHANNEL_SIDE_LEFT | - CHANNEL_SIDE_RIGHT, - CUBEB_LAYOUT_3F4_LFE = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT | - CHANNEL_FRONT_CENTER | CHANNEL_LOW_FREQUENCY | - CHANNEL_BACK_LEFT | CHANNEL_BACK_RIGHT | - CHANNEL_SIDE_LEFT | CHANNEL_SIDE_RIGHT, + (uint32_t)CHANNEL_FRONT_LEFT | (uint32_t)CHANNEL_FRONT_RIGHT | (uint32_t)CHANNEL_BACK_CENTER, + CUBEB_LAYOUT_2F1_LFE = (uint32_t)CUBEB_LAYOUT_2F1 | (uint32_t)CHANNEL_LOW_FREQUENCY, + CUBEB_LAYOUT_3F1 = (uint32_t)CHANNEL_FRONT_LEFT | (uint32_t)CHANNEL_FRONT_RIGHT | + (uint32_t)CHANNEL_FRONT_CENTER | (uint32_t)CHANNEL_BACK_CENTER, + CUBEB_LAYOUT_3F1_LFE = (uint32_t)CUBEB_LAYOUT_3F1 | (uint32_t)CHANNEL_LOW_FREQUENCY, + CUBEB_LAYOUT_2F2 = (uint32_t)CHANNEL_FRONT_LEFT | (uint32_t)CHANNEL_FRONT_RIGHT | + (uint32_t)CHANNEL_SIDE_LEFT | (uint32_t)CHANNEL_SIDE_RIGHT, + CUBEB_LAYOUT_2F2_LFE = (uint32_t)CUBEB_LAYOUT_2F2 | (uint32_t)CHANNEL_LOW_FREQUENCY, + CUBEB_LAYOUT_QUAD = (uint32_t)CHANNEL_FRONT_LEFT | (uint32_t)CHANNEL_FRONT_RIGHT | + (uint32_t)CHANNEL_BACK_LEFT | (uint32_t)CHANNEL_BACK_RIGHT, + CUBEB_LAYOUT_QUAD_LFE = (uint32_t)CUBEB_LAYOUT_QUAD | (uint32_t)CHANNEL_LOW_FREQUENCY, + CUBEB_LAYOUT_3F2 = (uint32_t)CHANNEL_FRONT_LEFT | (uint32_t)CHANNEL_FRONT_RIGHT | + (uint32_t)CHANNEL_FRONT_CENTER | (uint32_t)CHANNEL_SIDE_LEFT | + (uint32_t)CHANNEL_SIDE_RIGHT, + CUBEB_LAYOUT_3F2_LFE = (uint32_t)CUBEB_LAYOUT_3F2 | (uint32_t)CHANNEL_LOW_FREQUENCY, + CUBEB_LAYOUT_3F2_BACK = (uint32_t)CUBEB_LAYOUT_QUAD | (uint32_t)CHANNEL_FRONT_CENTER, + CUBEB_LAYOUT_3F2_LFE_BACK = (uint32_t)CUBEB_LAYOUT_3F2_BACK | (uint32_t)CHANNEL_LOW_FREQUENCY, + CUBEB_LAYOUT_3F3R_LFE = (uint32_t)CHANNEL_FRONT_LEFT | (uint32_t)CHANNEL_FRONT_RIGHT | + (uint32_t)CHANNEL_FRONT_CENTER | (uint32_t)CHANNEL_LOW_FREQUENCY | + (uint32_t)CHANNEL_BACK_CENTER | (uint32_t)CHANNEL_SIDE_LEFT | + (uint32_t)CHANNEL_SIDE_RIGHT, + CUBEB_LAYOUT_3F4_LFE = (uint32_t)CHANNEL_FRONT_LEFT | (uint32_t)CHANNEL_FRONT_RIGHT | + (uint32_t)CHANNEL_FRONT_CENTER | (uint32_t)CHANNEL_LOW_FREQUENCY | + (uint32_t)CHANNEL_BACK_LEFT | (uint32_t)CHANNEL_BACK_RIGHT | + (uint32_t)CHANNEL_SIDE_LEFT | (uint32_t)CHANNEL_SIDE_RIGHT, }; /** Miscellaneous stream preferences. */ @@ -433,7 +437,7 @@ typedef void (*cubeb_state_callback)(cubeb_stream * stream, void * user_ptr, /** * User supplied callback called when the underlying device changed. - * @param user The pointer passed to cubeb_stream_init. */ + * @param user_ptr The pointer passed to cubeb_stream_init. */ typedef void (*cubeb_device_changed_callback)(void * user_ptr); /** @@ -471,7 +475,7 @@ cubeb_init(cubeb ** context, char const * context_name, /** Returns a list of backend names which can be supplid to cubeb_init(). Array is null-terminated. */ -CUBEB_EXPORT const char* const* +CUBEB_EXPORT const char** cubeb_get_backend_names(); /** Get a read-only string identifying this context's current backend. diff --git a/3rdparty/cubeb/include/cubeb/cubeb_export.h b/3rdparty/cubeb/include/cubeb/cubeb_export.h new file mode 100644 index 00000000000000..fa4cf0ca0ddb86 --- /dev/null +++ b/3rdparty/cubeb/include/cubeb/cubeb_export.h @@ -0,0 +1,12 @@ +#ifndef CUBEB_EXPORT_H +#define CUBEB_EXPORT_H + +#define CUBEB_EXPORT +#define CUBEB_NO_EXPORT + +#ifdef WIN32 +#pragma comment(lib, "winmm.lib") +#pragma comment(lib, "avrt.lib") +#endif + +#endif diff --git a/3rdparty/cubeb/include/cubeb_export.h b/3rdparty/cubeb/include/cubeb_export.h deleted file mode 100644 index dda45aca22c424..00000000000000 --- a/3rdparty/cubeb/include/cubeb_export.h +++ /dev/null @@ -1,25 +0,0 @@ -/* PCSX2 - PS2 Emulator for PCs - * Copyright (C) 2002-2021 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; - * without even the implied warranty of 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 PCSX2. - * If not, see . - */ - -#pragma once - -#define CUBEB_EXPORT -#define CUBEB_NO_EXPORT - -#ifdef WIN32 -#pragma comment(lib, "winmm.lib") -#pragma comment(lib, "avrt.lib") -#pragma comment(lib, "ksuser.lib") -#endif diff --git a/3rdparty/cubeb/src/android/audiotrack_definitions.h b/3rdparty/cubeb/src/android/audiotrack_definitions.h deleted file mode 100644 index f6b6931fa4f87a..00000000000000 --- a/3rdparty/cubeb/src/android/audiotrack_definitions.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include - -/* - * The following definitions are copied from the android sources. Only the - * relevant enum member and values needed are copied. - */ - -/* - * From - * https://android.googlesource.com/platform/frameworks/base/+/android-2.2.3_r2.1/include/utils/Errors.h - */ -typedef int32_t status_t; - -/* - * From - * https://android.googlesource.com/platform/frameworks/base/+/android-2.2.3_r2.1/include/media/AudioTrack.h - */ -struct Buffer { - uint32_t flags; - int channelCount; - int format; - size_t frameCount; - size_t size; - union { - void * raw; - short * i16; - int8_t * i8; - }; -}; - -enum event_type { - EVENT_MORE_DATA = 0, - EVENT_UNDERRUN = 1, - EVENT_LOOP_END = 2, - EVENT_MARKER = 3, - EVENT_NEW_POS = 4, - EVENT_BUFFER_END = 5 -}; - -/** - * From - * https://android.googlesource.com/platform/frameworks/base/+/android-2.2.3_r2.1/include/media/AudioSystem.h - * and - * https://android.googlesource.com/platform/system/core/+/android-4.2.2_r1/include/system/audio.h - */ - -#define AUDIO_STREAM_TYPE_MUSIC 3 - -enum { - AUDIO_CHANNEL_OUT_FRONT_LEFT_ICS = 0x1, - AUDIO_CHANNEL_OUT_FRONT_RIGHT_ICS = 0x2, - AUDIO_CHANNEL_OUT_MONO_ICS = AUDIO_CHANNEL_OUT_FRONT_LEFT_ICS, - AUDIO_CHANNEL_OUT_STEREO_ICS = - (AUDIO_CHANNEL_OUT_FRONT_LEFT_ICS | AUDIO_CHANNEL_OUT_FRONT_RIGHT_ICS) -} AudioTrack_ChannelMapping_ICS; - -enum { - AUDIO_CHANNEL_OUT_FRONT_LEFT_Legacy = 0x4, - AUDIO_CHANNEL_OUT_FRONT_RIGHT_Legacy = 0x8, - AUDIO_CHANNEL_OUT_MONO_Legacy = AUDIO_CHANNEL_OUT_FRONT_LEFT_Legacy, - AUDIO_CHANNEL_OUT_STEREO_Legacy = (AUDIO_CHANNEL_OUT_FRONT_LEFT_Legacy | - AUDIO_CHANNEL_OUT_FRONT_RIGHT_Legacy) -} AudioTrack_ChannelMapping_Legacy; - -typedef enum { - AUDIO_FORMAT_PCM = 0x00000000, - AUDIO_FORMAT_PCM_SUB_16_BIT = 0x1, - AUDIO_FORMAT_PCM_16_BIT = (AUDIO_FORMAT_PCM | AUDIO_FORMAT_PCM_SUB_16_BIT), -} AudioTrack_SampleType; diff --git a/3rdparty/cubeb/src/android/cubeb-output-latency.h b/3rdparty/cubeb/src/android/cubeb-output-latency.h deleted file mode 100644 index 870a884a3c1a91..00000000000000 --- a/3rdparty/cubeb/src/android/cubeb-output-latency.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef _CUBEB_OUTPUT_LATENCY_H_ -#define _CUBEB_OUTPUT_LATENCY_H_ - -#include "../cubeb-jni.h" -#include "cubeb_media_library.h" -#include - -struct output_latency_function { - media_lib * from_lib; - cubeb_jni * from_jni; - int version; -}; - -typedef struct output_latency_function output_latency_function; - -const int ANDROID_JELLY_BEAN_MR1_4_2 = 17; - -output_latency_function * -cubeb_output_latency_load_method(int version) -{ - output_latency_function * ol = NULL; - ol = calloc(1, sizeof(output_latency_function)); - - ol->version = version; - - if (ol->version > ANDROID_JELLY_BEAN_MR1_4_2) { - ol->from_jni = cubeb_jni_init(); - return ol; - } - - ol->from_lib = cubeb_load_media_library(); - return ol; -} - -bool -cubeb_output_latency_method_is_loaded(output_latency_function * ol) -{ - assert(ol); - if (ol->version > ANDROID_JELLY_BEAN_MR1_4_2) { - return !!ol->from_jni; - } - - return !!ol->from_lib; -} - -void -cubeb_output_latency_unload_method(output_latency_function * ol) -{ - if (!ol) { - return; - } - - if (ol->version > ANDROID_JELLY_BEAN_MR1_4_2 && ol->from_jni) { - cubeb_jni_destroy(ol->from_jni); - } - - if (ol->version <= ANDROID_JELLY_BEAN_MR1_4_2 && ol->from_lib) { - cubeb_close_media_library(ol->from_lib); - } - - free(ol); -} - -uint32_t -cubeb_get_output_latency(output_latency_function * ol) -{ - assert(cubeb_output_latency_method_is_loaded(ol)); - - if (ol->version > ANDROID_JELLY_BEAN_MR1_4_2) { - return cubeb_get_output_latency_from_jni(ol->from_jni); - } - - return cubeb_get_output_latency_from_media_library(ol->from_lib); -} - -#endif // _CUBEB_OUTPUT_LATENCY_H_ diff --git a/3rdparty/cubeb/src/android/cubeb_media_library.h b/3rdparty/cubeb/src/android/cubeb_media_library.h deleted file mode 100644 index 27fbc86ec2f124..00000000000000 --- a/3rdparty/cubeb/src/android/cubeb_media_library.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef _CUBEB_MEDIA_LIBRARY_H_ -#define _CUBEB_MEDIA_LIBRARY_H_ - -struct media_lib { - void * libmedia; - int32_t (*get_output_latency)(uint32_t * latency, int stream_type); -}; - -typedef struct media_lib media_lib; - -media_lib * -cubeb_load_media_library() -{ - media_lib ml = {0}; - ml.libmedia = dlopen("libmedia.so", RTLD_LAZY); - if (!ml.libmedia) { - return NULL; - } - - // Get the latency, in ms, from AudioFlinger. First, try the most recent - // signature. status_t AudioSystem::getOutputLatency(uint32_t* latency, - // audio_stream_type_t streamType) - ml.get_output_latency = dlsym( - ml.libmedia, - "_ZN7android11AudioSystem16getOutputLatencyEPj19audio_stream_type_t"); - if (!ml.get_output_latency) { - // In case of failure, try the signature from legacy version. - // status_t AudioSystem::getOutputLatency(uint32_t* latency, int streamType) - ml.get_output_latency = - dlsym(ml.libmedia, "_ZN7android11AudioSystem16getOutputLatencyEPji"); - if (!ml.get_output_latency) { - return NULL; - } - } - - media_lib * rv = NULL; - rv = calloc(1, sizeof(media_lib)); - assert(rv); - *rv = ml; - return rv; -} - -void -cubeb_close_media_library(media_lib * ml) -{ - dlclose(ml->libmedia); - ml->libmedia = NULL; - ml->get_output_latency = NULL; - free(ml); -} - -uint32_t -cubeb_get_output_latency_from_media_library(media_lib * ml) -{ - uint32_t latency = 0; - const int audio_stream_type_music = 3; - int32_t r = ml->get_output_latency(&latency, audio_stream_type_music); - if (r) { - return 0; - } - return latency; -} - -#endif // _CUBEB_MEDIA_LIBRARY_H_ diff --git a/3rdparty/cubeb/src/android/sles_definitions.h b/3rdparty/cubeb/src/android/sles_definitions.h deleted file mode 100644 index b107003d1b5f69..00000000000000 --- a/3rdparty/cubeb/src/android/sles_definitions.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * This file is similar to the file "OpenSLES_AndroidConfiguration.h" found in - * the Android NDK, but removes the #ifdef __cplusplus defines, so we can keep - * using a C compiler in cubeb. - */ - -#ifndef OPENSL_ES_ANDROIDCONFIGURATION_H_ -#define OPENSL_ES_ANDROIDCONFIGURATION_H_ - -/*---------------------------------------------------------------------------*/ -/* Android AudioRecorder configuration */ -/*---------------------------------------------------------------------------*/ - -/** Audio recording preset */ -/** Audio recording preset key */ -#define SL_ANDROID_KEY_RECORDING_PRESET \ - ((const SLchar *)"androidRecordingPreset") -/** Audio recording preset values */ -/** preset "none" cannot be set, it is used to indicate the current settings - * do not match any of the presets. */ -#define SL_ANDROID_RECORDING_PRESET_NONE ((SLuint32)0x00000000) -/** generic recording configuration on the platform */ -#define SL_ANDROID_RECORDING_PRESET_GENERIC ((SLuint32)0x00000001) -/** uses the microphone audio source with the same orientation as the camera - * if available, the main device microphone otherwise */ -#define SL_ANDROID_RECORDING_PRESET_CAMCORDER ((SLuint32)0x00000002) -/** uses the main microphone tuned for voice recognition */ -#define SL_ANDROID_RECORDING_PRESET_VOICE_RECOGNITION ((SLuint32)0x00000003) -/** uses the main microphone tuned for audio communications */ -#define SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION ((SLuint32)0x00000004) -/** uses the main microphone unprocessed */ -#define SL_ANDROID_RECORDING_PRESET_UNPROCESSED ((SLuint32)0x00000005) - -/*---------------------------------------------------------------------------*/ -/* Android AudioPlayer configuration */ -/*---------------------------------------------------------------------------*/ - -/** Audio playback stream type */ -/** Audio playback stream type key */ -#define SL_ANDROID_KEY_STREAM_TYPE ((const SLchar *)"androidPlaybackStreamType") - -/** Audio playback stream type values */ -/* same as android.media.AudioManager.STREAM_VOICE_CALL */ -#define SL_ANDROID_STREAM_VOICE ((SLint32)0x00000000) -/* same as android.media.AudioManager.STREAM_SYSTEM */ -#define SL_ANDROID_STREAM_SYSTEM ((SLint32)0x00000001) -/* same as android.media.AudioManager.STREAM_RING */ -#define SL_ANDROID_STREAM_RING ((SLint32)0x00000002) -/* same as android.media.AudioManager.STREAM_MUSIC */ -#define SL_ANDROID_STREAM_MEDIA ((SLint32)0x00000003) -/* same as android.media.AudioManager.STREAM_ALARM */ -#define SL_ANDROID_STREAM_ALARM ((SLint32)0x00000004) -/* same as android.media.AudioManager.STREAM_NOTIFICATION */ -#define SL_ANDROID_STREAM_NOTIFICATION ((SLint32)0x00000005) - -/*---------------------------------------------------------------------------*/ -/* Android AudioPlayer and AudioRecorder configuration */ -/*---------------------------------------------------------------------------*/ - -/** Audio Performance mode. - * Performance mode tells the framework how to configure the audio path - * for a player or recorder according to application performance and - * functional requirements. - * It affects the output or input latency based on acceptable tradeoffs on - * battery drain and use of pre or post processing effects. - * Performance mode should be set before realizing the object and should be - * read after realizing the object to check if the requested mode could be - * granted or not. - */ -/** Audio Performance mode key */ -#define SL_ANDROID_KEY_PERFORMANCE_MODE \ - ((const SLchar *)"androidPerformanceMode") - -/** Audio performance values */ -/* No specific performance requirement. Allows HW and SW pre/post - * processing. */ -#define SL_ANDROID_PERFORMANCE_NONE ((SLuint32)0x00000000) -/* Priority given to latency. No HW or software pre/post processing. - * This is the default if no performance mode is specified. */ -#define SL_ANDROID_PERFORMANCE_LATENCY ((SLuint32)0x00000001) -/* Priority given to latency while still allowing HW pre and post - * processing. */ -#define SL_ANDROID_PERFORMANCE_LATENCY_EFFECTS ((SLuint32)0x00000002) -/* Priority given to power saving if latency is not a concern. - * Allows HW and SW pre/post processing. */ -#define SL_ANDROID_PERFORMANCE_POWER_SAVING ((SLuint32)0x00000003) - -#endif /* OPENSL_ES_ANDROIDCONFIGURATION_H_ */ diff --git a/3rdparty/cubeb/src/cubeb-jni.h b/3rdparty/cubeb/src/cubeb-jni.h index c4a712a0626acd..d63629fb91c23e 100644 --- a/3rdparty/cubeb/src/cubeb-jni.h +++ b/3rdparty/cubeb/src/cubeb-jni.h @@ -3,6 +3,10 @@ typedef struct cubeb_jni cubeb_jni; +#ifdef __cplusplus +extern "C" { +#endif + cubeb_jni * cubeb_jni_init(); int @@ -10,4 +14,8 @@ cubeb_get_output_latency_from_jni(cubeb_jni * cubeb_jni_ptr); void cubeb_jni_destroy(cubeb_jni * cubeb_jni_ptr); +#ifdef __cplusplus +}; +#endif + #endif // _CUBEB_JNI_H_ diff --git a/3rdparty/cubeb/src/cubeb-sles.h b/3rdparty/cubeb/src/cubeb-sles.h deleted file mode 100644 index ca93543c0b6295..00000000000000 --- a/3rdparty/cubeb/src/cubeb-sles.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright © 2016 Mozilla Foundation - * - * This program is made available under an ISC-style license. See the - * accompanying file LICENSE for details. - */ - -#ifndef _CUBEB_SLES_H_ -#define _CUBEB_SLES_H_ -#include - -static SLresult -cubeb_get_sles_engine(SLObjectItf * pEngine, SLuint32 numOptions, - const SLEngineOption * pEngineOptions, - SLuint32 numInterfaces, - const SLInterfaceID * pInterfaceIds, - const SLboolean * pInterfaceRequired) -{ - return slCreateEngine(pEngine, numOptions, pEngineOptions, numInterfaces, - pInterfaceIds, pInterfaceRequired); -} - -static void -cubeb_destroy_sles_engine(SLObjectItf * self) -{ - if (*self != NULL) { - (**self)->Destroy(*self); - *self = NULL; - } -} - -static SLresult -cubeb_realize_sles_engine(SLObjectItf self) -{ - return (*self)->Realize(self, SL_BOOLEAN_FALSE); -} - -#endif diff --git a/3rdparty/cubeb/src/cubeb.c b/3rdparty/cubeb/src/cubeb.c index 99659ce939aea2..d4a2b868c52335 100644 --- a/3rdparty/cubeb/src/cubeb.c +++ b/3rdparty/cubeb/src/cubeb.c @@ -31,10 +31,6 @@ struct cubeb_stream { int pulse_init(cubeb ** context, char const * context_name); #endif -#if defined(USE_PULSE_RUST) -int -pulse_rust_init(cubeb ** contet, char const * context_name); -#endif #if defined(USE_JACK) int jack_init(cubeb ** context, char const * context_name); @@ -47,10 +43,6 @@ alsa_init(cubeb ** context, char const * context_name); int audiounit_init(cubeb ** context, char const * context_name); #endif -#if defined(USE_AUDIOUNIT_RUST) -int -audiounit_rust_init(cubeb ** contet, char const * context_name); -#endif #if defined(USE_WINMM) int winmm_init(cubeb ** context, char const * context_name); @@ -63,30 +55,10 @@ wasapi_init(cubeb ** context, char const * context_name); int sndio_init(cubeb ** context, char const * context_name); #endif -#if defined(USE_SUN) -int -sun_init(cubeb ** context, char const * context_name); -#endif -#if defined(USE_OPENSL) -int -opensl_init(cubeb ** context, char const * context_name); -#endif #if defined(USE_OSS) int oss_init(cubeb ** context, char const * context_name); #endif -#if defined(USE_AAUDIO) -int -aaudio_init(cubeb ** context, char const * context_name); -#endif -#if defined(USE_AUDIOTRACK) -int -audiotrack_init(cubeb ** context, char const * context_name); -#endif -#if defined(USE_KAI) -int -kai_init(cubeb ** context, char const * context_name); -#endif static int validate_stream_params(cubeb_stream_params * input_stream_params, @@ -151,10 +123,6 @@ cubeb_init(cubeb ** context, char const * context_name, if (!strcmp(backend_name, "pulse")) { #if defined(USE_PULSE) init_oneshot = pulse_init; -#endif - } else if (!strcmp(backend_name, "pulse-rust")) { -#if defined(USE_PULSE_RUST) - init_oneshot = pulse_rust_init; #endif } else if (!strcmp(backend_name, "jack")) { #if defined(USE_JACK) @@ -167,10 +135,6 @@ cubeb_init(cubeb ** context, char const * context_name, } else if (!strcmp(backend_name, "audiounit")) { #if defined(USE_AUDIOUNIT) init_oneshot = audiounit_init; -#endif - } else if (!strcmp(backend_name, "audiounit-rust")) { -#if defined(USE_AUDIOUNIT_RUST) - init_oneshot = audiounit_rust_init; #endif } else if (!strcmp(backend_name, "wasapi")) { #if defined(USE_WASAPI) @@ -183,30 +147,10 @@ cubeb_init(cubeb ** context, char const * context_name, } else if (!strcmp(backend_name, "sndio")) { #if defined(USE_SNDIO) init_oneshot = sndio_init; -#endif - } else if (!strcmp(backend_name, "sun")) { -#if defined(USE_SUN) - init_oneshot = sun_init; -#endif - } else if (!strcmp(backend_name, "opensl")) { -#if defined(USE_OPENSL) - init_oneshot = opensl_init; #endif } else if (!strcmp(backend_name, "oss")) { #if defined(USE_OSS) init_oneshot = oss_init; -#endif - } else if (!strcmp(backend_name, "aaudio")) { -#if defined(USE_AAUDIO) - init_oneshot = aaudio_init; -#endif - } else if (!strcmp(backend_name, "audiotrack")) { -#if defined(USE_AUDIOTRACK) - init_oneshot = audiotrack_init; -#endif - } else if (!strcmp(backend_name, "kai")) { -#if defined(USE_KAI) - init_oneshot = kai_init; #endif } else { /* Already set */ @@ -219,9 +163,6 @@ cubeb_init(cubeb ** context, char const * context_name, * to override all other choices */ init_oneshot, -#if defined(USE_PULSE_RUST) - pulse_rust_init, -#endif #if defined(USE_PULSE) pulse_init, #endif @@ -237,9 +178,6 @@ cubeb_init(cubeb ** context, char const * context_name, #if defined(USE_OSS) oss_init, #endif -#if defined(USE_AUDIOUNIT_RUST) - audiounit_rust_init, -#endif #if defined(USE_AUDIOUNIT) audiounit_init, #endif @@ -251,20 +189,6 @@ cubeb_init(cubeb ** context, char const * context_name, #endif #if defined(USE_SUN) sun_init, -#endif -#if defined(USE_OPENSL) - opensl_init, -#endif - // TODO: should probably be preferred over OpenSLES when available. - // Initialization will fail on old android devices. -#if defined(USE_AAUDIO) - aaudio_init, -#endif -#if defined(USE_AUDIOTRACK) - audiotrack_init, -#endif -#if defined(USE_KAI) - kai_init, #endif }; int i; @@ -290,16 +214,13 @@ cubeb_init(cubeb ** context, char const * context_name, return CUBEB_ERROR; } -const char* const* +const char** cubeb_get_backend_names() { static const char* backend_names[] = { #if defined(USE_PULSE) "pulse", #endif -#if defined(USE_PULSE_RUST) - "pulse-rust", -#endif #if defined(USE_JACK) "jack", #endif @@ -309,9 +230,6 @@ cubeb_get_backend_names() #if defined(USE_AUDIOUNIT) "audiounit", #endif -#if defined(USE_AUDIOUNIT_RUST) - "audiounit-rust", -#endif #if defined(USE_WASAPI) "wasapi", #endif @@ -324,20 +242,8 @@ cubeb_get_backend_names() #if defined(USE_SUN) "sun", #endif -#if defined(USE_OPENSL) - "opensl", -#endif #if defined(USE_OSS) "oss", -#endif -#if defined(USE_AAUDIO) - "aaudio", -#endif -#if defined(USE_AUDIOTRACK) - "audiotrack", -#endif -#if defined(USE_KAI) - "kai", #endif NULL, }; @@ -406,6 +312,8 @@ cubeb_destroy(cubeb * context) } context->ops->destroy(context); + + cubeb_set_log_callback(CUBEB_LOG_DISABLED, NULL); } int diff --git a/3rdparty/cubeb/src/cubeb_aaudio.cpp b/3rdparty/cubeb/src/cubeb_aaudio.cpp deleted file mode 100644 index 2ac67c2e6c610a..00000000000000 --- a/3rdparty/cubeb/src/cubeb_aaudio.cpp +++ /dev/null @@ -1,1507 +0,0 @@ -/* ex: set tabstop=2 shiftwidth=2 expandtab: - * Copyright © 2019 Jan Kelling - * - * This program is made available under an ISC-style license. See the - * accompanying file LICENSE for details. - */ -#include "cubeb-internal.h" -#include "cubeb/cubeb.h" -#include "cubeb_android.h" -#include "cubeb_log.h" -#include "cubeb_resampler.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef DISABLE_LIBAAUDIO_DLOPEN -#define WRAP(x) x -#else -#define WRAP(x) (*cubeb_##x) -#define LIBAAUDIO_API_VISIT(X) \ - X(AAudio_convertResultToText) \ - X(AAudio_convertStreamStateToText) \ - X(AAudio_createStreamBuilder) \ - X(AAudioStreamBuilder_openStream) \ - X(AAudioStreamBuilder_setChannelCount) \ - X(AAudioStreamBuilder_setBufferCapacityInFrames) \ - X(AAudioStreamBuilder_setDirection) \ - X(AAudioStreamBuilder_setFormat) \ - X(AAudioStreamBuilder_setSharingMode) \ - X(AAudioStreamBuilder_setPerformanceMode) \ - X(AAudioStreamBuilder_setSampleRate) \ - X(AAudioStreamBuilder_delete) \ - X(AAudioStreamBuilder_setDataCallback) \ - X(AAudioStreamBuilder_setErrorCallback) \ - X(AAudioStream_close) \ - X(AAudioStream_read) \ - X(AAudioStream_requestStart) \ - X(AAudioStream_requestPause) \ - X(AAudioStream_setBufferSizeInFrames) \ - X(AAudioStream_getTimestamp) \ - X(AAudioStream_requestFlush) \ - X(AAudioStream_requestStop) \ - X(AAudioStream_getPerformanceMode) \ - X(AAudioStream_getSharingMode) \ - X(AAudioStream_getBufferSizeInFrames) \ - X(AAudioStream_getBufferCapacityInFrames) \ - X(AAudioStream_getSampleRate) \ - X(AAudioStream_waitForStateChange) \ - X(AAudioStream_getFramesRead) \ - X(AAudioStream_getState) \ - X(AAudioStream_getFramesWritten) \ - X(AAudioStream_getFramesPerBurst) \ - X(AAudioStreamBuilder_setInputPreset) \ - X(AAudioStreamBuilder_setUsage) - -// not needed or added later on -// X(AAudioStreamBuilder_setFramesPerDataCallback) \ - // X(AAudioStreamBuilder_setDeviceId) \ - // X(AAudioStreamBuilder_setSamplesPerFrame) \ - // X(AAudioStream_getSamplesPerFrame) \ - // X(AAudioStream_getDeviceId) \ - // X(AAudioStream_write) \ - // X(AAudioStream_getChannelCount) \ - // X(AAudioStream_getFormat) \ - // X(AAudioStream_getXRunCount) \ - // X(AAudioStream_isMMapUsed) \ - // X(AAudioStreamBuilder_setContentType) \ - // X(AAudioStreamBuilder_setSessionId) \ - // X(AAudioStream_getUsage) \ - // X(AAudioStream_getContentType) \ - // X(AAudioStream_getInputPreset) \ - // X(AAudioStream_getSessionId) \ -// END: not needed or added later on - -#define MAKE_TYPEDEF(x) static decltype(x) * cubeb_##x; -LIBAAUDIO_API_VISIT(MAKE_TYPEDEF) -#undef MAKE_TYPEDEF -#endif - -const uint8_t MAX_STREAMS = 16; - -using unique_lock = std::unique_lock; -using lock_guard = std::lock_guard; - -enum class stream_state { - INIT = 0, - STOPPED, - STOPPING, - STARTED, - STARTING, - DRAINING, - ERROR, - SHUTDOWN, -}; - -struct cubeb_stream { - /* Note: Must match cubeb_stream layout in cubeb.c. */ - cubeb * context{}; - void * user_ptr{}; - - std::atomic in_use{false}; - std::atomic state{stream_state::INIT}; - - AAudioStream * ostream{}; - AAudioStream * istream{}; - cubeb_data_callback data_callback{}; - cubeb_state_callback state_callback{}; - cubeb_resampler * resampler{}; - - // mutex synchronizes access to the stream from the state thread - // and user-called functions. Everything that is accessed in the - // aaudio data (or error) callback is synchronized only via atomics. - std::mutex mutex; - - std::unique_ptr in_buf; - unsigned in_frame_size{}; // size of one input frame - - cubeb_sample_format out_format{}; - std::atomic volume{1.f}; - unsigned out_channels{}; - unsigned out_frame_size{}; - int64_t latest_output_latency = 0; - int64_t latest_input_latency = 0; - bool voice_input; - bool voice_output; - uint64_t previous_clock; -}; - -struct cubeb { - struct cubeb_ops const * ops{}; - void * libaaudio{}; - - struct { - // The state thread: it waits for state changes and stops - // drained streams. - std::thread thread; - std::thread notifier; - std::mutex mutex; - std::condition_variable cond; - std::atomic join{false}; - std::atomic waiting{false}; - } state; - - // streams[i].in_use signals whether a stream is used - struct cubeb_stream streams[MAX_STREAMS]; -}; - -// Only allowed from state thread, while mutex on stm is locked -static void -shutdown(cubeb_stream * stm) -{ - if (stm->istream) { - WRAP(AAudioStream_requestStop)(stm->istream); - } - if (stm->ostream) { - WRAP(AAudioStream_requestStop)(stm->ostream); - } - - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); - stm->state.store(stream_state::SHUTDOWN); -} - -// Returns whether the given state is one in which we wait for -// an asynchronous change -static bool -waiting_state(stream_state state) -{ - switch (state) { - case stream_state::DRAINING: - case stream_state::STARTING: - case stream_state::STOPPING: - return true; - default: - return false; - } -} - -static void -update_state(cubeb_stream * stm) -{ - // Fast path for streams that don't wait for state change or are invalid - enum stream_state old_state = stm->state.load(); - if (old_state == stream_state::INIT || old_state == stream_state::STARTED || - old_state == stream_state::STOPPED || - old_state == stream_state::SHUTDOWN) { - return; - } - - // If the main thread currently operates on this thread, we don't - // have to wait for it - unique_lock lock(stm->mutex, std::try_to_lock); - if (!lock.owns_lock()) { - return; - } - - // check again: if this is true now, the stream was destroyed or - // changed between our fast path check and locking the mutex - old_state = stm->state.load(); - if (old_state == stream_state::INIT || old_state == stream_state::STARTED || - old_state == stream_state::STOPPED || - old_state == stream_state::SHUTDOWN) { - return; - } - - // We compute the new state the stream has and then compare_exchange it - // if it has changed. This way we will never just overwrite state - // changes that were set from the audio thread in the meantime, - // such as a DRAINING or error state. - enum stream_state new_state; - do { - if (old_state == stream_state::SHUTDOWN) { - return; - } - - if (old_state == stream_state::ERROR) { - shutdown(stm); - return; - } - - new_state = old_state; - - aaudio_stream_state_t istate = 0; - aaudio_stream_state_t ostate = 0; - - // We use waitForStateChange (with zero timeout) instead of just - // getState since only the former internally updates the state. - // See the docs of aaudio getState/waitForStateChange for details, - // why we are passing STATE_UNKNOWN. - aaudio_result_t res; - if (stm->istream) { - res = WRAP(AAudioStream_waitForStateChange)( - stm->istream, AAUDIO_STREAM_STATE_UNKNOWN, &istate, 0); - if (res != AAUDIO_OK) { - LOG("AAudioStream_waitForStateChanged: %s", - WRAP(AAudio_convertResultToText)(res)); - return; - } - assert(istate); - } - - if (stm->ostream) { - res = WRAP(AAudioStream_waitForStateChange)( - stm->ostream, AAUDIO_STREAM_STATE_UNKNOWN, &ostate, 0); - if (res != AAUDIO_OK) { - LOG("AAudioStream_waitForStateChanged: %s", - WRAP(AAudio_convertResultToText)(res)); - return; - } - assert(ostate); - } - - // handle invalid stream states - if (istate == AAUDIO_STREAM_STATE_PAUSING || - istate == AAUDIO_STREAM_STATE_PAUSED || - istate == AAUDIO_STREAM_STATE_FLUSHING || - istate == AAUDIO_STREAM_STATE_FLUSHED || - istate == AAUDIO_STREAM_STATE_UNKNOWN || - istate == AAUDIO_STREAM_STATE_DISCONNECTED) { - const char * name = WRAP(AAudio_convertStreamStateToText)(istate); - LOG("Unexpected android input stream state %s", name); - shutdown(stm); - return; - } - - if (ostate == AAUDIO_STREAM_STATE_PAUSING || - ostate == AAUDIO_STREAM_STATE_PAUSED || - ostate == AAUDIO_STREAM_STATE_FLUSHING || - ostate == AAUDIO_STREAM_STATE_FLUSHED || - ostate == AAUDIO_STREAM_STATE_UNKNOWN || - ostate == AAUDIO_STREAM_STATE_DISCONNECTED) { - const char * name = WRAP(AAudio_convertStreamStateToText)(istate); - LOG("Unexpected android output stream state %s", name); - shutdown(stm); - return; - } - - switch (old_state) { - case stream_state::STARTING: - if ((!istate || istate == AAUDIO_STREAM_STATE_STARTED) && - (!ostate || ostate == AAUDIO_STREAM_STATE_STARTED)) { - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_STARTED); - new_state = stream_state::STARTED; - } - break; - case stream_state::DRAINING: - // The DRAINING state means that we want to stop the streams but - // may not have done so yet. - // The aaudio docs state that returning STOP from the callback isn't - // enough, the stream has to be stopped from another thread - // afterwards. - // No callbacks are triggered anymore when requestStop returns. - // That is important as we otherwise might read from a closed istream - // for a duplex stream. - // Therefor it is important to close ostream first. - if (ostate && ostate != AAUDIO_STREAM_STATE_STOPPING && - ostate != AAUDIO_STREAM_STATE_STOPPED) { - res = WRAP(AAudioStream_requestStop)(stm->ostream); - if (res != AAUDIO_OK) { - LOG("AAudioStream_requestStop: %s", - WRAP(AAudio_convertResultToText)(res)); - return; - } - } - if (istate && istate != AAUDIO_STREAM_STATE_STOPPING && - istate != AAUDIO_STREAM_STATE_STOPPED) { - res = WRAP(AAudioStream_requestStop)(stm->istream); - if (res != AAUDIO_OK) { - LOG("AAudioStream_requestStop: %s", - WRAP(AAudio_convertResultToText)(res)); - return; - } - } - - // we always wait until both streams are stopped until we - // send CUBEB_STATE_DRAINED. Then we can directly transition - // our logical state to STOPPED, not triggering - // an additional CUBEB_STATE_STOPPED callback (which might - // be unexpected for the user). - if ((!ostate || ostate == AAUDIO_STREAM_STATE_STOPPED) && - (!istate || istate == AAUDIO_STREAM_STATE_STOPPED)) { - new_state = stream_state::STOPPED; - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_DRAINED); - } - break; - case stream_state::STOPPING: - assert(!istate || istate == AAUDIO_STREAM_STATE_STOPPING || - istate == AAUDIO_STREAM_STATE_STOPPED); - assert(!ostate || ostate == AAUDIO_STREAM_STATE_STOPPING || - ostate == AAUDIO_STREAM_STATE_STOPPED); - if ((!istate || istate == AAUDIO_STREAM_STATE_STOPPED) && - (!ostate || ostate == AAUDIO_STREAM_STATE_STOPPED)) { - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_STOPPED); - new_state = stream_state::STOPPED; - } - break; - default: - assert(false && "Unreachable: invalid state"); - } - } while (old_state != new_state && - !stm->state.compare_exchange_strong(old_state, new_state)); -} - -// See https://nyorain.github.io/lock-free-wakeup.html for a note -// why this is needed. The audio thread notifies the state thread about -// state changes and must not block. The state thread on the other hand should -// sleep until there is work to be done. So we need a lockfree producer -// and blocking producer. This can only be achieved safely with a new thread -// that only serves as notifier backup (in case the notification happens -// right between the state thread checking and going to sleep in which case -// this thread will kick in and signal it right again). -static void -notifier_thread(cubeb * ctx) -{ - unique_lock lock(ctx->state.mutex); - - while (!ctx->state.join.load()) { - ctx->state.cond.wait(lock); - if (ctx->state.waiting.load()) { - // This must signal our state thread since there is no other - // thread currently waiting on the condition variable. - // The state change thread is guaranteed to be waiting since - // we hold the mutex it locks when awake. - ctx->state.cond.notify_one(); - } - } - - // make sure other thread joins as well - ctx->state.cond.notify_one(); - LOG("Exiting notifier thread"); -} - -static void -state_thread(cubeb * ctx) -{ - unique_lock lock(ctx->state.mutex); - - bool waiting = false; - while (!ctx->state.join.load()) { - waiting |= ctx->state.waiting.load(); - if (waiting) { - ctx->state.waiting.store(false); - waiting = false; - for (unsigned i = 0u; i < MAX_STREAMS; ++i) { - cubeb_stream * stm = &ctx->streams[i]; - update_state(stm); - waiting |= waiting_state(atomic_load(&stm->state)); - } - - // state changed from another thread, update again immediately - if (ctx->state.waiting.load()) { - waiting = true; - continue; - } - - // Not waiting for any change anymore: we can wait on the - // condition variable without timeout - if (!waiting) { - continue; - } - - // while any stream is waiting for state change we sleep with regular - // timeouts. But we wake up immediately if signaled. - // This might seem like a poor man's implementation of state change - // waiting but (as of october 2020), the implementation of - // AAudioStream_waitForStateChange is just sleeping with regular - // timeouts as well: - // https://android.googlesource.com/platform/frameworks/av/+/refs/heads/master/media/libaaudio/src/core/AudioStream.cpp - auto dur = std::chrono::milliseconds(5); - ctx->state.cond.wait_for(lock, dur); - } else { - ctx->state.cond.wait(lock); - } - } - - // make sure other thread joins as well - ctx->state.cond.notify_one(); - LOG("Exiting state thread"); -} - -static char const * -aaudio_get_backend_id(cubeb * /* ctx */) -{ - return "aaudio"; -} - -static int -aaudio_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) -{ - assert(ctx && max_channels); - // NOTE: we might get more, AAudio docs don't specify anything. - *max_channels = 2; - return CUBEB_OK; -} - -static void -aaudio_destroy(cubeb * ctx) -{ - assert(ctx); - -#ifndef NDEBUG - // make sure all streams were destroyed - for (unsigned i = 0u; i < MAX_STREAMS; ++i) { - assert(!ctx->streams[i].in_use.load()); - } -#endif - - // broadcast joining to both threads - // they will additionally signal each other before joining - ctx->state.join.store(true); - ctx->state.cond.notify_all(); - - if (ctx->state.thread.joinable()) { - ctx->state.thread.join(); - } - if (ctx->state.notifier.joinable()) { - ctx->state.notifier.join(); - } -#ifndef DISABLE_LIBAAUDIO_DLOPEN - if (ctx->libaaudio) { - dlclose(ctx->libaaudio); - } -#endif - delete ctx; -} - -static void -apply_volume(cubeb_stream * stm, void * audio_data, uint32_t num_frames) -{ - float volume = stm->volume.load(); - // optimization: we don't have to change anything in this case - if (volume == 1.f) { - return; - } - - switch (stm->out_format) { - case CUBEB_SAMPLE_S16NE: - for (uint32_t i = 0u; i < num_frames * stm->out_channels; ++i) { - (static_cast(audio_data))[i] *= volume; - } - break; - case CUBEB_SAMPLE_FLOAT32NE: - for (uint32_t i = 0u; i < num_frames * stm->out_channels; ++i) { - (static_cast(audio_data))[i] *= volume; - } - break; - default: - assert(false && "Unreachable: invalid stream out_format"); - } -} - -// Returning AAUDIO_CALLBACK_RESULT_STOP seems to put the stream in -// an invalid state. Seems like an AAudio bug/bad documentation. -// We therefore only return it on error. - -static aaudio_data_callback_result_t -aaudio_duplex_data_cb(AAudioStream * astream, void * user_data, - void * audio_data, int32_t num_frames) -{ - cubeb_stream * stm = (cubeb_stream *)user_data; - assert(stm->ostream == astream); - assert(stm->istream); - assert(num_frames >= 0); - - stream_state state = atomic_load(&stm->state); - // int istate = WRAP(AAudioStream_getState)(stm->istream); - // int ostate = WRAP(AAudioStream_getState)(stm->ostream); - // ALOGV("aaudio duplex data cb on stream %p: state %ld (in: %d, out: %d), - // num_frames: %ld", - // (void*) stm, state, istate, ostate, num_frames); - - // all other states may happen since the callback might be called - // from within requestStart - assert(state != stream_state::SHUTDOWN); - - // This might happen when we started draining but not yet actually - // stopped the stream from the state thread. - if (state == stream_state::DRAINING) { - std::memset(audio_data, 0x0, num_frames * stm->out_frame_size); - return AAUDIO_CALLBACK_RESULT_CONTINUE; - } - - // The aaudio docs state that AAudioStream_read must not be called on - // the stream associated with a callback. But we call it on the input stream - // while this callback is for the output stream so this is ok. - // We also pass timeout 0, giving us strong non-blocking guarantees. - // This is exactly how it's done in the aaudio duplex example code snippet. - long in_num_frames = - WRAP(AAudioStream_read)(stm->istream, stm->in_buf.get(), num_frames, 0); - if (in_num_frames < 0) { // error - stm->state.store(stream_state::ERROR); - LOG("AAudioStream_read: %s", - WRAP(AAudio_convertResultToText)(in_num_frames)); - return AAUDIO_CALLBACK_RESULT_STOP; - } - - // This can happen shortly after starting the stream. AAudio might immediately - // begin to buffer output but not have any input ready yet. We could - // block AAudioStream_read (passing a timeout > 0) but that leads to issues - // since blocking in this callback is a bad idea in general and it might break - // the stream when it is stopped by another thread shortly after being - // started. We therefore simply send silent input to the application, as shown - // in the AAudio duplex stream code example. - if (in_num_frames < num_frames) { - // LOG("AAudioStream_read returned not enough frames: %ld instead of %d", - // in_num_frames, num_frames); - unsigned left = num_frames - in_num_frames; - char * buf = stm->in_buf.get() + in_num_frames * stm->in_frame_size; - std::memset(buf, 0x0, left * stm->in_frame_size); - in_num_frames = num_frames; - } - - long done_frames = - cubeb_resampler_fill(stm->resampler, stm->in_buf.get(), &in_num_frames, - audio_data, num_frames); - - if (done_frames < 0 || done_frames > num_frames) { - LOG("Error in data callback or resampler: %ld", done_frames); - stm->state.store(stream_state::ERROR); - return AAUDIO_CALLBACK_RESULT_STOP; - } else if (done_frames < num_frames) { - stm->state.store(stream_state::DRAINING); - stm->context->state.waiting.store(true); - stm->context->state.cond.notify_one(); - - char * begin = - static_cast(audio_data) + done_frames * stm->out_frame_size; - std::memset(begin, 0x0, (num_frames - done_frames) * stm->out_frame_size); - } - - apply_volume(stm, audio_data, done_frames); - return AAUDIO_CALLBACK_RESULT_CONTINUE; -} - -static aaudio_data_callback_result_t -aaudio_output_data_cb(AAudioStream * astream, void * user_data, - void * audio_data, int32_t num_frames) -{ - cubeb_stream * stm = (cubeb_stream *)user_data; - assert(stm->ostream == astream); - assert(!stm->istream); - assert(num_frames >= 0); - - stream_state state = stm->state.load(); - // int ostate = WRAP(AAudioStream_getState)(stm->ostream); - // ALOGV("aaudio output data cb on stream %p: state %ld (%d), num_frames: - // %ld", - // (void*) stm, state, ostate, num_frames); - - // all other states may happen since the callback might be called - // from within requestStart - assert(state != stream_state::SHUTDOWN); - - // This might happen when we started draining but not yet actually - // stopped the stream from the state thread. - if (state == stream_state::DRAINING) { - std::memset(audio_data, 0x0, num_frames * stm->out_frame_size); - return AAUDIO_CALLBACK_RESULT_CONTINUE; - } - - long done_frames = - cubeb_resampler_fill(stm->resampler, NULL, NULL, audio_data, num_frames); - if (done_frames < 0 || done_frames > num_frames) { - LOG("Error in data callback or resampler: %ld", done_frames); - stm->state.store(stream_state::ERROR); - return AAUDIO_CALLBACK_RESULT_STOP; - } else if (done_frames < num_frames) { - stm->state.store(stream_state::DRAINING); - stm->context->state.waiting.store(true); - stm->context->state.cond.notify_one(); - - char * begin = - static_cast(audio_data) + done_frames * stm->out_frame_size; - std::memset(begin, 0x0, (num_frames - done_frames) * stm->out_frame_size); - } - - apply_volume(stm, audio_data, done_frames); - return AAUDIO_CALLBACK_RESULT_CONTINUE; -} - -static aaudio_data_callback_result_t -aaudio_input_data_cb(AAudioStream * astream, void * user_data, - void * audio_data, int32_t num_frames) -{ - cubeb_stream * stm = (cubeb_stream *)user_data; - assert(stm->istream == astream); - assert(!stm->ostream); - assert(num_frames >= 0); - - stream_state state = stm->state.load(); - // int istate = WRAP(AAudioStream_getState)(stm->istream); - // ALOGV("aaudio input data cb on stream %p: state %ld (%d), num_frames: %ld", - // (void*) stm, state, istate, num_frames); - - // all other states may happen since the callback might be called - // from within requestStart - assert(state != stream_state::SHUTDOWN); - - // This might happen when we started draining but not yet actually - // STOPPED the stream from the state thread. - if (state == stream_state::DRAINING) { - return AAUDIO_CALLBACK_RESULT_CONTINUE; - } - - long input_frame_count = num_frames; - long done_frames = cubeb_resampler_fill(stm->resampler, audio_data, - &input_frame_count, NULL, 0); - if (done_frames < 0 || done_frames > num_frames) { - LOG("Error in data callback or resampler: %ld", done_frames); - stm->state.store(stream_state::ERROR); - return AAUDIO_CALLBACK_RESULT_STOP; - } else if (done_frames < input_frame_count) { - // we don't really drain an input stream, just have to - // stop it from the state thread. That is signaled via the - // DRAINING state. - stm->state.store(stream_state::DRAINING); - stm->context->state.waiting.store(true); - stm->context->state.cond.notify_one(); - } - - return AAUDIO_CALLBACK_RESULT_CONTINUE; -} - -static void -aaudio_error_cb(AAudioStream * astream, void * user_data, aaudio_result_t error) -{ - cubeb_stream * stm = static_cast(user_data); - assert(stm->ostream == astream || stm->istream == astream); - LOG("AAudio error callback: %s", WRAP(AAudio_convertResultToText)(error)); - stm->state.store(stream_state::ERROR); -} - -static int -realize_stream(AAudioStreamBuilder * sb, const cubeb_stream_params * params, - AAudioStream ** stream, unsigned * frame_size) -{ - aaudio_result_t res; - assert(params->rate); - assert(params->channels); - - WRAP(AAudioStreamBuilder_setSampleRate)(sb, params->rate); - WRAP(AAudioStreamBuilder_setChannelCount)(sb, params->channels); - - aaudio_format_t fmt; - switch (params->format) { - case CUBEB_SAMPLE_S16NE: - fmt = AAUDIO_FORMAT_PCM_I16; - *frame_size = sizeof(int16_t) * params->channels; - break; - case CUBEB_SAMPLE_FLOAT32NE: - fmt = AAUDIO_FORMAT_PCM_FLOAT; - *frame_size = sizeof(float) * params->channels; - break; - default: - return CUBEB_ERROR_INVALID_FORMAT; - } - - WRAP(AAudioStreamBuilder_setFormat)(sb, fmt); - res = WRAP(AAudioStreamBuilder_openStream)(sb, stream); - if (res == AAUDIO_ERROR_INVALID_FORMAT) { - LOG("AAudio device doesn't support output format %d", fmt); - return CUBEB_ERROR_INVALID_FORMAT; - } else if (params->rate && res == AAUDIO_ERROR_INVALID_RATE) { - // The requested rate is not supported. - // Just try again with default rate, we create a resampler anyways - WRAP(AAudioStreamBuilder_setSampleRate)(sb, AAUDIO_UNSPECIFIED); - res = WRAP(AAudioStreamBuilder_openStream)(sb, stream); - LOG("Requested rate of %u is not supported, inserting resampler", - params->rate); - } - - // When the app has no permission to record audio - // (android.permission.RECORD_AUDIO) but requested and input stream, this will - // return INVALID_ARGUMENT. - if (res != AAUDIO_OK) { - LOG("AAudioStreamBuilder_openStream: %s", - WRAP(AAudio_convertResultToText)(res)); - return CUBEB_ERROR; - } - - return CUBEB_OK; -} - -static void -aaudio_stream_destroy(cubeb_stream * stm) -{ - lock_guard lock(stm->mutex); - assert(stm->state == stream_state::STOPPED || - stm->state == stream_state::STOPPING || - stm->state == stream_state::INIT || - stm->state == stream_state::DRAINING || - stm->state == stream_state::ERROR || - stm->state == stream_state::SHUTDOWN); - - aaudio_result_t res; - - // No callbacks are triggered anymore when requestStop returns. - // That is important as we otherwise might read from a closed istream - // for a duplex stream. - if (stm->ostream) { - if (stm->state != stream_state::STOPPED && - stm->state != stream_state::STOPPING && - stm->state != stream_state::SHUTDOWN) { - res = WRAP(AAudioStream_requestStop)(stm->ostream); - if (res != AAUDIO_OK) { - LOG("AAudioStreamBuilder_requestStop: %s", - WRAP(AAudio_convertResultToText)(res)); - } - } - - WRAP(AAudioStream_close)(stm->ostream); - stm->ostream = NULL; - } - - if (stm->istream) { - if (stm->state != stream_state::STOPPED && - stm->state != stream_state::STOPPING && - stm->state != stream_state::SHUTDOWN) { - res = WRAP(AAudioStream_requestStop)(stm->istream); - if (res != AAUDIO_OK) { - LOG("AAudioStreamBuilder_requestStop: %s", - WRAP(AAudio_convertResultToText)(res)); - } - } - - WRAP(AAudioStream_close)(stm->istream); - stm->istream = NULL; - } - - if (stm->resampler) { - cubeb_resampler_destroy(stm->resampler); - stm->resampler = NULL; - } - - stm->in_buf = {}; - stm->in_frame_size = {}; - stm->out_format = {}; - stm->out_channels = {}; - stm->out_frame_size = {}; - - stm->state.store(stream_state::INIT); - stm->in_use.store(false); -} - -static int -aaudio_stream_init_impl(cubeb_stream * stm, cubeb_devid input_device, - cubeb_stream_params * input_stream_params, - cubeb_devid output_device, - cubeb_stream_params * output_stream_params, - unsigned int latency_frames) -{ - assert(stm->state.load() == stream_state::INIT); - stm->in_use.store(true); - - aaudio_result_t res; - AAudioStreamBuilder * sb; - res = WRAP(AAudio_createStreamBuilder)(&sb); - if (res != AAUDIO_OK) { - LOG("AAudio_createStreamBuilder: %s", - WRAP(AAudio_convertResultToText)(res)); - return CUBEB_ERROR; - } - - // make sure the builder is always destroyed - struct StreamBuilderDestructor { - void operator()(AAudioStreamBuilder * sb) - { - WRAP(AAudioStreamBuilder_delete)(sb); - } - }; - - std::unique_ptr sbPtr(sb); - - WRAP(AAudioStreamBuilder_setErrorCallback)(sb, aaudio_error_cb, stm); - WRAP(AAudioStreamBuilder_setBufferCapacityInFrames)(sb, latency_frames); - - AAudioStream_dataCallback in_data_callback{}; - AAudioStream_dataCallback out_data_callback{}; - if (output_stream_params && input_stream_params) { - out_data_callback = aaudio_duplex_data_cb; - in_data_callback = NULL; - } else if (input_stream_params) { - in_data_callback = aaudio_input_data_cb; - } else if (output_stream_params) { - out_data_callback = aaudio_output_data_cb; - } else { - LOG("Tried to open stream without input or output parameters"); - return CUBEB_ERROR; - } - -#ifdef CUBEB_AAUDIO_EXCLUSIVE_STREAM - LOG("AAudio setting exclusive share mode for stream"); - WRAP(AAudioStreamBuilder_setSharingMode)(sb, AAUDIO_SHARING_MODE_EXCLUSIVE); -#endif - - if (latency_frames <= POWERSAVE_LATENCY_FRAMES_THRESHOLD) { - LOG("AAudio setting low latency mode for stream"); - WRAP(AAudioStreamBuilder_setPerformanceMode) - (sb, AAUDIO_PERFORMANCE_MODE_LOW_LATENCY); - } else { - LOG("AAudio setting power saving mode for stream"); - WRAP(AAudioStreamBuilder_setPerformanceMode) - (sb, AAUDIO_PERFORMANCE_MODE_POWER_SAVING); - } - - unsigned frame_size; - - // initialize streams - // output - uint32_t target_sample_rate = 0; - cubeb_stream_params out_params; - if (output_stream_params) { - int output_preset = stm->voice_output ? AAUDIO_USAGE_VOICE_COMMUNICATION - : AAUDIO_USAGE_MEDIA; - WRAP(AAudioStreamBuilder_setUsage)(sb, output_preset); - WRAP(AAudioStreamBuilder_setDirection)(sb, AAUDIO_DIRECTION_OUTPUT); - WRAP(AAudioStreamBuilder_setDataCallback)(sb, out_data_callback, stm); - int res_err = - realize_stream(sb, output_stream_params, &stm->ostream, &frame_size); - if (res_err) { - return res_err; - } - - // output debug information - aaudio_sharing_mode_t sm = WRAP(AAudioStream_getSharingMode)(stm->ostream); - aaudio_performance_mode_t pm = - WRAP(AAudioStream_getPerformanceMode)(stm->ostream); - int bcap = WRAP(AAudioStream_getBufferCapacityInFrames)(stm->ostream); - int bsize = WRAP(AAudioStream_getBufferSizeInFrames)(stm->ostream); - int rate = WRAP(AAudioStream_getSampleRate)(stm->ostream); - LOG("AAudio output stream sharing mode: %d", sm); - LOG("AAudio output stream performance mode: %d", pm); - LOG("AAudio output stream buffer capacity: %d", bcap); - LOG("AAudio output stream buffer size: %d", bsize); - LOG("AAudio output stream buffer rate: %d", rate); - - target_sample_rate = output_stream_params->rate; - out_params = *output_stream_params; - out_params.rate = rate; - - stm->out_channels = output_stream_params->channels; - stm->out_format = output_stream_params->format; - stm->out_frame_size = frame_size; - stm->volume.store(1.f); - } - - // input - cubeb_stream_params in_params; - if (input_stream_params) { - // Match what the OpenSL backend does for now, we could use UNPROCESSED and - // VOICE_COMMUNICATION here, but we'd need to make it clear that - // application-level AEC and other voice processing should be disabled - // there. - int input_preset = stm->voice_input ? AAUDIO_INPUT_PRESET_VOICE_RECOGNITION - : AAUDIO_INPUT_PRESET_CAMCORDER; - WRAP(AAudioStreamBuilder_setInputPreset)(sb, input_preset); - WRAP(AAudioStreamBuilder_setDirection)(sb, AAUDIO_DIRECTION_INPUT); - WRAP(AAudioStreamBuilder_setDataCallback)(sb, in_data_callback, stm); - int res_err = - realize_stream(sb, input_stream_params, &stm->istream, &frame_size); - if (res_err) { - return res_err; - } - - // output debug information - aaudio_sharing_mode_t sm = WRAP(AAudioStream_getSharingMode)(stm->istream); - aaudio_performance_mode_t pm = - WRAP(AAudioStream_getPerformanceMode)(stm->istream); - int bcap = WRAP(AAudioStream_getBufferCapacityInFrames)(stm->istream); - int bsize = WRAP(AAudioStream_getBufferSizeInFrames)(stm->istream); - int rate = WRAP(AAudioStream_getSampleRate)(stm->istream); - LOG("AAudio input stream sharing mode: %d", sm); - LOG("AAudio input stream performance mode: %d", pm); - LOG("AAudio input stream buffer capacity: %d", bcap); - LOG("AAudio input stream buffer size: %d", bsize); - LOG("AAudio input stream buffer rate: %d", rate); - - stm->in_buf.reset(new char[bcap * frame_size]()); - assert(!target_sample_rate || - target_sample_rate == input_stream_params->rate); - - target_sample_rate = input_stream_params->rate; - in_params = *input_stream_params; - in_params.rate = rate; - stm->in_frame_size = frame_size; - } - - // initialize resampler - stm->resampler = cubeb_resampler_create( - stm, input_stream_params ? &in_params : NULL, - output_stream_params ? &out_params : NULL, target_sample_rate, - stm->data_callback, stm->user_ptr, CUBEB_RESAMPLER_QUALITY_DEFAULT, - CUBEB_RESAMPLER_RECLOCK_NONE); - - if (!stm->resampler) { - LOG("Failed to create resampler"); - return CUBEB_ERROR; - } - - // the stream isn't started initially. We don't need to differentiate - // between a stream that was just initialized and one that played - // already but was stopped. - stm->state.store(stream_state::STOPPED); - LOG("Cubeb stream (%p) INIT success", (void *)stm); - return CUBEB_OK; -} - -static int -aaudio_stream_init(cubeb * ctx, cubeb_stream ** stream, - char const * /* stream_name */, cubeb_devid input_device, - cubeb_stream_params * input_stream_params, - cubeb_devid output_device, - cubeb_stream_params * output_stream_params, - unsigned int latency_frames, - cubeb_data_callback data_callback, - cubeb_state_callback state_callback, void * user_ptr) -{ - assert(!input_device); - assert(!output_device); - - // atomically find a free stream. - cubeb_stream * stm = NULL; - unique_lock lock; - for (unsigned i = 0u; i < MAX_STREAMS; ++i) { - // This check is only an optimization, we don't strictly need it - // since we check again after locking the mutex. - if (ctx->streams[i].in_use.load()) { - continue; - } - - // if this fails, another thread initialized this stream - // between our check of in_use and this. - lock = unique_lock(ctx->streams[i].mutex, std::try_to_lock); - if (!lock.owns_lock()) { - continue; - } - - if (ctx->streams[i].in_use.load()) { - lock = {}; - continue; - } - - stm = &ctx->streams[i]; - break; - } - - if (!stm) { - LOG("Error: maximum number of streams reached"); - return CUBEB_ERROR; - } - - stm->context = ctx; - stm->user_ptr = user_ptr; - stm->data_callback = data_callback; - stm->state_callback = state_callback; - stm->voice_input = input_stream_params && - !!(input_stream_params->prefs & CUBEB_STREAM_PREF_VOICE); - stm->voice_output = output_stream_params && - !!(output_stream_params->prefs & CUBEB_STREAM_PREF_VOICE); - stm->previous_clock = 0; - - LOG("cubeb stream prefs: voice_input: %s voice_output: %s", - stm->voice_input ? "true" : "false", - stm->voice_output ? "true" : "false"); - - int err = aaudio_stream_init_impl(stm, input_device, input_stream_params, - output_device, output_stream_params, - latency_frames); - if (err != CUBEB_OK) { - // This is needed since aaudio_stream_destroy will lock the mutex again. - // It's no problem that there is a gap in between as the stream isn't - // actually in u se. - lock.unlock(); - aaudio_stream_destroy(stm); - return err; - } - - *stream = stm; - return CUBEB_OK; -} - -static int -aaudio_stream_start(cubeb_stream * stm) -{ - assert(stm && stm->in_use.load()); - lock_guard lock(stm->mutex); - - stream_state state = stm->state.load(); - int istate = stm->istream ? WRAP(AAudioStream_getState)(stm->istream) : 0; - int ostate = stm->ostream ? WRAP(AAudioStream_getState)(stm->ostream) : 0; - LOGV("STARTING stream %p: %d (%d %d)", (void *)stm, state, istate, ostate); - - switch (state) { - case stream_state::STARTED: - case stream_state::STARTING: - LOG("cubeb stream %p already STARTING/STARTED", (void *)stm); - return CUBEB_OK; - case stream_state::ERROR: - case stream_state::SHUTDOWN: - return CUBEB_ERROR; - case stream_state::INIT: - assert(false && "Invalid stream"); - return CUBEB_ERROR; - case stream_state::STOPPED: - case stream_state::STOPPING: - case stream_state::DRAINING: - break; - } - - aaudio_result_t res; - - // Important to start istream before ostream. - // As soon as we start ostream, the callbacks might be triggered an we - // might read from istream (on duplex). If istream wasn't started yet - // this is a problem. - if (stm->istream) { - res = WRAP(AAudioStream_requestStart)(stm->istream); - if (res != AAUDIO_OK) { - LOG("AAudioStream_requestStart (istream): %s", - WRAP(AAudio_convertResultToText)(res)); - stm->state.store(stream_state::ERROR); - return CUBEB_ERROR; - } - } - - if (stm->ostream) { - res = WRAP(AAudioStream_requestStart)(stm->ostream); - if (res != AAUDIO_OK) { - LOG("AAudioStream_requestStart (ostream): %s", - WRAP(AAudio_convertResultToText)(res)); - stm->state.store(stream_state::ERROR); - return CUBEB_ERROR; - } - } - - int ret = CUBEB_OK; - bool success; - - while (!(success = stm->state.compare_exchange_strong( - state, stream_state::STARTING))) { - // we land here only if the state has changed in the meantime - switch (state) { - // If an error ocurred in the meantime, we can't change that. - // The stream will be stopped when shut down. - case stream_state::ERROR: - ret = CUBEB_ERROR; - break; - // The only situation in which the state could have switched to draining - // is if the callback was already fired and requested draining. Don't - // overwrite that. It's not an error either though. - case stream_state::DRAINING: - break; - - // If the state switched [DRAINING -> STOPPING] or [DRAINING/STOPPING -> - // STOPPED] in the meantime, we can simply overwrite that since we restarted - // the stream. - case stream_state::STOPPING: - case stream_state::STOPPED: - continue; - - // There is no situation in which the state could have been valid before - // but now in shutdown mode, since we hold the streams mutex. - // There is also no way that it switched *into* STARTING or - // STARTED mode. - default: - assert(false && "Invalid state change"); - ret = CUBEB_ERROR; - break; - } - - break; - } - - if (success) { - stm->context->state.waiting.store(true); - stm->context->state.cond.notify_one(); - } - - return ret; -} - -static int -aaudio_stream_stop(cubeb_stream * stm) -{ - assert(stm && stm->in_use.load()); - lock_guard lock(stm->mutex); - - stream_state state = stm->state.load(); - int istate = stm->istream ? WRAP(AAudioStream_getState)(stm->istream) : 0; - int ostate = stm->ostream ? WRAP(AAudioStream_getState)(stm->ostream) : 0; - LOGV("STOPPING stream %p: %d (%d %d)", (void *)stm, state, istate, ostate); - - switch (state) { - case stream_state::STOPPED: - case stream_state::STOPPING: - case stream_state::DRAINING: - LOG("cubeb stream %p already STOPPING/STOPPED", (void *)stm); - return CUBEB_OK; - case stream_state::ERROR: - case stream_state::SHUTDOWN: - return CUBEB_ERROR; - case stream_state::INIT: - assert(false && "Invalid stream"); - return CUBEB_ERROR; - case stream_state::STARTED: - case stream_state::STARTING: - break; - } - - aaudio_result_t res; - - // No callbacks are triggered anymore when requestStop returns. - // That is important as we otherwise might read from a closed istream - // for a duplex stream. - // Therefor it is important to close ostream first. - if (stm->ostream) { - // Could use pause + flush here as well, the public cubeb interface - // doesn't state behavior. - res = WRAP(AAudioStream_requestStop)(stm->ostream); - if (res != AAUDIO_OK) { - LOG("AAudioStream_requestStop (ostream): %s", - WRAP(AAudio_convertResultToText)(res)); - stm->state.store(stream_state::ERROR); - return CUBEB_ERROR; - } - } - - if (stm->istream) { - res = WRAP(AAudioStream_requestStop)(stm->istream); - if (res != AAUDIO_OK) { - LOG("AAudioStream_requestStop (istream): %s", - WRAP(AAudio_convertResultToText)(res)); - stm->state.store(stream_state::ERROR); - return CUBEB_ERROR; - } - } - - int ret = CUBEB_OK; - bool success; - while (!(success = atomic_compare_exchange_strong(&stm->state, &state, - stream_state::STOPPING))) { - // we land here only if the state has changed in the meantime - switch (state) { - // If an error ocurred in the meantime, we can't change that. - // The stream will be STOPPED when shut down. - case stream_state::ERROR: - ret = CUBEB_ERROR; - break; - // If it was switched to DRAINING in the meantime, it was or - // will be STOPPED soon anyways. We don't interfere with - // the DRAINING process, no matter in which state. - // Not an error - case stream_state::DRAINING: - case stream_state::STOPPING: - case stream_state::STOPPED: - break; - - // If the state switched from STARTING to STARTED in the meantime - // we can simply overwrite that since we just STOPPED it. - case stream_state::STARTED: - continue; - - // There is no situation in which the state could have been valid before - // but now in shutdown mode, since we hold the streams mutex. - // There is also no way that it switched *into* STARTING mode. - default: - assert(false && "Invalid state change"); - ret = CUBEB_ERROR; - break; - } - - break; - } - - if (success) { - stm->context->state.waiting.store(true); - stm->context->state.cond.notify_one(); - } - - return ret; -} - -static int -aaudio_stream_get_position(cubeb_stream * stm, uint64_t * position) -{ - assert(stm && stm->in_use.load()); - lock_guard lock(stm->mutex); - - stream_state state = stm->state.load(); - AAudioStream * stream = stm->ostream ? stm->ostream : stm->istream; - switch (state) { - case stream_state::ERROR: - case stream_state::SHUTDOWN: - return CUBEB_ERROR; - case stream_state::DRAINING: - case stream_state::STOPPED: - case stream_state::STOPPING: - // getTimestamp is only valid when the stream is playing. - // Simply return the number of frames passed to aaudio - *position = WRAP(AAudioStream_getFramesRead)(stream); - if (*position < stm->previous_clock) { - *position = stm->previous_clock; - } else { - stm->previous_clock = *position; - } - return CUBEB_OK; - case stream_state::INIT: - assert(false && "Invalid stream"); - return CUBEB_ERROR; - case stream_state::STARTED: - case stream_state::STARTING: - break; - } - - int64_t pos; - int64_t ns; - aaudio_result_t res; - res = WRAP(AAudioStream_getTimestamp)(stream, CLOCK_MONOTONIC, &pos, &ns); - if (res != AAUDIO_OK) { - // When the audio stream is not running, invalid_state is returned and we - // simply fall back to the method we use for non-playing streams. - if (res == AAUDIO_ERROR_INVALID_STATE) { - *position = WRAP(AAudioStream_getFramesRead)(stream); - if (*position < stm->previous_clock) { - *position = stm->previous_clock; - } else { - stm->previous_clock = *position; - } - return CUBEB_OK; - } - - LOG("AAudioStream_getTimestamp: %s", WRAP(AAudio_convertResultToText)(res)); - return CUBEB_ERROR; - } - - *position = pos; - if (*position < stm->previous_clock) { - *position = stm->previous_clock; - } else { - stm->previous_clock = *position; - } - return CUBEB_OK; -} - -static int -aaudio_stream_get_latency(cubeb_stream * stm, uint32_t * latency) -{ - int64_t pos; - int64_t ns; - aaudio_result_t res; - - if (!stm->ostream) { - LOG("error: aaudio_stream_get_latency on input-only stream"); - return CUBEB_ERROR; - } - - res = - WRAP(AAudioStream_getTimestamp)(stm->ostream, CLOCK_MONOTONIC, &pos, &ns); - if (res != AAUDIO_OK) { - LOG("aaudio_stream_get_latency, AAudioStream_getTimestamp: %s, returning " - "memoized value", - WRAP(AAudio_convertResultToText)(res)); - // Expected when the stream is paused. - *latency = stm->latest_output_latency; - return CUBEB_OK; - } - - int64_t read = WRAP(AAudioStream_getFramesRead)(stm->ostream); - - *latency = stm->latest_output_latency = read - pos; - LOG("aaudio_stream_get_latency, %u", *latency); - - return CUBEB_OK; -} - -static int -aaudio_stream_get_input_latency(cubeb_stream * stm, uint32_t * latency) -{ - int64_t pos; - int64_t ns; - aaudio_result_t res; - - if (!stm->istream) { - LOG("error: aaudio_stream_get_input_latency on an ouput-only stream"); - return CUBEB_ERROR; - } - - res = - WRAP(AAudioStream_getTimestamp)(stm->istream, CLOCK_MONOTONIC, &pos, &ns); - if (res != AAUDIO_OK) { - // Expected when the stream is paused. - LOG("aaudio_stream_get_input_latency, AAudioStream_getTimestamp: %s, " - "returning memoized value", - WRAP(AAudio_convertResultToText)(res)); - *latency = stm->latest_input_latency; - return CUBEB_OK; - } - - int64_t written = WRAP(AAudioStream_getFramesWritten)(stm->istream); - - *latency = stm->latest_input_latency = written - pos; - LOG("aaudio_stream_get_input_latency, %u", *latency); - - return CUBEB_OK; -} - -static int -aaudio_stream_set_volume(cubeb_stream * stm, float volume) -{ - assert(stm && stm->in_use.load() && stm->ostream); - stm->volume.store(volume); - return CUBEB_OK; -} - -aaudio_data_callback_result_t -dummy_callback(AAudioStream * stream, void * userData, void * audioData, - int32_t numFrames) -{ - return AAUDIO_CALLBACK_RESULT_STOP; -} - -// Returns a dummy stream with all default settings -static AAudioStream * -init_dummy_stream() -{ - AAudioStreamBuilder * streamBuilder; - aaudio_result_t res; - res = WRAP(AAudio_createStreamBuilder)(&streamBuilder); - if (res != AAUDIO_OK) { - LOG("init_dummy_stream: AAudio_createStreamBuilder: %s", - WRAP(AAudio_convertResultToText)(res)); - return nullptr; - } - WRAP(AAudioStreamBuilder_setDataCallback) - (streamBuilder, dummy_callback, nullptr); - WRAP(AAudioStreamBuilder_setPerformanceMode) - (streamBuilder, AAUDIO_PERFORMANCE_MODE_LOW_LATENCY); - - AAudioStream * stream; - res = WRAP(AAudioStreamBuilder_openStream)(streamBuilder, &stream); - if (res != AAUDIO_OK) { - LOG("init_dummy_stream: AAudioStreamBuilder_openStream %s", - WRAP(AAudio_convertResultToText)(res)); - return nullptr; - } - WRAP(AAudioStreamBuilder_delete)(streamBuilder); - - return stream; -} - -static void -destroy_dummy_stream(AAudioStream * stream) -{ - WRAP(AAudioStream_close)(stream); -} - -static int -aaudio_get_min_latency(cubeb * ctx, cubeb_stream_params params, - uint32_t * latency_frames) -{ - AAudioStream * stream = init_dummy_stream(); - - if (!stream) { - return CUBEB_ERROR; - } - - // https://android.googlesource.com/platform/compatibility/cdd/+/refs/heads/master/5_multimedia/5_6_audio-latency.md - *latency_frames = WRAP(AAudioStream_getFramesPerBurst)(stream); - - LOG("aaudio_get_min_latency: %u frames", *latency_frames); - - destroy_dummy_stream(stream); - - return CUBEB_OK; -} - -int -aaudio_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) -{ - AAudioStream * stream = init_dummy_stream(); - - if (!stream) { - return CUBEB_ERROR; - } - - *rate = WRAP(AAudioStream_getSampleRate)(stream); - - LOG("aaudio_get_preferred_sample_rate %uHz", *rate); - - destroy_dummy_stream(stream); - - return CUBEB_OK; -} - -extern "C" int -aaudio_init(cubeb ** context, char const * context_name); - -const static struct cubeb_ops aaudio_ops = { - /*.init =*/aaudio_init, - /*.get_backend_id =*/aaudio_get_backend_id, - /*.get_max_channel_count =*/aaudio_get_max_channel_count, - /* .get_min_latency =*/aaudio_get_min_latency, - /*.get_preferred_sample_rate =*/aaudio_get_preferred_sample_rate, - /*.enumerate_devices =*/NULL, - /*.device_collection_destroy =*/NULL, - /*.destroy =*/aaudio_destroy, - /*.stream_init =*/aaudio_stream_init, - /*.stream_destroy =*/aaudio_stream_destroy, - /*.stream_start =*/aaudio_stream_start, - /*.stream_stop =*/aaudio_stream_stop, - /*.stream_get_position =*/aaudio_stream_get_position, - /*.stream_get_latency =*/aaudio_stream_get_latency, - /*.stream_get_input_latency =*/aaudio_stream_get_input_latency, - /*.stream_set_volume =*/aaudio_stream_set_volume, - /*.stream_set_name =*/NULL, - /*.stream_get_current_device =*/NULL, - /*.stream_device_destroy =*/NULL, - /*.stream_register_device_changed_callback =*/NULL, - /*.register_device_collection_changed =*/NULL}; - -extern "C" /*static*/ int -aaudio_init(cubeb ** context, char const * /* context_name */) -{ - // load api - void * libaaudio = NULL; -#ifndef DISABLE_LIBAAUDIO_DLOPEN - libaaudio = dlopen("libaaudio.so", RTLD_NOW); - if (!libaaudio) { - return CUBEB_ERROR; - } - -#define LOAD(x) \ - { \ - cubeb_##x = (decltype(x) *)(dlsym(libaaudio, #x)); \ - if (!WRAP(x)) { \ - LOG("AAudio: Failed to load %s", #x); \ - dlclose(libaaudio); \ - return CUBEB_ERROR; \ - } \ - } - - LIBAAUDIO_API_VISIT(LOAD); -#undef LOAD -#endif - - cubeb * ctx = new cubeb; - ctx->ops = &aaudio_ops; - ctx->libaaudio = libaaudio; - - ctx->state.thread = std::thread(state_thread, ctx); - - // NOTE: using platform-specific APIs we could set the priority of the - // notifier thread lower than the priority of the state thread. - // This way, it's more likely that the state thread will be woken up - // by the condition variable signal when both are currently waiting - ctx->state.notifier = std::thread(notifier_thread, ctx); - - *context = ctx; - return CUBEB_OK; -} diff --git a/3rdparty/cubeb/src/cubeb_alsa.c b/3rdparty/cubeb/src/cubeb_alsa.c index 7481c1668ef83e..6b53df087e17a0 100644 --- a/3rdparty/cubeb/src/cubeb_alsa.c +++ b/3rdparty/cubeb/src/cubeb_alsa.c @@ -7,6 +7,9 @@ #undef NDEBUG #define _DEFAULT_SOURCE #define _BSD_SOURCE +#if defined(__NetBSD__) +#define _NETBSD_SOURCE /* timersub() */ +#endif #define _XOPEN_SOURCE 500 #include "cubeb-internal.h" #include "cubeb/cubeb.h" diff --git a/3rdparty/cubeb/src/cubeb_android.h b/3rdparty/cubeb/src/cubeb_android.h deleted file mode 100644 index c21a941ab53a64..00000000000000 --- a/3rdparty/cubeb/src/cubeb_android.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef CUBEB_ANDROID_H -#define CUBEB_ANDROID_H - -#ifdef __cplusplus -extern "C" { -#endif -// If the latency requested is above this threshold, this stream is considered -// intended for playback (vs. real-time). Tell Android it should favor saving -// power over performance or latency. -// This is around 100ms at 44100 or 48000 -const uint16_t POWERSAVE_LATENCY_FRAMES_THRESHOLD = 4000; - -#ifdef __cplusplus -}; -#endif - -#endif // CUBEB_ANDROID_H diff --git a/3rdparty/cubeb/src/cubeb_array_queue.h b/3rdparty/cubeb/src/cubeb_array_queue.h deleted file mode 100644 index d6d95813251ed3..00000000000000 --- a/3rdparty/cubeb/src/cubeb_array_queue.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright © 2016 Mozilla Foundation - * - * This program is made available under an ISC-style license. See the - * accompanying file LICENSE for details. - */ - -#ifndef CUBEB_ARRAY_QUEUE_H -#define CUBEB_ARRAY_QUEUE_H - -#include -#include -#include - -#if defined(__cplusplus) -extern "C" { -#endif - -typedef struct { - void ** buf; - size_t num; - size_t writePos; - size_t readPos; - pthread_mutex_t mutex; -} array_queue; - -array_queue * -array_queue_create(size_t num) -{ - assert(num != 0); - array_queue * new_queue = (array_queue *)calloc(1, sizeof(array_queue)); - new_queue->buf = (void **)calloc(1, sizeof(void *) * num); - new_queue->readPos = 0; - new_queue->writePos = 0; - new_queue->num = num; - - pthread_mutex_init(&new_queue->mutex, NULL); - - return new_queue; -} - -void -array_queue_destroy(array_queue * aq) -{ - assert(aq); - - free(aq->buf); - pthread_mutex_destroy(&aq->mutex); - free(aq); -} - -int -array_queue_push(array_queue * aq, void * item) -{ - assert(item); - - pthread_mutex_lock(&aq->mutex); - int ret = -1; - if (aq->buf[aq->writePos % aq->num] == NULL) { - aq->buf[aq->writePos % aq->num] = item; - aq->writePos = (aq->writePos + 1) % aq->num; - ret = 0; - } - // else queue is full - pthread_mutex_unlock(&aq->mutex); - return ret; -} - -void * -array_queue_pop(array_queue * aq) -{ - pthread_mutex_lock(&aq->mutex); - void * value = aq->buf[aq->readPos % aq->num]; - if (value) { - aq->buf[aq->readPos % aq->num] = NULL; - aq->readPos = (aq->readPos + 1) % aq->num; - } - pthread_mutex_unlock(&aq->mutex); - return value; -} - -size_t -array_queue_get_size(array_queue * aq) -{ - pthread_mutex_lock(&aq->mutex); - ssize_t r = aq->writePos - aq->readPos; - if (r < 0) { - r = aq->num + r; - assert(r >= 0); - } - pthread_mutex_unlock(&aq->mutex); - return (size_t)r; -} - -#if defined(__cplusplus) -} -#endif - -#endif // CUBE_ARRAY_QUEUE_H diff --git a/3rdparty/cubeb/src/cubeb_audiotrack.c b/3rdparty/cubeb/src/cubeb_audiotrack.c deleted file mode 100644 index 59deba148a780c..00000000000000 --- a/3rdparty/cubeb/src/cubeb_audiotrack.c +++ /dev/null @@ -1,472 +0,0 @@ -/* - * Copyright © 2013 Mozilla Foundation - * - * This program is made available under an ISC-style license. See the - * accompanying file LICENSE for details. - */ - -#if !defined(NDEBUG) -#define NDEBUG -#endif -#include -#include -#include -#include -#include -#include - -#include "android/audiotrack_definitions.h" -#include "cubeb-internal.h" -#include "cubeb/cubeb.h" - -#ifndef ALOG -#if defined(DEBUG) || defined(FORCE_ALOG) -#define ALOG(args...) \ - __android_log_print(ANDROID_LOG_INFO, "Gecko - Cubeb", ##args) -#else -#define ALOG(args...) -#endif -#endif - -/** - * A lot of bytes for safety. It should be possible to bring this down a bit. */ -#define SIZE_AUDIOTRACK_INSTANCE 256 - -/** - * call dlsym to get the symbol |mangled_name|, handle the error and store the - * pointer in |pointer|. Because depending on Android version, we want different - * symbols, not finding a symbol is not an error. */ -#define DLSYM_DLERROR(mangled_name, pointer, lib) \ - do { \ - pointer = dlsym(lib, mangled_name); \ - if (!pointer) { \ - ALOG("error while loading %stm: %stm\n", mangled_name, dlerror()); \ - } else { \ - ALOG("%stm: OK", mangled_name); \ - } \ - } while (0); - -static struct cubeb_ops const audiotrack_ops; -void -audiotrack_destroy(cubeb * context); -void -audiotrack_stream_destroy(cubeb_stream * stream); - -struct AudioTrack { - /* only available on ICS and later. The second int paramter is in fact of type - * audio_stream_type_t. */ - /* static */ status_t (*get_min_frame_count)(int * frame_count, - int stream_type, uint32_t rate); - /* if we have a recent ctor, but can't find the above symbol, we - * can get the minimum frame count with this signature, and we are - * running gingerbread. */ - /* static */ status_t (*get_min_frame_count_gingerbread)(int * frame_count, - int stream_type, - uint32_t rate); - void * (*ctor)(void * instance, int, unsigned int, int, int, int, - unsigned int, void (*)(int, void *, void *), void *, int, int); - void * (*dtor)(void * instance); - void (*start)(void * instance); - void (*pause)(void * instance); - uint32_t (*latency)(void * instance); - status_t (*check)(void * instance); - status_t (*get_position)(void * instance, uint32_t * position); - /* static */ int (*get_output_samplingrate)(int * samplerate, int stream); - status_t (*set_marker_position)(void * instance, unsigned int); - status_t (*set_volume)(void * instance, float left, float right); -}; - -struct cubeb { - struct cubeb_ops const * ops; - void * library; - struct AudioTrack klass; -}; - -struct cubeb_stream { - /* Note: Must match cubeb_stream layout in cubeb.c. */ - cubeb * context; - void * user_ptr; - /**/ - cubeb_stream_params params; - cubeb_data_callback data_callback; - cubeb_state_callback state_callback; - void * instance; - /* Number of frames that have been passed to the AudioTrack callback */ - long unsigned written; - int draining; -}; - -static void -audiotrack_refill(int event, void * user, void * info) -{ - cubeb_stream * stream = user; - switch (event) { - case EVENT_MORE_DATA: { - long got = 0; - struct Buffer * b = (struct Buffer *)info; - - if (stream->draining) { - return; - } - - got = stream->data_callback(stream, stream->user_ptr, NULL, b->raw, - b->frameCount); - - stream->written += got; - - if (got != (long)b->frameCount) { - stream->draining = 1; - /* set a marker so we are notified when the are done draining, that is, - * when every frame has been played by android. */ - stream->context->klass.set_marker_position(stream->instance, - stream->written); - } - - break; - } - case EVENT_UNDERRUN: - ALOG("underrun in cubeb backend."); - break; - case EVENT_LOOP_END: - assert(0 && "We don't support the loop feature of audiotrack."); - break; - case EVENT_MARKER: - assert(stream->draining); - stream->state_callback(stream, stream->user_ptr, CUBEB_STATE_DRAINED); - break; - case EVENT_NEW_POS: - assert( - 0 && - "We don't support the setPositionUpdatePeriod feature of audiotrack."); - break; - case EVENT_BUFFER_END: - assert(0 && "Should not happen."); - break; - } -} - -/* We are running on gingerbread if we found the gingerbread signature for - * getMinFrameCount */ -static int -audiotrack_version_is_gingerbread(cubeb * ctx) -{ - return ctx->klass.get_min_frame_count_gingerbread != NULL; -} - -int -audiotrack_get_min_frame_count(cubeb * ctx, cubeb_stream_params * params, - int * min_frame_count) -{ - status_t status; - /* Recent Android have a getMinFrameCount method. */ - if (!audiotrack_version_is_gingerbread(ctx)) { - status = ctx->klass.get_min_frame_count( - min_frame_count, AUDIO_STREAM_TYPE_MUSIC, params->rate); - } else { - status = ctx->klass.get_min_frame_count_gingerbread( - min_frame_count, AUDIO_STREAM_TYPE_MUSIC, params->rate); - } - if (status != 0) { - ALOG("error getting the min frame count"); - return CUBEB_ERROR; - } - return CUBEB_OK; -} - -int -audiotrack_init(cubeb ** context, char const * context_name) -{ - cubeb * ctx; - struct AudioTrack * c; - - assert(context); - *context = NULL; - - ctx = calloc(1, sizeof(*ctx)); - assert(ctx); - - /* If we use an absolute path here ("/system/lib/libmedia.so"), and on Android - * 2.2, the dlopen succeeds, all the dlsym succeed, but a segfault happens on - * the first call to a dlsym'ed function. Somehow this does not happen when - * using only the name of the library. */ - ctx->library = dlopen("libmedia.so", RTLD_LAZY); - if (!ctx->library) { - ALOG("dlopen error: %s.", dlerror()); - free(ctx); - return CUBEB_ERROR; - } - - /* Recent Android first, then Gingerbread. */ - DLSYM_DLERROR("_ZN7android10AudioTrackC1EijiiijPFviPvS1_ES1_ii", - ctx->klass.ctor, ctx->library); - DLSYM_DLERROR("_ZN7android10AudioTrackD1Ev", ctx->klass.dtor, ctx->library); - - DLSYM_DLERROR("_ZNK7android10AudioTrack7latencyEv", ctx->klass.latency, - ctx->library); - DLSYM_DLERROR("_ZNK7android10AudioTrack9initCheckEv", ctx->klass.check, - ctx->library); - - DLSYM_DLERROR("_ZN7android11AudioSystem21getOutputSamplingRateEPii", - ctx->klass.get_output_samplingrate, ctx->library); - - /* |getMinFrameCount| is available on gingerbread and ICS with different - * signatures. */ - DLSYM_DLERROR( - "_ZN7android10AudioTrack16getMinFrameCountEPi19audio_stream_type_tj", - ctx->klass.get_min_frame_count, ctx->library); - if (!ctx->klass.get_min_frame_count) { - DLSYM_DLERROR("_ZN7android10AudioTrack16getMinFrameCountEPiij", - ctx->klass.get_min_frame_count_gingerbread, ctx->library); - } - - DLSYM_DLERROR("_ZN7android10AudioTrack5startEv", ctx->klass.start, - ctx->library); - DLSYM_DLERROR("_ZN7android10AudioTrack5pauseEv", ctx->klass.pause, - ctx->library); - DLSYM_DLERROR("_ZN7android10AudioTrack11getPositionEPj", - ctx->klass.get_position, ctx->library); - DLSYM_DLERROR("_ZN7android10AudioTrack17setMarkerPositionEj", - ctx->klass.set_marker_position, ctx->library); - DLSYM_DLERROR("_ZN7android10AudioTrack9setVolumeEff", ctx->klass.set_volume, - ctx->library); - - /* check that we have a combination of symbol that makes sense */ - c = &ctx->klass; - if (!(c->ctor && c->dtor && c->latency && c->check && - /* at least one way to get the minimum frame count to request. */ - (c->get_min_frame_count || c->get_min_frame_count_gingerbread) && - c->start && c->pause && c->get_position && c->set_marker_position)) { - ALOG("Could not find all the symbols we need."); - audiotrack_destroy(ctx); - return CUBEB_ERROR; - } - - ctx->ops = &audiotrack_ops; - - *context = ctx; - - return CUBEB_OK; -} - -char const * -audiotrack_get_backend_id(cubeb * context) -{ - return "audiotrack"; -} - -static int -audiotrack_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) -{ - assert(ctx && max_channels); - - /* The android mixer handles up to two channels, see - http://androidxref.com/4.2.2_r1/xref/frameworks/av/services/audioflinger/AudioFlinger.h#67 - */ - *max_channels = 2; - - return CUBEB_OK; -} - -static int -audiotrack_get_min_latency(cubeb * ctx, cubeb_stream_params params, - uint32_t * latency_ms) -{ - /* We always use the lowest latency possible when using this backend (see - * audiotrack_stream_init), so this value is not going to be used. */ - int r; - - r = audiotrack_get_min_frame_count(ctx, ¶ms, (int *)latency_ms); - if (r != CUBEB_OK) { - return CUBEB_ERROR; - } - - return CUBEB_OK; -} - -static int -audiotrack_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) -{ - status_t r; - - r = ctx->klass.get_output_samplingrate((int32_t *)rate, 3 /* MUSIC */); - - return r == 0 ? CUBEB_OK : CUBEB_ERROR; -} - -void -audiotrack_destroy(cubeb * context) -{ - assert(context); - - dlclose(context->library); - - free(context); -} - -int -audiotrack_stream_init(cubeb * ctx, cubeb_stream ** stream, - char const * stream_name, cubeb_devid input_device, - cubeb_stream_params * input_stream_params, - cubeb_devid output_device, - cubeb_stream_params * output_stream_params, - unsigned int latency, cubeb_data_callback data_callback, - cubeb_state_callback state_callback, void * user_ptr) -{ - cubeb_stream * stm; - int32_t channels; - uint32_t min_frame_count; - - assert(ctx && stream); - - assert(!input_stream_params && "not supported"); - if (input_device || output_device) { - /* Device selection not yet implemented. */ - return CUBEB_ERROR_DEVICE_UNAVAILABLE; - } - - if (output_stream_params->format == CUBEB_SAMPLE_FLOAT32LE || - output_stream_params->format == CUBEB_SAMPLE_FLOAT32BE) { - return CUBEB_ERROR_INVALID_FORMAT; - } - - if (audiotrack_get_min_frame_count(ctx, output_stream_params, - (int *)&min_frame_count)) { - return CUBEB_ERROR; - } - - stm = calloc(1, sizeof(*stm)); - assert(stm); - - stm->context = ctx; - stm->data_callback = data_callback; - stm->state_callback = state_callback; - stm->user_ptr = user_ptr; - stm->params = *output_stream_params; - - stm->instance = calloc(SIZE_AUDIOTRACK_INSTANCE, 1); - (*(uint32_t *)((intptr_t)stm->instance + SIZE_AUDIOTRACK_INSTANCE - 4)) = - 0xbaadbaad; - assert(stm->instance && "cubeb: EOM"); - - /* gingerbread uses old channel layout enum */ - if (audiotrack_version_is_gingerbread(ctx)) { - channels = stm->params.channels == 2 ? AUDIO_CHANNEL_OUT_STEREO_Legacy - : AUDIO_CHANNEL_OUT_MONO_Legacy; - } else { - channels = stm->params.channels == 2 ? AUDIO_CHANNEL_OUT_STEREO_ICS - : AUDIO_CHANNEL_OUT_MONO_ICS; - } - - ctx->klass.ctor(stm->instance, AUDIO_STREAM_TYPE_MUSIC, stm->params.rate, - AUDIO_FORMAT_PCM_16_BIT, channels, min_frame_count, 0, - audiotrack_refill, stm, 0, 0); - - assert((*(uint32_t *)((intptr_t)stm->instance + SIZE_AUDIOTRACK_INSTANCE - - 4)) == 0xbaadbaad); - - if (ctx->klass.check(stm->instance)) { - ALOG("stream not initialized properly."); - audiotrack_stream_destroy(stm); - return CUBEB_ERROR; - } - - *stream = stm; - - return CUBEB_OK; -} - -void -audiotrack_stream_destroy(cubeb_stream * stream) -{ - assert(stream->context); - - stream->context->klass.dtor(stream->instance); - - free(stream->instance); - stream->instance = NULL; - free(stream); -} - -int -audiotrack_stream_start(cubeb_stream * stream) -{ - assert(stream->instance); - - stream->context->klass.start(stream->instance); - stream->state_callback(stream, stream->user_ptr, CUBEB_STATE_STARTED); - - return CUBEB_OK; -} - -int -audiotrack_stream_stop(cubeb_stream * stream) -{ - assert(stream->instance); - - stream->context->klass.pause(stream->instance); - stream->state_callback(stream, stream->user_ptr, CUBEB_STATE_STOPPED); - - return CUBEB_OK; -} - -int -audiotrack_stream_get_position(cubeb_stream * stream, uint64_t * position) -{ - uint32_t p; - - assert(stream->instance && position); - stream->context->klass.get_position(stream->instance, &p); - *position = p; - - return CUBEB_OK; -} - -int -audiotrack_stream_get_latency(cubeb_stream * stream, uint32_t * latency) -{ - assert(stream->instance && latency); - - /* Android returns the latency in ms, we want it in frames. */ - *latency = stream->context->klass.latency(stream->instance); - /* with rate <= 96000, we won't overflow until 44.739 seconds of latency */ - *latency = (*latency * stream->params.rate) / 1000; - - return 0; -} - -int -audiotrack_stream_set_volume(cubeb_stream * stream, float volume) -{ - status_t status; - - status = stream->context->klass.set_volume(stream->instance, volume, volume); - - if (status) { - return CUBEB_ERROR; - } - - return CUBEB_OK; -} - -static struct cubeb_ops const audiotrack_ops = { - .init = audiotrack_init, - .get_backend_id = audiotrack_get_backend_id, - .get_max_channel_count = audiotrack_get_max_channel_count, - .get_min_latency = audiotrack_get_min_latency, - .get_preferred_sample_rate = audiotrack_get_preferred_sample_rate, - .enumerate_devices = NULL, - .device_collection_destroy = NULL, - .destroy = audiotrack_destroy, - .stream_init = audiotrack_stream_init, - .stream_destroy = audiotrack_stream_destroy, - .stream_start = audiotrack_stream_start, - .stream_stop = audiotrack_stream_stop, - .stream_get_position = audiotrack_stream_get_position, - .stream_get_latency = audiotrack_stream_get_latency, - .stream_get_input_latency = NULL, - .stream_set_volume = audiotrack_stream_set_volume, - .stream_set_name = NULL, - .stream_get_current_device = NULL, - .stream_device_destroy = NULL, - .stream_register_device_changed_callback = NULL, - .register_device_collection_changed = NULL}; diff --git a/3rdparty/cubeb/src/cubeb_jack.cpp b/3rdparty/cubeb/src/cubeb_jack.cpp index d851c79f9095be..6f921d60798b6e 100644 --- a/3rdparty/cubeb/src/cubeb_jack.cpp +++ b/3rdparty/cubeb/src/cubeb_jack.cpp @@ -8,7 +8,7 @@ */ #define _DEFAULT_SOURCE #define _BSD_SOURCE -#ifndef __FreeBSD__ +#if !defined(__FreeBSD__) && !defined(__NetBSD__) #define _POSIX_SOURCE #endif #include "cubeb-internal.h" diff --git a/3rdparty/cubeb/src/cubeb_kai.c b/3rdparty/cubeb/src/cubeb_kai.c deleted file mode 100644 index 0a0d67661f31af..00000000000000 --- a/3rdparty/cubeb/src/cubeb_kai.c +++ /dev/null @@ -1,369 +0,0 @@ -/* - * Copyright © 2015 Mozilla Foundation - * - * This program is made available under an ISC-style license. See the - * accompanying file LICENSE for details. - */ -#include -#include -#include -#include - -#include - -#include "cubeb-internal.h" -#include "cubeb/cubeb.h" - -/* We don't support more than 2 channels in KAI */ -#define MAX_CHANNELS 2 - -#define NBUFS 2 -#define FRAME_SIZE 2048 - -struct cubeb_stream_item { - cubeb_stream * stream; -}; - -static struct cubeb_ops const kai_ops; - -struct cubeb { - struct cubeb_ops const * ops; -}; - -struct cubeb_stream { - /* Note: Must match cubeb_stream layout in cubeb.c. */ - cubeb * context; - void * user_ptr; - /**/ - cubeb_stream_params params; - cubeb_data_callback data_callback; - cubeb_state_callback state_callback; - - HKAI hkai; - KAISPEC spec; - uint64_t total_frames; - float soft_volume; - _fmutex mutex; - float float_buffer[FRAME_SIZE * MAX_CHANNELS]; -}; - -static inline long -frames_to_bytes(long frames, cubeb_stream_params params) -{ - return frames * 2 * params.channels; /* 2 bytes per frame */ -} - -static inline long -bytes_to_frames(long bytes, cubeb_stream_params params) -{ - return bytes / 2 / params.channels; /* 2 bytes per frame */ -} - -static void -kai_destroy(cubeb * ctx); - -/*static*/ int -kai_init(cubeb ** context, char const * context_name) -{ - cubeb * ctx; - - XASSERT(context); - *context = NULL; - - if (kaiInit(KAIM_AUTO)) - return CUBEB_ERROR; - - ctx = calloc(1, sizeof(*ctx)); - XASSERT(ctx); - - ctx->ops = &kai_ops; - - *context = ctx; - - return CUBEB_OK; -} - -static char const * -kai_get_backend_id(cubeb * ctx) -{ - return "kai"; -} - -static void -kai_destroy(cubeb * ctx) -{ - kaiDone(); - - free(ctx); -} - -static void -float_to_s16ne(int16_t * dst, float * src, size_t n) -{ - long l; - - while (n--) { - l = lrintf(*src++ * 0x8000); - if (l > 32767) - l = 32767; - if (l < -32768) - l = -32768; - *dst++ = (int16_t)l; - } -} - -static ULONG APIENTRY -kai_callback(PVOID cbdata, PVOID buffer, ULONG len) -{ - cubeb_stream * stm = cbdata; - void * p; - long wanted_frames; - long frames; - float soft_volume; - int elements = len / sizeof(int16_t); - - p = stm->params.format == CUBEB_SAMPLE_FLOAT32NE ? stm->float_buffer : buffer; - - wanted_frames = bytes_to_frames(len, stm->params); - frames = stm->data_callback(stm, stm->user_ptr, NULL, p, wanted_frames); - - _fmutex_request(&stm->mutex, 0); - stm->total_frames += frames; - soft_volume = stm->soft_volume; - _fmutex_release(&stm->mutex); - - if (frames < wanted_frames) - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_DRAINED); - - if (stm->params.format == CUBEB_SAMPLE_FLOAT32NE) - float_to_s16ne(buffer, p, elements); - - if (soft_volume != -1.0f) { - int16_t * b = buffer; - int i; - - for (i = 0; i < elements; i++) - *b++ *= soft_volume; - } - - return frames_to_bytes(frames, stm->params); -} - -static void -kai_stream_destroy(cubeb_stream * stm); - -static int -kai_stream_init(cubeb * context, cubeb_stream ** stream, - char const * stream_name, cubeb_devid input_device, - cubeb_stream_params * input_stream_params, - cubeb_devid output_device, - cubeb_stream_params * output_stream_params, - unsigned int latency, cubeb_data_callback data_callback, - cubeb_state_callback state_callback, void * user_ptr) -{ - cubeb_stream * stm; - KAISPEC wanted_spec; - - XASSERT(!input_stream_params && "not supported."); - if (input_device || output_device) { - /* Device selection not yet implemented. */ - return CUBEB_ERROR_DEVICE_UNAVAILABLE; - } - - if (!output_stream_params) - return CUBEB_ERROR_INVALID_PARAMETER; - - // Loopback is unsupported - if (output_stream_params->prefs & CUBEB_STREAM_PREF_LOOPBACK) { - return CUBEB_ERROR_NOT_SUPPORTED; - } - - if (output_stream_params->channels < 1 || - output_stream_params->channels > MAX_CHANNELS) - return CUBEB_ERROR_INVALID_FORMAT; - - XASSERT(context); - XASSERT(stream); - - *stream = NULL; - - stm = calloc(1, sizeof(*stm)); - XASSERT(stm); - - stm->context = context; - stm->params = *output_stream_params; - stm->data_callback = data_callback; - stm->state_callback = state_callback; - stm->user_ptr = user_ptr; - stm->soft_volume = -1.0f; - - if (_fmutex_create(&stm->mutex, 0)) { - free(stm); - return CUBEB_ERROR; - } - - wanted_spec.usDeviceIndex = 0; - wanted_spec.ulType = KAIT_PLAY; - wanted_spec.ulBitsPerSample = BPS_16; - wanted_spec.ulSamplingRate = stm->params.rate; - wanted_spec.ulDataFormat = MCI_WAVE_FORMAT_PCM; - wanted_spec.ulChannels = stm->params.channels; - wanted_spec.ulNumBuffers = NBUFS; - wanted_spec.ulBufferSize = frames_to_bytes(FRAME_SIZE, stm->params); - wanted_spec.fShareable = TRUE; - wanted_spec.pfnCallBack = kai_callback; - wanted_spec.pCallBackData = stm; - - if (kaiOpen(&wanted_spec, &stm->spec, &stm->hkai)) { - _fmutex_close(&stm->mutex); - free(stm); - return CUBEB_ERROR; - } - - *stream = stm; - - return CUBEB_OK; -} - -static void -kai_stream_destroy(cubeb_stream * stm) -{ - kaiClose(stm->hkai); - _fmutex_close(&stm->mutex); - free(stm); -} - -static int -kai_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) -{ - XASSERT(ctx && max_channels); - - *max_channels = MAX_CHANNELS; - - return CUBEB_OK; -} - -static int -kai_get_min_latency(cubeb * ctx, cubeb_stream_params params, uint32_t * latency) -{ - /* We have at least two buffers. One is being played, the other one is being - filled. So there is as much latency as one buffer. */ - *latency = FRAME_SIZE; - - return CUBEB_OK; -} - -static int -kai_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) -{ - cubeb_stream_params params; - KAISPEC wanted_spec; - KAISPEC spec; - HKAI hkai; - - params.format = CUBEB_SAMPLE_S16NE; - params.rate = 48000; - params.channels = 2; - - wanted_spec.usDeviceIndex = 0; - wanted_spec.ulType = KAIT_PLAY; - wanted_spec.ulBitsPerSample = BPS_16; - wanted_spec.ulSamplingRate = params.rate; - wanted_spec.ulDataFormat = MCI_WAVE_FORMAT_PCM; - wanted_spec.ulChannels = params.channels; - wanted_spec.ulNumBuffers = NBUFS; - wanted_spec.ulBufferSize = frames_to_bytes(FRAME_SIZE, params); - wanted_spec.fShareable = TRUE; - wanted_spec.pfnCallBack = kai_callback; - wanted_spec.pCallBackData = NULL; - - /* Test 48KHz */ - if (kaiOpen(&wanted_spec, &spec, &hkai)) { - /* Not supported. Fall back to 44.1KHz */ - params.rate = 44100; - } else { - /* Supported. Use 48KHz */ - kaiClose(hkai); - } - - *rate = params.rate; - - return CUBEB_OK; -} - -static int -kai_stream_start(cubeb_stream * stm) -{ - if (kaiPlay(stm->hkai)) - return CUBEB_ERROR; - - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_STARTED); - - return CUBEB_OK; -} - -static int -kai_stream_stop(cubeb_stream * stm) -{ - if (kaiStop(stm->hkai)) - return CUBEB_ERROR; - - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_STOPPED); - - return CUBEB_OK; -} - -static int -kai_stream_get_position(cubeb_stream * stm, uint64_t * position) -{ - _fmutex_request(&stm->mutex, 0); - *position = stm->total_frames; - _fmutex_release(&stm->mutex); - - return CUBEB_OK; -} - -static int -kai_stream_get_latency(cubeb_stream * stm, uint32_t * latency) -{ - /* Out of buffers, one is being played, the others are being filled. - So there is as much latency as total buffers - 1. */ - *latency = bytes_to_frames(stm->spec.ulBufferSize, stm->params) * - (stm->spec.ulNumBuffers - 1); - - return CUBEB_OK; -} - -static int -kai_stream_set_volume(cubeb_stream * stm, float volume) -{ - _fmutex_request(&stm->mutex, 0); - stm->soft_volume = volume; - _fmutex_release(&stm->mutex); - - return CUBEB_OK; -} - -static struct cubeb_ops const kai_ops = { - /*.init =*/kai_init, - /*.get_backend_id =*/kai_get_backend_id, - /*.get_max_channel_count=*/kai_get_max_channel_count, - /*.get_min_latency=*/kai_get_min_latency, - /*.get_preferred_sample_rate =*/kai_get_preferred_sample_rate, - /*.get_preferred_channel_layout =*/NULL, - /*.enumerate_devices =*/NULL, - /*.device_collection_destroy =*/NULL, - /*.destroy =*/kai_destroy, - /*.stream_init =*/kai_stream_init, - /*.stream_destroy =*/kai_stream_destroy, - /*.stream_start =*/kai_stream_start, - /*.stream_stop =*/kai_stream_stop, - /*.stream_get_position =*/kai_stream_get_position, - /*.stream_get_latency = */ kai_stream_get_latency, - /*.stream_get_input_latency = */ NULL, - /*.stream_set_volume =*/kai_stream_set_volume, - /*.stream_set_name =*/NULL, - /*.stream_get_current_device =*/NULL, - /*.stream_device_destroy =*/NULL, - /*.stream_register_device_changed_callback=*/NULL, - /*.register_device_collection_changed=*/NULL}; diff --git a/3rdparty/cubeb/src/cubeb_log.cpp b/3rdparty/cubeb/src/cubeb_log.cpp index 0d86518b4ed78b..9a1c54edfb501b 100644 --- a/3rdparty/cubeb/src/cubeb_log.cpp +++ b/3rdparty/cubeb/src/cubeb_log.cpp @@ -16,8 +16,8 @@ #include #endif -std::atomic g_cubeb_log_level; -std::atomic g_cubeb_log_callback; +static std::atomic g_cubeb_log_level; +static std::atomic g_cubeb_log_callback; /** The maximum size of a log message, after having been formatted. */ const size_t CUBEB_LOG_MESSAGE_MAX_SIZE = 256; @@ -25,134 +25,43 @@ const size_t CUBEB_LOG_MESSAGE_MAX_SIZE = 256; * messages. */ const size_t CUBEB_LOG_MESSAGE_QUEUE_DEPTH = 40; /** Number of milliseconds to wait before dequeuing log messages. */ -#define CUBEB_LOG_BATCH_PRINT_INTERVAL_MS 10 - -/** - * This wraps an inline buffer, that represents a log message, that must be - * null-terminated. - * This class should not use system calls or other potentially blocking code. - */ -class cubeb_log_message { -public: - cubeb_log_message() { *storage = '\0'; } - cubeb_log_message(char const str[CUBEB_LOG_MESSAGE_MAX_SIZE]) - { - size_t length = strlen(str); - /* paranoia against malformed message */ - assert(length < CUBEB_LOG_MESSAGE_MAX_SIZE); - if (length > CUBEB_LOG_MESSAGE_MAX_SIZE - 1) { - return; - } - PodCopy(storage, str, length); - storage[length] = '\0'; - } - char const * get() { return storage; } - -private: - char storage[CUBEB_LOG_MESSAGE_MAX_SIZE]; -}; - -/** Lock-free asynchronous logger, made so that logging from a - * real-time audio callback does not block the audio thread. */ -class cubeb_async_logger { -public: - /* This is thread-safe since C++11 */ - static cubeb_async_logger & get() - { - static cubeb_async_logger instance; - return instance; - } - void push(char const str[CUBEB_LOG_MESSAGE_MAX_SIZE]) - { - cubeb_log_message msg(str); - msg_queue.enqueue(msg); - } - void run() - { - std::thread([this]() { - CUBEB_REGISTER_THREAD("cubeb_log"); - while (true) { - cubeb_log_message msg; - while (msg_queue.dequeue(&msg, 1)) { - cubeb_log_internal_no_format(msg.get()); - } -#ifdef _WIN32 - Sleep(CUBEB_LOG_BATCH_PRINT_INTERVAL_MS); -#else - timespec sleep_duration = sleep_for; - timespec remainder; - do { - if (nanosleep(&sleep_duration, &remainder) == 0 || errno != EINTR) { - break; - } - sleep_duration = remainder; - } while (remainder.tv_sec || remainder.tv_nsec); -#endif - } - CUBEB_UNREGISTER_THREAD(); - }).detach(); - } - // Tell the underlying queue the producer thread has changed, so it does not - // assert in debug. This should be called with the thread stopped. - void reset_producer_thread() { msg_queue.reset_thread_ids(); } - -private: -#ifndef _WIN32 - const struct timespec sleep_for = { - CUBEB_LOG_BATCH_PRINT_INTERVAL_MS / 1000, - (CUBEB_LOG_BATCH_PRINT_INTERVAL_MS % 1000) * 1000 * 1000}; -#endif - cubeb_async_logger() : msg_queue(CUBEB_LOG_MESSAGE_QUEUE_DEPTH) { run(); } - /** This is quite a big data structure, but is only instantiated if the - * asynchronous logger is used.*/ - lock_free_queue msg_queue; -}; +const size_t CUBEB_LOG_BATCH_PRINT_INTERVAL_MS = 10; void -cubeb_log_internal(char const * file, uint32_t line, char const * fmt, ...) +cubeb_noop_log_callback(char const * /* fmt */, ...) { - va_list args; - va_start(args, fmt); - char msg[CUBEB_LOG_MESSAGE_MAX_SIZE]; - vsnprintf(msg, CUBEB_LOG_MESSAGE_MAX_SIZE, fmt, args); - g_cubeb_log_callback.load()("%s:%d:%s", file, line, msg); - va_end(args); -} - -void -cubeb_log_internal_no_format(const char * msg) -{ - g_cubeb_log_callback.load()(msg); } void -cubeb_async_log(char const * fmt, ...) +cubeb_log_internal(char const * file, uint32_t line, char const * fmt, ...) { - // This is going to copy a 256 bytes array around, which is fine. - // We don't want to allocate memory here, because this is made to - // be called from a real-time callback. va_list args; va_start(args, fmt); char msg[CUBEB_LOG_MESSAGE_MAX_SIZE]; vsnprintf(msg, CUBEB_LOG_MESSAGE_MAX_SIZE, fmt, args); - cubeb_async_logger::get().push(msg); va_end(args); + g_cubeb_log_callback.load()("%s:%d:%s", file, line, msg); } void -cubeb_async_log_reset_threads(void) +cubeb_log_internal_no_format(const char * msg) { - if (!g_cubeb_log_callback) { - return; - } - cubeb_async_logger::get().reset_producer_thread(); + g_cubeb_log_callback.load()(msg); } void cubeb_log_set(cubeb_log_level log_level, cubeb_log_callback log_callback) { g_cubeb_log_level = log_level; - g_cubeb_log_callback = log_callback; + // Once a callback has a been set, `g_cubeb_log_callback` is never set back to + // nullptr, to prevent a TOCTOU race between checking the pointer + if (log_callback && log_level != CUBEB_LOG_DISABLED) { + g_cubeb_log_callback = log_callback; + } else if (!log_callback || CUBEB_LOG_DISABLED) { + g_cubeb_log_callback = cubeb_noop_log_callback; + } else { + assert(false && "Incorrect parameters passed to cubeb_log_set"); + } } cubeb_log_level @@ -164,5 +73,8 @@ cubeb_log_get_level() cubeb_log_callback cubeb_log_get_callback() { + if (g_cubeb_log_callback == cubeb_noop_log_callback) { + return nullptr; + } return g_cubeb_log_callback; } diff --git a/3rdparty/cubeb/src/cubeb_log.h b/3rdparty/cubeb/src/cubeb_log.h index 93ab56056605f3..d42a0b77d13bd2 100644 --- a/3rdparty/cubeb/src/cubeb_log.h +++ b/3rdparty/cubeb/src/cubeb_log.h @@ -33,17 +33,13 @@ extern "C" { void cubeb_log_set(cubeb_log_level log_level, cubeb_log_callback log_callback); cubeb_log_level -cubeb_log_get_level(); +cubeb_log_get_level(void); cubeb_log_callback -cubeb_log_get_callback(); +cubeb_log_get_callback(void); void cubeb_log_internal_no_format(const char * msg); void cubeb_log_internal(const char * filename, uint32_t line, const char * fmt, ...); -void -cubeb_async_log(const char * fmt, ...); -void -cubeb_async_log_reset_threads(void); #ifdef __cplusplus } @@ -59,16 +55,9 @@ cubeb_async_log_reset_threads(void); } \ } while (0) -#define ALOG_INTERNAL(level, fmt, ...) \ - do { \ - if (cubeb_log_get_level() >= level && cubeb_log_get_callback()) { \ - cubeb_async_log(fmt, ##__VA_ARGS__); \ - } \ - } while (0) - /* Asynchronous logging macros to log in real-time callbacks. */ /* Should not be used on android due to the use of global/static variables. */ -#define ALOGV(msg, ...) ALOG_INTERNAL(CUBEB_LOG_VERBOSE, msg, ##__VA_ARGS__) -#define ALOG(msg, ...) ALOG_INTERNAL(CUBEB_LOG_NORMAL, msg, ##__VA_ARGS__) +#define ALOGV(msg, ...) LOG_INTERNAL(CUBEB_LOG_VERBOSE, msg, ##__VA_ARGS__) +#define ALOG(msg, ...) LOG_INTERNAL(CUBEB_LOG_NORMAL, msg, ##__VA_ARGS__) #endif // CUBEB_LOG diff --git a/3rdparty/cubeb/src/cubeb_mixer.cpp b/3rdparty/cubeb/src/cubeb_mixer.cpp index 74bab713997c9e..7f87571f56016e 100644 --- a/3rdparty/cubeb/src/cubeb_mixer.cpp +++ b/3rdparty/cubeb/src/cubeb_mixer.cpp @@ -183,7 +183,7 @@ MixerContext::auto_matrix() { double matrix[NUM_NAMED_CHANNELS][NUM_NAMED_CHANNELS] = {{0}}; double maxcoef = 0; - float maxval; + double maxval; cubeb_channel_layout in_ch_layout = clean_layout(_in_ch_layout); cubeb_channel_layout out_ch_layout = clean_layout(_out_ch_layout); diff --git a/3rdparty/cubeb/src/cubeb_opensl.c b/3rdparty/cubeb/src/cubeb_opensl.c deleted file mode 100644 index efac34d24e1b20..00000000000000 --- a/3rdparty/cubeb/src/cubeb_opensl.c +++ /dev/null @@ -1,1797 +0,0 @@ -/* - * Copyright © 2012 Mozilla Foundation - * - * This program is made available under an ISC-style license. See the - * accompanying file LICENSE for details. - */ -#undef NDEBUG -#include -#include -#include -#include -#include -#include -#include -#include -#if defined(__ANDROID__) -#include "android/sles_definitions.h" -#include -#include -#include -#include -#include -#endif -#include "android/cubeb-output-latency.h" -#include "cubeb-internal.h" -#include "cubeb/cubeb.h" -#include "cubeb_android.h" -#include "cubeb_array_queue.h" -#include "cubeb_resampler.h" - -#if defined(__ANDROID__) -#ifdef LOG -#undef LOG -#endif -//#define LOGGING_ENABLED -#ifdef LOGGING_ENABLED -#define LOG(args...) \ - __android_log_print(ANDROID_LOG_INFO, "Cubeb_OpenSL", ##args) -#else -#define LOG(...) -#endif - -//#define TIMESTAMP_ENABLED -#ifdef TIMESTAMP_ENABLED -#define FILENAME \ - (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) -#define LOG_TS(args...) \ - __android_log_print(ANDROID_LOG_INFO, "Cubeb_OpenSL ES: Timestamp(usec)", \ - ##args) -#define TIMESTAMP(msg) \ - do { \ - struct timeval timestamp; \ - int ts_ret = gettimeofday(×tamp, NULL); \ - if (ts_ret == 0) { \ - LOG_TS("%lld: %s (%s %s:%d)", \ - timestamp.tv_sec * 1000000LL + timestamp.tv_usec, msg, \ - __FUNCTION__, FILENAME, __LINE__); \ - } else { \ - LOG_TS("Error: %s (%s %s:%d) - %s", msg, __FUNCTION__, FILENAME, \ - __LINE__); \ - } \ - } while (0) -#else -#define TIMESTAMP(...) -#endif - -#define ANDROID_VERSION_GINGERBREAD_MR1 10 -#define ANDROID_VERSION_JELLY_BEAN 18 -#define ANDROID_VERSION_LOLLIPOP 21 -#define ANDROID_VERSION_MARSHMALLOW 23 -#define ANDROID_VERSION_N_MR1 25 -#endif - -#define DEFAULT_SAMPLE_RATE 48000 -#define DEFAULT_NUM_OF_FRAMES 480 - -static struct cubeb_ops const opensl_ops; - -struct cubeb { - struct cubeb_ops const * ops; - void * lib; - SLInterfaceID SL_IID_BUFFERQUEUE; - SLInterfaceID SL_IID_PLAY; -#if defined(__ANDROID__) - SLInterfaceID SL_IID_ANDROIDCONFIGURATION; - SLInterfaceID SL_IID_ANDROIDSIMPLEBUFFERQUEUE; -#endif - SLInterfaceID SL_IID_VOLUME; - SLInterfaceID SL_IID_RECORD; - SLObjectItf engObj; - SLEngineItf eng; - SLObjectItf outmixObj; - output_latency_function * p_output_latency_function; -}; - -#define NELEMS(A) (sizeof(A) / sizeof A[0]) -#define NBUFS 2 - -struct cubeb_stream { - /* Note: Must match cubeb_stream layout in cubeb.c. */ - cubeb * context; - void * user_ptr; - /**/ - pthread_mutex_t mutex; - SLObjectItf playerObj; - SLPlayItf play; - SLBufferQueueItf bufq; - SLVolumeItf volume; - void ** queuebuf; - uint32_t queuebuf_capacity; - int queuebuf_idx; - long queuebuf_len; - long bytespersec; - long framesize; - /* Total number of played frames. - * Synchronized by stream::mutex lock. */ - long written; - /* Flag indicating draining. Synchronized - * by stream::mutex lock. */ - int draining; - /* Flags to determine in/out.*/ - uint32_t input_enabled; - uint32_t output_enabled; - /* Recorder abstract object. */ - SLObjectItf recorderObj; - /* Recorder Itf for input capture. */ - SLRecordItf recorderItf; - /* Buffer queue for input capture. */ - SLAndroidSimpleBufferQueueItf recorderBufferQueueItf; - /* Store input buffers. */ - void ** input_buffer_array; - /* The capacity of the array. - * On capture only can be small (4). - * On full duplex is calculated to - * store 1 sec of data buffers. */ - uint32_t input_array_capacity; - /* Current filled index of input buffer array. - * It is initiated to -1 indicating buffering - * have not started yet. */ - int input_buffer_index; - /* Length of input buffer.*/ - uint32_t input_buffer_length; - /* Input frame size */ - uint32_t input_frame_size; - /* Device sampling rate. If user rate is not - * accepted an compatible rate is set. If it is - * accepted this is equal to params.rate. */ - uint32_t input_device_rate; - /* Exchange input buffers between input - * and full duplex threads. */ - array_queue * input_queue; - /* Silent input buffer used on full duplex. */ - void * input_silent_buffer; - /* Number of input frames from the start of the stream*/ - uint32_t input_total_frames; - /* Flag to stop the execution of user callback and - * close all working threads. Synchronized by - * stream::mutex lock. */ - uint32_t shutdown; - /* Store user callback. */ - cubeb_data_callback data_callback; - /* Store state callback. */ - cubeb_state_callback state_callback; - - cubeb_resampler * resampler; - unsigned int user_output_rate; - unsigned int output_configured_rate; - unsigned int buffer_size_frames; - // Audio output latency used in cubeb_stream_get_position(). - unsigned int output_latency_ms; - int64_t lastPosition; - int64_t lastPositionTimeStamp; - int64_t lastCompensativePosition; - int voice_input; - int voice_output; -}; - -/* Forward declaration. */ -static int -opensl_stop_player(cubeb_stream * stm); -static int -opensl_stop_recorder(cubeb_stream * stm); - -static int -opensl_get_draining(cubeb_stream * stm) -{ -#ifdef DEBUG - int r = pthread_mutex_trylock(&stm->mutex); - assert((r == EDEADLK || r == EBUSY) && - "get_draining: mutex should be locked but it's not."); -#endif - return stm->draining; -} - -static void -opensl_set_draining(cubeb_stream * stm, int value) -{ -#ifdef DEBUG - int r = pthread_mutex_trylock(&stm->mutex); - LOG("set draining try r = %d", r); - assert((r == EDEADLK || r == EBUSY) && - "set_draining: mutex should be locked but it's not."); -#endif - assert(value == 0 || value == 1); - stm->draining = value; -} - -static void -opensl_notify_drained(cubeb_stream * stm) -{ - assert(stm); - int r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - int draining = opensl_get_draining(stm); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - if (draining) { - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_DRAINED); - if (stm->play) { - LOG("stop player in play_callback"); - r = opensl_stop_player(stm); - assert(r == CUBEB_OK); - } - if (stm->recorderItf) { - r = opensl_stop_recorder(stm); - assert(r == CUBEB_OK); - } - } -} - -static uint32_t -opensl_get_shutdown(cubeb_stream * stm) -{ -#ifdef DEBUG - int r = pthread_mutex_trylock(&stm->mutex); - assert((r == EDEADLK || r == EBUSY) && - "get_shutdown: mutex should be locked but it's not."); -#endif - return stm->shutdown; -} - -static void -opensl_set_shutdown(cubeb_stream * stm, uint32_t value) -{ -#ifdef DEBUG - int r = pthread_mutex_trylock(&stm->mutex); - LOG("set shutdown try r = %d", r); - assert((r == EDEADLK || r == EBUSY) && - "set_shutdown: mutex should be locked but it's not."); -#endif - assert(value == 0 || value == 1); - stm->shutdown = value; -} - -static void -play_callback(SLPlayItf caller, void * user_ptr, SLuint32 event) -{ - cubeb_stream * stm = user_ptr; - assert(stm); - switch (event) { - case SL_PLAYEVENT_HEADATMARKER: - opensl_notify_drained(stm); - break; - default: - break; - } -} - -static void -recorder_marker_callback(SLRecordItf caller, void * pContext, SLuint32 event) -{ - cubeb_stream * stm = pContext; - assert(stm); - - if (event == SL_RECORDEVENT_HEADATMARKER) { - int r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - int draining = opensl_get_draining(stm); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - if (draining) { - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_DRAINED); - if (stm->recorderItf) { - r = opensl_stop_recorder(stm); - assert(r == CUBEB_OK); - } - if (stm->play) { - r = opensl_stop_player(stm); - assert(r == CUBEB_OK); - } - } - } -} - -static void -bufferqueue_callback(SLBufferQueueItf caller, void * user_ptr) -{ - cubeb_stream * stm = user_ptr; - assert(stm); - SLBufferQueueState state; - SLresult res; - long written = 0; - - res = (*stm->bufq)->GetState(stm->bufq, &state); - assert(res == SL_RESULT_SUCCESS); - - if (state.count > 1) { - return; - } - - uint8_t * buf = stm->queuebuf[stm->queuebuf_idx]; - written = 0; - int r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - int draining = opensl_get_draining(stm); - uint32_t shutdown = opensl_get_shutdown(stm); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - if (!draining && !shutdown) { - written = cubeb_resampler_fill(stm->resampler, NULL, NULL, buf, - stm->queuebuf_len / stm->framesize); - LOG("bufferqueue_callback: resampler fill returned %ld frames", written); - if (written < 0 || written * stm->framesize > stm->queuebuf_len) { - r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - opensl_set_shutdown(stm, 1); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - opensl_stop_player(stm); - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); - return; - } - } - - // Keep sending silent data even in draining mode to prevent the audio - // back-end from being stopped automatically by OpenSL/ES. - assert(stm->queuebuf_len >= written * stm->framesize); - memset(buf + written * stm->framesize, 0, - stm->queuebuf_len - written * stm->framesize); - res = (*stm->bufq)->Enqueue(stm->bufq, buf, stm->queuebuf_len); - assert(res == SL_RESULT_SUCCESS); - stm->queuebuf_idx = (stm->queuebuf_idx + 1) % stm->queuebuf_capacity; - - if (written > 0) { - pthread_mutex_lock(&stm->mutex); - stm->written += written; - pthread_mutex_unlock(&stm->mutex); - } - - if (!draining && written * stm->framesize < stm->queuebuf_len) { - LOG("bufferqueue_callback draining"); - r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - int64_t written_duration = - INT64_C(1000) * stm->written * stm->framesize / stm->bytespersec; - opensl_set_draining(stm, 1); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - - if (written_duration == 0) { - // since we didn't write any sample, it's not possible to reach the marker - // time and trigger the callback. We should initiative notify drained. - opensl_notify_drained(stm); - } else { - // Use SL_PLAYEVENT_HEADATMARKER event from slPlayCallback of SLPlayItf - // to make sure all the data has been processed. - (*stm->play) - ->SetMarkerPosition(stm->play, (SLmillisecond)written_duration); - } - return; - } -} - -static int -opensl_enqueue_recorder(cubeb_stream * stm, void ** last_filled_buffer) -{ - assert(stm); - - int current_index = stm->input_buffer_index; - void * last_buffer = NULL; - - if (current_index < 0) { - // This is the first enqueue - current_index = 0; - } else { - // The current index hold the last filled buffer get it before advance - // index. - last_buffer = stm->input_buffer_array[current_index]; - // Advance to get next available buffer - current_index = (current_index + 1) % stm->input_array_capacity; - } - // enqueue next empty buffer to be filled by the recorder - SLresult res = (*stm->recorderBufferQueueItf) - ->Enqueue(stm->recorderBufferQueueItf, - stm->input_buffer_array[current_index], - stm->input_buffer_length); - if (res != SL_RESULT_SUCCESS) { - LOG("Enqueue recorder failed. Error code: %lu", res); - return CUBEB_ERROR; - } - // All good, update buffer and index. - stm->input_buffer_index = current_index; - if (last_filled_buffer) { - *last_filled_buffer = last_buffer; - } - return CUBEB_OK; -} - -// input data callback -void -recorder_callback(SLAndroidSimpleBufferQueueItf bq, void * context) -{ - assert(context); - cubeb_stream * stm = context; - assert(stm->recorderBufferQueueItf); - - int r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - uint32_t shutdown = opensl_get_shutdown(stm); - int draining = opensl_get_draining(stm); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - - if (shutdown || draining) { - // According to the OpenSL ES 1.1 Specification, 8.14 SLBufferQueueItf - // page 184, on transition to the SL_RECORDSTATE_STOPPED state, - // the application should continue to enqueue buffers onto the queue - // to retrieve the residual recorded data in the system. - r = opensl_enqueue_recorder(stm, NULL); - assert(r == CUBEB_OK); - return; - } - - // Enqueue next available buffer and get the last filled buffer. - void * input_buffer = NULL; - r = opensl_enqueue_recorder(stm, &input_buffer); - assert(r == CUBEB_OK); - assert(input_buffer); - // Fill resampler with last input - long input_frame_count = stm->input_buffer_length / stm->input_frame_size; - long got = cubeb_resampler_fill(stm->resampler, input_buffer, - &input_frame_count, NULL, 0); - // Error case - if (got < 0 || got > input_frame_count) { - r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - opensl_set_shutdown(stm, 1); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - r = opensl_stop_recorder(stm); - assert(r == CUBEB_OK); - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); - } - - // Advance total stream frames - stm->input_total_frames += got; - - if (got < input_frame_count) { - r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - opensl_set_draining(stm, 1); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - int64_t duration = - INT64_C(1000) * stm->input_total_frames / stm->input_device_rate; - (*stm->recorderItf) - ->SetMarkerPosition(stm->recorderItf, (SLmillisecond)duration); - return; - } -} - -void -recorder_fullduplex_callback(SLAndroidSimpleBufferQueueItf bq, void * context) -{ - assert(context); - cubeb_stream * stm = context; - assert(stm->recorderBufferQueueItf); - - int r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - int draining = opensl_get_draining(stm); - uint32_t shutdown = opensl_get_shutdown(stm); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - - if (shutdown || draining) { - /* On draining and shutdown the recorder should have been stoped from - * the one set the flags. Accordint to the doc, on transition to - * the SL_RECORDSTATE_STOPPED state, the application should - * continue to enqueue buffers onto the queue to retrieve the residual - * recorded data in the system. */ - LOG("Input shutdown %d or drain %d", shutdown, draining); - int r = opensl_enqueue_recorder(stm, NULL); - assert(r == CUBEB_OK); - return; - } - - // Enqueue next available buffer and get the last filled buffer. - void * input_buffer = NULL; - r = opensl_enqueue_recorder(stm, &input_buffer); - assert(r == CUBEB_OK); - assert(input_buffer); - - assert(stm->input_queue); - r = array_queue_push(stm->input_queue, input_buffer); - if (r == -1) { - LOG("Input queue is full, drop input ..."); - return; - } - - LOG("Input pushed in the queue, input array %zu", - array_queue_get_size(stm->input_queue)); -} - -static void -player_fullduplex_callback(SLBufferQueueItf caller, void * user_ptr) -{ - TIMESTAMP("ENTER"); - cubeb_stream * stm = user_ptr; - assert(stm); - SLresult res; - - int r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - int draining = opensl_get_draining(stm); - uint32_t shutdown = opensl_get_shutdown(stm); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - - // Get output - void * output_buffer = NULL; - r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - output_buffer = stm->queuebuf[stm->queuebuf_idx]; - // Advance the output buffer queue index - stm->queuebuf_idx = (stm->queuebuf_idx + 1) % stm->queuebuf_capacity; - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - - if (shutdown || draining) { - LOG("Shutdown/draining, send silent"); - // Set silent on buffer - memset(output_buffer, 0, stm->queuebuf_len); - - // Enqueue data in player buffer queue - res = (*stm->bufq)->Enqueue(stm->bufq, output_buffer, stm->queuebuf_len); - assert(res == SL_RESULT_SUCCESS); - return; - } - - // Get input. - void * input_buffer = array_queue_pop(stm->input_queue); - long input_frame_count = stm->input_buffer_length / stm->input_frame_size; - long frames_needed = stm->queuebuf_len / stm->framesize; - if (!input_buffer) { - LOG("Input hole set silent input buffer"); - input_buffer = stm->input_silent_buffer; - } - - long written = 0; - // Trigger user callback through resampler - written = - cubeb_resampler_fill(stm->resampler, input_buffer, &input_frame_count, - output_buffer, frames_needed); - - LOG("Fill: written %ld, frames_needed %ld, input array size %zu", written, - frames_needed, array_queue_get_size(stm->input_queue)); - - if (written < 0 || written > frames_needed) { - // Error case - r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - opensl_set_shutdown(stm, 1); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - opensl_stop_player(stm); - opensl_stop_recorder(stm); - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); - memset(output_buffer, 0, stm->queuebuf_len); - - // Enqueue data in player buffer queue - res = (*stm->bufq)->Enqueue(stm->bufq, output_buffer, stm->queuebuf_len); - assert(res == SL_RESULT_SUCCESS); - return; - } - - // Advance total out written frames counter - r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - stm->written += written; - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - - if (written < frames_needed) { - r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - int64_t written_duration = - INT64_C(1000) * stm->written * stm->framesize / stm->bytespersec; - opensl_set_draining(stm, 1); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - - // Use SL_PLAYEVENT_HEADATMARKER event from slPlayCallback of SLPlayItf - // to make sure all the data has been processed. - (*stm->play)->SetMarkerPosition(stm->play, (SLmillisecond)written_duration); - } - - // Keep sending silent data even in draining mode to prevent the audio - // back-end from being stopped automatically by OpenSL/ES. - memset((uint8_t *)output_buffer + written * stm->framesize, 0, - stm->queuebuf_len - written * stm->framesize); - - // Enqueue data in player buffer queue - res = (*stm->bufq)->Enqueue(stm->bufq, output_buffer, stm->queuebuf_len); - assert(res == SL_RESULT_SUCCESS); - TIMESTAMP("EXIT"); -} - -static void -opensl_destroy(cubeb * ctx); - -#if defined(__ANDROID__) -#if (__ANDROID_API__ >= ANDROID_VERSION_LOLLIPOP) -typedef int(system_property_get)(const char *, char *); - -static int -wrap_system_property_get(const char * name, char * value) -{ - void * libc = dlopen("libc.so", RTLD_LAZY); - if (!libc) { - LOG("Failed to open libc.so"); - return -1; - } - system_property_get * func = - (system_property_get *)dlsym(libc, "__system_property_get"); - int ret = -1; - if (func) { - ret = func(name, value); - } - dlclose(libc); - return ret; -} -#endif - -static int -get_android_version(void) -{ - char version_string[PROP_VALUE_MAX]; - - memset(version_string, 0, PROP_VALUE_MAX); - -#if (__ANDROID_API__ >= ANDROID_VERSION_LOLLIPOP) - int len = wrap_system_property_get("ro.build.version.sdk", version_string); -#else - int len = __system_property_get("ro.build.version.sdk", version_string); -#endif - if (len <= 0) { - LOG("Failed to get Android version!\n"); - return len; - } - - int version = (int)strtol(version_string, NULL, 10); - LOG("Android version %d", version); - return version; -} -#endif - -/*static*/ int -opensl_init(cubeb ** context, char const * context_name) -{ - cubeb * ctx; - -#if defined(__ANDROID__) - int android_version = get_android_version(); - if (android_version > 0 && - android_version <= ANDROID_VERSION_GINGERBREAD_MR1) { - // Don't even attempt to run on Gingerbread and lower - return CUBEB_ERROR; - } -#endif - - *context = NULL; - - ctx = calloc(1, sizeof(*ctx)); - assert(ctx); - - ctx->ops = &opensl_ops; - - ctx->lib = dlopen("libOpenSLES.so", RTLD_LAZY); - if (!ctx->lib) { - free(ctx); - return CUBEB_ERROR; - } - - typedef SLresult (*slCreateEngine_t)( - SLObjectItf *, SLuint32, const SLEngineOption *, SLuint32, - const SLInterfaceID *, const SLboolean *); - slCreateEngine_t f_slCreateEngine = - (slCreateEngine_t)dlsym(ctx->lib, "slCreateEngine"); - SLInterfaceID SL_IID_ENGINE = - *(SLInterfaceID *)dlsym(ctx->lib, "SL_IID_ENGINE"); - SLInterfaceID SL_IID_OUTPUTMIX = - *(SLInterfaceID *)dlsym(ctx->lib, "SL_IID_OUTPUTMIX"); - ctx->SL_IID_VOLUME = *(SLInterfaceID *)dlsym(ctx->lib, "SL_IID_VOLUME"); - ctx->SL_IID_BUFFERQUEUE = - *(SLInterfaceID *)dlsym(ctx->lib, "SL_IID_BUFFERQUEUE"); -#if defined(__ANDROID__) - ctx->SL_IID_ANDROIDCONFIGURATION = - *(SLInterfaceID *)dlsym(ctx->lib, "SL_IID_ANDROIDCONFIGURATION"); - ctx->SL_IID_ANDROIDSIMPLEBUFFERQUEUE = - *(SLInterfaceID *)dlsym(ctx->lib, "SL_IID_ANDROIDSIMPLEBUFFERQUEUE"); -#endif - ctx->SL_IID_PLAY = *(SLInterfaceID *)dlsym(ctx->lib, "SL_IID_PLAY"); - ctx->SL_IID_RECORD = *(SLInterfaceID *)dlsym(ctx->lib, "SL_IID_RECORD"); - - if (!f_slCreateEngine || !SL_IID_ENGINE || !SL_IID_OUTPUTMIX || - !ctx->SL_IID_BUFFERQUEUE || -#if defined(__ANDROID__) - !ctx->SL_IID_ANDROIDCONFIGURATION || - !ctx->SL_IID_ANDROIDSIMPLEBUFFERQUEUE || -#endif - !ctx->SL_IID_PLAY || !ctx->SL_IID_RECORD) { - opensl_destroy(ctx); - return CUBEB_ERROR; - } - - const SLEngineOption opt[] = {{SL_ENGINEOPTION_THREADSAFE, SL_BOOLEAN_TRUE}}; - - SLresult res; - res = f_slCreateEngine(&ctx->engObj, 1, opt, 0, NULL, NULL); - - if (res != SL_RESULT_SUCCESS) { - opensl_destroy(ctx); - return CUBEB_ERROR; - } - - res = (*ctx->engObj)->Realize(ctx->engObj, SL_BOOLEAN_FALSE); - if (res != SL_RESULT_SUCCESS) { - opensl_destroy(ctx); - return CUBEB_ERROR; - } - - res = (*ctx->engObj)->GetInterface(ctx->engObj, SL_IID_ENGINE, &ctx->eng); - if (res != SL_RESULT_SUCCESS) { - opensl_destroy(ctx); - return CUBEB_ERROR; - } - - const SLInterfaceID idsom[] = {SL_IID_OUTPUTMIX}; - const SLboolean reqom[] = {SL_BOOLEAN_TRUE}; - res = - (*ctx->eng)->CreateOutputMix(ctx->eng, &ctx->outmixObj, 1, idsom, reqom); - if (res != SL_RESULT_SUCCESS) { - opensl_destroy(ctx); - return CUBEB_ERROR; - } - - res = (*ctx->outmixObj)->Realize(ctx->outmixObj, SL_BOOLEAN_FALSE); - if (res != SL_RESULT_SUCCESS) { - opensl_destroy(ctx); - return CUBEB_ERROR; - } - - ctx->p_output_latency_function = - cubeb_output_latency_load_method(android_version); - if (!cubeb_output_latency_method_is_loaded(ctx->p_output_latency_function)) { - LOG("Warning: output latency is not available, cubeb_stream_get_position() " - "is not supported"); - } - - *context = ctx; - - LOG("Cubeb init (%p) success", ctx); - return CUBEB_OK; -} - -static char const * -opensl_get_backend_id(cubeb * ctx) -{ - return "opensl"; -} - -static int -opensl_get_max_channel_count(cubeb * ctx, uint32_t * max_channels) -{ - assert(ctx && max_channels); - /* The android mixer handles up to two channels, see - http://androidxref.com/4.2.2_r1/xref/frameworks/av/services/audioflinger/AudioFlinger.h#67 - */ - *max_channels = 2; - - return CUBEB_OK; -} - -static void -opensl_destroy(cubeb * ctx) -{ - if (ctx->outmixObj) { - (*ctx->outmixObj)->Destroy(ctx->outmixObj); - } - if (ctx->engObj) { - (*ctx->engObj)->Destroy(ctx->engObj); - } - dlclose(ctx->lib); - if (ctx->p_output_latency_function) - cubeb_output_latency_unload_method(ctx->p_output_latency_function); - free(ctx); -} - -static void -opensl_stream_destroy(cubeb_stream * stm); - -#if defined(__ANDROID__) && (__ANDROID_API__ >= ANDROID_VERSION_LOLLIPOP) -static int -opensl_set_format_ext(SLAndroidDataFormat_PCM_EX * format, - cubeb_stream_params * params) -{ - assert(format); - assert(params); - - format->formatType = SL_ANDROID_DATAFORMAT_PCM_EX; - format->numChannels = params->channels; - // sampleRate is in milliHertz - format->sampleRate = params->rate * 1000; - format->channelMask = params->channels == 1 - ? SL_SPEAKER_FRONT_CENTER - : SL_SPEAKER_FRONT_LEFT | SL_SPEAKER_FRONT_RIGHT; - - switch (params->format) { - case CUBEB_SAMPLE_S16LE: - format->bitsPerSample = SL_PCMSAMPLEFORMAT_FIXED_16; - format->containerSize = SL_PCMSAMPLEFORMAT_FIXED_16; - format->representation = SL_ANDROID_PCM_REPRESENTATION_SIGNED_INT; - format->endianness = SL_BYTEORDER_LITTLEENDIAN; - break; - case CUBEB_SAMPLE_S16BE: - format->bitsPerSample = SL_PCMSAMPLEFORMAT_FIXED_16; - format->containerSize = SL_PCMSAMPLEFORMAT_FIXED_16; - format->representation = SL_ANDROID_PCM_REPRESENTATION_SIGNED_INT; - format->endianness = SL_BYTEORDER_BIGENDIAN; - break; - case CUBEB_SAMPLE_FLOAT32LE: - format->bitsPerSample = SL_PCMSAMPLEFORMAT_FIXED_32; - format->containerSize = SL_PCMSAMPLEFORMAT_FIXED_32; - format->representation = SL_ANDROID_PCM_REPRESENTATION_FLOAT; - format->endianness = SL_BYTEORDER_LITTLEENDIAN; - break; - case CUBEB_SAMPLE_FLOAT32BE: - format->bitsPerSample = SL_PCMSAMPLEFORMAT_FIXED_32; - format->containerSize = SL_PCMSAMPLEFORMAT_FIXED_32; - format->representation = SL_ANDROID_PCM_REPRESENTATION_FLOAT; - format->endianness = SL_BYTEORDER_BIGENDIAN; - break; - default: - return CUBEB_ERROR_INVALID_FORMAT; - } - return CUBEB_OK; -} -#endif - -static int -opensl_set_format(SLDataFormat_PCM * format, cubeb_stream_params * params) -{ - assert(format); - assert(params); - - format->formatType = SL_DATAFORMAT_PCM; - format->numChannels = params->channels; - // samplesPerSec is in milliHertz - format->samplesPerSec = params->rate * 1000; - format->bitsPerSample = SL_PCMSAMPLEFORMAT_FIXED_16; - format->containerSize = SL_PCMSAMPLEFORMAT_FIXED_16; - format->channelMask = params->channels == 1 - ? SL_SPEAKER_FRONT_CENTER - : SL_SPEAKER_FRONT_LEFT | SL_SPEAKER_FRONT_RIGHT; - - switch (params->format) { - case CUBEB_SAMPLE_S16LE: - format->endianness = SL_BYTEORDER_LITTLEENDIAN; - break; - case CUBEB_SAMPLE_S16BE: - format->endianness = SL_BYTEORDER_BIGENDIAN; - break; - default: - return CUBEB_ERROR_INVALID_FORMAT; - } - return CUBEB_OK; -} - -static int -opensl_configure_capture(cubeb_stream * stm, cubeb_stream_params * params) -{ - assert(stm); - assert(params); - - SLDataLocator_AndroidSimpleBufferQueue lDataLocatorOut; - lDataLocatorOut.locatorType = SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE; - lDataLocatorOut.numBuffers = NBUFS; - - SLDataFormat_PCM lDataFormat; - int r = opensl_set_format(&lDataFormat, params); - if (r != CUBEB_OK) { - return CUBEB_ERROR_INVALID_FORMAT; - } - - /* For now set device rate to params rate. */ - stm->input_device_rate = params->rate; - - SLDataSink lDataSink; - lDataSink.pLocator = &lDataLocatorOut; - lDataSink.pFormat = &lDataFormat; - - SLDataLocator_IODevice lDataLocatorIn; - lDataLocatorIn.locatorType = SL_DATALOCATOR_IODEVICE; - lDataLocatorIn.deviceType = SL_IODEVICE_AUDIOINPUT; - lDataLocatorIn.deviceID = SL_DEFAULTDEVICEID_AUDIOINPUT; - lDataLocatorIn.device = NULL; - - SLDataSource lDataSource; - lDataSource.pLocator = &lDataLocatorIn; - lDataSource.pFormat = NULL; - - const SLInterfaceID lSoundRecorderIIDs[] = { - stm->context->SL_IID_RECORD, - stm->context->SL_IID_ANDROIDSIMPLEBUFFERQUEUE, - stm->context->SL_IID_ANDROIDCONFIGURATION}; - - const SLboolean lSoundRecorderReqs[] = {SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE, - SL_BOOLEAN_TRUE}; - // create the audio recorder abstract object - SLresult res = (*stm->context->eng) - ->CreateAudioRecorder( - stm->context->eng, &stm->recorderObj, &lDataSource, - &lDataSink, NELEMS(lSoundRecorderIIDs), - lSoundRecorderIIDs, lSoundRecorderReqs); - // Sample rate not supported. Try again with default sample rate! - if (res == SL_RESULT_CONTENT_UNSUPPORTED) { - if (stm->output_enabled && stm->output_configured_rate != 0) { - // Set the same with the player. Since there is no - // api for input device this is a safe choice. - stm->input_device_rate = stm->output_configured_rate; - } else { - // The output preferred rate is used for an input only scenario. - // The default rate expected to be supported from all android devices. - stm->input_device_rate = DEFAULT_SAMPLE_RATE; - } - lDataFormat.samplesPerSec = stm->input_device_rate * 1000; - res = (*stm->context->eng) - ->CreateAudioRecorder(stm->context->eng, &stm->recorderObj, - &lDataSource, &lDataSink, - NELEMS(lSoundRecorderIIDs), - lSoundRecorderIIDs, lSoundRecorderReqs); - - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to create recorder. Error code: %lu", res); - return CUBEB_ERROR; - } - } - - if (get_android_version() > ANDROID_VERSION_JELLY_BEAN) { - SLAndroidConfigurationItf recorderConfig; - res = (*stm->recorderObj) - ->GetInterface(stm->recorderObj, - stm->context->SL_IID_ANDROIDCONFIGURATION, - &recorderConfig); - - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to get the android configuration interface for recorder. " - "Error " - "code: %lu", - res); - return CUBEB_ERROR; - } - - // Voice recognition is the lowest latency, according to the docs. Camcorder - // uses a microphone that is in the same direction as the camera. - SLint32 streamType = stm->voice_input - ? SL_ANDROID_RECORDING_PRESET_VOICE_RECOGNITION - : SL_ANDROID_RECORDING_PRESET_CAMCORDER; - - res = - (*recorderConfig) - ->SetConfiguration(recorderConfig, SL_ANDROID_KEY_RECORDING_PRESET, - &streamType, sizeof(SLint32)); - - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to set the android configuration to VOICE for the recorder. " - "Error code: %lu", - res); - return CUBEB_ERROR; - } - } - // realize the audio recorder - res = (*stm->recorderObj)->Realize(stm->recorderObj, SL_BOOLEAN_FALSE); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to realize recorder. Error code: %lu", res); - return CUBEB_ERROR; - } - // get the record interface - res = (*stm->recorderObj) - ->GetInterface(stm->recorderObj, stm->context->SL_IID_RECORD, - &stm->recorderItf); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to get recorder interface. Error code: %lu", res); - return CUBEB_ERROR; - } - - res = (*stm->recorderItf) - ->RegisterCallback(stm->recorderItf, recorder_marker_callback, stm); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to register recorder marker callback. Error code: %lu", res); - return CUBEB_ERROR; - } - - (*stm->recorderItf)->SetMarkerPosition(stm->recorderItf, (SLmillisecond)0); - - res = (*stm->recorderItf) - ->SetCallbackEventsMask(stm->recorderItf, - (SLuint32)SL_RECORDEVENT_HEADATMARKER); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to set headatmarker event mask. Error code: %lu", res); - return CUBEB_ERROR; - } - // get the simple android buffer queue interface - res = (*stm->recorderObj) - ->GetInterface(stm->recorderObj, - stm->context->SL_IID_ANDROIDSIMPLEBUFFERQUEUE, - &stm->recorderBufferQueueItf); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to get recorder (android) buffer queue interface. Error code: " - "%lu", - res); - return CUBEB_ERROR; - } - - // register callback on record (input) buffer queue - slAndroidSimpleBufferQueueCallback rec_callback = recorder_callback; - if (stm->output_enabled) { - // Register full duplex callback instead. - rec_callback = recorder_fullduplex_callback; - } - res = (*stm->recorderBufferQueueItf) - ->RegisterCallback(stm->recorderBufferQueueItf, rec_callback, stm); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to register recorder buffer queue callback. Error code: %lu", - res); - return CUBEB_ERROR; - } - - // Calculate length of input buffer according to requested latency - stm->input_frame_size = params->channels * sizeof(int16_t); - stm->input_buffer_length = (stm->input_frame_size * stm->buffer_size_frames); - - // Calculate the capacity of input array - stm->input_array_capacity = NBUFS; - if (stm->output_enabled) { - // Full duplex, update capacity to hold 1 sec of data - stm->input_array_capacity = - 1 * stm->input_device_rate / stm->input_buffer_length; - } - // Allocate input array - stm->input_buffer_array = - (void **)calloc(1, sizeof(void *) * stm->input_array_capacity); - // Buffering has not started yet. - stm->input_buffer_index = -1; - // Prepare input buffers - for (uint32_t i = 0; i < stm->input_array_capacity; ++i) { - stm->input_buffer_array[i] = calloc(1, stm->input_buffer_length); - } - - // On full duplex allocate input queue and silent buffer - if (stm->output_enabled) { - stm->input_queue = array_queue_create(stm->input_array_capacity); - assert(stm->input_queue); - stm->input_silent_buffer = calloc(1, stm->input_buffer_length); - assert(stm->input_silent_buffer); - } - - // Enqueue buffer to start rolling once recorder started - r = opensl_enqueue_recorder(stm, NULL); - if (r != CUBEB_OK) { - return r; - } - - LOG("Cubeb stream init recorder success"); - - return CUBEB_OK; -} - -static int -opensl_configure_playback(cubeb_stream * stm, cubeb_stream_params * params) -{ - assert(stm); - assert(params); - - stm->user_output_rate = params->rate; - if (params->format == CUBEB_SAMPLE_S16NE || - params->format == CUBEB_SAMPLE_S16BE) { - stm->framesize = params->channels * sizeof(int16_t); - } else if (params->format == CUBEB_SAMPLE_FLOAT32NE || - params->format == CUBEB_SAMPLE_FLOAT32BE) { - stm->framesize = params->channels * sizeof(float); - } - stm->lastPosition = -1; - stm->lastPositionTimeStamp = 0; - stm->lastCompensativePosition = -1; - - void * format = NULL; - SLuint32 * format_sample_rate = NULL; - -#if defined(__ANDROID__) && (__ANDROID_API__ >= ANDROID_VERSION_LOLLIPOP) - SLAndroidDataFormat_PCM_EX pcm_ext_format; - if (get_android_version() >= ANDROID_VERSION_LOLLIPOP) { - if (opensl_set_format_ext(&pcm_ext_format, params) != CUBEB_OK) { - return CUBEB_ERROR_INVALID_FORMAT; - } - format = &pcm_ext_format; - format_sample_rate = &pcm_ext_format.sampleRate; - } -#endif - - SLDataFormat_PCM pcm_format; - if (!format) { - if (opensl_set_format(&pcm_format, params) != CUBEB_OK) { - return CUBEB_ERROR_INVALID_FORMAT; - } - format = &pcm_format; - format_sample_rate = &pcm_format.samplesPerSec; - } - - SLDataLocator_BufferQueue loc_bufq; - loc_bufq.locatorType = SL_DATALOCATOR_BUFFERQUEUE; - loc_bufq.numBuffers = NBUFS; - SLDataSource source; - source.pLocator = &loc_bufq; - source.pFormat = format; - - SLDataLocator_OutputMix loc_outmix; - loc_outmix.locatorType = SL_DATALOCATOR_OUTPUTMIX; - loc_outmix.outputMix = stm->context->outmixObj; - SLDataSink sink; - sink.pLocator = &loc_outmix; - sink.pFormat = NULL; - -#if defined(__ANDROID__) - const SLInterfaceID ids[] = {stm->context->SL_IID_BUFFERQUEUE, - stm->context->SL_IID_VOLUME, - stm->context->SL_IID_ANDROIDCONFIGURATION}; - const SLboolean req[] = {SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE}; -#else - const SLInterfaceID ids[] = {ctx->SL_IID_BUFFERQUEUE, ctx->SL_IID_VOLUME}; - const SLboolean req[] = {SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE}; -#endif - assert(NELEMS(ids) == NELEMS(req)); - - uint32_t preferred_sampling_rate = stm->user_output_rate; - SLresult res = SL_RESULT_CONTENT_UNSUPPORTED; - if (preferred_sampling_rate) { - res = (*stm->context->eng) - ->CreateAudioPlayer(stm->context->eng, &stm->playerObj, &source, - &sink, NELEMS(ids), ids, req); - } - - // Sample rate not supported? Try again with primary sample rate! - if (res == SL_RESULT_CONTENT_UNSUPPORTED && - preferred_sampling_rate != DEFAULT_SAMPLE_RATE) { - preferred_sampling_rate = DEFAULT_SAMPLE_RATE; - *format_sample_rate = preferred_sampling_rate * 1000; - res = (*stm->context->eng) - ->CreateAudioPlayer(stm->context->eng, &stm->playerObj, &source, - &sink, NELEMS(ids), ids, req); - } - - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to create audio player. Error code: %lu", res); - return CUBEB_ERROR; - } - - stm->output_configured_rate = preferred_sampling_rate; - stm->bytespersec = stm->output_configured_rate * stm->framesize; - stm->queuebuf_len = stm->framesize * stm->buffer_size_frames; - - // Calculate the capacity of input array - stm->queuebuf_capacity = NBUFS; - if (stm->output_enabled) { - // Full duplex, update capacity to hold 1 sec of data - stm->queuebuf_capacity = - 1 * stm->output_configured_rate / stm->queuebuf_len; - } - // Allocate input array - stm->queuebuf = (void **)calloc(1, sizeof(void *) * stm->queuebuf_capacity); - for (uint32_t i = 0; i < stm->queuebuf_capacity; ++i) { - stm->queuebuf[i] = calloc(1, stm->queuebuf_len); - assert(stm->queuebuf[i]); - } - - SLAndroidConfigurationItf playerConfig = NULL; - - if (get_android_version() >= ANDROID_VERSION_N_MR1) { - res = (*stm->playerObj) - ->GetInterface(stm->playerObj, - stm->context->SL_IID_ANDROIDCONFIGURATION, - &playerConfig); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to get Android configuration interface. Error code: %lu", - res); - return CUBEB_ERROR; - } - - SLint32 streamType = SL_ANDROID_STREAM_MEDIA; - if (stm->voice_output) { - streamType = SL_ANDROID_STREAM_VOICE; - } - res = (*playerConfig) - ->SetConfiguration(playerConfig, SL_ANDROID_KEY_STREAM_TYPE, - &streamType, sizeof(streamType)); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to set Android configuration to %d Error code: %lu", - streamType, res); - } - - SLuint32 performanceMode = SL_ANDROID_PERFORMANCE_LATENCY; - if (stm->buffer_size_frames > POWERSAVE_LATENCY_FRAMES_THRESHOLD) { - performanceMode = SL_ANDROID_PERFORMANCE_POWER_SAVING; - } - - res = (*playerConfig) - ->SetConfiguration(playerConfig, SL_ANDROID_KEY_PERFORMANCE_MODE, - &performanceMode, sizeof(performanceMode)); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to set Android performance mode to %d Error code: %lu. This " - "is" - " not fatal", - performanceMode, res); - } - } - - res = (*stm->playerObj)->Realize(stm->playerObj, SL_BOOLEAN_FALSE); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to realize player object. Error code: %lu", res); - return CUBEB_ERROR; - } - - // There are two ways of getting the audio output latency: - // - a configuration value, only available on some devices (notably devices - // running FireOS) - // - A Java method, that we call using JNI. - // - // The first method is prefered, if available, because it can account for more - // latency causes, and is more precise. - - // Latency has to be queried after the realization of the interface, when - // using SL_IID_ANDROIDCONFIGURATION. - SLuint32 audioLatency = 0; - SLuint32 paramSize = sizeof(SLuint32); - // The reported latency is in milliseconds. - if (playerConfig) { - res = (*playerConfig) - ->GetConfiguration(playerConfig, - (const SLchar *)"androidGetAudioLatency", - ¶mSize, &audioLatency); - if (res == SL_RESULT_SUCCESS) { - LOG("Got playback latency using android configuration extension"); - stm->output_latency_ms = audioLatency; - } - } - // `playerConfig` is available, but the above failed, or `playerConfig` is not - // available. In both cases, we need to acquire the output latency by an other - // mean. - if ((playerConfig && res != SL_RESULT_SUCCESS) || !playerConfig) { - if (cubeb_output_latency_method_is_loaded( - stm->context->p_output_latency_function)) { - LOG("Got playback latency using JNI"); - stm->output_latency_ms = - cubeb_get_output_latency(stm->context->p_output_latency_function); - } else { - LOG("No alternate latency querying method loaded, A/V sync will be off."); - stm->output_latency_ms = 0; - } - } - - LOG("Audio output latency: %dms", stm->output_latency_ms); - - res = - (*stm->playerObj) - ->GetInterface(stm->playerObj, stm->context->SL_IID_PLAY, &stm->play); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to get play interface. Error code: %lu", res); - return CUBEB_ERROR; - } - - res = (*stm->playerObj) - ->GetInterface(stm->playerObj, stm->context->SL_IID_BUFFERQUEUE, - &stm->bufq); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to get bufferqueue interface. Error code: %lu", res); - return CUBEB_ERROR; - } - - res = (*stm->playerObj) - ->GetInterface(stm->playerObj, stm->context->SL_IID_VOLUME, - &stm->volume); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to get volume interface. Error code: %lu", res); - return CUBEB_ERROR; - } - - res = (*stm->play)->RegisterCallback(stm->play, play_callback, stm); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to register play callback. Error code: %lu", res); - return CUBEB_ERROR; - } - - // Work around wilhelm/AudioTrack badness, bug 1221228 - (*stm->play)->SetMarkerPosition(stm->play, (SLmillisecond)0); - - res = (*stm->play) - ->SetCallbackEventsMask(stm->play, - (SLuint32)SL_PLAYEVENT_HEADATMARKER); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to set headatmarker event mask. Error code: %lu", res); - return CUBEB_ERROR; - } - - slBufferQueueCallback player_callback = bufferqueue_callback; - if (stm->input_enabled) { - player_callback = player_fullduplex_callback; - } - res = (*stm->bufq)->RegisterCallback(stm->bufq, player_callback, stm); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to register bufferqueue callback. Error code: %lu", res); - return CUBEB_ERROR; - } - - { - // Enqueue a silent frame so once the player becomes playing, the frame - // will be consumed and kick off the buffer queue callback. - // Note the duration of a single frame is less than 1ms. We don't bother - // adjusting the playback position. - uint8_t * buf = stm->queuebuf[stm->queuebuf_idx++]; - memset(buf, 0, stm->framesize); - res = (*stm->bufq)->Enqueue(stm->bufq, buf, stm->framesize); - assert(res == SL_RESULT_SUCCESS); - } - - LOG("Cubeb stream init playback success"); - return CUBEB_OK; -} - -static int -opensl_validate_stream_param(cubeb_stream_params * stream_params) -{ - if ((stream_params && - (stream_params->channels < 1 || stream_params->channels > 32))) { - return CUBEB_ERROR_INVALID_FORMAT; - } - if ((stream_params && (stream_params->prefs & CUBEB_STREAM_PREF_LOOPBACK))) { - LOG("Loopback is not supported"); - return CUBEB_ERROR_NOT_SUPPORTED; - } - return CUBEB_OK; -} - -int -has_pref_set(cubeb_stream_params * input_params, - cubeb_stream_params * output_params, cubeb_stream_prefs pref) -{ - return (input_params && input_params->prefs & pref) || - (output_params && output_params->prefs & pref); -} - -static int -opensl_stream_init(cubeb * ctx, cubeb_stream ** stream, - char const * stream_name, cubeb_devid input_device, - cubeb_stream_params * input_stream_params, - cubeb_devid output_device, - cubeb_stream_params * output_stream_params, - unsigned int latency_frames, - cubeb_data_callback data_callback, - cubeb_state_callback state_callback, void * user_ptr) -{ - cubeb_stream * stm; - - assert(ctx); - if (input_device || output_device) { - LOG("Device selection is not supported in Android. The default will be " - "used"); - } - - *stream = NULL; - - int r = opensl_validate_stream_param(output_stream_params); - if (r != CUBEB_OK) { - LOG("Output stream params not valid"); - return r; - } - r = opensl_validate_stream_param(input_stream_params); - if (r != CUBEB_OK) { - LOG("Input stream params not valid"); - return r; - } - - stm = calloc(1, sizeof(*stm)); - assert(stm); - - stm->context = ctx; - stm->data_callback = data_callback; - stm->state_callback = state_callback; - stm->user_ptr = user_ptr; - stm->buffer_size_frames = - latency_frames ? latency_frames : DEFAULT_NUM_OF_FRAMES; - stm->input_enabled = (input_stream_params) ? 1 : 0; - stm->output_enabled = (output_stream_params) ? 1 : 0; - stm->shutdown = 1; - stm->voice_input = - has_pref_set(input_stream_params, NULL, CUBEB_STREAM_PREF_VOICE); - stm->voice_output = - has_pref_set(NULL, output_stream_params, CUBEB_STREAM_PREF_VOICE); - - LOG("cubeb stream prefs: voice_input: %s voice_output: %s", - stm->voice_input ? "true" : "false", - stm->voice_output ? "true" : "false"); - -#ifdef DEBUG - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK); - r = pthread_mutex_init(&stm->mutex, &attr); -#else - r = pthread_mutex_init(&stm->mutex, NULL); -#endif - assert(r == 0); - - if (output_stream_params) { - LOG("Playback params: Rate %d, channels %d, format %d, latency in frames " - "%d.", - output_stream_params->rate, output_stream_params->channels, - output_stream_params->format, stm->buffer_size_frames); - r = opensl_configure_playback(stm, output_stream_params); - if (r != CUBEB_OK) { - opensl_stream_destroy(stm); - return r; - } - } - - if (input_stream_params) { - LOG("Capture params: Rate %d, channels %d, format %d, latency in frames " - "%d.", - input_stream_params->rate, input_stream_params->channels, - input_stream_params->format, stm->buffer_size_frames); - r = opensl_configure_capture(stm, input_stream_params); - if (r != CUBEB_OK) { - opensl_stream_destroy(stm); - return r; - } - } - - /* Configure resampler*/ - uint32_t target_sample_rate; - if (input_stream_params) { - target_sample_rate = input_stream_params->rate; - } else { - assert(output_stream_params); - target_sample_rate = output_stream_params->rate; - } - - // Use the actual configured rates for input - // and output. - cubeb_stream_params input_params; - if (input_stream_params) { - input_params = *input_stream_params; - input_params.rate = stm->input_device_rate; - } - cubeb_stream_params output_params; - if (output_stream_params) { - output_params = *output_stream_params; - output_params.rate = stm->output_configured_rate; - } - - stm->resampler = cubeb_resampler_create( - stm, input_stream_params ? &input_params : NULL, - output_stream_params ? &output_params : NULL, target_sample_rate, - data_callback, user_ptr, CUBEB_RESAMPLER_QUALITY_DEFAULT, - CUBEB_RESAMPLER_RECLOCK_NONE); - if (!stm->resampler) { - LOG("Failed to create resampler"); - opensl_stream_destroy(stm); - return CUBEB_ERROR; - } - - *stream = stm; - LOG("Cubeb stream (%p) init success", stm); - return CUBEB_OK; -} - -static int -opensl_start_player(cubeb_stream * stm) -{ - assert(stm->playerObj); - SLuint32 playerState; - (*stm->playerObj)->GetState(stm->playerObj, &playerState); - if (playerState == SL_OBJECT_STATE_REALIZED) { - SLresult res = (*stm->play)->SetPlayState(stm->play, SL_PLAYSTATE_PLAYING); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to start player. Error code: %lu", res); - return CUBEB_ERROR; - } - } - return CUBEB_OK; -} - -static int -opensl_start_recorder(cubeb_stream * stm) -{ - assert(stm->recorderObj); - SLuint32 recorderState; - (*stm->recorderObj)->GetState(stm->recorderObj, &recorderState); - if (recorderState == SL_OBJECT_STATE_REALIZED) { - SLresult res = - (*stm->recorderItf) - ->SetRecordState(stm->recorderItf, SL_RECORDSTATE_RECORDING); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to start recorder. Error code: %lu", res); - return CUBEB_ERROR; - } - } - return CUBEB_OK; -} - -static int -opensl_stream_start(cubeb_stream * stm) -{ - assert(stm); - - int r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - opensl_set_shutdown(stm, 0); - opensl_set_draining(stm, 0); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - - if (stm->playerObj) { - r = opensl_start_player(stm); - if (r != CUBEB_OK) { - return r; - } - } - - if (stm->recorderObj) { - int r = opensl_start_recorder(stm); - if (r != CUBEB_OK) { - return r; - } - } - - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_STARTED); - LOG("Cubeb stream (%p) started", stm); - return CUBEB_OK; -} - -static int -opensl_stop_player(cubeb_stream * stm) -{ - assert(stm->playerObj); - assert(stm->shutdown || stm->draining); - - SLresult res = (*stm->play)->SetPlayState(stm->play, SL_PLAYSTATE_PAUSED); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to stop player. Error code: %lu", res); - return CUBEB_ERROR; - } - - return CUBEB_OK; -} - -static int -opensl_stop_recorder(cubeb_stream * stm) -{ - assert(stm->recorderObj); - assert(stm->shutdown || stm->draining); - - SLresult res = (*stm->recorderItf) - ->SetRecordState(stm->recorderItf, SL_RECORDSTATE_PAUSED); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to stop recorder. Error code: %lu", res); - return CUBEB_ERROR; - } - - return CUBEB_OK; -} - -static int -opensl_stream_stop(cubeb_stream * stm) -{ - assert(stm); - - int r = pthread_mutex_lock(&stm->mutex); - assert(r == 0); - opensl_set_shutdown(stm, 1); - r = pthread_mutex_unlock(&stm->mutex); - assert(r == 0); - - if (stm->playerObj) { - r = opensl_stop_player(stm); - if (r != CUBEB_OK) { - return r; - } - } - - if (stm->recorderObj) { - int r = opensl_stop_recorder(stm); - if (r != CUBEB_OK) { - return r; - } - } - - stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_STOPPED); - LOG("Cubeb stream (%p) stopped", stm); - return CUBEB_OK; -} - -static int -opensl_destroy_recorder(cubeb_stream * stm) -{ - assert(stm); - assert(stm->recorderObj); - - if (stm->recorderBufferQueueItf) { - SLresult res = - (*stm->recorderBufferQueueItf)->Clear(stm->recorderBufferQueueItf); - if (res != SL_RESULT_SUCCESS) { - LOG("Failed to clear recorder buffer queue. Error code: %lu", res); - return CUBEB_ERROR; - } - stm->recorderBufferQueueItf = NULL; - for (uint32_t i = 0; i < stm->input_array_capacity; ++i) { - free(stm->input_buffer_array[i]); - } - } - - (*stm->recorderObj)->Destroy(stm->recorderObj); - stm->recorderObj = NULL; - stm->recorderItf = NULL; - - if (stm->input_queue) { - array_queue_destroy(stm->input_queue); - } - free(stm->input_silent_buffer); - - return CUBEB_OK; -} - -static void -opensl_stream_destroy(cubeb_stream * stm) -{ - assert(stm->draining || stm->shutdown); - - if (stm->playerObj) { - (*stm->playerObj)->Destroy(stm->playerObj); - stm->playerObj = NULL; - stm->play = NULL; - stm->bufq = NULL; - for (uint32_t i = 0; i < stm->queuebuf_capacity; ++i) { - free(stm->queuebuf[i]); - } - } - - if (stm->recorderObj) { - int r = opensl_destroy_recorder(stm); - assert(r == CUBEB_OK); - } - - if (stm->resampler) { - cubeb_resampler_destroy(stm->resampler); - } - - pthread_mutex_destroy(&stm->mutex); - - LOG("Cubeb stream (%p) destroyed", stm); - free(stm); -} - -static int -opensl_stream_get_position(cubeb_stream * stm, uint64_t * position) -{ - SLmillisecond msec; - uint32_t compensation_msec = 0; - SLresult res; - - res = (*stm->play)->GetPosition(stm->play, &msec); - if (res != SL_RESULT_SUCCESS) - return CUBEB_ERROR; - - struct timespec t; - clock_gettime(CLOCK_MONOTONIC, &t); - if (stm->lastPosition == msec) { - compensation_msec = - (t.tv_sec * 1000000000LL + t.tv_nsec - stm->lastPositionTimeStamp) / - 1000000; - } else { - stm->lastPositionTimeStamp = t.tv_sec * 1000000000LL + t.tv_nsec; - stm->lastPosition = msec; - } - - uint64_t samplerate = stm->user_output_rate; - uint32_t output_latency = stm->output_latency_ms; - - pthread_mutex_lock(&stm->mutex); - int64_t maximum_position = stm->written * (int64_t)stm->user_output_rate / - stm->output_configured_rate; - pthread_mutex_unlock(&stm->mutex); - assert(maximum_position >= 0); - - if (msec > output_latency) { - int64_t unadjusted_position; - if (stm->lastCompensativePosition > msec + compensation_msec) { - // Over compensation, use lastCompensativePosition. - unadjusted_position = - samplerate * (stm->lastCompensativePosition - output_latency) / 1000; - } else { - unadjusted_position = - samplerate * (msec - output_latency + compensation_msec) / 1000; - stm->lastCompensativePosition = msec + compensation_msec; - } - *position = unadjusted_position < maximum_position ? unadjusted_position - : maximum_position; - } else { - *position = 0; - } - return CUBEB_OK; -} - -static int -opensl_stream_get_latency(cubeb_stream * stm, uint32_t * latency) -{ - assert(stm); - assert(latency); - - uint32_t stream_latency_frames = - stm->user_output_rate * stm->output_latency_ms / 1000; - - return stream_latency_frames + cubeb_resampler_latency(stm->resampler); -} - -int -opensl_stream_set_volume(cubeb_stream * stm, float volume) -{ - SLresult res; - SLmillibel max_level, millibels; - float unclamped_millibels; - - res = (*stm->volume)->GetMaxVolumeLevel(stm->volume, &max_level); - - if (res != SL_RESULT_SUCCESS) { - return CUBEB_ERROR; - } - - /* millibels are 100*dB, so the conversion from the volume's linear amplitude - * is 100 * 20 * log(volume). However we clamp the resulting value before - * passing it to lroundf() in order to prevent it from silently returning an - * erroneous value when the unclamped value exceeds the size of a long. */ - unclamped_millibels = 100.0f * 20.0f * log10f(fmaxf(volume, 0.0f)); - unclamped_millibels = fmaxf(unclamped_millibels, SL_MILLIBEL_MIN); - unclamped_millibels = fminf(unclamped_millibels, max_level); - - millibels = lroundf(unclamped_millibels); - - res = (*stm->volume)->SetVolumeLevel(stm->volume, millibels); - - if (res != SL_RESULT_SUCCESS) { - return CUBEB_ERROR; - } - return CUBEB_OK; -} - -static struct cubeb_ops const opensl_ops = { - .init = opensl_init, - .get_backend_id = opensl_get_backend_id, - .get_max_channel_count = opensl_get_max_channel_count, - .get_min_latency = NULL, - .get_preferred_sample_rate = NULL, - .enumerate_devices = NULL, - .device_collection_destroy = NULL, - .destroy = opensl_destroy, - .stream_init = opensl_stream_init, - .stream_destroy = opensl_stream_destroy, - .stream_start = opensl_stream_start, - .stream_stop = opensl_stream_stop, - .stream_get_position = opensl_stream_get_position, - .stream_get_latency = opensl_stream_get_latency, - .stream_get_input_latency = NULL, - .stream_set_volume = opensl_stream_set_volume, - .stream_set_name = NULL, - .stream_get_current_device = NULL, - .stream_device_destroy = NULL, - .stream_register_device_changed_callback = NULL, - .register_device_collection_changed = NULL}; diff --git a/3rdparty/cubeb/src/cubeb_ring_array.h b/3rdparty/cubeb/src/cubeb_ring_array.h index 05a8fe9620c1b3..331d0471c5fd9c 100644 --- a/3rdparty/cubeb/src/cubeb_ring_array.h +++ b/3rdparty/cubeb/src/cubeb_ring_array.h @@ -9,6 +9,7 @@ #define CUBEB_RING_ARRAY_H #include "cubeb_utils.h" +#include /** Ring array of pointers is used to hold buffers. In case that asynchronous producer/consumer callbacks do not arrive in a @@ -46,7 +47,7 @@ single_audiobuffer_init(AudioBuffer * buffer, uint32_t bytesPerFrame, /** Initialize the ring array. @param ra The ring_array pointer of allocated structure. @retval 0 on success. */ -int +static int ring_array_init(ring_array * ra, uint32_t capacity, uint32_t bytesPerFrame, uint32_t channelsPerFrame, uint32_t framesPerBuffer) { @@ -78,7 +79,7 @@ ring_array_init(ring_array * ra, uint32_t capacity, uint32_t bytesPerFrame, /** Destroy the ring array. @param ra The ring_array pointer.*/ -void +static void ring_array_destroy(ring_array * ra) { assert(ra); @@ -97,7 +98,7 @@ ring_array_destroy(ring_array * ra) @param ra The ring_array pointer. @retval Pointer of the allocated space to be stored with fresh data or NULL if full. */ -AudioBuffer * +static AudioBuffer * ring_array_get_free_buffer(ring_array * ra) { assert(ra && ra->buffer_array); @@ -118,7 +119,7 @@ ring_array_get_free_buffer(ring_array * ra) /** Get the next available buffer with data. @param ra The ring_array pointer. @retval Pointer of the next in order data buffer or NULL if empty. */ -AudioBuffer * +static AudioBuffer * ring_array_get_data_buffer(ring_array * ra) { assert(ra && ra->buffer_array); @@ -138,18 +139,4 @@ ring_array_get_data_buffer(ring_array * ra) return ret; } -/** When array is empty get the first allocated buffer in the array. - @param ra The ring_array pointer. - @retval If arrays is empty, pointer of the allocated space else NULL. */ -AudioBuffer * -ring_array_get_dummy_buffer(ring_array * ra) -{ - assert(ra && ra->buffer_array); - assert(ra->capacity > 0); - if (ra->count > 0) { - return NULL; - } - return &ra->buffer_array[0]; -} - #endif // CUBEB_RING_ARRAY_H diff --git a/3rdparty/cubeb/src/cubeb_sndio.c b/3rdparty/cubeb/src/cubeb_sndio.c index 665110b8f885f1..944c28d42c18ae 100644 --- a/3rdparty/cubeb/src/cubeb_sndio.c +++ b/3rdparty/cubeb/src/cubeb_sndio.c @@ -68,7 +68,7 @@ struct cubeb_stream { struct sio_hdl * hdl; /* link us to sndio */ int mode; /* bitmap of SIO_{PLAY,REC} */ int active; /* cubec_start() called */ - int conv; /* need float->s16 conversion */ + int conv; /* need float->s24 conversion */ unsigned char * rbuf; /* rec data consumed from here */ unsigned char * pbuf; /* play data is prepared here */ unsigned int nfr; /* number of frames in ibuf and obuf */ @@ -99,33 +99,33 @@ s16_setvol(void * ptr, long nsamp, float volume) } static void -float_to_s16(void * ptr, long nsamp, float volume) +float_to_s24(void * ptr, long nsamp, float volume) { - int16_t * dst = ptr; + int32_t * dst = ptr; float * src = ptr; - float mult = volume * 32768; + float mult = volume * 8388608; int s; while (nsamp-- > 0) { s = lrintf(*(src++) * mult); - if (s < -32768) - s = -32768; - else if (s > 32767) - s = 32767; + if (s < -8388608) + s = -8388608; + else if (s > 8388607) + s = 8388607; *(dst++) = s; } } static void -s16_to_float(void * ptr, long nsamp) +s24_to_float(void * ptr, long nsamp) { - int16_t * src = ptr; + int32_t * src = ptr; float * dst = ptr; src += nsamp; dst += nsamp; while (nsamp-- > 0) - *(--dst) = (1. / 32768) * *(--src); + *(--dst) = (1. / 8388608) * *(--src); } static const char * @@ -213,7 +213,7 @@ sndio_mainloop(void * arg) } if ((s->mode & SIO_REC) && s->conv) - s16_to_float(s->rbuf, s->nfr * s->rchan); + s24_to_float(s->rbuf, s->nfr * s->rchan); /* invoke call-back, it returns less that s->nfr if done */ pthread_mutex_unlock(&s->mtx); @@ -244,7 +244,7 @@ sndio_mainloop(void * arg) if (s->mode & SIO_PLAY) { if (s->conv) - float_to_s16(s->pbuf, nfr * s->pchan, s->volume); + float_to_s24(s->pbuf, nfr * s->pchan, s->volume); else s16_setvol(s->pbuf, nfr * s->pchan, s->volume); } @@ -429,21 +429,25 @@ sndio_stream_init(cubeb * context, cubeb_stream ** stream, } WRAP(sio_initpar)(&wpar); wpar.sig = 1; - wpar.bits = 16; switch (format) { case CUBEB_SAMPLE_S16LE: wpar.le = 1; + wpar.bits = 16; break; case CUBEB_SAMPLE_S16BE: wpar.le = 0; + wpar.bits = 16; break; case CUBEB_SAMPLE_FLOAT32NE: wpar.le = SIO_LE_NATIVE; + wpar.bits = 24; + wpar.msb = 0; break; default: DPR("sndio_stream_init() unsupported format\n"); goto err; } + wpar.bps = SIO_BPS(wpar.bits); wpar.rate = rate; if (s->mode & SIO_REC) wpar.rchan = input_stream_params->channels; @@ -455,6 +459,8 @@ sndio_stream_init(cubeb * context, cubeb_stream ** stream, goto err; } if (rpar.bits != wpar.bits || rpar.le != wpar.le || rpar.sig != wpar.sig || + rpar.bps != wpar.bps || + (wpar.bits < 8 * wpar.bps && rpar.msb != wpar.msb) || rpar.rate != wpar.rate || ((s->mode & SIO_REC) && rpar.rchan != wpar.rchan) || ((s->mode & SIO_PLAY) && rpar.pchan != wpar.pchan)) { diff --git a/3rdparty/cubeb/src/cubeb_sun.c b/3rdparty/cubeb/src/cubeb_sun.c deleted file mode 100644 index d3dcb12ff36aab..00000000000000 --- a/3rdparty/cubeb/src/cubeb_sun.c +++ /dev/null @@ -1,737 +0,0 @@ -/* - * Copyright © 2019-2020 Nia Alarie - * - * This program is made available under an ISC-style license. See the - * accompanying file LICENSE for details. - */ -#include "cubeb-internal.h" -#include "cubeb/cubeb.h" -#include "cubeb_tracing.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* Default to 4 + 1 for the default device. */ -#ifndef SUN_DEVICE_COUNT -#define SUN_DEVICE_COUNT (5) -#endif - -/* Supported well by most hardware. */ -#ifndef SUN_PREFER_RATE -#define SUN_PREFER_RATE (48000) -#endif - -/* Standard acceptable minimum. */ -#ifndef SUN_LATENCY_MS -#define SUN_LATENCY_MS (40) -#endif - -#ifndef SUN_DEFAULT_DEVICE -#define SUN_DEFAULT_DEVICE "/dev/audio" -#endif - -#ifndef SUN_BUFFER_FRAMES -#define SUN_BUFFER_FRAMES (32) -#endif - -/* - * Supported on NetBSD regardless of hardware. - */ - -#ifndef SUN_MAX_CHANNELS -#ifdef __NetBSD__ -#define SUN_MAX_CHANNELS (12) -#else -#define SUN_MAX_CHANNELS (2) -#endif -#endif - -#ifndef SUN_MIN_RATE -#define SUN_MIN_RATE (1000) -#endif - -#ifndef SUN_MAX_RATE -#define SUN_MAX_RATE (192000) -#endif - -static struct cubeb_ops const sun_ops; - -struct cubeb { - struct cubeb_ops const * ops; -}; - -struct sun_stream { - char name[32]; - int fd; - void * buf; - struct audio_info info; - unsigned frame_size; /* precision in bytes * channels */ - bool floating; -}; - -struct cubeb_stream { - struct cubeb * context; - void * user_ptr; - pthread_t thread; - pthread_mutex_t mutex; /* protects running, volume, frames_written */ - bool running; - float volume; - struct sun_stream play; - struct sun_stream record; - cubeb_data_callback data_cb; - cubeb_state_callback state_cb; - uint64_t frames_written; - uint64_t blocks_written; -}; - -int -sun_init(cubeb ** context, char const * context_name) -{ - cubeb * c; - - (void)context_name; - if ((c = calloc(1, sizeof(cubeb))) == NULL) { - return CUBEB_ERROR; - } - c->ops = &sun_ops; - *context = c; - return CUBEB_OK; -} - -static void -sun_destroy(cubeb * context) -{ - free(context); -} - -static char const * -sun_get_backend_id(cubeb * context) -{ - return "sun"; -} - -static int -sun_get_preferred_sample_rate(cubeb * context, uint32_t * rate) -{ - (void)context; - - *rate = SUN_PREFER_RATE; - return CUBEB_OK; -} - -static int -sun_get_max_channel_count(cubeb * context, uint32_t * max_channels) -{ - (void)context; - - *max_channels = SUN_MAX_CHANNELS; - return CUBEB_OK; -} - -static int -sun_get_min_latency(cubeb * context, cubeb_stream_params params, - uint32_t * latency_frames) -{ - (void)context; - - *latency_frames = SUN_LATENCY_MS * params.rate / 1000; - return CUBEB_OK; -} - -static int -sun_get_hwinfo(const char * device, struct audio_info * format, int * props, - struct audio_device * dev) -{ - int fd = -1; - - if ((fd = open(device, O_RDONLY)) == -1) { - goto error; - } -#ifdef AUDIO_GETFORMAT - if (ioctl(fd, AUDIO_GETFORMAT, format) != 0) { - goto error; - } -#endif -#ifdef AUDIO_GETPROPS - if (ioctl(fd, AUDIO_GETPROPS, props) != 0) { - goto error; - } -#endif - if (ioctl(fd, AUDIO_GETDEV, dev) != 0) { - goto error; - } - close(fd); - return CUBEB_OK; -error: - if (fd != -1) { - close(fd); - } - return CUBEB_ERROR; -} - -/* - * XXX: PR kern/54264 - */ -static int -sun_prinfo_verify_sanity(struct audio_prinfo * prinfo) -{ - return prinfo->precision >= 8 && prinfo->precision <= 32 && - prinfo->channels >= 1 && prinfo->channels < SUN_MAX_CHANNELS && - prinfo->sample_rate < SUN_MAX_RATE && - prinfo->sample_rate > SUN_MIN_RATE; -} - -static int -sun_enumerate_devices(cubeb * context, cubeb_device_type type, - cubeb_device_collection * collection) -{ - unsigned i; - cubeb_device_info device = {0}; - char dev[16] = SUN_DEFAULT_DEVICE; - char dev_friendly[64]; - struct audio_info hwfmt; - struct audio_device hwname; - struct audio_prinfo * prinfo = NULL; - int hwprops; - - collection->device = calloc(SUN_DEVICE_COUNT, sizeof(cubeb_device_info)); - if (collection->device == NULL) { - return CUBEB_ERROR; - } - collection->count = 0; - - for (i = 0; i < SUN_DEVICE_COUNT; ++i) { - if (i > 0) { - (void)snprintf(dev, sizeof(dev), "/dev/audio%u", i - 1); - } - if (sun_get_hwinfo(dev, &hwfmt, &hwprops, &hwname) != CUBEB_OK) { - continue; - } -#ifdef AUDIO_GETPROPS - device.type = 0; - if ((hwprops & AUDIO_PROP_CAPTURE) != 0 && - sun_prinfo_verify_sanity(&hwfmt.record)) { - /* the device supports recording, probably */ - device.type |= CUBEB_DEVICE_TYPE_INPUT; - } - if ((hwprops & AUDIO_PROP_PLAYBACK) != 0 && - sun_prinfo_verify_sanity(&hwfmt.play)) { - /* the device supports playback, probably */ - device.type |= CUBEB_DEVICE_TYPE_OUTPUT; - } - switch (device.type) { - case 0: - /* device doesn't do input or output, aliens probably involved */ - continue; - case CUBEB_DEVICE_TYPE_INPUT: - if ((type & CUBEB_DEVICE_TYPE_INPUT) == 0) { - /* this device is input only, not scanning for those, skip it */ - continue; - } - break; - case CUBEB_DEVICE_TYPE_OUTPUT: - if ((type & CUBEB_DEVICE_TYPE_OUTPUT) == 0) { - /* this device is output only, not scanning for those, skip it */ - continue; - } - break; - } - if ((type & CUBEB_DEVICE_TYPE_INPUT) != 0) { - prinfo = &hwfmt.record; - } - if ((type & CUBEB_DEVICE_TYPE_OUTPUT) != 0) { - prinfo = &hwfmt.play; - } -#endif - if (i > 0) { - (void)snprintf(dev_friendly, sizeof(dev_friendly), "%s %s %s (%d)", - hwname.name, hwname.version, hwname.config, i - 1); - } else { - (void)snprintf(dev_friendly, sizeof(dev_friendly), "%s %s %s (default)", - hwname.name, hwname.version, hwname.config); - } - device.devid = (void *)(uintptr_t)i; - device.device_id = strdup(dev); - device.friendly_name = strdup(dev_friendly); - device.group_id = strdup(dev); - device.vendor_name = strdup(hwname.name); - device.type = type; - device.state = CUBEB_DEVICE_STATE_ENABLED; - device.preferred = - (i == 0) ? CUBEB_DEVICE_PREF_ALL : CUBEB_DEVICE_PREF_NONE; -#ifdef AUDIO_GETFORMAT - device.max_channels = prinfo->channels; - device.default_rate = prinfo->sample_rate; -#else - device.max_channels = 2; - device.default_rate = SUN_PREFER_RATE; -#endif - device.default_format = CUBEB_DEVICE_FMT_S16NE; - device.format = CUBEB_DEVICE_FMT_S16NE; - device.min_rate = SUN_MIN_RATE; - device.max_rate = SUN_MAX_RATE; - device.latency_lo = SUN_LATENCY_MS * SUN_MIN_RATE / 1000; - device.latency_hi = SUN_LATENCY_MS * SUN_MAX_RATE / 1000; - collection->device[collection->count++] = device; - } - return CUBEB_OK; -} - -static int -sun_device_collection_destroy(cubeb * context, - cubeb_device_collection * collection) -{ - unsigned i; - - for (i = 0; i < collection->count; ++i) { - free((char *)collection->device[i].device_id); - free((char *)collection->device[i].friendly_name); - free((char *)collection->device[i].group_id); - free((char *)collection->device[i].vendor_name); - } - free(collection->device); - return CUBEB_OK; -} - -static int -sun_copy_params(int fd, cubeb_stream * stream, cubeb_stream_params * params, - struct audio_info * info, struct audio_prinfo * prinfo) -{ - prinfo->channels = params->channels; - prinfo->sample_rate = params->rate; -#ifdef AUDIO_ENCODING_SLINEAR_LE - switch (params->format) { - case CUBEB_SAMPLE_S16LE: - prinfo->encoding = AUDIO_ENCODING_SLINEAR_LE; - prinfo->precision = 16; - break; - case CUBEB_SAMPLE_S16BE: - prinfo->encoding = AUDIO_ENCODING_SLINEAR_BE; - prinfo->precision = 16; - break; - case CUBEB_SAMPLE_FLOAT32NE: - prinfo->encoding = AUDIO_ENCODING_SLINEAR; - prinfo->precision = 32; - break; - default: - LOG("Unsupported format"); - return CUBEB_ERROR_INVALID_FORMAT; - } -#else - switch (params->format) { - case CUBEB_SAMPLE_S16NE: - prinfo->encoding = AUDIO_ENCODING_LINEAR; - prinfo->precision = 16; - break; - case CUBEB_SAMPLE_FLOAT32NE: - prinfo->encoding = AUDIO_ENCODING_LINEAR; - prinfo->precision = 32; - break; - default: - LOG("Unsupported format"); - return CUBEB_ERROR_INVALID_FORMAT; - } -#endif - if (ioctl(fd, AUDIO_SETINFO, info) == -1) { - return CUBEB_ERROR; - } - if (ioctl(fd, AUDIO_GETINFO, info) == -1) { - return CUBEB_ERROR; - } - return CUBEB_OK; -} - -static int -sun_stream_stop(cubeb_stream * s) -{ - pthread_mutex_lock(&s->mutex); - if (s->running) { - s->running = false; - pthread_mutex_unlock(&s->mutex); - pthread_join(s->thread, NULL); - } else { - pthread_mutex_unlock(&s->mutex); - } - return CUBEB_OK; -} - -static void -sun_stream_destroy(cubeb_stream * s) -{ - sun_stream_stop(s); - pthread_mutex_destroy(&s->mutex); - if (s->play.fd != -1) { - close(s->play.fd); - } - if (s->record.fd != -1) { - close(s->record.fd); - } - free(s->play.buf); - free(s->record.buf); - free(s); -} - -static void -sun_float_to_linear32(void * buf, unsigned sample_count, float vol) -{ - float * in = buf; - int32_t * out = buf; - int32_t * tail = out + sample_count; - - while (out < tail) { - float f = *(in++) * vol; - if (f < -1.0) - f = -1.0; - else if (f > 1.0) - f = 1.0; - *(out++) = f * (float)INT32_MAX; - } -} - -static void -sun_linear32_to_float(void * buf, unsigned sample_count) -{ - int32_t * in = buf; - float * out = buf; - float * tail = out + sample_count; - - while (out < tail) { - *(out++) = (1.0 / 0x80000000) * *(in++); - } -} - -static void -sun_linear16_set_vol(int16_t * buf, unsigned sample_count, float vol) -{ - unsigned i; - int32_t multiplier = vol * 0x8000; - - for (i = 0; i < sample_count; ++i) { - buf[i] = (buf[i] * multiplier) >> 15; - } -} - -static void * -sun_io_routine(void * arg) -{ - cubeb_stream * s = arg; - cubeb_state state = CUBEB_STATE_STARTED; - size_t to_read = 0; - long to_write = 0; - size_t write_ofs = 0; - size_t read_ofs = 0; - int drain = 0; - - CUBEB_REGISTER_THREAD("cubeb rendering thread"); - - s->state_cb(s, s->user_ptr, CUBEB_STATE_STARTED); - while (state != CUBEB_STATE_ERROR) { - pthread_mutex_lock(&s->mutex); - if (!s->running) { - pthread_mutex_unlock(&s->mutex); - state = CUBEB_STATE_STOPPED; - break; - } - pthread_mutex_unlock(&s->mutex); - if (s->record.fd != -1 && s->record.floating) { - sun_linear32_to_float(s->record.buf, - s->record.info.record.channels * SUN_BUFFER_FRAMES); - } - to_write = s->data_cb(s, s->user_ptr, s->record.buf, s->play.buf, - SUN_BUFFER_FRAMES); - if (to_write == CUBEB_ERROR) { - state = CUBEB_STATE_ERROR; - break; - } - if (s->play.fd != -1) { - float vol; - - pthread_mutex_lock(&s->mutex); - vol = s->volume; - pthread_mutex_unlock(&s->mutex); - - if (s->play.floating) { - sun_float_to_linear32(s->play.buf, - s->play.info.play.channels * to_write, vol); - } else { - sun_linear16_set_vol(s->play.buf, s->play.info.play.channels * to_write, - vol); - } - } - if (to_write < SUN_BUFFER_FRAMES) { - drain = 1; - } - to_write = s->play.fd != -1 ? to_write : 0; - to_read = s->record.fd != -1 ? SUN_BUFFER_FRAMES : 0; - write_ofs = 0; - read_ofs = 0; - while (to_write > 0 || to_read > 0) { - size_t bytes; - ssize_t n, frames; - - if (to_write > 0) { - bytes = to_write * s->play.frame_size; - if ((n = write(s->play.fd, (uint8_t *)s->play.buf + write_ofs, bytes)) < - 0) { - state = CUBEB_STATE_ERROR; - break; - } - frames = n / s->play.frame_size; - pthread_mutex_lock(&s->mutex); - s->frames_written += frames; - pthread_mutex_unlock(&s->mutex); - to_write -= frames; - write_ofs += n; - } - if (to_read > 0) { - bytes = to_read * s->record.frame_size; - if ((n = read(s->record.fd, (uint8_t *)s->record.buf + read_ofs, - bytes)) < 0) { - state = CUBEB_STATE_ERROR; - break; - } - frames = n / s->record.frame_size; - to_read -= frames; - read_ofs += n; - } - } - if (drain && state != CUBEB_STATE_ERROR) { - state = CUBEB_STATE_DRAINED; - break; - } - } - s->state_cb(s, s->user_ptr, state); - CUBEB_UNREGISTER_THREAD(); - return NULL; -} - -static int -sun_stream_init(cubeb * context, cubeb_stream ** stream, - char const * stream_name, cubeb_devid input_device, - cubeb_stream_params * input_stream_params, - cubeb_devid output_device, - cubeb_stream_params * output_stream_params, - unsigned latency_frames, cubeb_data_callback data_callback, - cubeb_state_callback state_callback, void * user_ptr) -{ - int ret = CUBEB_OK; - cubeb_stream * s = NULL; - - (void)stream_name; - (void)latency_frames; - if ((s = calloc(1, sizeof(cubeb_stream))) == NULL) { - ret = CUBEB_ERROR; - goto error; - } - s->record.fd = -1; - s->play.fd = -1; - if (input_device != 0) { - snprintf(s->record.name, sizeof(s->record.name), "/dev/audio%zu", - (uintptr_t)input_device - 1); - } else { - snprintf(s->record.name, sizeof(s->record.name), "%s", SUN_DEFAULT_DEVICE); - } - if (output_device != 0) { - snprintf(s->play.name, sizeof(s->play.name), "/dev/audio%zu", - (uintptr_t)output_device - 1); - } else { - snprintf(s->play.name, sizeof(s->play.name), "%s", SUN_DEFAULT_DEVICE); - } - if (input_stream_params != NULL) { - if (input_stream_params->prefs & CUBEB_STREAM_PREF_LOOPBACK) { - LOG("Loopback not supported"); - ret = CUBEB_ERROR_NOT_SUPPORTED; - goto error; - } - if (s->record.fd == -1) { - if ((s->record.fd = open(s->record.name, O_RDONLY)) == -1) { - LOG("Audio device could not be opened as read-only"); - ret = CUBEB_ERROR_DEVICE_UNAVAILABLE; - goto error; - } - } - AUDIO_INITINFO(&s->record.info); -#ifdef AUMODE_RECORD - s->record.info.mode = AUMODE_RECORD; -#endif - if ((ret = sun_copy_params(s->record.fd, s, input_stream_params, - &s->record.info, &s->record.info.record)) != - CUBEB_OK) { - LOG("Setting record params failed"); - goto error; - } - s->record.floating = - (input_stream_params->format == CUBEB_SAMPLE_FLOAT32NE); - } - if (output_stream_params != NULL) { - if (output_stream_params->prefs & CUBEB_STREAM_PREF_LOOPBACK) { - LOG("Loopback not supported"); - ret = CUBEB_ERROR_NOT_SUPPORTED; - goto error; - } - if (s->play.fd == -1) { - if ((s->play.fd = open(s->play.name, O_WRONLY)) == -1) { - LOG("Audio device could not be opened as write-only"); - ret = CUBEB_ERROR_DEVICE_UNAVAILABLE; - goto error; - } - } - AUDIO_INITINFO(&s->play.info); -#ifdef AUMODE_PLAY - s->play.info.mode = AUMODE_PLAY; -#endif - if ((ret = sun_copy_params(s->play.fd, s, output_stream_params, - &s->play.info, &s->play.info.play)) != - CUBEB_OK) { - LOG("Setting play params failed"); - goto error; - } - s->play.floating = (output_stream_params->format == CUBEB_SAMPLE_FLOAT32NE); - } - s->context = context; - s->volume = 1.0; - s->state_cb = state_callback; - s->data_cb = data_callback; - s->user_ptr = user_ptr; - if (pthread_mutex_init(&s->mutex, NULL) != 0) { - LOG("Failed to create mutex"); - goto error; - } - s->play.frame_size = - s->play.info.play.channels * (s->play.info.play.precision / 8); - if (s->play.fd != -1 && - (s->play.buf = calloc(SUN_BUFFER_FRAMES, s->play.frame_size)) == NULL) { - ret = CUBEB_ERROR; - goto error; - } - s->record.frame_size = - s->record.info.record.channels * (s->record.info.record.precision / 8); - if (s->record.fd != -1 && - (s->record.buf = calloc(SUN_BUFFER_FRAMES, s->record.frame_size)) == - NULL) { - ret = CUBEB_ERROR; - goto error; - } - *stream = s; - return CUBEB_OK; -error: - if (s != NULL) { - sun_stream_destroy(s); - } - return ret; -} - -static int -sun_stream_start(cubeb_stream * s) -{ - s->running = true; - if (pthread_create(&s->thread, NULL, sun_io_routine, s) != 0) { - LOG("Couldn't create thread"); - return CUBEB_ERROR; - } - return CUBEB_OK; -} - -static int -sun_stream_get_position(cubeb_stream * s, uint64_t * position) -{ -#ifdef AUDIO_GETOOFFS - struct audio_offset offset; - - if (ioctl(s->play.fd, AUDIO_GETOOFFS, &offset) == -1) { - return CUBEB_ERROR; - } - s->blocks_written += offset.deltablks; - *position = (s->blocks_written * s->play.info.blocksize) / s->play.frame_size; - return CUBEB_OK; -#else - pthread_mutex_lock(&s->mutex); - *position = s->frames_written; - pthread_mutex_unlock(&s->mutex); - return CUBEB_OK; -#endif -} - -static int -sun_stream_get_latency(cubeb_stream * s, uint32_t * latency) -{ -#ifdef AUDIO_GETBUFINFO - struct audio_info info; - - if (ioctl(s->play.fd, AUDIO_GETBUFINFO, &info) == -1) { - return CUBEB_ERROR; - } - - *latency = (info.play.seek + info.blocksize) / s->play.frame_size; - return CUBEB_OK; -#else - cubeb_stream_params params; - - params.rate = s->play.info.play.sample_rate; - - return sun_get_min_latency(NULL, params, latency); -#endif -} - -static int -sun_stream_set_volume(cubeb_stream * stream, float volume) -{ - pthread_mutex_lock(&stream->mutex); - stream->volume = volume; - pthread_mutex_unlock(&stream->mutex); - return CUBEB_OK; -} - -static int -sun_get_current_device(cubeb_stream * stream, cubeb_device ** const device) -{ - *device = calloc(1, sizeof(cubeb_device)); - if (*device == NULL) { - return CUBEB_ERROR; - } - (*device)->input_name = - stream->record.fd != -1 ? strdup(stream->record.name) : NULL; - (*device)->output_name = - stream->play.fd != -1 ? strdup(stream->play.name) : NULL; - return CUBEB_OK; -} - -static int -sun_stream_device_destroy(cubeb_stream * stream, cubeb_device * device) -{ - (void)stream; - free(device->input_name); - free(device->output_name); - free(device); - return CUBEB_OK; -} - -static struct cubeb_ops const sun_ops = { - .init = sun_init, - .get_backend_id = sun_get_backend_id, - .get_max_channel_count = sun_get_max_channel_count, - .get_min_latency = sun_get_min_latency, - .get_preferred_sample_rate = sun_get_preferred_sample_rate, - .enumerate_devices = sun_enumerate_devices, - .device_collection_destroy = sun_device_collection_destroy, - .destroy = sun_destroy, - .stream_init = sun_stream_init, - .stream_destroy = sun_stream_destroy, - .stream_start = sun_stream_start, - .stream_stop = sun_stream_stop, - .stream_get_position = sun_stream_get_position, - .stream_get_latency = sun_stream_get_latency, - .stream_get_input_latency = NULL, - .stream_set_volume = sun_stream_set_volume, - .stream_set_name = NULL, - .stream_get_current_device = sun_get_current_device, - .stream_device_destroy = sun_stream_device_destroy, - .stream_register_device_changed_callback = NULL, - .register_device_collection_changed = NULL}; diff --git a/3rdparty/cubeb/src/cubeb_triple_buffer.h b/3rdparty/cubeb/src/cubeb_triple_buffer.h new file mode 100644 index 00000000000000..a5a5978fb42a1a --- /dev/null +++ b/3rdparty/cubeb/src/cubeb_triple_buffer.h @@ -0,0 +1,80 @@ +/* + * Copyright © 2022 Mozilla Foundation + * + * This program is made available under an ISC-style license. See the + * accompanying file LICENSE for details. + */ + +/** + * Adapted and ported to C++ from https://crates.io/crates/triple_buffer + */ + +#ifndef CUBEB_TRIPLE_BUFFER +#define CUBEB_TRIPLE_BUFFER + +#include + +// Single producer / single consumer wait-free triple buffering +// implementation, for when a producer wants to publish data to a consumer +// without blocking, but when a queue is wastefull, because it's OK for the +// consumer to miss data updates. +template class triple_buffer { +public: + // Write a new value into the triple buffer. Returns true if a value was + // overwritten. + // Producer-side only. + bool write(T & input) + { + storage[input_idx] = input; + return publish(); + } + // Get the latest value from the triple buffer. + // Consumer-side only. + T & read() + { + update(); + return storage[output_idx]; + } + // Returns true if a new value has been published by the consumer without + // having been consumed yet. + // Consumer-side only. + bool updated() + { + return (shared_state.load(std::memory_order_relaxed) & BACK_DIRTY_BIT) != 0; + } + +private: + // Publish a value to the consumer. Returns true if the data was overwritten + // without having been read. + bool publish() + { + auto former_back_idx = shared_state.exchange(input_idx | BACK_DIRTY_BIT, + std::memory_order_acq_rel); + input_idx = former_back_idx & BACK_INDEX_MASK; + return (former_back_idx & BACK_DIRTY_BIT) != 0; + } + // Get a new value from the producer, if a new value has been produced. + bool update() + { + bool was_updated = updated(); + if (was_updated) { + auto former_back_idx = + shared_state.exchange(output_idx, std::memory_order_acq_rel); + output_idx = former_back_idx & BACK_INDEX_MASK; + } + return was_updated; + } + T storage[3]; + // Mask used to extract back-buffer index + const uint8_t BACK_INDEX_MASK = 0b11; + // Bit set by producer to signal updates + const uint8_t BACK_DIRTY_BIT = 0b100; + // Shared state: a dirty bit, and an index. + std::atomic shared_state = {0}; + // Output index, private to the consumer. + uint8_t output_idx = 1; + // Input index, private to the producer. + uint8_t input_idx = 2; +}; + +#endif // CUBEB_TRIPLE_BUFFER diff --git a/3rdparty/cubeb/src/cubeb_wasapi.cpp b/3rdparty/cubeb/src/cubeb_wasapi.cpp index 6bbaab5cff8a00..c2b4045ded6551 100644 --- a/3rdparty/cubeb/src/cubeb_wasapi.cpp +++ b/3rdparty/cubeb/src/cubeb_wasapi.cpp @@ -24,6 +24,10 @@ #include #include #include +/* clang-format off */ +/* These need to be included after windows.h */ +#include +/* clang-format on */ #include "cubeb-internal.h" #include "cubeb/cubeb.h" @@ -97,6 +101,8 @@ namespace { const int64_t LATENCY_NOT_AVAILABLE_YET = -1; +const DWORD DEVICE_CHANGE_DEBOUNCE_MS = 250; + struct com_heap_ptr_deleter { void operator()(void * ptr) const noexcept { CoTaskMemFree(ptr); } }; @@ -104,7 +110,9 @@ struct com_heap_ptr_deleter { template using com_heap_ptr = std::unique_ptr; -template constexpr size_t ARRAY_LENGTH(T (&)[N]) +template +constexpr size_t +ARRAY_LENGTH(T (&)[N]) { return N; } @@ -182,6 +190,20 @@ template class com_ptr { T * ptr = nullptr; }; +LONG +wasapi_stream_add_ref(cubeb_stream * stm); +LONG +wasapi_stream_release(cubeb_stream * stm); + +struct auto_stream_ref { + auto_stream_ref(cubeb_stream * stm_) : stm(stm_) + { + wasapi_stream_add_ref(stm); + } + ~auto_stream_ref() { wasapi_stream_release(stm); } + cubeb_stream * stm; +}; + extern cubeb_ops const wasapi_ops; static com_heap_ptr @@ -371,8 +393,8 @@ struct cubeb_stream { com_ptr input_client; /* Interface to use the event driven capture interface */ com_ptr capture_client; - /* This event is set by the stream_stop and stream_destroy - function, so the render loop can exit properly. */ + /* This event is set by the stream_destroy function, so the render loop can + exit properly. */ HANDLE shutdown_event = 0; /* Set by OnDefaultDeviceChanged when a stream reconfiguration is required. The reconfiguration is handled by the render loop thread. */ @@ -416,17 +438,23 @@ struct cubeb_stream { float volume = 1.0; /* True if the stream is draining. */ bool draining = false; - /* If the render thread fails to stop, this is set to true and ownership of - * the stm is "leaked" to the render thread for later cleanup. */ - std::atomic emergency_bailout{false}; /* This needs an active audio input stream to be known, and is updated in the * first audio input callback. */ std::atomic input_latency_hns{LATENCY_NOT_AVAILABLE_YET}; - /* Those attributes count the number of frames requested (resp. received) by the OS, to be able to detect drifts. This is only used for logging for now. */ size_t total_input_frames = 0; size_t total_output_frames = 0; + /* This is set by the render loop thread once it has obtained a reference to + * COM and this stream object. */ + HANDLE thread_ready_event = 0; + /* Keep a ref count on this stream object. After both stream_destroy has been + * called and the render loop thread has exited, destroy this stream object. + */ + LONG ref_count = 0; + + /* True if the stream is active, false if inactive. */ + bool active = false; }; class monitor_device_notifications { @@ -696,7 +724,8 @@ class wasapi_endpoint_notification_client : public IMMNotificationClient { } wasapi_endpoint_notification_client(HANDLE event, ERole role) - : ref_count(1), reconfigure_event(event), role(role) + : ref_count(1), reconfigure_event(event), role(role), + last_device_change(timeGetTime()) { } @@ -705,17 +734,32 @@ class wasapi_endpoint_notification_client : public IMMNotificationClient { HRESULT STDMETHODCALLTYPE OnDefaultDeviceChanged(EDataFlow flow, ERole role, LPCWSTR device_id) { - LOG("endpoint: Audio device default changed."); + LOG("endpoint: Audio device default changed flow=%d role=%d " + "new_device_id=%ws.", + flow, role, device_id); /* we only support a single stream type for now. */ - if (flow != eRender && role != this->role) { + if (flow != eRender || role != this->role) { return S_OK; } - BOOL ok = SetEvent(reconfigure_event); - if (!ok) { - LOG("endpoint: SetEvent on reconfigure_event failed: %lx", - GetLastError()); + DWORD last_change_ms = timeGetTime() - last_device_change; + bool same_device = default_device_id && device_id && + wcscmp(default_device_id.get(), device_id) == 0; + LOG("endpoint: Audio device default changed last_change=%u same_device=%d", + last_change_ms, same_device); + if (last_change_ms > DEVICE_CHANGE_DEBOUNCE_MS || !same_device) { + if (device_id) { + default_device_id.reset(_wcsdup(device_id)); + } else { + default_device_id.reset(); + } + BOOL ok = SetEvent(reconfigure_event); + LOG("endpoint: Audio device default changed: trigger reconfig"); + if (!ok) { + LOG("endpoint: SetEvent on reconfigure_event failed: %lx", + GetLastError()); + } } return S_OK; @@ -754,6 +798,8 @@ class wasapi_endpoint_notification_client : public IMMNotificationClient { LONG ref_count; HANDLE reconfigure_event; ERole role; + std::unique_ptr default_device_id; + DWORD last_device_change; }; namespace { @@ -763,9 +809,6 @@ wasapi_data_callback(cubeb_stream * stm, void * user_ptr, void const * input_buffer, void * output_buffer, long nframes) { - if (stm->emergency_bailout) { - return CUBEB_ERROR; - } return stm->data_callback(stm, user_ptr, input_buffer, output_buffer, nframes); } @@ -773,9 +816,6 @@ wasapi_data_callback(cubeb_stream * stm, void * user_ptr, void wasapi_state_callback(cubeb_stream * stm, void * user_ptr, cubeb_state state) { - if (stm->emergency_bailout) { - return; - } return stm->state_callback(stm, user_ptr, state); } @@ -1331,31 +1371,12 @@ refill_callback_output(cubeb_stream * stm) void wasapi_stream_destroy(cubeb_stream * stm); -static void -handle_emergency_bailout(cubeb_stream * stm) -{ - if (stm->emergency_bailout) { - CloseHandle(stm->thread); - stm->thread = NULL; - CloseHandle(stm->shutdown_event); - stm->shutdown_event = 0; - wasapi_stream_destroy(stm); - _endthreadex(0); - } -} - static unsigned int __stdcall wasapi_stream_render_loop(LPVOID stream) { AutoRegisterThread raii("cubeb rendering thread"); - cubeb_stream * stm = static_cast(stream); - bool is_playing = true; - HANDLE wait_array[4] = {stm->shutdown_event, stm->reconfigure_event, - stm->refill_event, stm->input_available_event}; - HANDLE mmcss_handle = NULL; - HRESULT hr = 0; - DWORD mmcss_task_index = 0; + auto_stream_ref stream_ref(stm); struct auto_com { auto_com() { @@ -1365,6 +1386,21 @@ static unsigned int __stdcall wasapi_stream_render_loop(LPVOID stream) ~auto_com() { CoUninitialize(); } } com; + bool is_playing = true; + HANDLE wait_array[4] = {stm->shutdown_event, stm->reconfigure_event, + stm->refill_event, stm->input_available_event}; + HANDLE mmcss_handle = NULL; + HRESULT hr = 0; + DWORD mmcss_task_index = 0; + + // Signal wasapi_stream_start that we've initialized COM and incremented + // the stream's ref_count. + BOOL ok = SetEvent(stm->thread_ready_event); + if (!ok) { + LOG("thread_ready SetEvent failed: %lx", GetLastError()); + return 0; + } + /* We could consider using "Pro Audio" here for WebAudio and maybe WebRTC. */ mmcss_handle = AvSetMmThreadCharacteristicsA("Audio", &mmcss_task_index); @@ -1374,20 +1410,9 @@ static unsigned int __stdcall wasapi_stream_render_loop(LPVOID stream) GetLastError()); } - /* WaitForMultipleObjects timeout can trigger in cases where we don't want to - treat it as a timeout, such as across a system sleep/wake cycle. Trigger - the timeout error handling only when the timeout_limit is reached, which is - reset on each successful loop. */ - unsigned timeout_count = 0; - const unsigned timeout_limit = 3; while (is_playing) { - handle_emergency_bailout(stm); DWORD waitResult = WaitForMultipleObjects(ARRAY_LENGTH(wait_array), - wait_array, FALSE, 1000); - handle_emergency_bailout(stm); - if (waitResult != WAIT_TIMEOUT) { - timeout_count = 0; - } + wait_array, FALSE, INFINITE); switch (waitResult) { case WAIT_OBJECT_0: { /* shutdown */ is_playing = false; @@ -1399,36 +1424,40 @@ static unsigned int __stdcall wasapi_stream_render_loop(LPVOID stream) continue; } case WAIT_OBJECT_0 + 1: { /* reconfigure */ + auto_lock lock(stm->stream_reset_lock); + if (!stm->active) { + /* Avoid reconfiguring, stream start will handle it. */ + LOG("Stream is not active, ignoring reconfigure."); + continue; + } XASSERT(stm->output_client || stm->input_client); LOG("Reconfiguring the stream"); /* Close the stream */ + bool was_running = false; if (stm->output_client) { - stm->output_client->Stop(); + was_running = stm->output_client->Stop() == S_OK; LOG("Output stopped."); } if (stm->input_client) { - stm->input_client->Stop(); + was_running = stm->input_client->Stop() == S_OK; LOG("Input stopped."); } - { - auto_lock lock(stm->stream_reset_lock); - close_wasapi_stream(stm); - LOG("Stream closed."); - /* Reopen a stream and start it immediately. This will automatically - pick the new default device for this role. */ - int r = setup_wasapi_stream(stm); - if (r != CUBEB_OK) { - LOG("Error setting up the stream during reconfigure."); - /* Don't destroy the stream here, since we expect the caller to do - so after the error has propagated via the state callback. */ - is_playing = false; - hr = E_FAIL; - continue; - } - LOG("Stream setup successfuly."); + close_wasapi_stream(stm); + LOG("Stream closed."); + /* Reopen a stream and start it immediately. This will automatically + pick the new default device for this role. */ + int r = setup_wasapi_stream(stm); + if (r != CUBEB_OK) { + LOG("Error setting up the stream during reconfigure."); + /* Don't destroy the stream here, since we expect the caller to do + so after the error has propagated via the state callback. */ + is_playing = false; + hr = E_FAIL; + continue; } + LOG("Stream setup successfuly."); XASSERT(stm->output_client || stm->input_client); - if (stm->output_client) { + if (was_running && stm->output_client) { hr = stm->output_client->Start(); if (FAILED(hr)) { LOG("Error starting output after reconfigure, error: %lx", hr); @@ -1437,7 +1466,7 @@ static unsigned int __stdcall wasapi_stream_render_loop(LPVOID stream) } LOG("Output started after reconfigure."); } - if (stm->input_client) { + if (was_running && stm->input_client) { hr = stm->input_client->Start(); if (FAILED(hr)) { LOG("Error starting input after reconfiguring, error: %lx", hr); @@ -1466,14 +1495,6 @@ static unsigned int __stdcall wasapi_stream_render_loop(LPVOID stream) break; } - case WAIT_TIMEOUT: - XASSERT(stm->shutdown_event == wait_array[0]); - if (++timeout_count >= timeout_limit) { - LOG("Render loop reached the timeout limit."); - is_playing = false; - hr = E_FAIL; - } - break; default: LOG("case %lu not handled in render loop.", waitResult); XASSERT(false); @@ -1493,8 +1514,6 @@ static unsigned int __stdcall wasapi_stream_render_loop(LPVOID stream) AvRevertMmThreadCharacteristics(mmcss_handle); } - handle_emergency_bailout(stm); - if (FAILED(hr)) { wasapi_state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); } @@ -1750,24 +1769,16 @@ namespace { enum ShutdownPhase { OnStop, OnDestroy }; bool -stop_and_join_render_thread(cubeb_stream * stm, ShutdownPhase phase) +stop_and_join_render_thread(cubeb_stream * stm) { - // Only safe to transfer `stm` ownership to the render thread when - // the stream is being destroyed by the caller. - bool bailout = phase == OnDestroy; - - LOG("%p: Stop and join render thread: %p (%d), phase=%d", stm, stm->thread, - stm->emergency_bailout.load(), static_cast(phase)); + LOG("%p: Stop and join render thread: %p", stm, stm->thread); if (!stm->thread) { return true; } - XASSERT(!stm->emergency_bailout); - BOOL ok = SetEvent(stm->shutdown_event); if (!ok) { LOG("stop_and_join_render_thread: SetEvent failed: %lx", GetLastError()); - stm->emergency_bailout = bailout; return false; } @@ -1785,31 +1796,23 @@ stop_and_join_render_thread(cubeb_stream * stm, ShutdownPhase phase) LOG("stop_and_join_render_thread: WaitForSingleObject on thread failed: " "%lx, %lx", r, GetLastError()); - stm->emergency_bailout = bailout; return false; } - // Only attempt to close and null out the thread and event if the - // WaitForSingleObject above succeeded. - LOG("stop_and_join_render_thread: Closing thread."); - CloseHandle(stm->thread); - stm->thread = NULL; - - CloseHandle(stm->shutdown_event); - stm->shutdown_event = 0; - return true; } void wasapi_destroy(cubeb * context) { - auto_lock lock(context->lock); - XASSERT(!context->device_collection_enumerator && - !context->collection_notification_client); + { + auto_lock lock(context->lock); + XASSERT(!context->device_collection_enumerator && + !context->collection_notification_client); - if (context->device_ids) { - cubeb_strings_destroy(context->device_ids); + if (context->device_ids) { + cubeb_strings_destroy(context->device_ids); + } } delete context; @@ -2480,8 +2483,8 @@ setup_wasapi_stream(cubeb_stream * stm) std::unique_ptr selected_output_device_id; if (stm->output_device_id) { if (std::unique_ptr tmp = - move(copy_wide_string(stm->output_device_id.get()))) { - selected_output_device_id = move(tmp); + copy_wide_string(stm->output_device_id.get())) { + selected_output_device_id = std::move(tmp); } else { LOG("Failed to copy output device identifier."); return CUBEB_ERROR; @@ -2523,7 +2526,7 @@ setup_wasapi_stream(cubeb_stream * stm) cubeb_devid matched = wasapi_find_bt_handsfree_output_device(stm); if (matched) { selected_output_device_id = - move(utf8_to_wstr(reinterpret_cast(matched))); + utf8_to_wstr(reinterpret_cast(matched)); } } } @@ -2539,9 +2542,9 @@ setup_wasapi_stream(cubeb_stream * stm) stm->output_stream_params.layout = stm->input_stream_params.layout; if (stm->input_device_id) { if (std::unique_ptr tmp = - move(copy_wide_string(stm->input_device_id.get()))) { + copy_wide_string(stm->input_device_id.get())) { XASSERT(!selected_output_device_id); - selected_output_device_id = move(tmp); + selected_output_device_id = std::move(tmp); } else { LOG("Failed to copy device identifier while copying input stream " "configuration to output stream configuration to drive loopback."); @@ -2701,8 +2704,8 @@ wasapi_stream_init(cubeb * context, cubeb_stream ** stream, return CUBEB_ERROR_INVALID_FORMAT; } - std::unique_ptr stm( - new cubeb_stream(), wasapi_stream_destroy); + cubeb_stream * stm = new cubeb_stream(); + auto_stream_ref stream_ref(stm); stm->context = context; stm->data_callback = data_callback; @@ -2774,12 +2777,24 @@ wasapi_stream_init(cubeb * context, cubeb_stream ** stream, return CUBEB_ERROR; } + stm->shutdown_event = CreateEvent(NULL, 0, 0, NULL); + if (!stm->shutdown_event) { + LOG("Can't create the shutdown event, error: %lx", GetLastError()); + return CUBEB_ERROR; + } + + stm->thread_ready_event = CreateEvent(NULL, 0, 0, NULL); + if (!stm->thread_ready_event) { + LOG("Can't create the thread ready event, error: %lx", GetLastError()); + return CUBEB_ERROR; + } + { /* Locking here is not strictly necessary, because we don't have a notification client that can reset the stream yet, but it lets us assert that the lock is held in the function. */ auto_lock lock(stm->stream_reset_lock); - rv = setup_wasapi_stream(stm.get()); + rv = setup_wasapi_stream(stm); } if (rv != CUBEB_OK) { return rv; @@ -2794,7 +2809,7 @@ wasapi_stream_init(cubeb * context, cubeb_stream ** stream, !(output_stream_params->prefs & CUBEB_STREAM_PREF_DISABLE_DEVICE_SWITCHING))) { LOG("Follow the system default input or/and output devices"); - HRESULT hr = register_notification_client(stm.get()); + HRESULT hr = register_notification_client(stm); if (FAILED(hr)) { /* this is not fatal, we can still play audio, but we won't be able to keep using the default audio endpoint if it changes. */ @@ -2802,9 +2817,25 @@ wasapi_stream_init(cubeb * context, cubeb_stream ** stream, } } - *stream = stm.release(); + stm->thread = + (HANDLE)_beginthreadex(NULL, 512 * 1024, wasapi_stream_render_loop, stm, + STACK_SIZE_PARAM_IS_A_RESERVATION, NULL); + if (stm->thread == NULL) { + LOG("could not create WASAPI render thread."); + return CUBEB_ERROR; + } + + // Wait for the wasapi_stream_render_loop thread to signal that COM has been + // initialized and the stream's ref_count has been incremented. + hr = WaitForSingleObject(stm->thread_ready_event, INFINITE); + XASSERT(hr == WAIT_OBJECT_0); + CloseHandle(stm->thread_ready_event); + stm->thread_ready_event = 0; + + wasapi_stream_add_ref(stm); + *stream = stm; - LOG("Stream init succesfull (%p)", *stream); + LOG("Stream init successful (%p)", *stream); return CUBEB_OK; } @@ -2815,20 +2846,18 @@ close_wasapi_stream(cubeb_stream * stm) stm->stream_reset_lock.assert_current_thread_owns(); - stm->output_client = nullptr; +#ifdef CUBEB_WASAPI_USE_IAUDIOSTREAMVOLUME + stm->audio_stream_volume = nullptr; +#endif + stm->audio_clock = nullptr; stm->render_client = nullptr; + stm->output_client = nullptr; + stm->output_device = nullptr; - stm->input_client = nullptr; stm->capture_client = nullptr; - - stm->output_device = nullptr; + stm->input_client = nullptr; stm->input_device = nullptr; -#ifdef CUBEB_WASAPI_USE_IAUDIOSTREAMVOLUME - stm->audio_stream_volume = nullptr; -#endif - - stm->audio_clock = nullptr; stm->total_frames_written += static_cast( round(stm->frames_written * stream_to_mix_samplerate_ratio(stm->output_stream_params, @@ -2844,32 +2873,59 @@ close_wasapi_stream(cubeb_stream * stm) } } -void -wasapi_stream_destroy(cubeb_stream * stm) +LONG +wasapi_stream_add_ref(cubeb_stream * stm) { XASSERT(stm); - LOG("Stream destroy (%p)", stm); + LONG result = InterlockedIncrement(&stm->ref_count); + LOGV("Stream ref count incremented = %i (%p)", result, stm); + return result; +} - if (!stop_and_join_render_thread(stm, OnDestroy)) { - // Emergency bailout: render thread becomes responsible for calling - // wasapi_stream_destroy. - return; - } +LONG +wasapi_stream_release(cubeb_stream * stm) +{ + XASSERT(stm); - if (stm->notification_client) { - unregister_notification_client(stm); - } + LONG result = InterlockedDecrement(&stm->ref_count); + LOGV("Stream ref count decremented = %i (%p)", result, stm); + if (result == 0) { + LOG("Stream ref count hit zero, destroying (%p)", stm); - { - auto_lock lock(stm->stream_reset_lock); - close_wasapi_stream(stm); + if (stm->notification_client) { + unregister_notification_client(stm); + } + + CloseHandle(stm->shutdown_event); + CloseHandle(stm->reconfigure_event); + CloseHandle(stm->refill_event); + CloseHandle(stm->input_available_event); + + CloseHandle(stm->thread); + + // The variables intialized in wasapi_stream_init, + // must be destroyed in wasapi_stream_release. + stm->linear_input_buffer.reset(); + + { + auto_lock lock(stm->stream_reset_lock); + close_wasapi_stream(stm); + } + + delete stm; } - CloseHandle(stm->reconfigure_event); - CloseHandle(stm->refill_event); - CloseHandle(stm->input_available_event); + return result; +} - delete stm; +void +wasapi_stream_destroy(cubeb_stream * stm) +{ + XASSERT(stm); + LOG("Stream destroy called, decrementing ref count (%p)", stm); + + stop_and_join_render_thread(stm); + wasapi_stream_release(stm); } enum StreamDirection { OUTPUT, INPUT }; @@ -2877,6 +2933,7 @@ enum StreamDirection { OUTPUT, INPUT }; int stream_start_one_side(cubeb_stream * stm, StreamDirection dir) { + XASSERT(stm); XASSERT((dir == OUTPUT && stm->output_client) || (dir == INPUT && stm->input_client)); @@ -2920,7 +2977,7 @@ wasapi_stream_start(cubeb_stream * stm) { auto_lock lock(stm->stream_reset_lock); - XASSERT(stm && !stm->thread && !stm->shutdown_event); + XASSERT(stm); XASSERT(stm->output_client || stm->input_client); if (stm->output_client) { @@ -2937,24 +2994,9 @@ wasapi_stream_start(cubeb_stream * stm) } } - stm->shutdown_event = CreateEvent(NULL, 0, 0, NULL); - if (!stm->shutdown_event) { - LOG("Can't create the shutdown event, error: %lx", GetLastError()); - return CUBEB_ERROR; - } - - cubeb_async_log_reset_threads(); - stm->thread = - (HANDLE)_beginthreadex(NULL, 512 * 1024, wasapi_stream_render_loop, stm, - STACK_SIZE_PARAM_IS_A_RESERVATION, NULL); - if (stm->thread == NULL) { - LOG("could not create WASAPI render thread."); - CloseHandle(stm->shutdown_event); - stm->shutdown_event = 0; - return CUBEB_ERROR; - } + stm->active = true; - wasapi_state_callback(stm, stm->user_ptr, CUBEB_STATE_STARTED); + stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_STARTED); return CUBEB_OK; } @@ -2984,13 +3026,9 @@ wasapi_stream_stop(cubeb_stream * stm) } } - wasapi_state_callback(stm, stm->user_ptr, CUBEB_STATE_STOPPED); - } + stm->active = false; - if (!stop_and_join_render_thread(stm, OnStop)) { - // If we could not join the thread, put the stream in error. - wasapi_state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); - return CUBEB_ERROR; + wasapi_state_callback(stm, stm->user_ptr, CUBEB_STATE_STOPPED); } return CUBEB_OK; @@ -3125,8 +3163,9 @@ wstr_to_utf8(LPCWSTR str) return ret; } -static std::unique_ptr -utf8_to_wstr(char const * str) { +static std::unique_ptr +utf8_to_wstr(char const * str) +{ int size = ::MultiByteToWideChar(CP_UTF8, 0, str, -1, nullptr, 0); if (size <= 0) { return nullptr; @@ -3137,8 +3176,8 @@ utf8_to_wstr(char const * str) { return ret; } -static com_ptr wasapi_get_device_node( - IMMDeviceEnumerator * enumerator, IMMDevice * dev) +static com_ptr +wasapi_get_device_node(IMMDeviceEnumerator * enumerator, IMMDevice * dev) { com_ptr ret; com_ptr devtopo; diff --git a/3rdparty/cubeb/src/cubeb_winmm.c b/3rdparty/cubeb/src/cubeb_winmm.c index 44aec86d259c7f..9aa176eadd0176 100644 --- a/3rdparty/cubeb/src/cubeb_winmm.c +++ b/3rdparty/cubeb/src/cubeb_winmm.c @@ -105,10 +105,13 @@ struct cubeb_stream { int free_buffers; int shutdown; int draining; + int error; HANDLE event; HWAVEOUT waveout; CRITICAL_SECTION lock; uint64_t written; + /* number of frames written during preroll */ + uint64_t position_base; float soft_volume; /* For position wrap-around handling: */ size_t frame_size; @@ -150,6 +153,14 @@ winmm_get_next_buffer(cubeb_stream * stm) return hdr; } +static long +preroll_callback(cubeb_stream * stream, void * user, const void * inputbuffer, + void * outputbuffer, long nframes) +{ + memset((uint8_t *)outputbuffer, 0, nframes * bytes_per_frame(stream->params)); + return nframes; +} + static void winmm_refill_stream(cubeb_stream * stm) { @@ -158,13 +169,20 @@ winmm_refill_stream(cubeb_stream * stm) long wanted; MMRESULT r; + ALOG("winmm_refill_stream"); + EnterCriticalSection(&stm->lock); + if (stm->error) { + LeaveCriticalSection(&stm->lock); + return; + } stm->free_buffers += 1; XASSERT(stm->free_buffers > 0 && stm->free_buffers <= NBUFS); if (stm->draining) { LeaveCriticalSection(&stm->lock); if (stm->free_buffers == NBUFS) { + ALOG("winmm_refill_stream draining"); stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_DRAINED); } SetEvent(stm->event); @@ -187,9 +205,10 @@ winmm_refill_stream(cubeb_stream * stm) got = stm->data_callback(stm, stm->user_ptr, NULL, hdr->lpData, wanted); EnterCriticalSection(&stm->lock); if (got < 0) { + stm->error = 1; LeaveCriticalSection(&stm->lock); - /* XXX handle this case */ - XASSERT(0); + SetEvent(stm->event); + stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR); return; } else if (got < wanted) { stm->draining = 1; @@ -224,6 +243,8 @@ winmm_refill_stream(cubeb_stream * stm) return; } + ALOG("winmm_refill_stream %ld frames", got); + LeaveCriticalSection(&stm->lock); } @@ -486,7 +507,11 @@ winmm_stream_init(cubeb * context, cubeb_stream ** stream, stm->params = *output_stream_params; - stm->data_callback = data_callback; + // Data callback is set to the user-provided data callback after + // the initialization and potential preroll callback calls are done, because + // cubeb users don't expect the data callback to be called during + // initialization. + stm->data_callback = preroll_callback; stm->state_callback = state_callback; stm->user_ptr = user_ptr; stm->written = 0; @@ -553,9 +578,18 @@ winmm_stream_init(cubeb * context, cubeb_stream ** stream, stm->frame_size = bytes_per_frame(stm->params); stm->prev_pos_lo_dword = 0; stm->pos_hi_dword = 0; + // Set the user data callback now that preroll has finished. + stm->data_callback = data_callback; + stm->position_base = 0; + + // Offset the position by the number of frames written during preroll. + stm->position_base = stm->written; + stm->written = 0; *stream = stm; + LOG("winmm_stream_init OK"); + return CUBEB_OK; } @@ -585,7 +619,7 @@ winmm_stream_destroy(cubeb_stream * stm) LeaveCriticalSection(&stm->lock); /* Wait for all blocks to complete. */ - while (device_valid && enqueued > 0) { + while (device_valid && enqueued > 0 && !stm->error) { DWORD rv = WaitForSingleObject(stm->event, INFINITE); XASSERT(rv == WAIT_OBJECT_0); @@ -774,7 +808,17 @@ winmm_stream_get_position(cubeb_stream * stm, uint64_t * position) return CUBEB_ERROR; } - *position = update_64bit_position(stm, time.u.cb) / stm->frame_size; + uint64_t position_not_adjusted = + update_64bit_position(stm, time.u.cb) / stm->frame_size; + + // Subtract the number of frames that were written while prerolling, during + // initialization. + if (position_not_adjusted < stm->position_base) { + *position = 0; + } else { + *position = position_not_adjusted - stm->position_base; + } + LeaveCriticalSection(&stm->lock); return CUBEB_OK; @@ -787,17 +831,12 @@ winmm_stream_get_latency(cubeb_stream * stm, uint32_t * latency) MMTIME time; uint64_t written, position; - EnterCriticalSection(&stm->lock); - /* See the long comment above for why not just use TIME_SAMPLES here. */ - time.wType = TIME_BYTES; - r = waveOutGetPosition(stm->waveout, &time, sizeof(time)); - - if (r != MMSYSERR_NOERROR || time.wType != TIME_BYTES) { - LeaveCriticalSection(&stm->lock); - return CUBEB_ERROR; + int rv = winmm_stream_get_position(stm, &position); + if (rv != CUBEB_OK) { + return rv; } - position = update_64bit_position(stm, time.u.cb); + EnterCriticalSection(&stm->lock); written = stm->written; LeaveCriticalSection(&stm->lock); diff --git a/3rdparty/d3d12memalloc/CHANGELOG.md b/3rdparty/d3d12memalloc/CHANGELOG.md index 9e69431e1f836b..bc027d3bf825c0 100644 --- a/3rdparty/d3d12memalloc/CHANGELOG.md +++ b/3rdparty/d3d12memalloc/CHANGELOG.md @@ -1,3 +1,23 @@ -# 1.0.0 (2019-09-02) +# 2.0.1 (2022-04-05) + +A maintenance release with some bug fixes and improvements. There are no changes in the library API. + +- Fixed an assert failing when detailed JSON dump was made while a custom pool was present with specified string name (#36, thanks @rbertin-aso). +- Fixed image height calculation in JSON dump visualization tool "GpuMemDumpVis.py" (#37, thanks @rbertin-aso). +- Added JSON Schema for JSON dump format - see file "tools\GpuMemDumpVis\GpuMemDump.schema.json". +- Added documentation section "Resource reference counting". + +# 2.0.0 (2022-03-25) + +So much has changed since the first release that it doesn’t make much sense to compare the differences. Here are the most important features that the library now provides: + +- Powerful custom pools, which give an opportunity to not only keep certain resources together, reserve some minimum or limit the maximum amount of memory they can take, but also to pass additional allocation parameters unavailable to simple allocations. Among them, probably the most interesting is `POOL_DESC::HeapProperties`, which allows you to specify parameters of a custom memory type, which may be useful on UMA platforms. Committed allocations can now also be created in custom pools. +- The API for statistics and budget has been redesigned - see structures `Statistics`, `Budget`, `DetailedStatistics`, `TotalStatistics`. +- The library exposes its core allocation algorithm via the “virtual allocator” interface. This can be used to allocate pieces of custom memory or whatever you like, even something completely unrelated to graphics. +- The allocation algorithm has been replaced with the new, more efficient TLSF. +- Added support for defragmentation. +- Objects of the library can be used with smart pointers designed for COM objects. + +# 1.0.0 (2019-09-02) First published version. diff --git a/3rdparty/d3d12memalloc/README.md b/3rdparty/d3d12memalloc/README.md index 65a9ff59ca63c4..81c6be18aa4ec0 100644 --- a/3rdparty/d3d12memalloc/README.md +++ b/3rdparty/d3d12memalloc/README.md @@ -41,7 +41,7 @@ Additional features: - Statistics: Obtain brief or detailed statistics about the amount of memory used, unused, number of allocated heaps, number of allocations etc. - globally and per memory heap type. Current memory usage and budget as reported by the system can also be queried. - Debug annotations: Associate custom `void* pPrivateData` and debug `LPCWSTR pName` with each allocation. - JSON dump: Obtain a string in JSON format with detailed map of internal state, including list of allocations, their string names, and gaps between them. -- Convert this JSON dump into a picture to visualize your memory using attached Python script. +- Convert this JSON dump into a picture to visualize your memory. See [tools/GpuMemDumpVis](tools/GpuMemDumpVis/README.md). - Virtual allocator - an API that exposes the core allocation algorithm to be used without allocating real GPU memory, to allocate your own stuff, e.g. sub-allocate pieces of one large buffer. # Prerequisites @@ -104,10 +104,12 @@ For more information see [NOTICES.txt](NOTICES.txt). # Software using this library - **[The Forge](https://github.com/ConfettiFX/The-Forge)** - cross-platform rendering framework. Apache License 2.0. +- **[Wicked Engine](https://github.com/turanszkij/WickedEngine)** - 3D engine with modern graphics [Some other projects on GitHub](https://github.com/search?q=D3D12MemAlloc.h&type=Code) and some game development studios that use DX12 in their games. # See also +- **[Vcpkg](https://github.com/Microsoft/vcpkg)** dependency manager from Microsoft offers a port of this library that is easy to install. - **[Vulkan Memory Allocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/)** - equivalent library for Vulkan. License: MIT. - **[TerraFX.Interop.D3D12MemoryAllocator](https://github.com/terrafx/terrafx.interop.d3d12memoryallocator)** - interop bindings for this library for C#, as used by [TerraFX](https://github.com/terrafx/terrafx). License: MIT. diff --git a/3rdparty/d3d12memalloc/include/D3D12MemAlloc.h b/3rdparty/d3d12memalloc/include/D3D12MemAlloc.h index 4efbb50115c48e..4e87bf0277474b 100644 --- a/3rdparty/d3d12memalloc/include/D3D12MemAlloc.h +++ b/3rdparty/d3d12memalloc/include/D3D12MemAlloc.h @@ -24,9 +24,9 @@ /** \mainpage D3D12 Memory Allocator -Version 2.0.0-development (2021-07-26) +Version 2.1.0-development (2023-07-05) -Copyright (c) 2019-2022 Advanced Micro Devices, Inc. All rights reserved. \n +Copyright (c) 2019-2023 Advanced Micro Devices, Inc. All rights reserved. \n License: MIT Documentation of all members: D3D12MemAlloc.h @@ -36,6 +36,7 @@ Documentation of all members: D3D12MemAlloc.h - \subpage quick_start - [Project setup](@ref quick_start_project_setup) - [Creating resources](@ref quick_start_creating_resources) + - [Resource reference counting](@ref quick_start_resource_reference_counting) - [Mapping memory](@ref quick_start_mapping_memory) - \subpage custom_pools - \subpage defragmentation @@ -50,7 +51,7 @@ Documentation of all members: D3D12MemAlloc.h - [Thread safety](@ref general_considerations_thread_safety) - [Versioning and compatibility](@ref general_considerations_versioning_and_compatibility) - [Features not supported](@ref general_considerations_features_not_supported) - + \section main_see_also See also - [Product page on GPUOpen](https://gpuopen.com/gaming-product/d3d12-memory-allocator/) @@ -58,9 +59,18 @@ Documentation of all members: D3D12MemAlloc.h */ // If using this library on a platform different than Windows PC or want to use different version of DXGI, -// you should include D3D12-compatible headers before this library on your own and define this macro. +// you should include D3D12-compatible headers before this library on your own and define +// D3D12MA_D3D12_HEADERS_ALREADY_INCLUDED. +// Alternatively, if you are targeting the open sourced DirectX headers, defining D3D12MA_USING_DIRECTX_HEADERS +// will include them rather the ones provided by the Windows SDK. #ifndef D3D12MA_D3D12_HEADERS_ALREADY_INCLUDED - #include + #if defined(D3D12MA_USING_DIRECTX_HEADERS) + #include + #include + #else + #include + #endif + #include #endif @@ -132,6 +142,18 @@ If providing your own implementation, you need to implement a subset of std::ato // Forward declaration if ID3D12ProtectedResourceSession is not defined inside the headers (older SDK, pre ID3D12Device4) struct ID3D12ProtectedResourceSession; +// Define this enum even if SDK doesn't provide it, to simplify the API. +#ifndef __ID3D12Device1_INTERFACE_DEFINED__ +typedef enum D3D12_RESIDENCY_PRIORITY +{ + D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000, + D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000, + D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000, + D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000, + D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000 +} D3D12_RESIDENCY_PRIORITY; +#endif + namespace D3D12MA { class D3D12MA_API IUnknownImpl : public IUnknown @@ -144,7 +166,7 @@ class D3D12MA_API IUnknownImpl : public IUnknown protected: virtual void ReleaseThis() { delete this; } private: - D3D12MA_ATOMIC_UINT32 m_RefCount{1}; + D3D12MA_ATOMIC_UINT32 m_RefCount = {1}; }; } // namespace D3D12MA @@ -226,8 +248,6 @@ enum ALLOCATION_FLAGS /** Create allocation only if additional memory required for it, if any, won't exceed memory budget. Otherwise return `E_OUTOFMEMORY`. - - \warning Currently this feature is not fully implemented yet. */ ALLOCATION_FLAG_WITHIN_BUDGET = 0x4, @@ -237,7 +257,6 @@ enum ALLOCATION_FLAGS */ ALLOCATION_FLAG_UPPER_ADDRESS = 0x8, - /** Set this flag if the allocated memory will have aliasing resources. Use this when calling D3D12MA::Allocator::CreateResource() and similar to @@ -306,7 +325,6 @@ struct ALLOCATION_DESC /** \brief Custom pool to place the new resource in. Optional. When not NULL, the resource will be created inside specified custom pool. - It will then never be created as committed. */ Pool* CustomPool; /// Custom general-purpose pointer that will be stored in D3D12MA::Allocation. @@ -570,7 +588,6 @@ class D3D12MA_API Allocation : public IUnknownImpl UINT64 m_Size; UINT64 m_Alignment; ID3D12Resource* m_Resource; - UINT m_CreationFrameIndex; void* m_pPrivateData; wchar_t* m_Name; @@ -637,7 +654,7 @@ class D3D12MA_API Allocation : public IUnknownImpl AllocHandle GetAllocHandle() const; NormalBlock* GetBlock(); template - void SetResource(ID3D12Resource* resource, const D3D12_RESOURCE_DESC_T* pResourceDesc); + void SetResourcePointer(ID3D12Resource* resource, const D3D12_RESOURCE_DESC_T* pResourceDesc); void FreeName(); D3D12MA_CLASS_NO_COPY(Allocation) @@ -838,6 +855,14 @@ enum POOL_FLAGS */ POOL_FLAG_ALGORITHM_LINEAR = 0x1, + /** \brief Optimization, allocate MSAA textures as committed resources always. + + Specify this flag to create MSAA textures with implicit heaps, as if they were created + with flag D3D12MA::ALLOCATION_FLAG_COMMITTED. Usage of this flags enables pool to create its heaps + on smaller alignment not suitable for MSAA textures. + */ + POOL_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED = 0x2, + // Bit mask to extract only `ALGORITHM` bits from entire set of flags. POOL_FLAG_ALGORITHM_MASK = POOL_FLAG_ALGORITHM_LINEAR }; @@ -895,6 +920,29 @@ struct POOL_DESC Valid only if ID3D12Device4 interface is present in current Windows SDK! */ ID3D12ProtectedResourceSession* pProtectedSession; + /** \brief Residency priority to be set for all allocations made in this pool. Optional. + + Set this parameter to one of the possible enum values e.g. `D3D12_RESIDENCY_PRIORITY_HIGH` + to apply specific residency priority to all allocations made in this pool: + `ID3D12Heap` memory blocks used to sub-allocate for placed resources, as well as + committed resources or heaps created when D3D12MA::ALLOCATION_FLAG_COMMITTED is used. + This can increase/decrease chance that the memory will be pushed out from VRAM + to system RAM when the system runs out of memory, which is invisible to the developer + using D3D12 API while it can degrade performance. + + Priority is set using function `ID3D12Device1::SetResidencyPriority`. + It is performed only when `ID3D12Device1` interface is defined and successfully obtained. + Otherwise, this parameter is ignored. + + This parameter is optional. If you set it to `D3D12_RESIDENCY_PRIORITY(0)`, + residency priority will not be set for allocations made in this pool. + + There is no equivalent parameter for allocations made in default pools. + If you want to set residency priority for such allocation, you need to do it manually: + allocate with D3D12MA::ALLOCATION_FLAG_COMMITTED and call + `ID3D12Device1::SetResidencyPriority`, passing `allocation->GetResource()`. + */ + D3D12_RESIDENCY_PRIORITY ResidencyPriority; }; /** \brief Custom memory pool @@ -1009,6 +1057,14 @@ enum ALLOCATOR_FLAGS Only avaiable if `ID3D12Device8` is present. Otherwise, the flag is ignored. */ ALLOCATOR_FLAG_DEFAULT_POOLS_NOT_ZEROED = 0x4, + + /** \brief Optimization, allocate MSAA textures as committed resources always. + + Specify this flag to create MSAA textures with implicit heaps, as if they were created + with flag D3D12MA::ALLOCATION_FLAG_COMMITTED. Usage of this flags enables all default pools + to create its heaps on smaller alignment not suitable for MSAA textures. + */ + ALLOCATOR_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED = 0x8, }; /// \brief Parameters of created Allocator object. To be used with CreateAllocator(). @@ -1144,7 +1200,26 @@ class D3D12MA_API Allocator : public IUnknownImpl Allocation** ppAllocation, REFIID riidResource, void** ppvResource); -#endif // #ifdef __ID3D12Device4_INTERFACE_DEFINED__ +#endif // #ifdef __ID3D12Device8_INTERFACE_DEFINED__ + +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + /** \brief Similar to Allocator::CreateResource2, but there are initial layout instead of state and + castable formats list + + It internally uses `ID3D12Device10::CreateCommittedResource3` or `ID3D12Device10::CreatePlacedResource2`. + + To work correctly, `ID3D12Device10` interface must be available in the current system. Otherwise, `E_NOINTERFACE` is returned. + */ + HRESULT CreateResource3(const ALLOCATION_DESC* pAllocDesc, + const D3D12_RESOURCE_DESC1* pResourceDesc, + D3D12_BARRIER_LAYOUT InitialLayout, + const D3D12_CLEAR_VALUE* pOptimizedClearValue, + UINT32 NumCastableFormats, + DXGI_FORMAT* pCastableFormats, + Allocation** ppAllocation, + REFIID riidResource, + void** ppvResource); +#endif // #ifdef __ID3D12Device10_INTERFACE_DEFINED__ /** \brief Allocates memory without creating any resource placed in it. @@ -1201,6 +1276,41 @@ class D3D12MA_API Allocator : public IUnknownImpl REFIID riidResource, void** ppvResource); +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + /** \brief Similar to Allocator::CreateAliasingResource, but supports new structure `D3D12_RESOURCE_DESC1`. + + It internally uses `ID3D12Device8::CreatePlacedResource1`. + + To work correctly, `ID3D12Device8` interface must be available in the current system. Otherwise, `E_NOINTERFACE` is returned. + */ + HRESULT CreateAliasingResource1(Allocation* pAllocation, + UINT64 AllocationLocalOffset, + const D3D12_RESOURCE_DESC1* pResourceDesc, + D3D12_RESOURCE_STATES InitialResourceState, + const D3D12_CLEAR_VALUE* pOptimizedClearValue, + REFIID riidResource, + void** ppvResource); +#endif // #ifdef __ID3D12Device8_INTERFACE_DEFINED__ + +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + /** \brief Similar to Allocator::CreateAliasingResource1, but there are initial layout instead of state and + castable formats list + + It internally uses `ID3D12Device10::CreatePlacedResource2`. + + To work correctly, `ID3D12Device10` interface must be available in the current system. Otherwise, `E_NOINTERFACE` is returned. + */ + HRESULT CreateAliasingResource2(Allocation* pAllocation, + UINT64 AllocationLocalOffset, + const D3D12_RESOURCE_DESC1* pResourceDesc, + D3D12_BARRIER_LAYOUT InitialLayout, + const D3D12_CLEAR_VALUE* pOptimizedClearValue, + UINT32 NumCastableFormats, + DXGI_FORMAT* pCastableFormats, + REFIID riidResource, + void** ppvResource); +#endif // #ifdef __ID3D12Device10_INTERFACE_DEFINED__ + /** \brief Creates custom pool. */ HRESULT CreatePool( @@ -1223,7 +1333,7 @@ class D3D12MA_API Allocator : public IUnknownImpl - `pNonLocalBudget` returns the budget of the system memory available for D3D12 resources. - When IsUMA() `== TRUE` (integrated graphics chip): - `pLocalBudget` returns the budget of the shared memory available for all D3D12 resources. - All memory is considered "local". + All memory is considered "local". - `pNonLocalBudget` is not applicable and returns zeros. This function is called "get" not "calculate" because it is very fast, suitable to be called @@ -1246,8 +1356,9 @@ class D3D12MA_API Allocator : public IUnknownImpl */ void CalculateStatistics(TotalStatistics* pStats); - /// Builds and returns statistics as a string in JSON format. - /** @param[out] ppStatsString Must be freed using Allocator::FreeStatsString. + /** \brief Builds and returns statistics as a string in JSON format. + * + @param[out] ppStatsString Must be freed using Allocator::FreeStatsString. @param DetailedMap `TRUE` to include full list of allocations (can make the string quite long), `FALSE` to only return statistics. */ void BuildStatsString(WCHAR** ppStatsString, BOOL DetailedMap) const; @@ -1559,9 +1670,9 @@ to be passed along with `D3D12_RESOURCE_DESC` and other parameters for created resource. This structure describes parameters of the desired memory allocation, including choice of `D3D12_HEAP_TYPE`. -The function also returns a new object of type D3D12MA::Allocation, created along -with usual `ID3D12Resource`. It represents allocated memory and can be queried -for size, offset, `ID3D12Resource`, and `ID3D12Heap` if needed. +The function returns a new object of type D3D12MA::Allocation. +It represents allocated memory and can be queried for size, offset, `ID3D12Heap`. +It also holds a reference to the `ID3D12Resource`, which can be accessed by calling D3D12MA::Allocation::GetResource(). \code D3D12_RESOURCE_DESC resourceDesc = {}; @@ -1580,7 +1691,6 @@ resourceDesc.Flags = D3D12_RESOURCE_FLAG_NONE; D3D12MA::ALLOCATION_DESC allocationDesc = {}; allocationDesc.HeapType = D3D12_HEAP_TYPE_DEFAULT; -D3D12Resource* resource; D3D12MA::Allocation* allocation; HRESULT hr = allocator->CreateResource( &allocationDesc, @@ -1588,15 +1698,16 @@ HRESULT hr = allocator->CreateResource( D3D12_RESOURCE_STATE_COPY_DEST, NULL, &allocation, - IID_PPV_ARGS(&resource)); + IID_NULL, NULL); + +// Use allocation->GetResource()... \endcode -You need to remember both resource and allocation objects and destroy them -separately when no longer needed. +You need to release the allocation object when no longer needed. +This will also release the D3D12 resource. \code allocation->Release(); -resource->Release(); \endcode The advantage of using the allocator instead of creating committed resource, and @@ -1619,6 +1730,65 @@ they can be kept together. By using this library, you don't need to handle this manually. +\section quick_start_resource_reference_counting Resource reference counting + +`ID3D12Resource` and other interfaces of Direct3D 12 use COM, so they are reference-counted. +Objects of this library are reference-counted as well. +An object of type D3D12MA::Allocation remembers the resource (buffer or texture) +that was created together with this memory allocation +and holds a reference to the `ID3D12Resource` object. +(Note this is a difference to Vulkan Memory Allocator, where a `VmaAllocation` object has no connection +with the buffer or image that was created with it.) +Thus, it is important to manage the resource reference counter properly. + +The simplest use case is shown in the code snippet above. +When only D3D12MA::Allocation object is obtained from a function call like D3D12MA::Allocator::CreateResource, +it remembers the `ID3D12Resource` that was created with it and holds a reference to it. +The resource can be obtained by calling `allocation->GetResource()`, which doesn't increment the resource +reference counter. +Calling `allocation->Release()` will decrease the resource reference counter, which is = 1 in this case, +so the resource will be released. + +Second option is to retrieve a pointer to the resource along with D3D12MA::Allocation. +Last parameters of the resource creation function can be used for this purpose. + +\code +D3D12MA::Allocation* allocation; +ID3D12Resource* resource; +HRESULT hr = allocator->CreateResource( + &allocationDesc, + &resourceDesc, + D3D12_RESOURCE_STATE_COPY_DEST, + NULL, + &allocation, + IID_PPV_ARGS(&resource)); + +// Use resource... +\endcode + +In this case, returned pointer `resource` is equal to `allocation->GetResource()`, +but the creation function additionally increases resource reference counter for the purpose of returning it from this call +(it actually calls `QueryInterface` internally), so the resource will have the counter = 2. +The resource then need to be released along with the allocation, in this particular order, +to make sure the resource is destroyed before its memory heap can potentially be freed. + +\code +resource->Release(); +allocation->Release(); +\endcode + +More advanced use cases are possible when we consider that an D3D12MA::Allocation object can just hold +a reference to any resource. +It can be changed by calling D3D12MA::Allocation::SetResource. This function +releases the old resource and calls `AddRef` on the new one. + +Special care must be taken when performing defragmentation. +The new resource created at the destination place should be set as `pass.pMoves[i].pDstTmpAllocation->SetResource(newRes)`, +but it is moved to the source allocation at end of the defragmentation pass, +while the old resource accessible through `pass.pMoves[i].pSrcAllocation->GetResource()` is then released. +For more information, see documentation chapter \ref defragmentation. + + \section quick_start_mapping_memory Mapping memory The process of getting regular CPU-side pointer to the memory of a resource in @@ -1892,9 +2062,20 @@ You can perform the defragmentation incrementally to limit the number of allocat in each pass, e.g. to call it in sync with render frames and not to experience too big hitches. See members: D3D12MA::DEFRAGMENTATION_DESC::MaxBytesPerPass, D3D12MA::DEFRAGMENTATION_DESC::MaxAllocationsPerPass. -It is also safe to perform the defragmentation asynchronously to render frames and other Direct3D 12 and %D3D12MA +Thread safety: +It is safe to perform the defragmentation asynchronously to render frames and other Direct3D 12 and %D3D12MA usage, possibly from multiple threads, with the exception that allocations returned in D3D12MA::DEFRAGMENTATION_PASS_MOVE_INFO::pMoves shouldn't be released until the defragmentation pass is ended. +During the call to D3D12MA::DefragmentationContext::BeginPass(), any operations on the memory pool +affected by the defragmentation are blocked by a mutex. + +What it means in practice is that you shouldn't free any allocations from the defragmented pool +since the moment a call to `BeginPass` begins. Otherwise, a thread performing the `allocation->Release()` +would block for the time `BeginPass` executes and then free the allocation when it finishes, while the allocation +could have ended up on the list of allocations to move. +A solution to freeing allocations during defragmentation is to find such allocation on the list +`pass.pMoves[i]` and set its operation to D3D12MA::DEFRAGMENTATION_MOVE_OPERATION_DESTROY instead of +calling `allocation->Release()`, or simply deferring the release to the time after defragmentation finished. Mapping is out of scope of this library and so it is not preserved after an allocation is moved during defragmentation. You need to map the new resource yourself if needed. diff --git a/3rdparty/d3d12memalloc/src/D3D12MemAlloc.cpp b/3rdparty/d3d12memalloc/src/D3D12MemAlloc.cpp index 896cceeb6195ac..21c178269f2190 100644 --- a/3rdparty/d3d12memalloc/src/D3D12MemAlloc.cpp +++ b/3rdparty/d3d12memalloc/src/D3D12MemAlloc.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include // for _aligned_malloc, _aligned_free #ifndef _WIN32 #include @@ -106,6 +107,16 @@ especially to test compatibility with D3D12_RESOURCE_HEAP_TIER_1 on modern GPUs. #define D3D12MA_DEFAULT_BLOCK_SIZE (64ull * 1024 * 1024) #endif +#ifndef D3D12MA_DEBUG_LOG + #define D3D12MA_DEBUG_LOG(format, ...) + /* + #define D3D12MA_DEBUG_LOG(format, ...) do { \ + wprintf(format, __VA_ARGS__); \ + wprintf(L"\n"); \ + } while(false) + */ +#endif + #endif // _D3D12MA_CONFIGURATION //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// @@ -117,6 +128,10 @@ especially to test compatibility with D3D12_RESOURCE_HEAP_TIER_1 on modern GPUs. #define D3D12MA_IID_PPV_ARGS(ppType) __uuidof(**(ppType)), reinterpret_cast(ppType) +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + #define D3D12MA_CREATE_NOT_ZEROED_AVAILABLE 1 +#endif + namespace D3D12MA { static constexpr UINT HEAP_TYPE_COUNT = 4; @@ -133,10 +148,18 @@ static const WCHAR* const HeapTypeNames[] = L"READBACK", L"CUSTOM", }; +static const WCHAR* const StandardHeapTypeNames[] = +{ + L"DEFAULT", + L"UPLOAD", + L"READBACK", +}; static const D3D12_HEAP_FLAGS RESOURCE_CLASS_HEAP_FLAGS = D3D12_HEAP_FLAG_DENY_BUFFERS | D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES | D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES; +static const D3D12_RESIDENCY_PRIORITY D3D12_RESIDENCY_PRIORITY_NONE = D3D12_RESIDENCY_PRIORITY(0); + #ifndef _D3D12MA_ENUM_DECLARATIONS // Local copy of this enum, as it is provided only by , so it may not be available. @@ -377,7 +400,15 @@ template static T RoundDiv(T x, T y) { return (x + (y / (T)2)) / y; } template static T DivideRoundingUp(T x, T y) { return (x + y - 1) / y; } - + +static WCHAR HexDigitToChar(UINT8 digit) +{ + if(digit < 10) + return L'0' + digit; + else + return L'A' + (digit - 10); +} + /* Performs binary search and returns iterator to first element that is greater or equal to `key`, according to comparison `cmp`. @@ -427,26 +458,29 @@ static IterT BinaryFindSorted(const IterT& beg, const IterT& end, const KeyT& va return end; } -static UINT HeapTypeToIndex(D3D12_HEAP_TYPE type) +static UINT StandardHeapTypeToIndex(D3D12_HEAP_TYPE type) { switch (type) { case D3D12_HEAP_TYPE_DEFAULT: return 0; case D3D12_HEAP_TYPE_UPLOAD: return 1; case D3D12_HEAP_TYPE_READBACK: return 2; - case D3D12_HEAP_TYPE_CUSTOM: return 3; default: D3D12MA_ASSERT(0); return UINT_MAX; } } -static D3D12_HEAP_TYPE IndexToHeapType(UINT heapTypeIndex) +static D3D12_HEAP_TYPE IndexToStandardHeapType(UINT heapTypeIndex) { - D3D12MA_ASSERT(heapTypeIndex < 4); - // D3D12_HEAP_TYPE_DEFAULT starts at 1. - return (D3D12_HEAP_TYPE)(heapTypeIndex + 1); + switch(heapTypeIndex) + { + case 0: return D3D12_HEAP_TYPE_DEFAULT; + case 1: return D3D12_HEAP_TYPE_UPLOAD; + case 2: return D3D12_HEAP_TYPE_READBACK; + default: D3D12MA_ASSERT(0); return D3D12_HEAP_TYPE_CUSTOM; + } } -static UINT64 HeapFlagsToAlignment(D3D12_HEAP_FLAGS flags) +static UINT64 HeapFlagsToAlignment(D3D12_HEAP_FLAGS flags, bool denyMsaaTextures) { /* Documentation of D3D12_HEAP_DESC structure says: @@ -459,6 +493,9 @@ static UINT64 HeapFlagsToAlignment(D3D12_HEAP_FLAGS flags) https://docs.microsoft.com/en-us/windows/desktop/api/d3d12/ns-d3d12-d3d12_heap_desc */ + if (denyMsaaTextures) + return D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT; + const D3D12_HEAP_FLAGS denyAllTexturesFlags = D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES | D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES; const bool canContainAnyTextures = @@ -888,6 +925,7 @@ class Vector public: using value_type = T; using iterator = T*; + using const_iterator = const T*; // allocationCallbacks externally owned, must outlive this object. Vector(const ALLOCATION_CALLBACKS& allocationCallbacks); @@ -904,13 +942,10 @@ class Vector iterator begin() { return m_pArray; } iterator end() { return m_pArray + m_Count; } - iterator rend() { return begin() - 1; } - iterator rbegin() { return end() - 1; } - - const iterator cbegin() const { return m_pArray; } - const iterator cend() const { return m_pArray + m_Count; } - const iterator crbegin() const { return cend() - 1; } - const iterator crend() const { return cbegin() - 1; } + const_iterator cbegin() const { return m_pArray; } + const_iterator cend() const { return m_pArray + m_Count; } + const_iterator begin() const { return cbegin(); } + const_iterator end() const { return cend(); } void push_front(const T& src) { insert(0, src); } void push_back(const T& src); @@ -1177,6 +1212,7 @@ class StringBuilder void AddNewLine() { Add(L'\n'); } void AddNumber(UINT num); void AddNumber(UINT64 num); + void AddPointer(const void* ptr); private: Vector m_Data; @@ -1221,6 +1257,22 @@ void StringBuilder::AddNumber(UINT64 num) while (num); Add(p); } + +void StringBuilder::AddPointer(const void* ptr) +{ + WCHAR buf[21]; + uintptr_t num = (uintptr_t)ptr; + buf[20] = L'\0'; + WCHAR *p = &buf[20]; + do + { + *--p = HexDigitToChar((UINT8)(num & 0xF)); + num >>= 4; + } + while (num); + Add(p); +} + #endif // _D3D12MA_STRING_BUILDER_FUNCTIONS #endif // _D3D12MA_STRING_BUILDER @@ -1264,6 +1316,7 @@ class JsonWriter // Posts next part of an open string. The number is converted to decimal characters. void ContinueString(UINT num); void ContinueString(UINT64 num); + void ContinueString_Pointer(const void* ptr); // Posts next part of an open string. Pointer value is converted to characters // using "%p" formatting - shown as hexadecimal number, e.g.: 000000081276Ad00 // void ContinueString_Pointer(const void* ptr); @@ -1449,6 +1502,12 @@ void JsonWriter::ContinueString(UINT64 num) m_SB.AddNumber(num); } +void JsonWriter::ContinueString_Pointer(const void* ptr) +{ + D3D12MA_ASSERT(m_InsideString); + m_SB.AddPointer(ptr); +} + void JsonWriter::EndString(LPCWSTR pStr) { D3D12MA_ASSERT(m_InsideString); @@ -1511,61 +1570,63 @@ void JsonWriter::AddAllocationToObject(const Allocation& alloc) break; default: D3D12MA_ASSERT(0); break; } + WriteString(L"Size"); WriteNumber(alloc.GetSize()); + WriteString(L"Usage"); + WriteNumber((UINT)alloc.m_PackedData.GetResourceFlags()); + + void* privateData = alloc.GetPrivateData(); + if (privateData) + { + WriteString(L"CustomData"); + BeginString(); + ContinueString_Pointer(privateData); + EndString(); + } + LPCWSTR name = alloc.GetName(); if (name != NULL) { WriteString(L"Name"); WriteString(name); } - if (alloc.m_PackedData.GetResourceFlags()) - { - WriteString(L"Flags"); - WriteNumber((UINT)alloc.m_PackedData.GetResourceFlags()); - } if (alloc.m_PackedData.GetTextureLayout()) { WriteString(L"Layout"); WriteNumber((UINT)alloc.m_PackedData.GetTextureLayout()); } - if (alloc.m_CreationFrameIndex) - { - WriteString(L"CreationFrameIndex"); - WriteNumber(alloc.m_CreationFrameIndex); - } } void JsonWriter::AddDetailedStatisticsInfoObject(const DetailedStatistics& stats) { BeginObject(); + WriteString(L"BlockCount"); WriteNumber(stats.Stats.BlockCount); - WriteString(L"AllocationCount"); - WriteNumber(stats.Stats.AllocationCount); - WriteString(L"UnusedRangeCount"); - WriteNumber(stats.UnusedRangeCount); WriteString(L"BlockBytes"); WriteNumber(stats.Stats.BlockBytes); + WriteString(L"AllocationCount"); + WriteNumber(stats.Stats.AllocationCount); WriteString(L"AllocationBytes"); WriteNumber(stats.Stats.AllocationBytes); + WriteString(L"UnusedRangeCount"); + WriteNumber(stats.UnusedRangeCount); - WriteString(L"AllocationSize"); - BeginObject(true); - WriteString(L"Min"); - WriteNumber(stats.AllocationSizeMin); - WriteString(L"Max"); - WriteNumber(stats.AllocationSizeMax); - EndObject(); - - WriteString(L"UnusedRangeSize"); - BeginObject(true); - WriteString(L"Min"); - WriteNumber(stats.UnusedRangeSizeMin); - WriteString(L"Max"); - WriteNumber(stats.UnusedRangeSizeMax); - EndObject(); - + if (stats.Stats.AllocationCount > 1) + { + WriteString(L"AllocationSizeMin"); + WriteNumber(stats.AllocationSizeMin); + WriteString(L"AllocationSizeMax"); + WriteNumber(stats.AllocationSizeMax); + } + if (stats.UnusedRangeCount > 1) + { + WriteString(L"UnusedRangeSizeMin"); + WriteNumber(stats.UnusedRangeSizeMin); + WriteString(L"UnusedRangeSizeMax"); + WriteNumber(stats.UnusedRangeSizeMax); + } EndObject(); } @@ -2806,7 +2867,7 @@ struct AllocationRequest UINT64 sumFreeSize; // Sum size of free items that overlap with proposed allocation. UINT64 sumItemSize; // Sum size of items to make lost that overlap with proposed allocation. SuballocationList::iterator item; - BOOL zeroInitialized; + BOOL zeroInitialized = FALSE; // TODO Implement proper handling in TLSF and Linear, using ZeroInitializedRange class. }; #endif // _D3D12MA_ALLOCATION_REQUEST @@ -2930,11 +2991,13 @@ class BlockMetadata virtual void AddStatistics(Statistics& inoutStats) const = 0; virtual void AddDetailedStatistics(DetailedStatistics& inoutStats) const = 0; virtual void WriteAllocationInfoToJson(JsonWriter& json) const = 0; + virtual void DebugLogAllAllocations() const = 0; protected: const ALLOCATION_CALLBACKS* GetAllocs() const { return m_pAllocationCallbacks; } UINT64 GetDebugMargin() const { return IsVirtual() ? 0 : D3D12MA_DEBUG_MARGIN; } + void DebugLogAllocation(UINT64 offset, UINT64 size, void* privateData) const; void PrintDetailedMap_Begin(JsonWriter& json, UINT64 unusedBytes, size_t allocationCount, @@ -2962,11 +3025,28 @@ BlockMetadata::BlockMetadata(const ALLOCATION_CALLBACKS* allocationCallbacks, bo D3D12MA_ASSERT(allocationCallbacks); } +void BlockMetadata::DebugLogAllocation(UINT64 offset, UINT64 size, void* privateData) const +{ + if (IsVirtual()) + { + D3D12MA_DEBUG_LOG(L"UNFREED VIRTUAL ALLOCATION; Offset: %llu; Size: %llu; PrivateData: %p", offset, size, privateData); + } + else + { + D3D12MA_ASSERT(privateData != NULL); + Allocation* allocation = reinterpret_cast(privateData); + + privateData = allocation->GetPrivateData(); + LPCWSTR name = allocation->GetName(); + + D3D12MA_DEBUG_LOG(L"UNFREED ALLOCATION; Offset: %llu; Size: %llu; PrivateData: %p; Name: %s", + offset, size, privateData, name ? name : L"D3D12MA_Empty"); + } +} + void BlockMetadata::PrintDetailedMap_Begin(JsonWriter& json, UINT64 unusedBytes, size_t allocationCount, size_t unusedRangeCount) const { - json.BeginObject(); - json.WriteString(L"TotalBytes"); json.WriteNumber(GetSize()); @@ -2974,10 +3054,10 @@ void BlockMetadata::PrintDetailedMap_Begin(JsonWriter& json, json.WriteNumber(unusedBytes); json.WriteString(L"Allocations"); - json.WriteNumber(allocationCount); + json.WriteNumber((UINT64)allocationCount); json.WriteString(L"UnusedRanges"); - json.WriteNumber(unusedRangeCount); + json.WriteNumber((UINT64)unusedRangeCount); json.WriteString(L"Suballocations"); json.BeginArray(); @@ -2993,13 +3073,11 @@ void BlockMetadata::PrintDetailedMap_Allocation(JsonWriter& json, if (IsVirtual()) { - json.WriteString(L"Type"); - json.WriteString(L"ALLOCATION"); json.WriteString(L"Size"); json.WriteNumber(size); if (privateData) { - json.WriteString(L"PrivateData"); + json.WriteString(L"CustomData"); json.WriteNumber((uintptr_t)privateData); } } @@ -3032,7 +3110,6 @@ void BlockMetadata::PrintDetailedMap_UnusedRange(JsonWriter& json, void BlockMetadata::PrintDetailedMap_End(JsonWriter& json) const { json.EndArray(); - json.EndObject(); } #endif // _D3D12MA_BLOCK_METADATA_FUNCTIONS #endif // _D3D12MA_BLOCK_METADATA @@ -3682,6 +3759,7 @@ class BlockMetadata_Linear : public BlockMetadata void AddStatistics(Statistics& inoutStats) const override; void AddDetailedStatistics(DetailedStatistics& inoutStats) const override; void WriteAllocationInfoToJson(JsonWriter& json) const override; + void DebugLogAllAllocations() const override; private: /* @@ -3820,7 +3898,7 @@ bool BlockMetadata_Linear::Validate() const { if (!IsVirtual()) { - D3D12MA_VALIDATE((UINT64)alloc->GetAllocHandle() == suballoc.offset); + D3D12MA_VALIDATE(GetAllocationOffset(alloc->GetAllocHandle()) == suballoc.offset); D3D12MA_VALIDATE(alloc->GetSize() == suballoc.size); } sumUsedSize += suballoc.size; @@ -3862,7 +3940,7 @@ bool BlockMetadata_Linear::Validate() const { if (!IsVirtual()) { - D3D12MA_VALIDATE((UINT64)alloc->GetAllocHandle() == suballoc.offset); + D3D12MA_VALIDATE(GetAllocationOffset(alloc->GetAllocHandle()) == suballoc.offset); D3D12MA_VALIDATE(alloc->GetSize() == suballoc.size); } sumUsedSize += suballoc.size; @@ -3896,7 +3974,7 @@ bool BlockMetadata_Linear::Validate() const { if (!IsVirtual()) { - D3D12MA_VALIDATE((UINT64)alloc->GetAllocHandle() == suballoc.offset); + D3D12MA_VALIDATE(GetAllocationOffset(alloc->GetAllocHandle()) == suballoc.offset); D3D12MA_VALIDATE(alloc->GetSize() == suballoc.size); } sumUsedSize += suballoc.size; @@ -4638,6 +4716,19 @@ void BlockMetadata_Linear::WriteAllocationInfoToJson(JsonWriter& json) const PrintDetailedMap_End(json); } +void BlockMetadata_Linear::DebugLogAllAllocations() const +{ + const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + for (auto it = suballocations1st.begin() + m_1stNullItemsBeginCount; it != suballocations1st.end(); ++it) + if (it->type != SUBALLOCATION_TYPE_FREE) + DebugLogAllocation(it->offset, it->size, it->privateData); + + const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + for (auto it = suballocations2nd.begin(); it != suballocations2nd.end(); ++it) + if (it->type != SUBALLOCATION_TYPE_FREE) + DebugLogAllocation(it->offset, it->size, it->privateData); +} + Suballocation& BlockMetadata_Linear::FindSuballocation(UINT64 offset) const { const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); @@ -4649,31 +4740,31 @@ Suballocation& BlockMetadata_Linear::FindSuballocation(UINT64 offset) const // Item from the 1st vector. { - const SuballocationVectorType::iterator it = BinaryFindSorted( - suballocations1st.cbegin() + m_1stNullItemsBeginCount, - suballocations1st.cend(), + const SuballocationVectorType::const_iterator it = BinaryFindSorted( + suballocations1st.begin() + m_1stNullItemsBeginCount, + suballocations1st.end(), refSuballoc, SuballocationOffsetLess()); - if (it != suballocations1st.cend()) + if (it != suballocations1st.end()) { - return *it; + return const_cast(*it); } } if (m_2ndVectorMode != SECOND_VECTOR_EMPTY) { // Rest of members stays uninitialized intentionally for better performance. - const SuballocationVectorType::iterator it = m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER ? - BinaryFindSorted(suballocations2nd.cbegin(), suballocations2nd.cend(), refSuballoc, SuballocationOffsetLess()) : - BinaryFindSorted(suballocations2nd.cbegin(), suballocations2nd.cend(), refSuballoc, SuballocationOffsetGreater()); - if (it != suballocations2nd.cend()) + const SuballocationVectorType::const_iterator it = m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER ? + BinaryFindSorted(suballocations2nd.begin(), suballocations2nd.end(), refSuballoc, SuballocationOffsetLess()) : + BinaryFindSorted(suballocations2nd.begin(), suballocations2nd.end(), refSuballoc, SuballocationOffsetGreater()); + if (it != suballocations2nd.end()) { - return *it; + return const_cast(*it); } } D3D12MA_ASSERT(0 && "Allocation not found in linear allocator!"); - return *suballocations1st.crbegin(); // Should never occur. + return const_cast(suballocations1st.back()); // Should never occur. } bool BlockMetadata_Linear::ShouldCompact1st() const @@ -4964,6 +5055,7 @@ class BlockMetadata_TLSF : public BlockMetadata void AddStatistics(Statistics& inoutStats) const override; void AddDetailedStatistics(DetailedStatistics& inoutStats) const override; void WriteAllocationInfoToJson(JsonWriter& json) const override; + void DebugLogAllAllocations() const override; private: // According to original paper it should be preferable 4 or 5: @@ -5195,7 +5287,7 @@ bool BlockMetadata_TLSF::CreateAllocationRequest( // Round up to the next block UINT64 sizeForNextList = allocSize; - UINT64 smallSizeStep = SMALL_BUFFER_SIZE / (IsVirtual() ? 1 << SECOND_LEVEL_INDEX : 4); + UINT16 smallSizeStep = SMALL_BUFFER_SIZE / (IsVirtual() ? 1 << SECOND_LEVEL_INDEX : 4); if (allocSize > SMALL_BUFFER_SIZE) { sizeForNextList += (1ULL << (BitScanMSB(allocSize) - SECOND_LEVEL_INDEX)); @@ -5603,11 +5695,22 @@ void BlockMetadata_TLSF::WriteAllocationInfoToJson(JsonWriter& json) const if (block->IsFree()) PrintDetailedMap_UnusedRange(json, block->offset, block->size); else - PrintDetailedMap_Allocation(json, block->size, block->offset, block->PrivateData()); + PrintDetailedMap_Allocation(json, block->offset, block->size, block->PrivateData()); } PrintDetailedMap_End(json); } +void BlockMetadata_TLSF::DebugLogAllAllocations() const +{ + for (Block* block = m_NullBlock->prevPhysical; block != NULL; block = block->prevPhysical) + { + if (!block->IsFree()) + { + DebugLogAllocation(block->offset, block->size, block->PrivateData()); + } + } +} + UINT8 BlockMetadata_TLSF::SizeToMemoryClass(UINT64 size) const { if (size > SMALL_BUFFER_SIZE) @@ -5796,7 +5899,7 @@ class MemoryBlock const UINT64 m_Size; const UINT m_Id; - HRESULT Init(ID3D12ProtectedResourceSession* pProtectedSession); + HRESULT Init(ID3D12ProtectedResourceSession* pProtectedSession, bool denyMsaaTextures); private: ID3D12Heap* m_Heap = NULL; @@ -5828,7 +5931,7 @@ class NormalBlock : public MemoryBlock BlockVector* GetBlockVector() const { return m_BlockVector; } // 'algorithm' should be one of the *_ALGORITHM_* flags in enums POOL_FLAGS or VIRTUAL_BLOCK_FLAGS - HRESULT Init(UINT32 algorithm, ID3D12ProtectedResourceSession* pProtectedSession); + HRESULT Init(UINT32 algorithm, ID3D12ProtectedResourceSession* pProtectedSession, bool denyMsaaTextures); // Validates all data structures inside this object. If not valid, returns false. bool Validate() const; @@ -5911,11 +6014,144 @@ struct CommittedAllocationParameters D3D12_HEAP_PROPERTIES m_HeapProperties = {}; D3D12_HEAP_FLAGS m_HeapFlags = D3D12_HEAP_FLAG_NONE; ID3D12ProtectedResourceSession* m_ProtectedSession = NULL; + bool m_CanAlias = false; + D3D12_RESIDENCY_PRIORITY m_ResidencyPriority = D3D12_RESIDENCY_PRIORITY_NONE; bool IsValid() const { return m_List != NULL; } }; #endif // _D3D12M_COMMITTED_ALLOCATION_PARAMETERS +// Simple variant data structure to hold all possible variations of ID3D12Device*::CreateCommittedResource* and ID3D12Device*::CreatePlacedResource* arguments +struct CREATE_RESOURCE_PARAMS +{ + CREATE_RESOURCE_PARAMS() = delete; + CREATE_RESOURCE_PARAMS( + const D3D12_RESOURCE_DESC* pResourceDesc, + D3D12_RESOURCE_STATES InitialResourceState, + const D3D12_CLEAR_VALUE* pOptimizedClearValue) + : Variant(VARIANT_WITH_STATE) + , pResourceDesc(pResourceDesc) + , InitialResourceState(InitialResourceState) + , pOptimizedClearValue(pOptimizedClearValue) + { + } +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + CREATE_RESOURCE_PARAMS( + const D3D12_RESOURCE_DESC1* pResourceDesc, + D3D12_RESOURCE_STATES InitialResourceState, + const D3D12_CLEAR_VALUE* pOptimizedClearValue) + : Variant(VARIANT_WITH_STATE_AND_DESC1) + , pResourceDesc1(pResourceDesc) + , InitialResourceState(InitialResourceState) + , pOptimizedClearValue(pOptimizedClearValue) + { + } +#endif +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + CREATE_RESOURCE_PARAMS( + const D3D12_RESOURCE_DESC1* pResourceDesc, + D3D12_BARRIER_LAYOUT InitialLayout, + const D3D12_CLEAR_VALUE* pOptimizedClearValue, + UINT32 NumCastableFormats, + DXGI_FORMAT* pCastableFormats) + : Variant(VARIANT_WITH_LAYOUT) + , pResourceDesc1(pResourceDesc) + , InitialLayout(InitialLayout) + , pOptimizedClearValue(pOptimizedClearValue) + , NumCastableFormats(NumCastableFormats) + , pCastableFormats(pCastableFormats) + { + } +#endif + + enum VARIANT + { + VARIANT_INVALID = 0, + VARIANT_WITH_STATE, + VARIANT_WITH_STATE_AND_DESC1, + VARIANT_WITH_LAYOUT + }; + + VARIANT Variant = VARIANT_INVALID; + + const D3D12_RESOURCE_DESC* GetResourceDesc() const + { + D3D12MA_ASSERT(Variant == VARIANT_WITH_STATE); + return pResourceDesc; + } + const D3D12_RESOURCE_DESC*& AccessResourceDesc() + { + D3D12MA_ASSERT(Variant == VARIANT_WITH_STATE); + return pResourceDesc; + } + const D3D12_RESOURCE_DESC* GetBaseResourceDesc() const + { + // D3D12_RESOURCE_DESC1 can be cast to D3D12_RESOURCE_DESC by discarding the new members at the end. + return pResourceDesc; + } + D3D12_RESOURCE_STATES GetInitialResourceState() const + { + D3D12MA_ASSERT(Variant < VARIANT_WITH_LAYOUT); + return InitialResourceState; + } + const D3D12_CLEAR_VALUE* GetOptimizedClearValue() const + { + return pOptimizedClearValue; + } + +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + const D3D12_RESOURCE_DESC1* GetResourceDesc1() const + { + D3D12MA_ASSERT(Variant >= VARIANT_WITH_STATE_AND_DESC1); + return pResourceDesc1; + } + const D3D12_RESOURCE_DESC1*& AccessResourceDesc1() + { + D3D12MA_ASSERT(Variant >= VARIANT_WITH_STATE_AND_DESC1); + return pResourceDesc1; + } +#endif + +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + D3D12_BARRIER_LAYOUT GetInitialLayout() const + { + D3D12MA_ASSERT(Variant >= VARIANT_WITH_LAYOUT); + return InitialLayout; + } + UINT32 GetNumCastableFormats() const + { + D3D12MA_ASSERT(Variant >= VARIANT_WITH_LAYOUT); + return NumCastableFormats; + } + DXGI_FORMAT* GetCastableFormats() const + { + D3D12MA_ASSERT(Variant >= VARIANT_WITH_LAYOUT); + return pCastableFormats; + } +#endif + +private: + union + { + const D3D12_RESOURCE_DESC* pResourceDesc; +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + const D3D12_RESOURCE_DESC1* pResourceDesc1; +#endif + }; + union + { + D3D12_RESOURCE_STATES InitialResourceState; +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + D3D12_BARRIER_LAYOUT InitialLayout; +#endif + }; + const D3D12_CLEAR_VALUE* pOptimizedClearValue; +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + UINT32 NumCastableFormats; + DXGI_FORMAT* pCastableFormats; +#endif +}; + #ifndef _D3D12MA_BLOCK_VECTOR /* Sequence of NormalBlock. Represents memory blocks allocated for a specific @@ -5938,12 +6174,17 @@ class BlockVector bool explicitBlockSize, UINT64 minAllocationAlignment, UINT32 algorithm, - ID3D12ProtectedResourceSession* pProtectedSession); + bool denyMsaaTextures, + ID3D12ProtectedResourceSession* pProtectedSession, + D3D12_RESIDENCY_PRIORITY residencyPriority); ~BlockVector(); + D3D12_RESIDENCY_PRIORITY GetResidencyPriority() const { return m_ResidencyPriority; } const D3D12_HEAP_PROPERTIES& GetHeapProperties() const { return m_HeapProps; } + D3D12_HEAP_FLAGS GetHeapFlags() const { return m_HeapFlags; } UINT64 GetPreferredBlockSize() const { return m_PreferredBlockSize; } UINT32 GetAlgorithm() const { return m_Algorithm; } + bool DeniesMsaaTextures() const { return m_DenyMsaaTextures; } // To be used only while the m_Mutex is locked. Used during defragmentation. size_t GetBlockCount() const { return m_Blocks.size(); } // To be used only while the m_Mutex is locked. Used during defragmentation. @@ -5966,25 +6207,10 @@ class BlockVector UINT64 size, UINT64 alignment, const ALLOCATION_DESC& allocDesc, - const D3D12_RESOURCE_DESC& resourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - const D3D12_CLEAR_VALUE *pOptimizedClearValue, - Allocation** ppAllocation, - REFIID riidResource, - void** ppvResource); - -#ifdef __ID3D12Device8_INTERFACE_DEFINED__ - HRESULT CreateResource2( - UINT64 size, - UINT64 alignment, - const ALLOCATION_DESC& allocDesc, - const D3D12_RESOURCE_DESC1& resourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - const D3D12_CLEAR_VALUE *pOptimizedClearValue, + const CREATE_RESOURCE_PARAMS& createParams, Allocation** ppAllocation, REFIID riidResource, void** ppvResource); -#endif // #ifdef __ID3D12Device8_INTERFACE_DEFINED__ void AddStatistics(Statistics& inoutStats); void AddDetailedStatistics(DetailedStatistics& inoutStats); @@ -6001,7 +6227,9 @@ class BlockVector const bool m_ExplicitBlockSize; const UINT64 m_MinAllocationAlignment; const UINT32 m_Algorithm; + const bool m_DenyMsaaTextures; ID3D12ProtectedResourceSession* const m_ProtectedSession; + const D3D12_RESIDENCY_PRIORITY m_ResidencyPriority; /* There can be at most one allocation that is completely empty - a hysteresis to avoid pessimistic case of alternating creation and destruction of a ID3D12Heap. */ @@ -6082,7 +6310,7 @@ class CurrentBudgetData D3D12MA_ATOMIC_UINT64 m_BlockBytes[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {}; D3D12MA_ATOMIC_UINT64 m_AllocationBytes[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {}; - D3D12MA_ATOMIC_UINT32 m_OperationsSinceBudgetFetch{0}; + D3D12MA_ATOMIC_UINT32 m_OperationsSinceBudgetFetch = {0}; D3D12MA_RW_MUTEX m_BudgetMutex; UINT64 m_D3D12Usage[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {}; UINT64 m_D3D12Budget[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {}; @@ -6317,13 +6545,16 @@ class AllocatorPimpl friend class Allocator; friend class Pool; public: - std::atomic_uint32_t m_RefCount{1}; + std::atomic_uint32_t m_RefCount = {1}; CurrentBudgetData m_Budget; AllocatorPimpl(const ALLOCATION_CALLBACKS& allocationCallbacks, const ALLOCATOR_DESC& desc); ~AllocatorPimpl(); ID3D12Device* GetDevice() const { return m_Device; } +#ifdef __ID3D12Device1_INTERFACE_DEFINED__ + ID3D12Device1* GetDevice1() const { return m_Device1; } +#endif #ifdef __ID3D12Device4_INTERFACE_DEFINED__ ID3D12Device4* GetDevice4() const { return m_Device4; } #endif @@ -6364,32 +6595,24 @@ class AllocatorPimpl UINT HeapPropertiesToMemorySegmentGroup(const D3D12_HEAP_PROPERTIES& heapProps) const; UINT64 GetMemoryCapacity(UINT memorySegmentGroup) const; - HRESULT CreateResource( - const ALLOCATION_DESC* pAllocDesc, - const D3D12_RESOURCE_DESC* pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - const D3D12_CLEAR_VALUE *pOptimizedClearValue, - Allocation** ppAllocation, + HRESULT CreatePlacedResourceWrap( + ID3D12Heap *pHeap, + UINT64 HeapOffset, + const CREATE_RESOURCE_PARAMS& createParams, REFIID riidResource, void** ppvResource); -#ifdef __ID3D12Device8_INTERFACE_DEFINED__ - HRESULT CreateResource2( + HRESULT CreateResource( const ALLOCATION_DESC* pAllocDesc, - const D3D12_RESOURCE_DESC1* pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - const D3D12_CLEAR_VALUE *pOptimizedClearValue, + const CREATE_RESOURCE_PARAMS& createParams, Allocation** ppAllocation, REFIID riidResource, void** ppvResource); -#endif // #ifdef __ID3D12Device8_INTERFACE_DEFINED__ HRESULT CreateAliasingResource( Allocation* pAllocation, UINT64 AllocationLocalOffset, - const D3D12_RESOURCE_DESC* pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - const D3D12_CLEAR_VALUE *pOptimizedClearValue, + const CREATE_RESOURCE_PARAMS& createParams, REFIID riidResource, void** ppvResource); @@ -6408,14 +6631,16 @@ class AllocatorPimpl // Allocation object must be deleted externally afterwards. void FreeHeapMemory(Allocation* allocation); - void SetCurrentFrameIndex(UINT frameIndex); + void SetResidencyPriority(ID3D12Pageable* obj, D3D12_RESIDENCY_PRIORITY priority) const; - void CalculateStatistics(TotalStatistics& outStats); + void SetCurrentFrameIndex(UINT frameIndex); + // For more deailed stats use outCustomHeaps to access statistics divided into L0 and L1 group + void CalculateStatistics(TotalStatistics& outStats, DetailedStatistics outCustomHeaps[2] = NULL); void GetBudget(Budget* outLocalBudget, Budget* outNonLocalBudget); void GetBudgetForHeapType(Budget& outBudget, D3D12_HEAP_TYPE heapType); - void BuildStatsString(WCHAR** ppStatsString, BOOL DetailedMap); + void BuildStatsString(WCHAR** ppStatsString, BOOL detailedMap); void FreeStatsString(WCHAR* pStatsString); private: @@ -6423,12 +6648,20 @@ class AllocatorPimpl const bool m_UseMutex; const bool m_AlwaysCommitted; + const bool m_MsaaAlwaysCommitted; + bool m_DefaultPoolsNotZeroed = false; ID3D12Device* m_Device; // AddRef +#ifdef __ID3D12Device1_INTERFACE_DEFINED__ + ID3D12Device1* m_Device1 = NULL; // AddRef, optional +#endif #ifdef __ID3D12Device4_INTERFACE_DEFINED__ ID3D12Device4* m_Device4 = NULL; // AddRef, optional #endif #ifdef __ID3D12Device8_INTERFACE_DEFINED__ ID3D12Device8* m_Device8 = NULL; // AddRef, optional +#endif +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + ID3D12Device10* m_Device10 = NULL; // AddRef, optional #endif IDXGIAdapter* m_Adapter; // AddRef #if D3D12MA_DXGI_1_4 @@ -6460,18 +6693,8 @@ class AllocatorPimpl HRESULT AllocateCommittedResource( const CommittedAllocationParameters& committedAllocParams, UINT64 resourceSize, bool withinBudget, void* pPrivateData, - const D3D12_RESOURCE_DESC* pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, const D3D12_CLEAR_VALUE *pOptimizedClearValue, - Allocation** ppAllocation, REFIID riidResource, void** ppvResource); - -#ifdef __ID3D12Device8_INTERFACE_DEFINED__ - HRESULT AllocateCommittedResource2( - const CommittedAllocationParameters& committedAllocParams, - UINT64 resourceSize, bool withinBudget, void* pPrivateData, - const D3D12_RESOURCE_DESC1* pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, const D3D12_CLEAR_VALUE *pOptimizedClearValue, + const CREATE_RESOURCE_PARAMS& createParams, Allocation** ppAllocation, REFIID riidResource, void** ppvResource); -#endif // Allocates and registers new heap without any resources placed in it, as dedicated allocation. // Creates and returns Allocation object. @@ -6514,6 +6737,7 @@ class AllocatorPimpl AllocatorPimpl::AllocatorPimpl(const ALLOCATION_CALLBACKS& allocationCallbacks, const ALLOCATOR_DESC& desc) : m_UseMutex((desc.Flags & ALLOCATOR_FLAG_SINGLETHREADED) == 0), m_AlwaysCommitted((desc.Flags & ALLOCATOR_FLAG_ALWAYS_COMMITTED) != 0), + m_MsaaAlwaysCommitted((desc.Flags & ALLOCATOR_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED) != 0), m_Device(desc.pDevice), m_Adapter(desc.pAdapter), m_PreferredBlockSize(desc.PreferredBlockSize != 0 ? desc.PreferredBlockSize : D3D12MA_DEFAULT_BLOCK_SIZE), @@ -6532,7 +6756,7 @@ AllocatorPimpl::AllocatorPimpl(const ALLOCATION_CALLBACKS& allocationCallbacks, { m_CommittedAllocations[i].Init( m_UseMutex, - (D3D12_HEAP_TYPE)(D3D12_HEAP_TYPE_DEFAULT + i), + IndexToStandardHeapType(i), NULL); // pool } @@ -6546,12 +6770,30 @@ HRESULT AllocatorPimpl::Init(const ALLOCATOR_DESC& desc) desc.pAdapter->QueryInterface(D3D12MA_IID_PPV_ARGS(&m_Adapter3)); #endif +#ifdef __ID3D12Device1_INTERFACE_DEFINED__ + m_Device->QueryInterface(D3D12MA_IID_PPV_ARGS(&m_Device1)); +#endif + #ifdef __ID3D12Device4_INTERFACE_DEFINED__ m_Device->QueryInterface(D3D12MA_IID_PPV_ARGS(&m_Device4)); #endif #ifdef __ID3D12Device8_INTERFACE_DEFINED__ m_Device->QueryInterface(D3D12MA_IID_PPV_ARGS(&m_Device8)); + + if((desc.Flags & ALLOCATOR_FLAG_DEFAULT_POOLS_NOT_ZEROED) != 0) + { + D3D12_FEATURE_DATA_D3D12_OPTIONS7 options7 = {}; + if(SUCCEEDED(m_Device->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS7, &options7, sizeof(options7)))) + { + // DEFAULT_POOLS_NOT_ZEROED both supported and enabled by the user. + m_DefaultPoolsNotZeroed = true; + } + } +#endif + +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + m_Device->QueryInterface(D3D12MA_IID_PPV_ARGS(&m_Device10)); #endif HRESULT hr = m_Adapter->GetDesc(&m_AdapterDesc); @@ -6583,9 +6825,11 @@ HRESULT AllocatorPimpl::Init(const ALLOCATOR_DESC& desc) D3D12_HEAP_FLAGS heapFlags; CalcDefaultPoolParams(heapProps.Type, heapFlags, i); -#ifdef __ID3D12Device8_INTERFACE_DEFINED__ - if (desc.Flags & ALLOCATOR_FLAG_DEFAULT_POOLS_NOT_ZEROED) +#if D3D12MA_CREATE_NOT_ZEROED_AVAILABLE + if(m_DefaultPoolsNotZeroed) + { heapFlags |= D3D12_HEAP_FLAG_CREATE_NOT_ZEROED; + } #endif m_BlockVectors[i] = D3D12MA_NEW(GetAllocs(), BlockVector)( @@ -6597,8 +6841,10 @@ HRESULT AllocatorPimpl::Init(const ALLOCATOR_DESC& desc) SIZE_MAX, // maxBlockCount false, // explicitBlockSize D3D12MA_DEBUG_ALIGNMENT, // minAllocationAlignment - 0, // Default algorithm - NULL); // pProtectedSession + 0, // Default algorithm, + m_MsaaAlwaysCommitted, + NULL, // pProtectedSession + D3D12_RESIDENCY_PRIORITY_NONE); // residencyPriority // No need to call m_pBlockVectors[i]->CreateMinBlocks here, becase minBlockCount is 0. } @@ -6611,12 +6857,18 @@ HRESULT AllocatorPimpl::Init(const ALLOCATOR_DESC& desc) AllocatorPimpl::~AllocatorPimpl() { +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + SAFE_RELEASE(m_Device10); +#endif #ifdef __ID3D12Device8_INTERFACE_DEFINED__ SAFE_RELEASE(m_Device8); #endif #ifdef __ID3D12Device4_INTERFACE_DEFINED__ SAFE_RELEASE(m_Device4); #endif +#ifdef __ID3D12Device1_INTERFACE_DEFINED__ + SAFE_RELEASE(m_Device1); +#endif #if D3D12MA_DXGI_1_4 SAFE_RELEASE(m_Adapter3); #endif @@ -6687,16 +6939,60 @@ UINT64 AllocatorPimpl::GetMemoryCapacity(UINT memorySegmentGroup) const } } +HRESULT AllocatorPimpl::CreatePlacedResourceWrap( + ID3D12Heap *pHeap, + UINT64 HeapOffset, + const CREATE_RESOURCE_PARAMS& createParams, + REFIID riidResource, + void** ppvResource) +{ +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_LAYOUT) + { + if (!m_Device10) + { + return E_NOINTERFACE; + } + return m_Device10->CreatePlacedResource2(pHeap, HeapOffset, + createParams.GetResourceDesc1(), createParams.GetInitialLayout(), + createParams.GetOptimizedClearValue(), createParams.GetNumCastableFormats(), + createParams.GetCastableFormats(), riidResource, ppvResource); + } else +#endif +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_STATE_AND_DESC1) + { + if (!m_Device8) + { + return E_NOINTERFACE; + } + return m_Device8->CreatePlacedResource1(pHeap, HeapOffset, + createParams.GetResourceDesc1(), createParams.GetInitialResourceState(), + createParams.GetOptimizedClearValue(), riidResource, ppvResource); + } else +#endif + if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_STATE) + { + return m_Device->CreatePlacedResource(pHeap, HeapOffset, + createParams.GetResourceDesc(), createParams.GetInitialResourceState(), + createParams.GetOptimizedClearValue(), riidResource, ppvResource); + } + else + { + D3D12MA_ASSERT(0); + return E_INVALIDARG; + } +} + + HRESULT AllocatorPimpl::CreateResource( const ALLOCATION_DESC* pAllocDesc, - const D3D12_RESOURCE_DESC* pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - const D3D12_CLEAR_VALUE* pOptimizedClearValue, + const CREATE_RESOURCE_PARAMS& createParams, Allocation** ppAllocation, REFIID riidResource, void** ppvResource) { - D3D12MA_ASSERT(pAllocDesc && pResourceDesc && ppAllocation); + D3D12MA_ASSERT(pAllocDesc && createParams.GetBaseResourceDesc() && ppAllocation); *ppAllocation = NULL; if (ppvResource) @@ -6704,17 +7000,69 @@ HRESULT AllocatorPimpl::CreateResource( *ppvResource = NULL; } - D3D12_RESOURCE_DESC finalResourceDesc = *pResourceDesc; - D3D12_RESOURCE_ALLOCATION_INFO resAllocInfo = GetResourceAllocationInfo(finalResourceDesc); + CREATE_RESOURCE_PARAMS finalCreateParams = createParams; + D3D12_RESOURCE_DESC finalResourceDesc; +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + D3D12_RESOURCE_DESC1 finalResourceDesc1; +#endif + D3D12_RESOURCE_ALLOCATION_INFO resAllocInfo; + if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_STATE) + { + finalResourceDesc = *createParams.GetResourceDesc(); + finalCreateParams.AccessResourceDesc() = &finalResourceDesc; + resAllocInfo = GetResourceAllocationInfo(finalResourceDesc); + } +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + else if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_STATE_AND_DESC1) + { + if (!m_Device8) + { + return E_NOINTERFACE; + } + finalResourceDesc1 = *createParams.GetResourceDesc1(); + finalCreateParams.AccessResourceDesc1() = &finalResourceDesc1; + resAllocInfo = GetResourceAllocationInfo(finalResourceDesc1); + } +#endif +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + else if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_LAYOUT) + { + if (!m_Device10) + { + return E_NOINTERFACE; + } + finalResourceDesc1 = *createParams.GetResourceDesc1(); + finalCreateParams.AccessResourceDesc1() = &finalResourceDesc1; + resAllocInfo = GetResourceAllocationInfo(finalResourceDesc1); + } +#endif + else + { + D3D12MA_ASSERT(0); + return E_INVALIDARG; + } D3D12MA_ASSERT(IsPow2(resAllocInfo.Alignment)); D3D12MA_ASSERT(resAllocInfo.SizeInBytes > 0); BlockVector* blockVector = NULL; CommittedAllocationParameters committedAllocationParams = {}; bool preferCommitted = false; - HRESULT hr = CalcAllocationParams(*pAllocDesc, resAllocInfo.SizeInBytes, - pResourceDesc, - blockVector, committedAllocationParams, preferCommitted); + + HRESULT hr; +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + if (createParams.Variant >= CREATE_RESOURCE_PARAMS::VARIANT_WITH_STATE_AND_DESC1) + { + hr = CalcAllocationParams(*pAllocDesc, resAllocInfo.SizeInBytes, + createParams.GetResourceDesc1(), + blockVector, committedAllocationParams, preferCommitted); + } + else +#endif + { + hr = CalcAllocationParams(*pAllocDesc, resAllocInfo.SizeInBytes, + createParams.GetResourceDesc(), + blockVector, committedAllocationParams, preferCommitted); + } if (FAILED(hr)) return hr; @@ -6724,16 +7072,14 @@ HRESULT AllocatorPimpl::CreateResource( { hr = AllocateCommittedResource(committedAllocationParams, resAllocInfo.SizeInBytes, withinBudget, pAllocDesc->pPrivateData, - &finalResourceDesc, InitialResourceState, pOptimizedClearValue, - ppAllocation, riidResource, ppvResource); + finalCreateParams, ppAllocation, riidResource, ppvResource); if (SUCCEEDED(hr)) return hr; } if (blockVector != NULL) { hr = blockVector->CreateResource(resAllocInfo.SizeInBytes, resAllocInfo.Alignment, - *pAllocDesc, finalResourceDesc, - InitialResourceState, pOptimizedClearValue, + *pAllocDesc, finalCreateParams, ppAllocation, riidResource, ppvResource); if (SUCCEEDED(hr)) return hr; @@ -6742,83 +7088,13 @@ HRESULT AllocatorPimpl::CreateResource( { hr = AllocateCommittedResource(committedAllocationParams, resAllocInfo.SizeInBytes, withinBudget, pAllocDesc->pPrivateData, - &finalResourceDesc, InitialResourceState, pOptimizedClearValue, - ppAllocation, riidResource, ppvResource); + finalCreateParams, ppAllocation, riidResource, ppvResource); if (SUCCEEDED(hr)) return hr; } return hr; } -#ifdef __ID3D12Device8_INTERFACE_DEFINED__ -HRESULT AllocatorPimpl::CreateResource2( - const ALLOCATION_DESC* pAllocDesc, - const D3D12_RESOURCE_DESC1* pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - const D3D12_CLEAR_VALUE* pOptimizedClearValue, - Allocation** ppAllocation, - REFIID riidResource, - void** ppvResource) -{ - D3D12MA_ASSERT(pAllocDesc && pResourceDesc && ppAllocation); - - *ppAllocation = NULL; - if (ppvResource) - { - *ppvResource = NULL; - } - if (m_Device8 == NULL) - { - return E_NOINTERFACE; - } - - D3D12_RESOURCE_DESC1 finalResourceDesc = *pResourceDesc; - D3D12_RESOURCE_ALLOCATION_INFO resAllocInfo = GetResourceAllocationInfo(finalResourceDesc); - D3D12MA_ASSERT(IsPow2(resAllocInfo.Alignment)); - D3D12MA_ASSERT(resAllocInfo.SizeInBytes > 0); - - BlockVector* blockVector = NULL; - CommittedAllocationParameters committedAllocationParams = {}; - bool preferCommitted = false; - HRESULT hr = CalcAllocationParams(*pAllocDesc, resAllocInfo.SizeInBytes, - pResourceDesc, - blockVector, committedAllocationParams, preferCommitted); - if (FAILED(hr)) - return hr; - - const bool withinBudget = (pAllocDesc->Flags & ALLOCATION_FLAG_WITHIN_BUDGET) != 0; - hr = E_INVALIDARG; - if (committedAllocationParams.IsValid() && preferCommitted) - { - hr = AllocateCommittedResource2(committedAllocationParams, - resAllocInfo.SizeInBytes, withinBudget, pAllocDesc->pPrivateData, - &finalResourceDesc, InitialResourceState, pOptimizedClearValue, - ppAllocation, riidResource, ppvResource); - if (SUCCEEDED(hr)) - return hr; - } - if (blockVector != NULL) - { - hr = blockVector->CreateResource2(resAllocInfo.SizeInBytes, resAllocInfo.Alignment, - *pAllocDesc, finalResourceDesc, - InitialResourceState, pOptimizedClearValue, - ppAllocation, riidResource, ppvResource); - if (SUCCEEDED(hr)) - return hr; - } - if (committedAllocationParams.IsValid() && !preferCommitted) - { - hr = AllocateCommittedResource2(committedAllocationParams, - resAllocInfo.SizeInBytes, withinBudget, pAllocDesc->pPrivateData, - &finalResourceDesc, InitialResourceState, pOptimizedClearValue, - ppAllocation, riidResource, ppvResource); - if (SUCCEEDED(hr)) - return hr; - } - return hr; -} -#endif // #ifdef __ID3D12Device8_INTERFACE_DEFINED__ - HRESULT AllocatorPimpl::AllocateMemory( const ALLOCATION_DESC* pAllocDesc, const D3D12_RESOURCE_ALLOCATION_INFO* pAllocInfo, @@ -6862,16 +7138,53 @@ HRESULT AllocatorPimpl::AllocateMemory( HRESULT AllocatorPimpl::CreateAliasingResource( Allocation* pAllocation, UINT64 AllocationLocalOffset, - const D3D12_RESOURCE_DESC* pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - const D3D12_CLEAR_VALUE* pOptimizedClearValue, + const CREATE_RESOURCE_PARAMS& createParams, REFIID riidResource, void** ppvResource) { *ppvResource = NULL; - D3D12_RESOURCE_DESC resourceDesc2 = *pResourceDesc; - D3D12_RESOURCE_ALLOCATION_INFO resAllocInfo = GetResourceAllocationInfo(resourceDesc2); + CREATE_RESOURCE_PARAMS finalCreateParams = createParams; + D3D12_RESOURCE_DESC finalResourceDesc; +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + D3D12_RESOURCE_DESC1 finalResourceDesc1; +#endif + D3D12_RESOURCE_ALLOCATION_INFO resAllocInfo; + if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_STATE) + { + finalResourceDesc = *createParams.GetResourceDesc(); + finalCreateParams.AccessResourceDesc() = &finalResourceDesc; + resAllocInfo = GetResourceAllocationInfo(finalResourceDesc); + } +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + else if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_STATE_AND_DESC1) + { + if (!m_Device8) + { + return E_NOINTERFACE; + } + finalResourceDesc1 = *createParams.GetResourceDesc1(); + finalCreateParams.AccessResourceDesc1() = &finalResourceDesc1; + resAllocInfo = GetResourceAllocationInfo(finalResourceDesc1); + } +#endif +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + else if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_LAYOUT) + { + if (!m_Device10) + { + return E_NOINTERFACE; + } + finalResourceDesc1 = *createParams.GetResourceDesc1(); + finalCreateParams.AccessResourceDesc1() = &finalResourceDesc1; + resAllocInfo = GetResourceAllocationInfo(finalResourceDesc1); + } +#endif + else + { + D3D12MA_ASSERT(0); + return E_INVALIDARG; + } D3D12MA_ASSERT(IsPow2(resAllocInfo.Alignment)); D3D12MA_ASSERT(resAllocInfo.SizeInBytes > 0); @@ -6887,14 +7200,7 @@ HRESULT AllocatorPimpl::CreateAliasingResource( return E_INVALIDARG; } - return m_Device->CreatePlacedResource( - existingHeap, - newOffset, - &resourceDesc2, - InitialResourceState, - pOptimizedClearValue, - riidResource, - ppvResource); + return CreatePlacedResourceWrap(existingHeap, newOffset, finalCreateParams, riidResource, ppvResource); } void AllocatorPimpl::FreeCommittedMemory(Allocation* allocation) @@ -6936,6 +7242,17 @@ void AllocatorPimpl::FreeHeapMemory(Allocation* allocation) m_Budget.RemoveBlock(memSegmentGroup, allocSize); } +void AllocatorPimpl::SetResidencyPriority(ID3D12Pageable* obj, D3D12_RESIDENCY_PRIORITY priority) const +{ +#ifdef __ID3D12Device1_INTERFACE_DEFINED__ + if (priority != D3D12_RESIDENCY_PRIORITY_NONE && m_Device1) + { + // Intentionally ignoring the result. + m_Device1->SetResidencyPriority(1, &obj, &priority); + } +#endif +} + void AllocatorPimpl::SetCurrentFrameIndex(UINT frameIndex) { m_CurrentFrameIndex.store(frameIndex); @@ -6945,7 +7262,7 @@ void AllocatorPimpl::SetCurrentFrameIndex(UINT frameIndex) #endif } -void AllocatorPimpl::CalculateStatistics(TotalStatistics& outStats) +void AllocatorPimpl::CalculateStatistics(TotalStatistics& outStats, DetailedStatistics outCustomHeaps[2]) { // Init stats for (size_t i = 0; i < HEAP_TYPE_COUNT; i++) @@ -6953,6 +7270,11 @@ void AllocatorPimpl::CalculateStatistics(TotalStatistics& outStats) for (size_t i = 0; i < DXGI_MEMORY_SEGMENT_GROUP_COUNT; i++) ClearDetailedStatistics(outStats.MemorySegmentGroup[i]); ClearDetailedStatistics(outStats.Total); + if (outCustomHeaps) + { + ClearDetailedStatistics(outCustomHeaps[0]); + ClearDetailedStatistics(outCustomHeaps[1]); + } // Process default pools. 3 standard heap types only. Add them to outStats.HeapType[i]. if (SupportsResourceHeapTier2()) @@ -7003,8 +7325,13 @@ void AllocatorPimpl::CalculateStatistics(TotalStatistics& outStats) pool->AddDetailedStatistics(tmpStats); AddDetailedStatistics( outStats.HeapType[heapTypeIndex], tmpStats); + + UINT memorySegment = HeapPropertiesToMemorySegmentGroup(poolHeapProps); AddDetailedStatistics( - outStats.MemorySegmentGroup[HeapPropertiesToMemorySegmentGroup(poolHeapProps)], tmpStats); + outStats.MemorySegmentGroup[memorySegment], tmpStats); + + if (outCustomHeaps) + AddDetailedStatistics(outCustomHeaps[memorySegment], tmpStats); } } @@ -7016,7 +7343,7 @@ void AllocatorPimpl::CalculateStatistics(TotalStatistics& outStats) AddDetailedStatistics( outStats.HeapType[heapTypeIndex], tmpStats); AddDetailedStatistics( - outStats.MemorySegmentGroup[StandardHeapTypeToMemorySegmentGroup(IndexToHeapType(heapTypeIndex))], tmpStats); + outStats.MemorySegmentGroup[StandardHeapTypeToMemorySegmentGroup(IndexToStandardHeapType(heapTypeIndex))], tmpStats); } // Sum up memory segment groups to totals. @@ -7106,155 +7433,329 @@ void AllocatorPimpl::GetBudgetForHeapType(Budget& outBudget, D3D12_HEAP_TYPE hea } } -void AllocatorPimpl::BuildStatsString(WCHAR** ppStatsString, BOOL DetailedMap) +void AllocatorPimpl::BuildStatsString(WCHAR** ppStatsString, BOOL detailedMap) { StringBuilder sb(GetAllocs()); { - JsonWriter json(GetAllocs(), sb); - Budget localBudget = {}, nonLocalBudget = {}; GetBudget(&localBudget, &nonLocalBudget); TotalStatistics stats; - CalculateStatistics(stats); + DetailedStatistics customHeaps[2]; + CalculateStatistics(stats, customHeaps); + JsonWriter json(GetAllocs(), sb); json.BeginObject(); - - json.WriteString(L"Total"); - json.AddDetailedStatisticsInfoObject(stats.Total); - for (size_t heapType = 0; heapType < HEAP_TYPE_COUNT; ++heapType) { - json.WriteString(HeapTypeNames[heapType]); - json.AddDetailedStatisticsInfoObject(stats.HeapType[heapType]); + json.WriteString(L"General"); + json.BeginObject(); + { + json.WriteString(L"API"); + json.WriteString(L"Direct3D 12"); + + json.WriteString(L"GPU"); + json.WriteString(m_AdapterDesc.Description); + + json.WriteString(L"DedicatedVideoMemory"); + json.WriteNumber((UINT64)m_AdapterDesc.DedicatedVideoMemory); + json.WriteString(L"DedicatedSystemMemory"); + json.WriteNumber((UINT64)m_AdapterDesc.DedicatedSystemMemory); + json.WriteString(L"SharedSystemMemory"); + json.WriteNumber((UINT64)m_AdapterDesc.SharedSystemMemory); + + json.WriteString(L"ResourceHeapTier"); + json.WriteNumber(static_cast(m_D3D12Options.ResourceHeapTier)); + + json.WriteString(L"ResourceBindingTier"); + json.WriteNumber(static_cast(m_D3D12Options.ResourceBindingTier)); + + json.WriteString(L"TiledResourcesTier"); + json.WriteNumber(static_cast(m_D3D12Options.TiledResourcesTier)); + + json.WriteString(L"TileBasedRenderer"); + json.WriteBool(m_D3D12Architecture.TileBasedRenderer); + + json.WriteString(L"UMA"); + json.WriteBool(m_D3D12Architecture.UMA); + json.WriteString(L"CacheCoherentUMA"); + json.WriteBool(m_D3D12Architecture.CacheCoherentUMA); + } + json.EndObject(); } - - json.WriteString(L"Budget"); - json.BeginObject(); { - json.WriteString(L"Local"); - WriteBudgetToJson(json, localBudget); - json.WriteString(L"NonLocal"); - WriteBudgetToJson(json, nonLocalBudget); + json.WriteString(L"Total"); + json.AddDetailedStatisticsInfoObject(stats.Total); } - json.EndObject(); - - if (DetailedMap) { - json.WriteString(L"DetailedMap"); + json.WriteString(L"MemoryInfo"); json.BeginObject(); + { + json.WriteString(L"L0"); + json.BeginObject(); + { + json.WriteString(L"Budget"); + WriteBudgetToJson(json, IsUMA() ? localBudget : nonLocalBudget); // When UMA device only L0 present as local - json.WriteString(L"DefaultPools"); - json.BeginObject(); + json.WriteString(L"Stats"); + json.AddDetailedStatisticsInfoObject(stats.MemorySegmentGroup[!IsUMA()]); - if (SupportsResourceHeapTier2()) - { - for (size_t heapType = 0; heapType < STANDARD_HEAP_TYPE_COUNT; ++heapType) + json.WriteString(L"MemoryPools"); + json.BeginObject(); + { + if (IsUMA()) + { + json.WriteString(L"DEFAULT"); + json.BeginObject(); + { + json.WriteString(L"Stats"); + json.AddDetailedStatisticsInfoObject(stats.HeapType[0]); + } + json.EndObject(); + } + json.WriteString(L"UPLOAD"); + json.BeginObject(); + { + json.WriteString(L"Stats"); + json.AddDetailedStatisticsInfoObject(stats.HeapType[1]); + } + json.EndObject(); + + json.WriteString(L"READBACK"); + json.BeginObject(); + { + json.WriteString(L"Stats"); + json.AddDetailedStatisticsInfoObject(stats.HeapType[2]); + } + json.EndObject(); + + json.WriteString(L"CUSTOM"); + json.BeginObject(); + { + json.WriteString(L"Stats"); + json.AddDetailedStatisticsInfoObject(customHeaps[!IsUMA()]); + } + json.EndObject(); + } + json.EndObject(); + } + json.EndObject(); + if (!IsUMA()) { - json.WriteString(HeapTypeNames[heapType]); + json.WriteString(L"L1"); json.BeginObject(); + { + json.WriteString(L"Budget"); + WriteBudgetToJson(json, localBudget); - json.WriteString(L"Blocks"); + json.WriteString(L"Stats"); + json.AddDetailedStatisticsInfoObject(stats.MemorySegmentGroup[0]); - BlockVector* blockVector = m_BlockVectors[heapType]; - D3D12MA_ASSERT(blockVector); - blockVector->WriteBlockInfoToJson(json); + json.WriteString(L"MemoryPools"); + json.BeginObject(); + { + json.WriteString(L"DEFAULT"); + json.BeginObject(); + { + json.WriteString(L"Stats"); + json.AddDetailedStatisticsInfoObject(stats.HeapType[0]); + } + json.EndObject(); - json.EndObject(); // heap name + json.WriteString(L"CUSTOM"); + json.BeginObject(); + { + json.WriteString(L"Stats"); + json.AddDetailedStatisticsInfoObject(customHeaps[0]); + } + json.EndObject(); + } + json.EndObject(); + } + json.EndObject(); } } - else + json.EndObject(); + } + + if (detailedMap) + { + const auto writeHeapInfo = [&](BlockVector* blockVector, CommittedAllocationList* committedAllocs, bool customHeap) { - for (size_t heapType = 0; heapType < STANDARD_HEAP_TYPE_COUNT; ++heapType) - { - for (size_t heapSubType = 0; heapSubType < 3; ++heapSubType) - { - static const WCHAR* const heapSubTypeName[] = { - L" + buffer", - L" + texture", - L" + texture RT or DS", - }; - json.BeginString(); - json.ContinueString(HeapTypeNames[heapType]); - json.ContinueString(heapSubTypeName[heapSubType]); - json.EndString(); - json.BeginObject(); + D3D12MA_ASSERT(blockVector); - json.WriteString(L"Blocks"); + D3D12_HEAP_FLAGS flags = blockVector->GetHeapFlags(); + json.WriteString(L"Flags"); + json.BeginArray(true); + { + if (flags & D3D12_HEAP_FLAG_SHARED) + json.WriteString(L"HEAP_FLAG_SHARED"); + if (flags & D3D12_HEAP_FLAG_ALLOW_DISPLAY) + json.WriteString(L"HEAP_FLAG_ALLOW_DISPLAY"); + if (flags & D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER) + json.WriteString(L"HEAP_FLAG_CROSS_ADAPTER"); + if (flags & D3D12_HEAP_FLAG_HARDWARE_PROTECTED) + json.WriteString(L"HEAP_FLAG_HARDWARE_PROTECTED"); + if (flags & D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH) + json.WriteString(L"HEAP_FLAG_ALLOW_WRITE_WATCH"); + if (flags & D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS) + json.WriteString(L"HEAP_FLAG_ALLOW_SHADER_ATOMICS"); +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + if (flags & D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT) + json.WriteString(L"HEAP_FLAG_CREATE_NOT_RESIDENT"); + if (flags & D3D12_HEAP_FLAG_CREATE_NOT_ZEROED) + json.WriteString(L"HEAP_FLAG_CREATE_NOT_ZEROED"); +#endif - BlockVector* blockVector = m_BlockVectors[heapType * 3 + heapSubType]; - D3D12MA_ASSERT(blockVector); - blockVector->WriteBlockInfoToJson(json); + if (flags & D3D12_HEAP_FLAG_DENY_BUFFERS) + json.WriteString(L"HEAP_FLAG_DENY_BUFFERS"); + if (flags & D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES) + json.WriteString(L"HEAP_FLAG_DENY_RT_DS_TEXTURES"); + if (flags & D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES) + json.WriteString(L"HEAP_FLAG_DENY_NON_RT_DS_TEXTURES"); + + flags &= ~(D3D12_HEAP_FLAG_SHARED + | D3D12_HEAP_FLAG_DENY_BUFFERS + | D3D12_HEAP_FLAG_ALLOW_DISPLAY + | D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER + | D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES + | D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES + | D3D12_HEAP_FLAG_HARDWARE_PROTECTED + | D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH + | D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS); +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + flags &= ~(D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT + | D3D12_HEAP_FLAG_CREATE_NOT_ZEROED); +#endif + if (flags != 0) + json.WriteNumber((UINT)flags); - json.EndObject(); // heap name + if (customHeap) + { + const D3D12_HEAP_PROPERTIES& properties = blockVector->GetHeapProperties(); + switch (properties.MemoryPoolPreference) + { + default: + D3D12MA_ASSERT(0); + case D3D12_MEMORY_POOL_UNKNOWN: + json.WriteString(L"MEMORY_POOL_UNKNOWN"); + break; + case D3D12_MEMORY_POOL_L0: + json.WriteString(L"MEMORY_POOL_L0"); + break; + case D3D12_MEMORY_POOL_L1: + json.WriteString(L"MEMORY_POOL_L1"); + break; + } + switch (properties.CPUPageProperty) + { + default: + D3D12MA_ASSERT(0); + case D3D12_CPU_PAGE_PROPERTY_UNKNOWN: + json.WriteString(L"CPU_PAGE_PROPERTY_UNKNOWN"); + break; + case D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE: + json.WriteString(L"CPU_PAGE_PROPERTY_NOT_AVAILABLE"); + break; + case D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE: + json.WriteString(L"CPU_PAGE_PROPERTY_WRITE_COMBINE"); + break; + case D3D12_CPU_PAGE_PROPERTY_WRITE_BACK: + json.WriteString(L"CPU_PAGE_PROPERTY_WRITE_BACK"); + break; + } } } - } + json.EndArray(); - json.EndObject(); // DefaultPools + json.WriteString(L"PreferredBlockSize"); + json.WriteNumber(blockVector->GetPreferredBlockSize()); - json.WriteString(L"CommittedAllocations"); - json.BeginObject(); + json.WriteString(L"Blocks"); + blockVector->WriteBlockInfoToJson(json); - for (size_t heapTypeIndex = 0; heapTypeIndex < STANDARD_HEAP_TYPE_COUNT; ++heapTypeIndex) - { - json.WriteString(HeapTypeNames[heapTypeIndex]); + json.WriteString(L"DedicatedAllocations"); json.BeginArray(); - m_CommittedAllocations[heapTypeIndex].BuildStatsString(json); + if (committedAllocs) + committedAllocs->BuildStatsString(json); json.EndArray(); - } + }; - json.EndObject(); // CommittedAllocations - - json.WriteString(L"Pools"); + json.WriteString(L"DefaultPools"); json.BeginObject(); - - for (size_t heapTypeIndex = 0; heapTypeIndex < HEAP_TYPE_COUNT; ++heapTypeIndex) { - json.WriteString(HeapTypeNames[heapTypeIndex]); - json.BeginArray(); - MutexLockRead mutex(m_PoolsMutex[heapTypeIndex], m_UseMutex); - size_t index = 0; - for (auto* item = m_Pools[heapTypeIndex].Front(); item != nullptr; item = PoolList::GetNext(item)) + if (SupportsResourceHeapTier2()) { - json.BeginObject(); - json.WriteString(L"Name"); - if (item->GetName() != nullptr) + for (uint8_t heapType = 0; heapType < STANDARD_HEAP_TYPE_COUNT; ++heapType) { - json.WriteString(item->GetName()); + json.WriteString(StandardHeapTypeNames[heapType]); + json.BeginObject(); + writeHeapInfo(m_BlockVectors[heapType], m_CommittedAllocations + heapType, false); + json.EndObject(); } - else + } + else + { + for (uint8_t heapType = 0; heapType < STANDARD_HEAP_TYPE_COUNT; ++heapType) { - json.BeginString(); - json.ContinueString(index); - json.EndString(); + for (uint8_t heapSubType = 0; heapSubType < 3; ++heapSubType) + { + static const WCHAR* const heapSubTypeName[] = { + L" - Buffers", + L" - Textures", + L" - Textures RT/DS", + }; + json.BeginString(StandardHeapTypeNames[heapType]); + json.EndString(heapSubTypeName[heapSubType]); + + json.BeginObject(); + writeHeapInfo(m_BlockVectors[heapType * 3 + heapSubType], m_CommittedAllocations + heapType, false); + json.EndObject(); + } } - ++index; - - json.WriteString(L"Blocks"); - item->GetBlockVector()->WriteBlockInfoToJson(json); + } + } + json.EndObject(); - json.WriteString(L"CommittedAllocations"); + json.WriteString(L"CustomPools"); + json.BeginObject(); + for (uint8_t heapTypeIndex = 0; heapTypeIndex < HEAP_TYPE_COUNT; ++heapTypeIndex) + { + MutexLockRead mutex(m_PoolsMutex[heapTypeIndex], m_UseMutex); + auto* item = m_Pools[heapTypeIndex].Front(); + if (item != NULL) + { + size_t index = 0; + json.WriteString(HeapTypeNames[heapTypeIndex]); json.BeginArray(); - if (item->SupportsCommittedAllocations()) - item->GetCommittedAllocationList()->BuildStatsString(json); - json.EndArray(); + do + { + json.BeginObject(); + json.WriteString(L"Name"); + json.BeginString(); + json.ContinueString(index++); + if (item->GetName()) + { + json.ContinueString(L" - "); + json.ContinueString(item->GetName()); + } + json.EndString(); - json.EndObject(); + writeHeapInfo(item->GetBlockVector(), item->GetCommittedAllocationList(), heapTypeIndex == 3); + json.EndObject(); + } while ((item = PoolList::GetNext(item)) != NULL); + json.EndArray(); } - json.EndArray(); } - - json.EndObject(); // Pools - - json.EndObject(); // DetailedMap + json.EndObject(); } json.EndObject(); } const size_t length = sb.GetLength(); - WCHAR* result = AllocateArray(GetAllocs(), length + 1); - memcpy(result, sb.GetData(), length * sizeof(WCHAR)); - result[length] = L'\0'; + WCHAR* result = AllocateArray(GetAllocs(), length + 2); + result[0] = 0xFEFF; + memcpy(result + 1, sb.GetData(), length * sizeof(WCHAR)); + result[length + 1] = L'\0'; *ppStatsString = result; } @@ -7274,19 +7775,46 @@ bool AllocatorPimpl::PrefersCommittedAllocation(const D3D12_RESOURCE_DESC_T& res HRESULT AllocatorPimpl::AllocateCommittedResource( const CommittedAllocationParameters& committedAllocParams, UINT64 resourceSize, bool withinBudget, void* pPrivateData, - const D3D12_RESOURCE_DESC* pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, const D3D12_CLEAR_VALUE* pOptimizedClearValue, + const CREATE_RESOURCE_PARAMS& createParams, Allocation** ppAllocation, REFIID riidResource, void** ppvResource) { D3D12MA_ASSERT(committedAllocParams.IsValid()); + HRESULT hr; + ID3D12Resource* res = NULL; + // Allocate aliasing memory with explicit heap + if (committedAllocParams.m_CanAlias) + { + D3D12_RESOURCE_ALLOCATION_INFO heapAllocInfo = {}; + heapAllocInfo.SizeInBytes = resourceSize; + heapAllocInfo.Alignment = HeapFlagsToAlignment(committedAllocParams.m_HeapFlags, m_MsaaAlwaysCommitted); + hr = AllocateHeap(committedAllocParams, heapAllocInfo, withinBudget, pPrivateData, ppAllocation); + if (SUCCEEDED(hr)) + { + hr = CreatePlacedResourceWrap((*ppAllocation)->GetHeap(), 0, + createParams, D3D12MA_IID_PPV_ARGS(&res)); + if (SUCCEEDED(hr)) + { + if (ppvResource != NULL) + hr = res->QueryInterface(riidResource, ppvResource); + if (SUCCEEDED(hr)) + { + (*ppAllocation)->SetResourcePointer(res, createParams.GetBaseResourceDesc()); + return hr; + } + res->Release(); + } + FreeHeapMemory(*ppAllocation); + } + return hr; + } + if (withinBudget && !NewAllocationWithinBudget(committedAllocParams.m_HeapProperties.Type, resourceSize)) { return E_OUTOFMEMORY; } - ID3D12Resource* res = NULL; /* D3D12 ERROR: * ID3D12Device::CreateCommittedResource: * When creating a committed resource, D3D12_HEAP_FLAGS must not have either @@ -7297,100 +7825,93 @@ HRESULT AllocatorPimpl::AllocateCommittedResource( * * [ STATE_CREATION ERROR #640: CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS] */ - HRESULT hr; -#ifdef __ID3D12Device4_INTERFACE_DEFINED__ - if (m_Device4) - { - hr = m_Device4->CreateCommittedResource1( - &committedAllocParams.m_HeapProperties, - committedAllocParams.m_HeapFlags & ~RESOURCE_CLASS_HEAP_FLAGS, - pResourceDesc, InitialResourceState, - pOptimizedClearValue, committedAllocParams.m_ProtectedSession, D3D12MA_IID_PPV_ARGS(&res)); - } - else -#endif + +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ + if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_LAYOUT) { - if (committedAllocParams.m_ProtectedSession == NULL) + if (!m_Device10) { - hr = m_Device->CreateCommittedResource( + return E_NOINTERFACE; + } + hr = m_Device10->CreateCommittedResource3( &committedAllocParams.m_HeapProperties, committedAllocParams.m_HeapFlags & ~RESOURCE_CLASS_HEAP_FLAGS, - pResourceDesc, InitialResourceState, - pOptimizedClearValue, D3D12MA_IID_PPV_ARGS(&res)); - } - else - hr = E_NOINTERFACE; - } - - if (SUCCEEDED(hr)) + createParams.GetResourceDesc1(), createParams.GetInitialLayout(), + createParams.GetOptimizedClearValue(), committedAllocParams.m_ProtectedSession, + createParams.GetNumCastableFormats(), createParams.GetCastableFormats(), + D3D12MA_IID_PPV_ARGS(&res)); + } else +#endif +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ + if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_STATE_AND_DESC1) { - if (ppvResource != NULL) + if (!m_Device8) { - hr = res->QueryInterface(riidResource, ppvResource); + return E_NOINTERFACE; } - if (SUCCEEDED(hr)) + hr = m_Device8->CreateCommittedResource2( + &committedAllocParams.m_HeapProperties, + committedAllocParams.m_HeapFlags & ~RESOURCE_CLASS_HEAP_FLAGS, + createParams.GetResourceDesc1(), createParams.GetInitialResourceState(), + createParams.GetOptimizedClearValue(), committedAllocParams.m_ProtectedSession, + D3D12MA_IID_PPV_ARGS(&res)); + } else +#endif + if (createParams.Variant == CREATE_RESOURCE_PARAMS::VARIANT_WITH_STATE) + { +#ifdef __ID3D12Device4_INTERFACE_DEFINED__ + if (m_Device4) { - const BOOL wasZeroInitialized = TRUE; - Allocation* alloc = m_AllocationObjectAllocator.Allocate(this, resourceSize, pResourceDesc->Alignment, wasZeroInitialized); - alloc->InitCommitted(committedAllocParams.m_List); - alloc->SetResource(res, pResourceDesc); - alloc->SetPrivateData(pPrivateData); - - *ppAllocation = alloc; - - committedAllocParams.m_List->Register(alloc); - - const UINT memSegmentGroup = HeapPropertiesToMemorySegmentGroup(committedAllocParams.m_HeapProperties); - m_Budget.AddBlock(memSegmentGroup, resourceSize); - m_Budget.AddAllocation(memSegmentGroup, resourceSize); + hr = m_Device4->CreateCommittedResource1( + &committedAllocParams.m_HeapProperties, + committedAllocParams.m_HeapFlags & ~RESOURCE_CLASS_HEAP_FLAGS, + createParams.GetResourceDesc(), createParams.GetInitialResourceState(), + createParams.GetOptimizedClearValue(), committedAllocParams.m_ProtectedSession, + D3D12MA_IID_PPV_ARGS(&res)); } else +#endif { - res->Release(); + if (committedAllocParams.m_ProtectedSession == NULL) + { + hr = m_Device->CreateCommittedResource( + &committedAllocParams.m_HeapProperties, + committedAllocParams.m_HeapFlags & ~RESOURCE_CLASS_HEAP_FLAGS, + createParams.GetResourceDesc(), createParams.GetInitialResourceState(), + createParams.GetOptimizedClearValue(), D3D12MA_IID_PPV_ARGS(&res)); + } + else + hr = E_NOINTERFACE; } } - return hr; -} - -#ifdef __ID3D12Device8_INTERFACE_DEFINED__ -HRESULT AllocatorPimpl::AllocateCommittedResource2( - const CommittedAllocationParameters& committedAllocParams, - UINT64 resourceSize, bool withinBudget, void* pPrivateData, - const D3D12_RESOURCE_DESC1* pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, const D3D12_CLEAR_VALUE* pOptimizedClearValue, - Allocation** ppAllocation, REFIID riidResource, void** ppvResource) -{ - D3D12MA_ASSERT(committedAllocParams.IsValid()); - - if (m_Device8 == NULL) - { - return E_NOINTERFACE; - } - - if (withinBudget && - !NewAllocationWithinBudget(committedAllocParams.m_HeapProperties.Type, resourceSize)) + else { - return E_OUTOFMEMORY; + D3D12MA_ASSERT(0); + return E_INVALIDARG; } - ID3D12Resource* res = NULL; - HRESULT hr = m_Device8->CreateCommittedResource2( - &committedAllocParams.m_HeapProperties, - committedAllocParams.m_HeapFlags & ~RESOURCE_CLASS_HEAP_FLAGS, // D3D12 ERROR: ID3D12Device::CreateCommittedResource: When creating a committed resource, D3D12_HEAP_FLAGS must not have either D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES, D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES, nor D3D12_HEAP_FLAG_DENY_BUFFERS set. These flags will be set automatically to correspond with the committed resource type. [ STATE_CREATION ERROR #640: CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS] - pResourceDesc, InitialResourceState, - pOptimizedClearValue, committedAllocParams.m_ProtectedSession, D3D12MA_IID_PPV_ARGS(&res)); if (SUCCEEDED(hr)) { + SetResidencyPriority(res, committedAllocParams.m_ResidencyPriority); + if (ppvResource != NULL) { hr = res->QueryInterface(riidResource, ppvResource); } if (SUCCEEDED(hr)) { - const BOOL wasZeroInitialized = TRUE; - Allocation* alloc = m_AllocationObjectAllocator.Allocate(this, resourceSize, pResourceDesc->Alignment, wasZeroInitialized); + BOOL wasZeroInitialized = TRUE; +#if D3D12MA_CREATE_NOT_ZEROED_AVAILABLE + if((committedAllocParams.m_HeapFlags & D3D12_HEAP_FLAG_CREATE_NOT_ZEROED) != 0) + { + wasZeroInitialized = FALSE; + } +#endif + + Allocation* alloc = m_AllocationObjectAllocator.Allocate( + this, resourceSize, createParams.GetBaseResourceDesc()->Alignment, wasZeroInitialized); alloc->InitCommitted(committedAllocParams.m_List); - alloc->SetResource(res, pResourceDesc); + alloc->SetResourcePointer(res, createParams.GetBaseResourceDesc()); alloc->SetPrivateData(pPrivateData); *ppAllocation = alloc; @@ -7408,7 +7929,6 @@ HRESULT AllocatorPimpl::AllocateCommittedResource2( } return hr; } -#endif // #ifdef __ID3D12Device8_INTERFACE_DEFINED__ HRESULT AllocatorPimpl::AllocateHeap( const CommittedAllocationParameters& committedAllocParams, @@ -7447,7 +7967,16 @@ HRESULT AllocatorPimpl::AllocateHeap( if (SUCCEEDED(hr)) { - const BOOL wasZeroInitialized = TRUE; + SetResidencyPriority(heap, committedAllocParams.m_ResidencyPriority); + + BOOL wasZeroInitialized = TRUE; +#if D3D12MA_CREATE_NOT_ZEROED_AVAILABLE + if((heapDesc.Flags & D3D12_HEAP_FLAG_CREATE_NOT_ZEROED) != 0) + { + wasZeroInitialized = FALSE; + } +#endif + (*ppAllocation) = m_AllocationObjectAllocator.Allocate(this, allocInfo.SizeInBytes, allocInfo.Alignment, wasZeroInitialized); (*ppAllocation)->InitHeap(committedAllocParams.m_List, heap); (*ppAllocation)->SetPrivateData(pPrivateData); @@ -7469,16 +7998,20 @@ HRESULT AllocatorPimpl::CalcAllocationParams(const ALLOCATION_DESC& allocDesc, U outCommittedAllocationParams = CommittedAllocationParameters(); outPreferCommitted = false; + bool msaaAlwaysCommitted; if (allocDesc.CustomPool != NULL) { PoolPimpl* const pool = allocDesc.CustomPool->m_Pimpl; + msaaAlwaysCommitted = pool->GetBlockVector()->DeniesMsaaTextures(); outBlockVector = pool->GetBlockVector(); - outCommittedAllocationParams.m_ProtectedSession = pool->GetDesc().pProtectedSession; - outCommittedAllocationParams.m_HeapProperties = pool->GetDesc().HeapProperties; - outCommittedAllocationParams.m_HeapFlags = pool->GetDesc().HeapFlags; + const auto& desc = pool->GetDesc(); + outCommittedAllocationParams.m_ProtectedSession = desc.pProtectedSession; + outCommittedAllocationParams.m_HeapProperties = desc.HeapProperties; + outCommittedAllocationParams.m_HeapFlags = desc.HeapFlags; outCommittedAllocationParams.m_List = pool->GetCommittedAllocationList(); + outCommittedAllocationParams.m_ResidencyPriority = pool->GetDesc().ResidencyPriority; } else { @@ -7486,10 +8019,12 @@ HRESULT AllocatorPimpl::CalcAllocationParams(const ALLOCATION_DESC& allocDesc, U { return E_INVALIDARG; } + msaaAlwaysCommitted = m_MsaaAlwaysCommitted; outCommittedAllocationParams.m_HeapProperties = StandardHeapTypeToHeapProperties(allocDesc.HeapType); outCommittedAllocationParams.m_HeapFlags = allocDesc.ExtraHeapFlags; - outCommittedAllocationParams.m_List = &m_CommittedAllocations[HeapTypeToIndex(allocDesc.HeapType)]; + outCommittedAllocationParams.m_List = &m_CommittedAllocations[StandardHeapTypeToIndex(allocDesc.HeapType)]; + // outCommittedAllocationParams.m_ResidencyPriority intentionally left with default value. const ResourceClass resourceClass = (resDesc != NULL) ? ResourceDescToResourceClass(*resDesc) : HeapFlagsToResourceClass(allocDesc.ExtraHeapFlags); @@ -7521,14 +8056,18 @@ HRESULT AllocatorPimpl::CalcAllocationParams(const ALLOCATION_DESC& allocDesc, U { outBlockVector = NULL; } - if ((allocDesc.Flags & (ALLOCATION_FLAG_NEVER_ALLOCATE | ALLOCATION_FLAG_CAN_ALIAS)) != 0) + if ((allocDesc.Flags & ALLOCATION_FLAG_NEVER_ALLOCATE) != 0) { outCommittedAllocationParams.m_List = NULL; } + outCommittedAllocationParams.m_CanAlias = allocDesc.Flags & ALLOCATION_FLAG_CAN_ALIAS; - if (resDesc != NULL && !outPreferCommitted && PrefersCommittedAllocation(*resDesc)) + if (resDesc != NULL) { - outPreferCommitted = true; + if (resDesc->SampleDesc.Count > 1 && msaaAlwaysCommitted) + outBlockVector = NULL; + if (!outPreferCommitted && PrefersCommittedAllocation(*resDesc)) + outPreferCommitted = true; } return (outBlockVector != NULL || outCommittedAllocationParams.m_List != NULL) ? S_OK : E_INVALIDARG; @@ -7536,7 +8075,17 @@ HRESULT AllocatorPimpl::CalcAllocationParams(const ALLOCATION_DESC& allocDesc, U UINT AllocatorPimpl::CalcDefaultPoolIndex(const ALLOCATION_DESC& allocDesc, ResourceClass resourceClass) const { - const D3D12_HEAP_FLAGS extraHeapFlags = allocDesc.ExtraHeapFlags & ~RESOURCE_CLASS_HEAP_FLAGS; + D3D12_HEAP_FLAGS extraHeapFlags = allocDesc.ExtraHeapFlags & ~RESOURCE_CLASS_HEAP_FLAGS; + +#if D3D12MA_CREATE_NOT_ZEROED_AVAILABLE + // If allocator was created with ALLOCATOR_FLAG_DEFAULT_POOLS_NOT_ZEROED, also ignore + // D3D12_HEAP_FLAG_CREATE_NOT_ZEROED. + if(m_DefaultPoolsNotZeroed) + { + extraHeapFlags &= ~D3D12_HEAP_FLAG_CREATE_NOT_ZEROED; + } +#endif + if (extraHeapFlags != 0) { return UINT32_MAX; @@ -7610,7 +8159,7 @@ void AllocatorPimpl::CalcDefaultPoolParams(D3D12_HEAP_TYPE& outHeapType, D3D12_H void AllocatorPimpl::RegisterPool(Pool* pool, D3D12_HEAP_TYPE heapType) { - const UINT heapTypeIndex = HeapTypeToIndex(heapType); + const UINT heapTypeIndex = (UINT)heapType - 1; MutexLockWrite lock(m_PoolsMutex[heapTypeIndex], m_UseMutex); m_Pools[heapTypeIndex].PushBack(pool->m_Pimpl); @@ -7618,7 +8167,7 @@ void AllocatorPimpl::RegisterPool(Pool* pool, D3D12_HEAP_TYPE heapType) void AllocatorPimpl::UnregisterPool(Pool* pool, D3D12_HEAP_TYPE heapType) { - const UINT heapTypeIndex = HeapTypeToIndex(heapType); + const UINT heapTypeIndex = (UINT)heapType - 1; MutexLockWrite lock(m_PoolsMutex[heapTypeIndex], m_UseMutex); m_Pools[heapTypeIndex].Remove(pool->m_Pimpl); @@ -7638,7 +8187,14 @@ HRESULT AllocatorPimpl::UpdateD3D12Budget() D3D12_RESOURCE_ALLOCATION_INFO AllocatorPimpl::GetResourceAllocationInfoNative(const D3D12_RESOURCE_DESC& resourceDesc) const { + // This is how new D3D12 headers define GetResourceAllocationInfo function - + // different signature depending on these macros. +#if defined(_MSC_VER) || !defined(_WIN32) return m_Device->GetResourceAllocationInfo(0, 1, &resourceDesc); +#else + D3D12_RESOURCE_ALLOCATION_INFO retVal; + return *m_Device->GetResourceAllocationInfo(&retVal, 0, 1, &resourceDesc); +#endif } #ifdef __ID3D12Device8_INTERFACE_DEFINED__ @@ -7646,13 +8202,22 @@ D3D12_RESOURCE_ALLOCATION_INFO AllocatorPimpl::GetResourceAllocationInfoNative(c { D3D12MA_ASSERT(m_Device8 != NULL); D3D12_RESOURCE_ALLOCATION_INFO1 info1Unused; + + // This is how new D3D12 headers define GetResourceAllocationInfo function - + // different signature depending on these macros. +#if defined(_MSC_VER) || !defined(_WIN32) return m_Device8->GetResourceAllocationInfo2(0, 1, &resourceDesc, &info1Unused); +#else + D3D12_RESOURCE_ALLOCATION_INFO retVal; + return *m_Device8->GetResourceAllocationInfo2(&retVal, 0, 1, &resourceDesc, &info1Unused); +#endif } #endif // #ifdef __ID3D12Device8_INTERFACE_DEFINED__ template D3D12_RESOURCE_ALLOCATION_INFO AllocatorPimpl::GetResourceAllocationInfo(D3D12_RESOURCE_DESC_T& inOutResourceDesc) const { +#ifdef __ID3D12Device1_INTERFACE_DEFINED__ /* Optional optimization: Microsoft documentation says: https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12device-getresourceallocationinfo @@ -7668,6 +8233,7 @@ D3D12_RESOURCE_ALLOCATION_INFO AllocatorPimpl::GetResourceAllocationInfo(D3D12_R AlignUp(inOutResourceDesc.Width, D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT), // SizeInBytes D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT }; // Alignment } +#endif // #ifdef __ID3D12Device1_INTERFACE_DEFINED__ #if D3D12MA_USE_SMALL_RESOURCE_PLACEMENT_ALIGNMENT if (inOutResourceDesc.Alignment == 0 && @@ -7710,21 +8276,14 @@ void AllocatorPimpl::WriteBudgetToJson(JsonWriter& json, const Budget& budget) { json.BeginObject(); { - json.WriteString(L"BlockCount"); - json.WriteNumber(budget.Stats.BlockCount); - json.WriteString(L"AllocationCount"); - json.WriteNumber(budget.Stats.AllocationCount); - json.WriteString(L"BlockBytes"); - json.WriteNumber(budget.Stats.BlockBytes); - json.WriteString(L"AllocationBytes"); - json.WriteNumber(budget.Stats.AllocationBytes); - json.WriteString(L"UsageBytes"); - json.WriteNumber(budget.UsageBytes); json.WriteString(L"BudgetBytes"); json.WriteNumber(budget.BudgetBytes); + json.WriteString(L"UsageBytes"); + json.WriteNumber(budget.UsageBytes); } json.EndObject(); } + #endif // _D3D12MA_ALLOCATOR_PIMPL #endif // _D3D12MA_ALLOCATOR_PIMPL @@ -7789,14 +8348,14 @@ MemoryBlock::~MemoryBlock() } } -HRESULT MemoryBlock::Init(ID3D12ProtectedResourceSession* pProtectedSession) +HRESULT MemoryBlock::Init(ID3D12ProtectedResourceSession* pProtectedSession, bool denyMsaaTextures) { D3D12MA_ASSERT(m_Heap == NULL && m_Size > 0); D3D12_HEAP_DESC heapDesc = {}; heapDesc.SizeInBytes = m_Size; heapDesc.Properties = m_HeapProps; - heapDesc.Alignment = HeapFlagsToAlignment(m_HeapFlags); + heapDesc.Alignment = HeapFlagsToAlignment(m_HeapFlags, denyMsaaTextures); heapDesc.Flags = m_HeapFlags; HRESULT hr; @@ -7838,6 +8397,10 @@ NormalBlock::~NormalBlock() { if (m_pMetadata != NULL) { + // Define macro D3D12MA_DEBUG_LOG to receive the list of the unfreed allocations. + if (!m_pMetadata->IsEmpty()) + m_pMetadata->DebugLogAllAllocations(); + // THIS IS THE MOST IMPORTANT ASSERT IN THE ENTIRE LIBRARY! // Hitting it means you have some memory leak - unreleased Allocation objects. D3D12MA_ASSERT(m_pMetadata->IsEmpty() && "Some allocations were not freed before destruction of this memory block!"); @@ -7846,9 +8409,9 @@ NormalBlock::~NormalBlock() } } -HRESULT NormalBlock::Init(UINT32 algorithm, ID3D12ProtectedResourceSession* pProtectedSession) +HRESULT NormalBlock::Init(UINT32 algorithm, ID3D12ProtectedResourceSession* pProtectedSession, bool denyMsaaTextures) { - HRESULT hr = MemoryBlock::Init(pProtectedSession); + HRESULT hr = MemoryBlock::Init(pProtectedSession, denyMsaaTextures); if (FAILED(hr)) { return hr; @@ -7970,7 +8533,9 @@ BlockVector::BlockVector( bool explicitBlockSize, UINT64 minAllocationAlignment, UINT32 algorithm, - ID3D12ProtectedResourceSession* pProtectedSession) + bool denyMsaaTextures, + ID3D12ProtectedResourceSession* pProtectedSession, + D3D12_RESIDENCY_PRIORITY residencyPriority) : m_hAllocator(hAllocator), m_HeapProps(heapProps), m_HeapFlags(heapFlags), @@ -7980,7 +8545,9 @@ BlockVector::BlockVector( m_ExplicitBlockSize(explicitBlockSize), m_MinAllocationAlignment(minAllocationAlignment), m_Algorithm(algorithm), + m_DenyMsaaTextures(denyMsaaTextures), m_ProtectedSession(pProtectedSession), + m_ResidencyPriority(residencyPriority), m_HasEmptyBlock(false), m_Blocks(hAllocator->GetAllocs()), m_NextBlockId(0) {} @@ -8117,76 +8684,19 @@ HRESULT BlockVector::CreateResource( UINT64 size, UINT64 alignment, const ALLOCATION_DESC& allocDesc, - const D3D12_RESOURCE_DESC& resourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - const D3D12_CLEAR_VALUE* pOptimizedClearValue, - Allocation** ppAllocation, - REFIID riidResource, - void** ppvResource) -{ - HRESULT hr = Allocate(size, alignment, allocDesc, 1, ppAllocation); - if (SUCCEEDED(hr)) - { - ID3D12Resource* res = NULL; - hr = m_hAllocator->GetDevice()->CreatePlacedResource( - (*ppAllocation)->m_Placed.block->GetHeap(), - (*ppAllocation)->GetOffset(), - &resourceDesc, - InitialResourceState, - pOptimizedClearValue, - D3D12MA_IID_PPV_ARGS(&res)); - if (SUCCEEDED(hr)) - { - if (ppvResource != NULL) - { - hr = res->QueryInterface(riidResource, ppvResource); - } - if (SUCCEEDED(hr)) - { - (*ppAllocation)->SetResource(res, &resourceDesc); - } - else - { - res->Release(); - SAFE_RELEASE(*ppAllocation); - } - } - else - { - SAFE_RELEASE(*ppAllocation); - } - } - return hr; -} - -#ifdef __ID3D12Device8_INTERFACE_DEFINED__ -HRESULT BlockVector::CreateResource2( - UINT64 size, - UINT64 alignment, - const ALLOCATION_DESC& allocDesc, - const D3D12_RESOURCE_DESC1& resourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - const D3D12_CLEAR_VALUE* pOptimizedClearValue, + const CREATE_RESOURCE_PARAMS& createParams, Allocation** ppAllocation, REFIID riidResource, void** ppvResource) { - ID3D12Device8* const device8 = m_hAllocator->GetDevice8(); - if (device8 == NULL) - { - return E_NOINTERFACE; - } - HRESULT hr = Allocate(size, alignment, allocDesc, 1, ppAllocation); if (SUCCEEDED(hr)) { ID3D12Resource* res = NULL; - hr = device8->CreatePlacedResource1( + hr = m_hAllocator->CreatePlacedResourceWrap( (*ppAllocation)->m_Placed.block->GetHeap(), (*ppAllocation)->GetOffset(), - &resourceDesc, - InitialResourceState, - pOptimizedClearValue, + createParams, D3D12MA_IID_PPV_ARGS(&res)); if (SUCCEEDED(hr)) { @@ -8196,7 +8706,7 @@ HRESULT BlockVector::CreateResource2( } if (SUCCEEDED(hr)) { - (*ppAllocation)->SetResource(res, &resourceDesc); + (*ppAllocation)->SetResourcePointer(res, createParams.GetBaseResourceDesc()); } else { @@ -8211,7 +8721,6 @@ HRESULT BlockVector::CreateResource2( } return hr; } -#endif // #ifdef __ID3D12Device8_INTERFACE_DEFINED__ void BlockVector::AddStatistics(Statistics& inoutStats) { @@ -8254,7 +8763,9 @@ void BlockVector::WriteBlockInfoToJson(JsonWriter& json) json.ContinueString(pBlock->GetId()); json.EndString(); + json.BeginObject(); pBlock->m_pMetadata->WriteAllocationInfoToJson(json); + json.EndObject(); } json.EndObject(); @@ -8507,13 +9018,15 @@ HRESULT BlockVector::CreateBlock( m_HeapFlags, blockSize, m_NextBlockId++); - HRESULT hr = pBlock->Init(m_Algorithm, m_ProtectedSession); + HRESULT hr = pBlock->Init(m_Algorithm, m_ProtectedSession, m_DenyMsaaTextures); if (FAILED(hr)) { D3D12MA_DELETE(m_hAllocator->GetAllocs(), pBlock); return hr; } + m_hAllocator->SetResidencyPriority(pBlock->GetHeap(), m_ResidencyPriority); + m_Blocks.push_back(pBlock); if (pNewBlockIndex != NULL) { @@ -8843,8 +9356,8 @@ bool DefragmentationContextPimpl::IncrementCounters(UINT64 bytes) // Early return when max found if (++m_PassStats.AllocationsMoved >= m_MaxPassAllocations || m_PassStats.BytesMoved >= m_MaxPassBytes) { - D3D12MA_ASSERT(m_PassStats.AllocationsMoved == m_MaxPassAllocations || - m_PassStats.BytesMoved == m_MaxPassBytes && "Exceeded maximal pass threshold!"); + D3D12MA_ASSERT((m_PassStats.AllocationsMoved == m_MaxPassAllocations || + m_PassStats.BytesMoved == m_MaxPassBytes) && "Exceeded maximal pass threshold!"); return true; } return false; @@ -9174,8 +9687,10 @@ PoolPimpl::PoolPimpl(AllocatorPimpl* allocator, const POOL_DESC& desc) desc.MinBlockCount, maxBlockCount, explicitBlockSize, D3D12MA_MAX(desc.MinAllocationAlignment, (UINT64)D3D12MA_DEBUG_ALIGNMENT), - desc.Flags & POOL_FLAG_ALGORITHM_MASK, - desc.pProtectedSession); + (desc.Flags & POOL_FLAG_ALGORITHM_MASK) != 0, + (desc.Flags & POOL_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED) != 0, + desc.pProtectedSession, + desc.ResidencyPriority); } PoolPimpl::~PoolPimpl() @@ -9300,7 +9815,7 @@ ULONG STDMETHODCALLTYPE IUnknownImpl::Release() { D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - const uint32_t newRefCount = --m_RefCount; + const uint32_t newRefCount = --m_RefCount; if (newRefCount == 0) ReleaseThis(); return newRefCount; @@ -9423,7 +9938,7 @@ Allocation::Allocation(AllocatorPimpl* allocator, UINT64 size, UINT64 alignment, m_Size{ size }, m_Alignment{ alignment }, m_Resource{ NULL }, - m_CreationFrameIndex{ allocator->GetCurrentFrameIndex() }, + m_pPrivateData{ NULL }, m_Name{ NULL } { D3D12MA_ASSERT(allocator); @@ -9503,7 +10018,7 @@ NormalBlock* Allocation::GetBlock() } template -void Allocation::SetResource(ID3D12Resource* resource, const D3D12_RESOURCE_DESC_T* pResourceDesc) +void Allocation::SetResourcePointer(ID3D12Resource* resource, const D3D12_RESOURCE_DESC_T* pResourceDesc) { D3D12MA_ASSERT(m_Resource == NULL && pResourceDesc); m_Resource = resource; @@ -9573,20 +10088,20 @@ void Pool::GetStatistics(Statistics* pStats) { D3D12MA_ASSERT(pStats); D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - m_Pimpl->GetStatistics(*pStats); + m_Pimpl->GetStatistics(*pStats); } void Pool::CalculateStatistics(DetailedStatistics* pStats) { D3D12MA_ASSERT(pStats); D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - m_Pimpl->CalculateStatistics(*pStats); + m_Pimpl->CalculateStatistics(*pStats); } void Pool::SetName(LPCWSTR Name) { D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - m_Pimpl->SetName(Name); + m_Pimpl->SetName(Name); } LPCWSTR Pool::GetName() const @@ -9664,7 +10179,12 @@ HRESULT Allocator::CreateResource( return E_INVALIDARG; } D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - return m_Pimpl->CreateResource(pAllocDesc, pResourceDesc, InitialResourceState, pOptimizedClearValue, ppAllocation, riidResource, ppvResource); + return m_Pimpl->CreateResource( + pAllocDesc, + CREATE_RESOURCE_PARAMS(pResourceDesc, InitialResourceState, pOptimizedClearValue), + ppAllocation, + riidResource, + ppvResource); } #ifdef __ID3D12Device8_INTERFACE_DEFINED__ @@ -9683,10 +10203,42 @@ HRESULT Allocator::CreateResource2( return E_INVALIDARG; } D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - return m_Pimpl->CreateResource2(pAllocDesc, pResourceDesc, InitialResourceState, pOptimizedClearValue, ppAllocation, riidResource, ppvResource); + return m_Pimpl->CreateResource( + pAllocDesc, + CREATE_RESOURCE_PARAMS(pResourceDesc, InitialResourceState, pOptimizedClearValue), + ppAllocation, + riidResource, + ppvResource); } #endif // #ifdef __ID3D12Device8_INTERFACE_DEFINED__ +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ +HRESULT Allocator::CreateResource3( + const ALLOCATION_DESC* pAllocDesc, + const D3D12_RESOURCE_DESC1* pResourceDesc, + D3D12_BARRIER_LAYOUT InitialLayout, + const D3D12_CLEAR_VALUE* pOptimizedClearValue, + UINT32 NumCastableFormats, + DXGI_FORMAT* pCastableFormats, + Allocation** ppAllocation, + REFIID riidResource, + void** ppvResource) +{ + if (!pAllocDesc || !pResourceDesc || !ppAllocation) + { + D3D12MA_ASSERT(0 && "Invalid arguments passed to Allocator::CreateResource3."); + return E_INVALIDARG; + } + D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK + return m_Pimpl->CreateResource( + pAllocDesc, + CREATE_RESOURCE_PARAMS(pResourceDesc, InitialLayout, pOptimizedClearValue, NumCastableFormats, pCastableFormats), + ppAllocation, + riidResource, + ppvResource); +} +#endif // #ifdef __ID3D12Device10_INTERFACE_DEFINED__ + HRESULT Allocator::AllocateMemory( const ALLOCATION_DESC* pAllocDesc, const D3D12_RESOURCE_ALLOCATION_INFO* pAllocInfo, @@ -9716,8 +10268,65 @@ HRESULT Allocator::CreateAliasingResource( return E_INVALIDARG; } D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - return m_Pimpl->CreateAliasingResource(pAllocation, AllocationLocalOffset, pResourceDesc, InitialResourceState, pOptimizedClearValue, riidResource, ppvResource); + return m_Pimpl->CreateAliasingResource( + pAllocation, + AllocationLocalOffset, + CREATE_RESOURCE_PARAMS(pResourceDesc, InitialResourceState, pOptimizedClearValue), + riidResource, + ppvResource); +} + +#ifdef __ID3D12Device8_INTERFACE_DEFINED__ +HRESULT Allocator::CreateAliasingResource1( + Allocation* pAllocation, + UINT64 AllocationLocalOffset, + const D3D12_RESOURCE_DESC1* pResourceDesc, + D3D12_RESOURCE_STATES InitialResourceState, + const D3D12_CLEAR_VALUE* pOptimizedClearValue, + REFIID riidResource, + void** ppvResource) +{ + if (!pAllocation || !pResourceDesc || !ppvResource) + { + D3D12MA_ASSERT(0 && "Invalid arguments passed to Allocator::CreateAliasingResource."); + return E_INVALIDARG; + } + D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK + return m_Pimpl->CreateAliasingResource( + pAllocation, + AllocationLocalOffset, + CREATE_RESOURCE_PARAMS(pResourceDesc, InitialResourceState, pOptimizedClearValue), + riidResource, + ppvResource); } +#endif // #ifdef __ID3D12Device8_INTERFACE_DEFINED__ + +#ifdef __ID3D12Device10_INTERFACE_DEFINED__ +HRESULT Allocator::CreateAliasingResource2( + Allocation* pAllocation, + UINT64 AllocationLocalOffset, + const D3D12_RESOURCE_DESC1* pResourceDesc, + D3D12_BARRIER_LAYOUT InitialLayout, + const D3D12_CLEAR_VALUE* pOptimizedClearValue, + UINT32 NumCastableFormats, + DXGI_FORMAT* pCastableFormats, + REFIID riidResource, + void** ppvResource) +{ + if (!pAllocation || !pResourceDesc || !ppvResource) + { + D3D12MA_ASSERT(0 && "Invalid arguments passed to Allocator::CreateAliasingResource."); + return E_INVALIDARG; + } + D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK + return m_Pimpl->CreateAliasingResource( + pAllocation, + AllocationLocalOffset, + CREATE_RESOURCE_PARAMS(pResourceDesc, InitialLayout, pOptimizedClearValue, NumCastableFormats, pCastableFormats), + riidResource, + ppvResource); +} +#endif // #ifdef __ID3D12Device10_INTERFACE_DEFINED__ HRESULT Allocator::CreatePool( const POOL_DESC* pPoolDesc, @@ -9736,7 +10345,7 @@ HRESULT Allocator::CreatePool( return E_INVALIDARG; } D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - * ppPool = D3D12MA_NEW(m_Pimpl->GetAllocs(), Pool)(this, *pPoolDesc); + * ppPool = D3D12MA_NEW(m_Pimpl->GetAllocs(), Pool)(this, *pPoolDesc); HRESULT hr = (*ppPool)->m_Pimpl->Init(); if (SUCCEEDED(hr)) { @@ -9753,7 +10362,7 @@ HRESULT Allocator::CreatePool( void Allocator::SetCurrentFrameIndex(UINT frameIndex) { D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - m_Pimpl->SetCurrentFrameIndex(frameIndex); + m_Pimpl->SetCurrentFrameIndex(frameIndex); } void Allocator::GetBudget(Budget* pLocalBudget, Budget* pNonLocalBudget) @@ -9763,21 +10372,21 @@ void Allocator::GetBudget(Budget* pLocalBudget, Budget* pNonLocalBudget) return; } D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - m_Pimpl->GetBudget(pLocalBudget, pNonLocalBudget); + m_Pimpl->GetBudget(pLocalBudget, pNonLocalBudget); } void Allocator::CalculateStatistics(TotalStatistics* pStats) { D3D12MA_ASSERT(pStats); D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - m_Pimpl->CalculateStatistics(*pStats); + m_Pimpl->CalculateStatistics(*pStats); } void Allocator::BuildStatsString(WCHAR** ppStatsString, BOOL DetailedMap) const { D3D12MA_ASSERT(ppStatsString); D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - m_Pimpl->BuildStatsString(ppStatsString, DetailedMap); + m_Pimpl->BuildStatsString(ppStatsString, DetailedMap); } void Allocator::FreeStatsString(WCHAR* pStatsString) const @@ -9785,7 +10394,7 @@ void Allocator::FreeStatsString(WCHAR* pStatsString) const if (pStatsString != NULL) { D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - m_Pimpl->FreeStatsString(pStatsString); + m_Pimpl->FreeStatsString(pStatsString); } } @@ -9816,8 +10425,7 @@ Allocator::~Allocator() BOOL VirtualBlock::IsEmpty() const { D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - - return m_Pimpl->m_Metadata->IsEmpty() ? TRUE : FALSE; + return m_Pimpl->m_Metadata->IsEmpty() ? TRUE : FALSE; } void VirtualBlock::GetAllocationInfo(VirtualAllocation allocation, VIRTUAL_ALLOCATION_INFO* pInfo) const @@ -9825,8 +10433,7 @@ void VirtualBlock::GetAllocationInfo(VirtualAllocation allocation, VIRTUAL_ALLOC D3D12MA_ASSERT(allocation.AllocHandle != (AllocHandle)0 && pInfo); D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - - m_Pimpl->m_Metadata->GetAllocationInfo(allocation.AllocHandle, *pInfo); + m_Pimpl->m_Metadata->GetAllocationInfo(allocation.AllocHandle, *pInfo); } HRESULT VirtualBlock::Allocate(const VIRTUAL_ALLOCATION_DESC* pDesc, VirtualAllocation* pAllocation, UINT64* pOffset) @@ -9839,7 +10446,7 @@ HRESULT VirtualBlock::Allocate(const VIRTUAL_ALLOCATION_DESC* pDesc, VirtualAllo D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - const UINT64 alignment = pDesc->Alignment != 0 ? pDesc->Alignment : 1; + const UINT64 alignment = pDesc->Alignment != 0 ? pDesc->Alignment : 1; AllocationRequest allocRequest = {}; if (m_Pimpl->m_Metadata->CreateAllocationRequest( pDesc->Size, @@ -9871,7 +10478,7 @@ void VirtualBlock::FreeAllocation(VirtualAllocation allocation) D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - m_Pimpl->m_Metadata->Free(allocation.AllocHandle); + m_Pimpl->m_Metadata->Free(allocation.AllocHandle); D3D12MA_HEAVY_ASSERT(m_Pimpl->m_Metadata->Validate()); } @@ -9879,7 +10486,7 @@ void VirtualBlock::Clear() { D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - m_Pimpl->m_Metadata->Clear(); + m_Pimpl->m_Metadata->Clear(); D3D12MA_HEAVY_ASSERT(m_Pimpl->m_Metadata->Validate()); } @@ -9888,15 +10495,14 @@ void VirtualBlock::SetAllocationPrivateData(VirtualAllocation allocation, void* D3D12MA_ASSERT(allocation.AllocHandle != (AllocHandle)0); D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - - m_Pimpl->m_Metadata->SetAllocationPrivateData(allocation.AllocHandle, pPrivateData); + m_Pimpl->m_Metadata->SetAllocationPrivateData(allocation.AllocHandle, pPrivateData); } void VirtualBlock::GetStatistics(Statistics* pStats) const { D3D12MA_ASSERT(pStats); D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - D3D12MA_HEAVY_ASSERT(m_Pimpl->m_Metadata->Validate()); + D3D12MA_HEAVY_ASSERT(m_Pimpl->m_Metadata->Validate()); ClearStatistics(*pStats); m_Pimpl->m_Metadata->AddStatistics(*pStats); } @@ -9905,7 +10511,7 @@ void VirtualBlock::CalculateStatistics(DetailedStatistics* pStats) const { D3D12MA_ASSERT(pStats); D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - D3D12MA_HEAVY_ASSERT(m_Pimpl->m_Metadata->Validate()); + D3D12MA_HEAVY_ASSERT(m_Pimpl->m_Metadata->Validate()); ClearDetailedStatistics(*pStats); m_Pimpl->m_Metadata->AddDetailedStatistics(*pStats); } @@ -9916,11 +10522,13 @@ void VirtualBlock::BuildStatsString(WCHAR** ppStatsString) const D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - StringBuilder sb(m_Pimpl->m_AllocationCallbacks); + StringBuilder sb(m_Pimpl->m_AllocationCallbacks); { JsonWriter json(m_Pimpl->m_AllocationCallbacks, sb); D3D12MA_HEAVY_ASSERT(m_Pimpl->m_Metadata->Validate()); + json.BeginObject(); m_Pimpl->m_Metadata->WriteAllocationInfoToJson(json); + json.EndObject(); } // Scope for JsonWriter const size_t length = sb.GetLength(); @@ -9935,7 +10543,7 @@ void VirtualBlock::FreeStatsString(WCHAR* pStatsString) const if (pStatsString != NULL) { D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK - D3D12MA::Free(m_Pimpl->m_AllocationCallbacks, pStatsString); + D3D12MA::Free(m_Pimpl->m_AllocationCallbacks, pStatsString); } } diff --git a/3rdparty/fmt/fmt b/3rdparty/fmt/fmt index b6f4ceaed0a0a2..5cfd28d476c685 160000 --- a/3rdparty/fmt/fmt +++ b/3rdparty/fmt/fmt @@ -1 +1 @@ -Subproject commit b6f4ceaed0a0a24ccf575fab6c56dd50ccf6f1a9 +Subproject commit 5cfd28d476c6859617878f951931b8ce7d36b9df diff --git a/3rdparty/include/vk_mem_alloc.h b/3rdparty/include/vk_mem_alloc.h index a629d6b6245860..b8795dcdf3f647 100644 --- a/3rdparty/include/vk_mem_alloc.h +++ b/3rdparty/include/vk_mem_alloc.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2022 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -25,12 +25,12 @@ /** \mainpage Vulkan Memory Allocator -Version 3.0.0-development (2021-06-21) +Version 3.1.0-development -Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. \n +Copyright (c) 2017-2022 Advanced Micro Devices, Inc. All rights reserved. \n License: MIT -Documentation of all members: vk_mem_alloc.h +API documentation divided into groups: [Modules](modules.html) \section main_table_of_contents Table of contents @@ -49,7 +49,6 @@ Documentation of all members: vk_mem_alloc.h - [Mapping functions](@ref memory_mapping_mapping_functions) - [Persistently mapped memory](@ref memory_mapping_persistently_mapped_memory) - [Cache flush and invalidate](@ref memory_mapping_cache_control) - - [Finding out if memory is mappable](@ref memory_mapping_finding_if_memory_mappable) - \subpage staying_within_budget - [Querying for budget](@ref staying_within_budget_querying_for_budget) - [Controlling memory usage](@ref staying_within_budget_controlling_memory_usage) @@ -61,59 +60,84 @@ Documentation of all members: vk_mem_alloc.h - [Stack](@ref linear_algorithm_stack) - [Double stack](@ref linear_algorithm_double_stack) - [Ring buffer](@ref linear_algorithm_ring_buffer) - - [Buddy allocation algorithm](@ref buddy_algorithm) - \subpage defragmentation - - [Defragmenting CPU memory](@ref defragmentation_cpu) - - [Defragmenting GPU memory](@ref defragmentation_gpu) - - [Additional notes](@ref defragmentation_additional_notes) - - [Writing custom allocation algorithm](@ref defragmentation_custom_algorithm) - - \subpage lost_allocations - \subpage statistics - [Numeric statistics](@ref statistics_numeric_statistics) - [JSON dump](@ref statistics_json_dump) - \subpage allocation_annotation - [Allocation user data](@ref allocation_user_data) - [Allocation names](@ref allocation_names) + - \subpage virtual_allocator - \subpage debugging_memory_usage - [Memory initialization](@ref debugging_memory_usage_initialization) - [Margins](@ref debugging_memory_usage_margins) - [Corruption detection](@ref debugging_memory_usage_corruption_detection) - - \subpage record_and_replay - \subpage opengl_interop - \subpage usage_patterns - - [Common mistakes](@ref usage_patterns_common_mistakes) - - [Simple patterns](@ref usage_patterns_simple) - - [Advanced patterns](@ref usage_patterns_advanced) + - [GPU-only resource](@ref usage_patterns_gpu_only) + - [Staging copy for upload](@ref usage_patterns_staging_copy_upload) + - [Readback](@ref usage_patterns_readback) + - [Advanced data uploading](@ref usage_patterns_advanced_data_uploading) + - [Other use cases](@ref usage_patterns_other_use_cases) - \subpage configuration - [Pointers to Vulkan functions](@ref config_Vulkan_functions) - [Custom host memory allocator](@ref custom_memory_allocator) - [Device memory allocation callbacks](@ref allocation_callbacks) - [Device heap memory limit](@ref heap_memory_limit) - - \subpage vk_khr_dedicated_allocation - - \subpage enabling_buffer_device_address - - \subpage vk_amd_device_coherent_memory +- Extension support + - \subpage vk_khr_dedicated_allocation + - \subpage enabling_buffer_device_address + - \subpage vk_ext_memory_priority + - \subpage vk_amd_device_coherent_memory - \subpage general_considerations - [Thread safety](@ref general_considerations_thread_safety) + - [Versioning and compatibility](@ref general_considerations_versioning_and_compatibility) - [Validation layer warnings](@ref general_considerations_validation_layer_warnings) - [Allocation algorithm](@ref general_considerations_allocation_algorithm) - [Features not supported](@ref general_considerations_features_not_supported) \section main_see_also See also -- [Product page on GPUOpen](https://gpuopen.com/gaming-product/vulkan-memory-allocator/) -- [Source repository on GitHub](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator) +- [**Product page on GPUOpen**](https://gpuopen.com/gaming-product/vulkan-memory-allocator/) +- [**Source repository on GitHub**](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator) + +\defgroup group_init Library initialization + +\brief API elements related to the initialization and management of the entire library, especially #VmaAllocator object. + +\defgroup group_alloc Memory allocation + +\brief API elements related to the allocation, deallocation, and management of Vulkan memory, buffers, images. +Most basic ones being: vmaCreateBuffer(), vmaCreateImage(). + +\defgroup group_virtual Virtual allocator + +\brief API elements related to the mechanism of \ref virtual_allocator - using the core allocation algorithm +for user-defined purpose without allocating any real GPU memory. + +\defgroup group_stats Statistics + +\brief API elements that query current status of the allocator, from memory usage, budget, to full dump of the internal state in JSON format. +See documentation chapter: \ref statistics. */ + #ifdef __cplusplus extern "C" { #endif -/* -Define this macro to 0/1 to disable/enable support for recording functionality, -available through VmaAllocatorCreateInfo::pRecordSettings. -*/ -#ifndef VMA_RECORDING_ENABLED - #define VMA_RECORDING_ENABLED 0 +#include + +#if !defined(VMA_VULKAN_VERSION) + #if defined(VK_VERSION_1_3) + #define VMA_VULKAN_VERSION 1003000 + #elif defined(VK_VERSION_1_2) + #define VMA_VULKAN_VERSION 1002000 + #elif defined(VK_VERSION_1_1) + #define VMA_VULKAN_VERSION 1001000 + #else + #define VMA_VULKAN_VERSION 1000000 + #endif #endif #if defined(__ANDROID__) && defined(VK_NO_PROTOTYPES) && VMA_STATIC_VULKAN_FUNCTIONS @@ -145,23 +169,6 @@ available through VmaAllocatorCreateInfo::pRecordSettings. #endif // #if VMA_VULKAN_VERSION >= 1001000 #endif // #if defined(__ANDROID__) && VMA_STATIC_VULKAN_FUNCTIONS && VK_NO_PROTOTYPES -#ifndef VULKAN_H_ - #include -#endif - -// Define this macro to declare maximum supported Vulkan version in format AAABBBCCC, -// where AAA = major, BBB = minor, CCC = patch. -// If you want to use version > 1.0, it still needs to be enabled via VmaAllocatorCreateInfo::vulkanApiVersion. -#if !defined(VMA_VULKAN_VERSION) - #if defined(VK_VERSION_1_2) - #define VMA_VULKAN_VERSION 1002000 - #elif defined(VK_VERSION_1_1) - #define VMA_VULKAN_VERSION 1001000 - #else - #define VMA_VULKAN_VERSION 1000000 - #endif -#endif - #if !defined(VMA_DEDICATED_ALLOCATION) #if VK_KHR_get_memory_requirements2 && VK_KHR_dedicated_allocation #define VMA_DEDICATED_ALLOCATION 1 @@ -225,6 +232,12 @@ available through VmaAllocatorCreateInfo::pRecordSettings. #define VMA_CALL_POST #endif +// Define this macro to decorate pNext pointers with an attribute specifying the Vulkan +// structure that will be extended via the pNext chain. +#ifndef VMA_EXTENDS_VK_STRUCT + #define VMA_EXTENDS_VK_STRUCT(vkStruct) +#endif + // Define this macro to decorate pointers with an attribute specifying the // length of the array they point to if they are not null. // @@ -278,50 +291,29 @@ available through VmaAllocatorCreateInfo::pRecordSettings. #endif #endif -/** \struct VmaAllocator -\brief Represents main object of this library initialized. - -Fill structure #VmaAllocatorCreateInfo and call function vmaCreateAllocator() to create it. -Call function vmaDestroyAllocator() to destroy it. - -It is recommended to create just one object of this type per `VkDevice` object, -right after Vulkan is initialized and keep it alive until before Vulkan device is destroyed. -*/ -VK_DEFINE_HANDLE(VmaAllocator) - -/// Callback function called after successful vkAllocateMemory. -typedef void (VKAPI_PTR *PFN_vmaAllocateDeviceMemoryFunction)( - VmaAllocator VMA_NOT_NULL allocator, - uint32_t memoryType, - VkDeviceMemory VMA_NOT_NULL_NON_DISPATCHABLE memory, - VkDeviceSize size, - void* VMA_NULLABLE pUserData); -/// Callback function called before vkFreeMemory. -typedef void (VKAPI_PTR *PFN_vmaFreeDeviceMemoryFunction)( - VmaAllocator VMA_NOT_NULL allocator, - uint32_t memoryType, - VkDeviceMemory VMA_NOT_NULL_NON_DISPATCHABLE memory, - VkDeviceSize size, - void* VMA_NULLABLE pUserData); +#ifndef VMA_STATS_STRING_ENABLED + #define VMA_STATS_STRING_ENABLED 1 +#endif -/** \brief Set of callbacks that the library will call for `vkAllocateMemory` and `vkFreeMemory`. +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +// +// INTERFACE +// +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// -Provided for informative purpose, e.g. to gather statistics about number of -allocations or total amount of memory allocated in Vulkan. +// Sections for managing code placement in file, only for development purposes e.g. for convenient folding inside an IDE. +#ifndef _VMA_ENUM_DECLARATIONS -Used in VmaAllocatorCreateInfo::pDeviceMemoryCallbacks. +/** +\addtogroup group_init +@{ */ -typedef struct VmaDeviceMemoryCallbacks { - /// Optional, can be null. - PFN_vmaAllocateDeviceMemoryFunction VMA_NULLABLE pfnAllocate; - /// Optional, can be null. - PFN_vmaFreeDeviceMemoryFunction VMA_NULLABLE pfnFree; - /// Optional, can be null. - void* VMA_NULLABLE pUserData; -} VmaDeviceMemoryCallbacks; /// Flags for created #VmaAllocator. -typedef enum VmaAllocatorCreateFlagBits { +typedef enum VmaAllocatorCreateFlagBits +{ /** \brief Allocator and all objects created from it will not be synchronized internally, so you must guarantee they are used from only one thread at a time or synchronized externally by you. Using this flag may increase performance because internal mutexes are not used. @@ -435,364 +427,411 @@ typedef enum VmaAllocatorCreateFlagBits { VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VmaAllocatorCreateFlagBits; +/// See #VmaAllocatorCreateFlagBits. typedef VkFlags VmaAllocatorCreateFlags; -/** \brief Pointers to some Vulkan functions - a subset used by the library. +/** @} */ -Used in VmaAllocatorCreateInfo::pVulkanFunctions. +/** +\addtogroup group_alloc +@{ */ -typedef struct VmaVulkanFunctions { - PFN_vkGetPhysicalDeviceProperties VMA_NULLABLE vkGetPhysicalDeviceProperties; - PFN_vkGetPhysicalDeviceMemoryProperties VMA_NULLABLE vkGetPhysicalDeviceMemoryProperties; - PFN_vkAllocateMemory VMA_NULLABLE vkAllocateMemory; - PFN_vkFreeMemory VMA_NULLABLE vkFreeMemory; - PFN_vkMapMemory VMA_NULLABLE vkMapMemory; - PFN_vkUnmapMemory VMA_NULLABLE vkUnmapMemory; - PFN_vkFlushMappedMemoryRanges VMA_NULLABLE vkFlushMappedMemoryRanges; - PFN_vkInvalidateMappedMemoryRanges VMA_NULLABLE vkInvalidateMappedMemoryRanges; - PFN_vkBindBufferMemory VMA_NULLABLE vkBindBufferMemory; - PFN_vkBindImageMemory VMA_NULLABLE vkBindImageMemory; - PFN_vkGetBufferMemoryRequirements VMA_NULLABLE vkGetBufferMemoryRequirements; - PFN_vkGetImageMemoryRequirements VMA_NULLABLE vkGetImageMemoryRequirements; - PFN_vkCreateBuffer VMA_NULLABLE vkCreateBuffer; - PFN_vkDestroyBuffer VMA_NULLABLE vkDestroyBuffer; - PFN_vkCreateImage VMA_NULLABLE vkCreateImage; - PFN_vkDestroyImage VMA_NULLABLE vkDestroyImage; - PFN_vkCmdCopyBuffer VMA_NULLABLE vkCmdCopyBuffer; -#if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 - PFN_vkGetBufferMemoryRequirements2KHR VMA_NULLABLE vkGetBufferMemoryRequirements2KHR; - PFN_vkGetImageMemoryRequirements2KHR VMA_NULLABLE vkGetImageMemoryRequirements2KHR; -#endif -#if VMA_BIND_MEMORY2 || VMA_VULKAN_VERSION >= 1001000 - PFN_vkBindBufferMemory2KHR VMA_NULLABLE vkBindBufferMemory2KHR; - PFN_vkBindImageMemory2KHR VMA_NULLABLE vkBindImageMemory2KHR; -#endif -#if VMA_MEMORY_BUDGET || VMA_VULKAN_VERSION >= 1001000 - PFN_vkGetPhysicalDeviceMemoryProperties2KHR VMA_NULLABLE vkGetPhysicalDeviceMemoryProperties2KHR; -#endif -} VmaVulkanFunctions; -/// Flags to be used in VmaRecordSettings::flags. -typedef enum VmaRecordFlagBits { - /** \brief Enables flush after recording every function call. - - Enable it if you expect your application to crash, which may leave recording file truncated. - It may degrade performance though. +/// \brief Intended usage of the allocated memory. +typedef enum VmaMemoryUsage +{ + /** No intended memory usage specified. + Use other members of VmaAllocationCreateInfo to specify your requirements. */ - VMA_RECORD_FLUSH_AFTER_CALL_BIT = 0x00000001, - - VMA_RECORD_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VmaRecordFlagBits; -typedef VkFlags VmaRecordFlags; + VMA_MEMORY_USAGE_UNKNOWN = 0, + /** + \deprecated Obsolete, preserved for backward compatibility. + Prefers `VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT`. + */ + VMA_MEMORY_USAGE_GPU_ONLY = 1, + /** + \deprecated Obsolete, preserved for backward compatibility. + Guarantees `VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT` and `VK_MEMORY_PROPERTY_HOST_COHERENT_BIT`. + */ + VMA_MEMORY_USAGE_CPU_ONLY = 2, + /** + \deprecated Obsolete, preserved for backward compatibility. + Guarantees `VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT`, prefers `VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT`. + */ + VMA_MEMORY_USAGE_CPU_TO_GPU = 3, + /** + \deprecated Obsolete, preserved for backward compatibility. + Guarantees `VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT`, prefers `VK_MEMORY_PROPERTY_HOST_CACHED_BIT`. + */ + VMA_MEMORY_USAGE_GPU_TO_CPU = 4, + /** + \deprecated Obsolete, preserved for backward compatibility. + Prefers not `VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT`. + */ + VMA_MEMORY_USAGE_CPU_COPY = 5, + /** + Lazily allocated GPU memory having `VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT`. + Exists mostly on mobile platforms. Using it on desktop PC or other GPUs with no such memory type present will fail the allocation. -/// Parameters for recording calls to VMA functions. To be used in VmaAllocatorCreateInfo::pRecordSettings. -typedef struct VmaRecordSettings -{ - /// Flags for recording. Use #VmaRecordFlagBits enum. - VmaRecordFlags flags; - /** \brief Path to the file that should be written by the recording. + Usage: Memory for transient attachment images (color attachments, depth attachments etc.), created with `VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT`. - Suggested extension: "csv". - If the file already exists, it will be overwritten. - It will be opened for the whole time #VmaAllocator object is alive. - If opening this file fails, creation of the whole allocator object fails. + Allocations with this usage are always created as dedicated - it implies #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT. */ - const char* VMA_NOT_NULL pFilePath; -} VmaRecordSettings; + VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED = 6, + /** + Selects best memory type automatically. + This flag is recommended for most common use cases. -/// Description of a Allocator to be created. -typedef struct VmaAllocatorCreateInfo -{ - /// Flags for created allocator. Use #VmaAllocatorCreateFlagBits enum. - VmaAllocatorCreateFlags flags; - /// Vulkan physical device. - /** It must be valid throughout whole lifetime of created allocator. */ - VkPhysicalDevice VMA_NOT_NULL physicalDevice; - /// Vulkan device. - /** It must be valid throughout whole lifetime of created allocator. */ - VkDevice VMA_NOT_NULL device; - /// Preferred size of a single `VkDeviceMemory` block to be allocated from large heaps > 1 GiB. Optional. - /** Set to 0 to use default, which is currently 256 MiB. */ - VkDeviceSize preferredLargeHeapBlockSize; - /// Custom CPU memory allocation callbacks. Optional. - /** Optional, can be null. When specified, will also be used for all CPU-side memory allocations. */ - const VkAllocationCallbacks* VMA_NULLABLE pAllocationCallbacks; - /// Informative callbacks for `vkAllocateMemory`, `vkFreeMemory`. Optional. - /** Optional, can be null. */ - const VmaDeviceMemoryCallbacks* VMA_NULLABLE pDeviceMemoryCallbacks; - /** \brief Maximum number of additional frames that are in use at the same time as current frame. + When using this flag, if you want to map the allocation (using vmaMapMemory() or #VMA_ALLOCATION_CREATE_MAPPED_BIT), + you must pass one of the flags: #VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or #VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT + in VmaAllocationCreateInfo::flags. - This value is used only when you make allocations with - VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT flag. Such allocation cannot become - lost if allocation.lastUseFrameIndex >= allocator.currentFrameIndex - frameInUseCount. + It can be used only with functions that let the library know `VkBufferCreateInfo` or `VkImageCreateInfo`, e.g. + vmaCreateBuffer(), vmaCreateImage(), vmaFindMemoryTypeIndexForBufferInfo(), vmaFindMemoryTypeIndexForImageInfo() + and not with generic memory allocation functions. + */ + VMA_MEMORY_USAGE_AUTO = 7, + /** + Selects best memory type automatically with preference for GPU (device) memory. - For example, if you double-buffer your command buffers, so resources used for - rendering in previous frame may still be in use by the GPU at the moment you - allocate resources needed for the current frame, set this value to 1. + When using this flag, if you want to map the allocation (using vmaMapMemory() or #VMA_ALLOCATION_CREATE_MAPPED_BIT), + you must pass one of the flags: #VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or #VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT + in VmaAllocationCreateInfo::flags. - If you want to allow any allocations other than used in the current frame to - become lost, set this value to 0. + It can be used only with functions that let the library know `VkBufferCreateInfo` or `VkImageCreateInfo`, e.g. + vmaCreateBuffer(), vmaCreateImage(), vmaFindMemoryTypeIndexForBufferInfo(), vmaFindMemoryTypeIndexForImageInfo() + and not with generic memory allocation functions. */ - uint32_t frameInUseCount; - /** \brief Either null or a pointer to an array of limits on maximum number of bytes that can be allocated out of particular Vulkan memory heap. + VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE = 8, + /** + Selects best memory type automatically with preference for CPU (host) memory. - If not NULL, it must be a pointer to an array of - `VkPhysicalDeviceMemoryProperties::memoryHeapCount` elements, defining limit on - maximum number of bytes that can be allocated out of particular Vulkan memory - heap. + When using this flag, if you want to map the allocation (using vmaMapMemory() or #VMA_ALLOCATION_CREATE_MAPPED_BIT), + you must pass one of the flags: #VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or #VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT + in VmaAllocationCreateInfo::flags. - Any of the elements may be equal to `VK_WHOLE_SIZE`, which means no limit on that - heap. This is also the default in case of `pHeapSizeLimit` = NULL. + It can be used only with functions that let the library know `VkBufferCreateInfo` or `VkImageCreateInfo`, e.g. + vmaCreateBuffer(), vmaCreateImage(), vmaFindMemoryTypeIndexForBufferInfo(), vmaFindMemoryTypeIndexForImageInfo() + and not with generic memory allocation functions. + */ + VMA_MEMORY_USAGE_AUTO_PREFER_HOST = 9, - If there is a limit defined for a heap: + VMA_MEMORY_USAGE_MAX_ENUM = 0x7FFFFFFF +} VmaMemoryUsage; - - If user tries to allocate more memory from that heap using this allocator, - the allocation fails with `VK_ERROR_OUT_OF_DEVICE_MEMORY`. - - If the limit is smaller than heap size reported in `VkMemoryHeap::size`, the - value of this limit will be reported instead when using vmaGetMemoryProperties(). +/// Flags to be passed as VmaAllocationCreateInfo::flags. +typedef enum VmaAllocationCreateFlagBits +{ + /** \brief Set this flag if the allocation should have its own memory block. - Warning! Using this feature may not be equivalent to installing a GPU with - smaller amount of memory, because graphics driver doesn't necessary fail new - allocations with `VK_ERROR_OUT_OF_DEVICE_MEMORY` result when memory capacity is - exceeded. It may return success and just silently migrate some device memory - blocks to system RAM. This driver behavior can also be controlled using - VK_AMD_memory_overallocation_behavior extension. + Use it for special, big resources, like fullscreen images used as attachments. */ - const VkDeviceSize* VMA_NULLABLE VMA_LEN_IF_NOT_NULL("VkPhysicalDeviceMemoryProperties::memoryHeapCount") pHeapSizeLimit; + VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT = 0x00000001, - /** \brief Pointers to Vulkan functions. Can be null. + /** \brief Set this flag to only try to allocate from existing `VkDeviceMemory` blocks and never create new such block. - For details see [Pointers to Vulkan functions](@ref config_Vulkan_functions). - */ - const VmaVulkanFunctions* VMA_NULLABLE pVulkanFunctions; - /** \brief Parameters for recording of VMA calls. Can be null. + If new allocation cannot be placed in any of the existing blocks, allocation + fails with `VK_ERROR_OUT_OF_DEVICE_MEMORY` error. - If not null, it enables recording of calls to VMA functions to a file. - If support for recording is not enabled using `VMA_RECORDING_ENABLED` macro, - creation of the allocator object fails with `VK_ERROR_FEATURE_NOT_PRESENT`. + You should not use #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT and + #VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT at the same time. It makes no sense. */ - const VmaRecordSettings* VMA_NULLABLE pRecordSettings; - /** \brief Handle to Vulkan instance object. + VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT = 0x00000002, + /** \brief Set this flag to use a memory that will be persistently mapped and retrieve pointer to it. - Starting from version 3.0.0 this member is no longer optional, it must be set! + Pointer to mapped memory will be returned through VmaAllocationInfo::pMappedData. + + It is valid to use this flag for allocation made from memory type that is not + `HOST_VISIBLE`. This flag is then ignored and memory is not mapped. This is + useful if you need an allocation that is efficient to use on GPU + (`DEVICE_LOCAL`) and still want to map it directly if possible on platforms that + support it (e.g. Intel GPU). */ - VkInstance VMA_NOT_NULL instance; - /** \brief Optional. The highest version of Vulkan that the application is designed to use. + VMA_ALLOCATION_CREATE_MAPPED_BIT = 0x00000004, + /** \deprecated Preserved for backward compatibility. Consider using vmaSetAllocationName() instead. - It must be a value in the format as created by macro `VK_MAKE_VERSION` or a constant like: `VK_API_VERSION_1_1`, `VK_API_VERSION_1_0`. - The patch version number specified is ignored. Only the major and minor versions are considered. - It must be less or equal (preferably equal) to value as passed to `vkCreateInstance` as `VkApplicationInfo::apiVersion`. - Only versions 1.0, 1.1, 1.2 are supported by the current implementation. - Leaving it initialized to zero is equivalent to `VK_API_VERSION_1_0`. + Set this flag to treat VmaAllocationCreateInfo::pUserData as pointer to a + null-terminated string. Instead of copying pointer value, a local copy of the + string is made and stored in allocation's `pName`. The string is automatically + freed together with the allocation. It is also used in vmaBuildStatsString(). */ - uint32_t vulkanApiVersion; -#if VMA_EXTERNAL_MEMORY - /** \brief Either null or a pointer to an array of external memory handle types for each Vulkan memory type. + VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT = 0x00000020, + /** Allocation will be created from upper stack in a double stack pool. - If not NULL, it must be a pointer to an array of `VkPhysicalDeviceMemoryProperties::memoryTypeCount` - elements, defining external memory handle types of particular Vulkan memory type, - to be passed using `VkExportMemoryAllocateInfoKHR`. + This flag is only allowed for custom pools created with #VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT flag. + */ + VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT = 0x00000040, + /** Create both buffer/image and allocation, but don't bind them together. + It is useful when you want to bind yourself to do some more advanced binding, e.g. using some extensions. + The flag is meaningful only with functions that bind by default: vmaCreateBuffer(), vmaCreateImage(). + Otherwise it is ignored. - Any of the elements may be equal to 0, which means not to use `VkExportMemoryAllocateInfoKHR` on this memory type. - This is also the default in case of `pTypeExternalMemoryHandleTypes` = NULL. + If you want to make sure the new buffer/image is not tied to the new memory allocation + through `VkMemoryDedicatedAllocateInfoKHR` structure in case the allocation ends up in its own memory block, + use also flag #VMA_ALLOCATION_CREATE_CAN_ALIAS_BIT. */ - const VkExternalMemoryHandleTypeFlagsKHR* VMA_NULLABLE VMA_LEN_IF_NOT_NULL("VkPhysicalDeviceMemoryProperties::memoryTypeCount") pTypeExternalMemoryHandleTypes; -#endif // #if VMA_EXTERNAL_MEMORY -} VmaAllocatorCreateInfo; + VMA_ALLOCATION_CREATE_DONT_BIND_BIT = 0x00000080, + /** Create allocation only if additional device memory required for it, if any, won't exceed + memory budget. Otherwise return `VK_ERROR_OUT_OF_DEVICE_MEMORY`. + */ + VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT = 0x00000100, + /** \brief Set this flag if the allocated memory will have aliasing resources. -/// Creates Allocator object. -VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateAllocator( - const VmaAllocatorCreateInfo* VMA_NOT_NULL pCreateInfo, - VmaAllocator VMA_NULLABLE * VMA_NOT_NULL pAllocator); + Usage of this flag prevents supplying `VkMemoryDedicatedAllocateInfoKHR` when #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT is specified. + Otherwise created dedicated memory will not be suitable for aliasing resources, resulting in Vulkan Validation Layer errors. + */ + VMA_ALLOCATION_CREATE_CAN_ALIAS_BIT = 0x00000200, + /** + Requests possibility to map the allocation (using vmaMapMemory() or #VMA_ALLOCATION_CREATE_MAPPED_BIT). -/// Destroys allocator object. -VMA_CALL_PRE void VMA_CALL_POST vmaDestroyAllocator( - VmaAllocator VMA_NULLABLE allocator); + - If you use #VMA_MEMORY_USAGE_AUTO or other `VMA_MEMORY_USAGE_AUTO*` value, + you must use this flag to be able to map the allocation. Otherwise, mapping is incorrect. + - If you use other value of #VmaMemoryUsage, this flag is ignored and mapping is always possible in memory types that are `HOST_VISIBLE`. + This includes allocations created in \ref custom_memory_pools. -/** \brief Information about existing #VmaAllocator object. -*/ -typedef struct VmaAllocatorInfo -{ - /** \brief Handle to Vulkan instance object. + Declares that mapped memory will only be written sequentially, e.g. using `memcpy()` or a loop writing number-by-number, + never read or accessed randomly, so a memory type can be selected that is uncached and write-combined. - This is the same value as has been passed through VmaAllocatorCreateInfo::instance. + \warning Violating this declaration may work correctly, but will likely be very slow. + Watch out for implicit reads introduced by doing e.g. `pMappedData[i] += x;` + Better prepare your data in a local variable and `memcpy()` it to the mapped pointer all at once. */ - VkInstance VMA_NOT_NULL instance; - /** \brief Handle to Vulkan physical device object. + VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT = 0x00000400, + /** + Requests possibility to map the allocation (using vmaMapMemory() or #VMA_ALLOCATION_CREATE_MAPPED_BIT). - This is the same value as has been passed through VmaAllocatorCreateInfo::physicalDevice. - */ - VkPhysicalDevice VMA_NOT_NULL physicalDevice; - /** \brief Handle to Vulkan device object. + - If you use #VMA_MEMORY_USAGE_AUTO or other `VMA_MEMORY_USAGE_AUTO*` value, + you must use this flag to be able to map the allocation. Otherwise, mapping is incorrect. + - If you use other value of #VmaMemoryUsage, this flag is ignored and mapping is always possible in memory types that are `HOST_VISIBLE`. + This includes allocations created in \ref custom_memory_pools. - This is the same value as has been passed through VmaAllocatorCreateInfo::device. + Declares that mapped memory can be read, written, and accessed in random order, + so a `HOST_CACHED` memory type is required. */ - VkDevice VMA_NOT_NULL device; -} VmaAllocatorInfo; + VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT = 0x00000800, + /** + Together with #VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or #VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT, + it says that despite request for host access, a not-`HOST_VISIBLE` memory type can be selected + if it may improve performance. + + By using this flag, you declare that you will check if the allocation ended up in a `HOST_VISIBLE` memory type + (e.g. using vmaGetAllocationMemoryProperties()) and if not, you will create some "staging" buffer and + issue an explicit transfer to write/read your data. + To prepare for this possibility, don't forget to add appropriate flags like + `VK_BUFFER_USAGE_TRANSFER_DST_BIT`, `VK_BUFFER_USAGE_TRANSFER_SRC_BIT` to the parameters of created buffer or image. + */ + VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT = 0x00001000, + /** Allocation strategy that chooses smallest possible free range for the allocation + to minimize memory usage and fragmentation, possibly at the expense of allocation time. + */ + VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT = 0x00010000, + /** Allocation strategy that chooses first suitable free range for the allocation - + not necessarily in terms of the smallest offset but the one that is easiest and fastest to find + to minimize allocation time, possibly at the expense of allocation quality. + */ + VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT = 0x00020000, + /** Allocation strategy that chooses always the lowest offset in available space. + This is not the most efficient strategy but achieves highly packed data. + Used internally by defragmentation, not recommended in typical usage. + */ + VMA_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT = 0x00040000, + /** Alias to #VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT. + */ + VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT = VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT, + /** Alias to #VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT. + */ + VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT = VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT, + /** A bit mask to extract only `STRATEGY` bits from entire set of flags. + */ + VMA_ALLOCATION_CREATE_STRATEGY_MASK = + VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT | + VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT | + VMA_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT, -/** \brief Returns information about existing #VmaAllocator object - handle to Vulkan device etc. + VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VmaAllocationCreateFlagBits; +/// See #VmaAllocationCreateFlagBits. +typedef VkFlags VmaAllocationCreateFlags; -It might be useful if you want to keep just the #VmaAllocator handle and fetch other required handles to -`VkPhysicalDevice`, `VkDevice` etc. every time using this function. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaGetAllocatorInfo(VmaAllocator VMA_NOT_NULL allocator, VmaAllocatorInfo* VMA_NOT_NULL pAllocatorInfo); +/// Flags to be passed as VmaPoolCreateInfo::flags. +typedef enum VmaPoolCreateFlagBits +{ + /** \brief Use this flag if you always allocate only buffers and linear images or only optimal images out of this pool and so Buffer-Image Granularity can be ignored. -/** -PhysicalDeviceProperties are fetched from physicalDevice by the allocator. -You can access it here, without fetching it again on your own. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaGetPhysicalDeviceProperties( - VmaAllocator VMA_NOT_NULL allocator, - const VkPhysicalDeviceProperties* VMA_NULLABLE * VMA_NOT_NULL ppPhysicalDeviceProperties); + This is an optional optimization flag. -/** -PhysicalDeviceMemoryProperties are fetched from physicalDevice by the allocator. -You can access it here, without fetching it again on your own. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaGetMemoryProperties( - VmaAllocator VMA_NOT_NULL allocator, - const VkPhysicalDeviceMemoryProperties* VMA_NULLABLE * VMA_NOT_NULL ppPhysicalDeviceMemoryProperties); + If you always allocate using vmaCreateBuffer(), vmaCreateImage(), + vmaAllocateMemoryForBuffer(), then you don't need to use it because allocator + knows exact type of your allocations so it can handle Buffer-Image Granularity + in the optimal way. -/** -\brief Given Memory Type Index, returns Property Flags of this memory type. + If you also allocate using vmaAllocateMemoryForImage() or vmaAllocateMemory(), + exact type of such allocations is not known, so allocator must be conservative + in handling Buffer-Image Granularity, which can lead to suboptimal allocation + (wasted memory). In that case, if you can make sure you always allocate only + buffers and linear images or only optimal images out of this pool, use this flag + to make allocator disregard Buffer-Image Granularity and so make allocations + faster and more optimal. + */ + VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT = 0x00000002, -This is just a convenience function. Same information can be obtained using -vmaGetMemoryProperties(). -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaGetMemoryTypeProperties( - VmaAllocator VMA_NOT_NULL allocator, - uint32_t memoryTypeIndex, - VkMemoryPropertyFlags* VMA_NOT_NULL pFlags); + /** \brief Enables alternative, linear allocation algorithm in this pool. -/** \brief Sets index of the current frame. + Specify this flag to enable linear allocation algorithm, which always creates + new allocations after last one and doesn't reuse space from allocations freed in + between. It trades memory consumption for simplified algorithm and data + structure, which has better performance and uses less memory for metadata. -This function must be used if you make allocations with -#VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT and -#VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT flags to inform the allocator -when a new frame begins. Allocations queried using vmaGetAllocationInfo() cannot -become lost in the current frame. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaSetCurrentFrameIndex( - VmaAllocator VMA_NOT_NULL allocator, - uint32_t frameIndex); + By using this flag, you can achieve behavior of free-at-once, stack, + ring buffer, and double stack. + For details, see documentation chapter \ref linear_algorithm. + */ + VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT = 0x00000004, -/** \brief Calculated statistics of memory usage in entire allocator. -*/ -typedef struct VmaStatInfo + /** Bit mask to extract only `ALGORITHM` bits from entire set of flags. + */ + VMA_POOL_CREATE_ALGORITHM_MASK = + VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT, + + VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VmaPoolCreateFlagBits; +/// Flags to be passed as VmaPoolCreateInfo::flags. See #VmaPoolCreateFlagBits. +typedef VkFlags VmaPoolCreateFlags; + +/// Flags to be passed as VmaDefragmentationInfo::flags. +typedef enum VmaDefragmentationFlagBits { - /// Number of `VkDeviceMemory` Vulkan memory blocks allocated. - uint32_t blockCount; - /// Number of #VmaAllocation allocation objects allocated. - uint32_t allocationCount; - /// Number of free ranges of memory between allocations. - uint32_t unusedRangeCount; - /// Total number of bytes occupied by all allocations. - VkDeviceSize usedBytes; - /// Total number of bytes occupied by unused ranges. - VkDeviceSize unusedBytes; - VkDeviceSize allocationSizeMin, allocationSizeAvg, allocationSizeMax; - VkDeviceSize unusedRangeSizeMin, unusedRangeSizeAvg, unusedRangeSizeMax; -} VmaStatInfo; - -/// General statistics from current state of Allocator. -typedef struct VmaStats -{ - VmaStatInfo memoryType[VK_MAX_MEMORY_TYPES]; - VmaStatInfo memoryHeap[VK_MAX_MEMORY_HEAPS]; - VmaStatInfo total; -} VmaStats; + /* \brief Use simple but fast algorithm for defragmentation. + May not achieve best results but will require least time to compute and least allocations to copy. + */ + VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT = 0x1, + /* \brief Default defragmentation algorithm, applied also when no `ALGORITHM` flag is specified. + Offers a balance between defragmentation quality and the amount of allocations and bytes that need to be moved. + */ + VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT = 0x2, + /* \brief Perform full defragmentation of memory. + Can result in notably more time to compute and allocations to copy, but will achieve best memory packing. + */ + VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FULL_BIT = 0x4, + /** \brief Use the most roboust algorithm at the cost of time to compute and number of copies to make. + Only available when bufferImageGranularity is greater than 1, since it aims to reduce + alignment issues between different types of resources. + Otherwise falls back to same behavior as #VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FULL_BIT. + */ + VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT = 0x8, -/** \brief Retrieves statistics from current state of the Allocator. + /// A bit mask to extract only `ALGORITHM` bits from entire set of flags. + VMA_DEFRAGMENTATION_FLAG_ALGORITHM_MASK = + VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT | + VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT | + VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FULL_BIT | + VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT, -This function is called "calculate" not "get" because it has to traverse all -internal data structures, so it may be quite slow. For faster but more brief statistics -suitable to be called every frame or every allocation, use vmaGetBudget(). + VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VmaDefragmentationFlagBits; +/// See #VmaDefragmentationFlagBits. +typedef VkFlags VmaDefragmentationFlags; -Note that when using allocator from multiple threads, returned information may immediately -become outdated. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaCalculateStats( - VmaAllocator VMA_NOT_NULL allocator, - VmaStats* VMA_NOT_NULL pStats); +/// Operation performed on single defragmentation move. See structure #VmaDefragmentationMove. +typedef enum VmaDefragmentationMoveOperation +{ + /// Buffer/image has been recreated at `dstTmpAllocation`, data has been copied, old buffer/image has been destroyed. `srcAllocation` should be changed to point to the new place. This is the default value set by vmaBeginDefragmentationPass(). + VMA_DEFRAGMENTATION_MOVE_OPERATION_COPY = 0, + /// Set this value if you cannot move the allocation. New place reserved at `dstTmpAllocation` will be freed. `srcAllocation` will remain unchanged. + VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE = 1, + /// Set this value if you decide to abandon the allocation and you destroyed the buffer/image. New place reserved at `dstTmpAllocation` will be freed, along with `srcAllocation`, which will be destroyed. + VMA_DEFRAGMENTATION_MOVE_OPERATION_DESTROY = 2, +} VmaDefragmentationMoveOperation; -/** \brief Statistics of current memory usage and available budget, in bytes, for specific memory heap. +/** @} */ + +/** +\addtogroup group_virtual +@{ */ -typedef struct VmaBudget + +/// Flags to be passed as VmaVirtualBlockCreateInfo::flags. +typedef enum VmaVirtualBlockCreateFlagBits { - /** \brief Sum size of all `VkDeviceMemory` blocks allocated from particular heap, in bytes. - */ - VkDeviceSize blockBytes; + /** \brief Enables alternative, linear allocation algorithm in this virtual block. - /** \brief Sum size of all allocations created in particular heap, in bytes. + Specify this flag to enable linear allocation algorithm, which always creates + new allocations after last one and doesn't reuse space from allocations freed in + between. It trades memory consumption for simplified algorithm and data + structure, which has better performance and uses less memory for metadata. - Usually less or equal than `blockBytes`. - Difference `blockBytes - allocationBytes` is the amount of memory allocated but unused - - available for new allocations or wasted due to fragmentation. + By using this flag, you can achieve behavior of free-at-once, stack, + ring buffer, and double stack. + For details, see documentation chapter \ref linear_algorithm. + */ + VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT = 0x00000001, - It might be greater than `blockBytes` if there are some allocations in lost state, as they account - to this value as well. + /** \brief Bit mask to extract only `ALGORITHM` bits from entire set of flags. */ - VkDeviceSize allocationBytes; + VMA_VIRTUAL_BLOCK_CREATE_ALGORITHM_MASK = + VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT, - /** \brief Estimated current memory usage of the program, in bytes. + VMA_VIRTUAL_BLOCK_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VmaVirtualBlockCreateFlagBits; +/// Flags to be passed as VmaVirtualBlockCreateInfo::flags. See #VmaVirtualBlockCreateFlagBits. +typedef VkFlags VmaVirtualBlockCreateFlags; - Fetched from system using `VK_EXT_memory_budget` extension if enabled. +/// Flags to be passed as VmaVirtualAllocationCreateInfo::flags. +typedef enum VmaVirtualAllocationCreateFlagBits +{ + /** \brief Allocation will be created from upper stack in a double stack pool. - It might be different than `blockBytes` (usually higher) due to additional implicit objects - also occupying the memory, like swapchain, pipelines, descriptor heaps, command buffers, or - `VkDeviceMemory` blocks allocated outside of this library, if any. + This flag is only allowed for virtual blocks created with #VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT flag. */ - VkDeviceSize usage; - - /** \brief Estimated amount of memory available to the program, in bytes. - - Fetched from system using `VK_EXT_memory_budget` extension if enabled. + VMA_VIRTUAL_ALLOCATION_CREATE_UPPER_ADDRESS_BIT = VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT, + /** \brief Allocation strategy that tries to minimize memory usage. + */ + VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT = VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT, + /** \brief Allocation strategy that tries to minimize allocation time. + */ + VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT = VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT, + /** Allocation strategy that chooses always the lowest offset in available space. + This is not the most efficient strategy but achieves highly packed data. + */ + VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT = VMA_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT, + /** \brief A bit mask to extract only `STRATEGY` bits from entire set of flags. - It might be different (most probably smaller) than `VkMemoryHeap::size[heapIndex]` due to factors - external to the program, like other programs also consuming system resources. - Difference `budget - usage` is the amount of additional memory that can probably - be allocated without problems. Exceeding the budget may result in various problems. + These strategy flags are binary compatible with equivalent flags in #VmaAllocationCreateFlagBits. */ - VkDeviceSize budget; -} VmaBudget; + VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MASK = VMA_ALLOCATION_CREATE_STRATEGY_MASK, -/** \brief Retrieves information about current memory budget for all memory heaps. + VMA_VIRTUAL_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VmaVirtualAllocationCreateFlagBits; +/// Flags to be passed as VmaVirtualAllocationCreateInfo::flags. See #VmaVirtualAllocationCreateFlagBits. +typedef VkFlags VmaVirtualAllocationCreateFlags; -\param allocator -\param[out] pBudget Must point to array with number of elements at least equal to number of memory heaps in physical device used. +/** @} */ -This function is called "get" not "calculate" because it is very fast, suitable to be called -every frame or every allocation. For more detailed statistics use vmaCalculateStats(). +#endif // _VMA_ENUM_DECLARATIONS -Note that when using allocator from multiple threads, returned information may immediately -become outdated. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaGetBudget( - VmaAllocator VMA_NOT_NULL allocator, - VmaBudget* VMA_NOT_NULL pBudget); +#ifndef _VMA_DATA_TYPES_DECLARATIONS -#ifndef VMA_STATS_STRING_ENABLED -#define VMA_STATS_STRING_ENABLED 1 -#endif +/** +\addtogroup group_init +@{ */ -#if VMA_STATS_STRING_ENABLED +/** \struct VmaAllocator +\brief Represents main object of this library initialized. -/// Builds and returns statistics as string in JSON format. -/** -@param allocator -@param[out] ppStatsString Must be freed using vmaFreeStatsString() function. -@param detailedMap +Fill structure #VmaAllocatorCreateInfo and call function vmaCreateAllocator() to create it. +Call function vmaDestroyAllocator() to destroy it. + +It is recommended to create just one object of this type per `VkDevice` object, +right after Vulkan is initialized and keep it alive until before Vulkan device is destroyed. */ -VMA_CALL_PRE void VMA_CALL_POST vmaBuildStatsString( - VmaAllocator VMA_NOT_NULL allocator, - char* VMA_NULLABLE * VMA_NOT_NULL ppStatsString, - VkBool32 detailedMap); +VK_DEFINE_HANDLE(VmaAllocator) -VMA_CALL_PRE void VMA_CALL_POST vmaFreeStatsString( - VmaAllocator VMA_NOT_NULL allocator, - char* VMA_NULLABLE pStatsString); +/** @} */ -#endif // #if VMA_STATS_STRING_ENABLED +/** +\addtogroup group_alloc +@{ +*/ /** \struct VmaPool \brief Represents custom memory pool @@ -804,185 +843,382 @@ For more information see [Custom memory pools](@ref choosing_memory_type_custom_ */ VK_DEFINE_HANDLE(VmaPool) -typedef enum VmaMemoryUsage -{ - /** No intended memory usage specified. - Use other members of VmaAllocationCreateInfo to specify your requirements. - */ - VMA_MEMORY_USAGE_UNKNOWN = 0, - /** Memory will be used on device only, so fast access from the device is preferred. - It usually means device-local GPU (video) memory. - No need to be mappable on host. - It is roughly equivalent of `D3D12_HEAP_TYPE_DEFAULT`. - - Usage: - - - Resources written and read by device, e.g. images used as attachments. - - Resources transferred from host once (immutable) or infrequently and read by - device multiple times, e.g. textures to be sampled, vertex buffers, uniform - (constant) buffers, and majority of other types of resources used on GPU. +/** \struct VmaAllocation +\brief Represents single memory allocation. - Allocation may still end up in `HOST_VISIBLE` memory on some implementations. - In such case, you are free to map it. - You can use #VMA_ALLOCATION_CREATE_MAPPED_BIT with this usage type. - */ - VMA_MEMORY_USAGE_GPU_ONLY = 1, - /** Memory will be mappable on host. - It usually means CPU (system) memory. - Guarantees to be `HOST_VISIBLE` and `HOST_COHERENT`. - CPU access is typically uncached. Writes may be write-combined. - Resources created in this pool may still be accessible to the device, but access to them can be slow. - It is roughly equivalent of `D3D12_HEAP_TYPE_UPLOAD`. - - Usage: Staging copy of resources used as transfer source. - */ - VMA_MEMORY_USAGE_CPU_ONLY = 2, - /** - Memory that is both mappable on host (guarantees to be `HOST_VISIBLE`) and preferably fast to access by GPU. - CPU access is typically uncached. Writes may be write-combined. +It may be either dedicated block of `VkDeviceMemory` or a specific region of a bigger block of this type +plus unique offset. - Usage: Resources written frequently by host (dynamic), read by device. E.g. textures (with LINEAR layout), vertex buffers, uniform buffers updated every frame or every draw call. - */ - VMA_MEMORY_USAGE_CPU_TO_GPU = 3, - /** Memory mappable on host (guarantees to be `HOST_VISIBLE`) and cached. - It is roughly equivalent of `D3D12_HEAP_TYPE_READBACK`. +There are multiple ways to create such object. +You need to fill structure VmaAllocationCreateInfo. +For more information see [Choosing memory type](@ref choosing_memory_type). - Usage: +Although the library provides convenience functions that create Vulkan buffer or image, +allocate memory for it and bind them together, +binding of the allocation to a buffer or an image is out of scope of the allocation itself. +Allocation object can exist without buffer/image bound, +binding can be done manually by the user, and destruction of it can be done +independently of destruction of the allocation. - - Resources written by device, read by host - results of some computations, e.g. screen capture, average scene luminance for HDR tone mapping. - - Any resources read or accessed randomly on host, e.g. CPU-side copy of vertex buffer used as source of transfer, but also used for collision detection. - */ - VMA_MEMORY_USAGE_GPU_TO_CPU = 4, - /** CPU memory - memory that is preferably not `DEVICE_LOCAL`, but also not guaranteed to be `HOST_VISIBLE`. +The object also remembers its size and some other information. +To retrieve this information, use function vmaGetAllocationInfo() and inspect +returned structure VmaAllocationInfo. +*/ +VK_DEFINE_HANDLE(VmaAllocation) - Usage: Staging copy of resources moved from GPU memory to CPU memory as part - of custom paging/residency mechanism, to be moved back to GPU memory when needed. - */ - VMA_MEMORY_USAGE_CPU_COPY = 5, - /** Lazily allocated GPU memory having `VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT`. - Exists mostly on mobile platforms. Using it on desktop PC or other GPUs with no such memory type present will fail the allocation. +/** \struct VmaDefragmentationContext +\brief An opaque object that represents started defragmentation process. - Usage: Memory for transient attachment images (color attachments, depth attachments etc.), created with `VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT`. +Fill structure #VmaDefragmentationInfo and call function vmaBeginDefragmentation() to create it. +Call function vmaEndDefragmentation() to destroy it. +*/ +VK_DEFINE_HANDLE(VmaDefragmentationContext) - Allocations with this usage are always created as dedicated - it implies #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT. - */ - VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED = 6, +/** @} */ - VMA_MEMORY_USAGE_MAX_ENUM = 0x7FFFFFFF -} VmaMemoryUsage; +/** +\addtogroup group_virtual +@{ +*/ -/// Flags to be passed as VmaAllocationCreateInfo::flags. -typedef enum VmaAllocationCreateFlagBits { - /** \brief Set this flag if the allocation should have its own memory block. +/** \struct VmaVirtualAllocation +\brief Represents single memory allocation done inside VmaVirtualBlock. - Use it for special, big resources, like fullscreen images used as attachments. +Use it as a unique identifier to virtual allocation within the single block. - You should not use this flag if VmaAllocationCreateInfo::pool is not null. - */ - VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT = 0x00000001, +Use value `VK_NULL_HANDLE` to represent a null/invalid allocation. +*/ +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VmaVirtualAllocation); - /** \brief Set this flag to only try to allocate from existing `VkDeviceMemory` blocks and never create new such block. +/** @} */ - If new allocation cannot be placed in any of the existing blocks, allocation - fails with `VK_ERROR_OUT_OF_DEVICE_MEMORY` error. +/** +\addtogroup group_virtual +@{ +*/ - You should not use #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT and - #VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT at the same time. It makes no sense. +/** \struct VmaVirtualBlock +\brief Handle to a virtual block object that allows to use core allocation algorithm without allocating any real GPU memory. - If VmaAllocationCreateInfo::pool is not null, this flag is implied and ignored. */ - VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT = 0x00000002, - /** \brief Set this flag to use a memory that will be persistently mapped and retrieve pointer to it. +Fill in #VmaVirtualBlockCreateInfo structure and use vmaCreateVirtualBlock() to create it. Use vmaDestroyVirtualBlock() to destroy it. +For more information, see documentation chapter \ref virtual_allocator. - Pointer to mapped memory will be returned through VmaAllocationInfo::pMappedData. +This object is not thread-safe - should not be used from multiple threads simultaneously, must be synchronized externally. +*/ +VK_DEFINE_HANDLE(VmaVirtualBlock) - It is valid to use this flag for allocation made from memory type that is not - `HOST_VISIBLE`. This flag is then ignored and memory is not mapped. This is - useful if you need an allocation that is efficient to use on GPU - (`DEVICE_LOCAL`) and still want to map it directly if possible on platforms that - support it (e.g. Intel GPU). +/** @} */ - You should not use this flag together with #VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT. - */ - VMA_ALLOCATION_CREATE_MAPPED_BIT = 0x00000004, - /** Allocation created with this flag can become lost as a result of another - allocation with #VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT flag, so you - must check it before use. +/** +\addtogroup group_init +@{ +*/ - To check if allocation is not lost, call vmaGetAllocationInfo() and check if - VmaAllocationInfo::deviceMemory is not `VK_NULL_HANDLE`. +/// Callback function called after successful vkAllocateMemory. +typedef void (VKAPI_PTR* PFN_vmaAllocateDeviceMemoryFunction)( + VmaAllocator VMA_NOT_NULL allocator, + uint32_t memoryType, + VkDeviceMemory VMA_NOT_NULL_NON_DISPATCHABLE memory, + VkDeviceSize size, + void* VMA_NULLABLE pUserData); - For details about supporting lost allocations, see Lost Allocations - chapter of User Guide on Main Page. +/// Callback function called before vkFreeMemory. +typedef void (VKAPI_PTR* PFN_vmaFreeDeviceMemoryFunction)( + VmaAllocator VMA_NOT_NULL allocator, + uint32_t memoryType, + VkDeviceMemory VMA_NOT_NULL_NON_DISPATCHABLE memory, + VkDeviceSize size, + void* VMA_NULLABLE pUserData); - You should not use this flag together with #VMA_ALLOCATION_CREATE_MAPPED_BIT. - */ - VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT = 0x00000008, - /** While creating allocation using this flag, other allocations that were - created with flag #VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT can become lost. +/** \brief Set of callbacks that the library will call for `vkAllocateMemory` and `vkFreeMemory`. - For details about supporting lost allocations, see Lost Allocations - chapter of User Guide on Main Page. - */ - VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT = 0x00000010, - /** Set this flag to treat VmaAllocationCreateInfo::pUserData as pointer to a - null-terminated string. Instead of copying pointer value, a local copy of the - string is made and stored in allocation's `pUserData`. The string is automatically - freed together with the allocation. It is also used in vmaBuildStatsString(). - */ - VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT = 0x00000020, - /** Allocation will be created from upper stack in a double stack pool. +Provided for informative purpose, e.g. to gather statistics about number of +allocations or total amount of memory allocated in Vulkan. - This flag is only allowed for custom pools created with #VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT flag. +Used in VmaAllocatorCreateInfo::pDeviceMemoryCallbacks. +*/ +typedef struct VmaDeviceMemoryCallbacks +{ + /// Optional, can be null. + PFN_vmaAllocateDeviceMemoryFunction VMA_NULLABLE pfnAllocate; + /// Optional, can be null. + PFN_vmaFreeDeviceMemoryFunction VMA_NULLABLE pfnFree; + /// Optional, can be null. + void* VMA_NULLABLE pUserData; +} VmaDeviceMemoryCallbacks; + +/** \brief Pointers to some Vulkan functions - a subset used by the library. + +Used in VmaAllocatorCreateInfo::pVulkanFunctions. +*/ +typedef struct VmaVulkanFunctions +{ + /// Required when using VMA_DYNAMIC_VULKAN_FUNCTIONS. + PFN_vkGetInstanceProcAddr VMA_NULLABLE vkGetInstanceProcAddr; + /// Required when using VMA_DYNAMIC_VULKAN_FUNCTIONS. + PFN_vkGetDeviceProcAddr VMA_NULLABLE vkGetDeviceProcAddr; + PFN_vkGetPhysicalDeviceProperties VMA_NULLABLE vkGetPhysicalDeviceProperties; + PFN_vkGetPhysicalDeviceMemoryProperties VMA_NULLABLE vkGetPhysicalDeviceMemoryProperties; + PFN_vkAllocateMemory VMA_NULLABLE vkAllocateMemory; + PFN_vkFreeMemory VMA_NULLABLE vkFreeMemory; + PFN_vkMapMemory VMA_NULLABLE vkMapMemory; + PFN_vkUnmapMemory VMA_NULLABLE vkUnmapMemory; + PFN_vkFlushMappedMemoryRanges VMA_NULLABLE vkFlushMappedMemoryRanges; + PFN_vkInvalidateMappedMemoryRanges VMA_NULLABLE vkInvalidateMappedMemoryRanges; + PFN_vkBindBufferMemory VMA_NULLABLE vkBindBufferMemory; + PFN_vkBindImageMemory VMA_NULLABLE vkBindImageMemory; + PFN_vkGetBufferMemoryRequirements VMA_NULLABLE vkGetBufferMemoryRequirements; + PFN_vkGetImageMemoryRequirements VMA_NULLABLE vkGetImageMemoryRequirements; + PFN_vkCreateBuffer VMA_NULLABLE vkCreateBuffer; + PFN_vkDestroyBuffer VMA_NULLABLE vkDestroyBuffer; + PFN_vkCreateImage VMA_NULLABLE vkCreateImage; + PFN_vkDestroyImage VMA_NULLABLE vkDestroyImage; + PFN_vkCmdCopyBuffer VMA_NULLABLE vkCmdCopyBuffer; +#if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 + /// Fetch "vkGetBufferMemoryRequirements2" on Vulkan >= 1.1, fetch "vkGetBufferMemoryRequirements2KHR" when using VK_KHR_dedicated_allocation extension. + PFN_vkGetBufferMemoryRequirements2KHR VMA_NULLABLE vkGetBufferMemoryRequirements2KHR; + /// Fetch "vkGetImageMemoryRequirements2" on Vulkan >= 1.1, fetch "vkGetImageMemoryRequirements2KHR" when using VK_KHR_dedicated_allocation extension. + PFN_vkGetImageMemoryRequirements2KHR VMA_NULLABLE vkGetImageMemoryRequirements2KHR; +#endif +#if VMA_BIND_MEMORY2 || VMA_VULKAN_VERSION >= 1001000 + /// Fetch "vkBindBufferMemory2" on Vulkan >= 1.1, fetch "vkBindBufferMemory2KHR" when using VK_KHR_bind_memory2 extension. + PFN_vkBindBufferMemory2KHR VMA_NULLABLE vkBindBufferMemory2KHR; + /// Fetch "vkBindImageMemory2" on Vulkan >= 1.1, fetch "vkBindImageMemory2KHR" when using VK_KHR_bind_memory2 extension. + PFN_vkBindImageMemory2KHR VMA_NULLABLE vkBindImageMemory2KHR; +#endif +#if VMA_MEMORY_BUDGET || VMA_VULKAN_VERSION >= 1001000 + PFN_vkGetPhysicalDeviceMemoryProperties2KHR VMA_NULLABLE vkGetPhysicalDeviceMemoryProperties2KHR; +#endif +#if VMA_VULKAN_VERSION >= 1003000 + /// Fetch from "vkGetDeviceBufferMemoryRequirements" on Vulkan >= 1.3, but you can also fetch it from "vkGetDeviceBufferMemoryRequirementsKHR" if you enabled extension VK_KHR_maintenance4. + PFN_vkGetDeviceBufferMemoryRequirements VMA_NULLABLE vkGetDeviceBufferMemoryRequirements; + /// Fetch from "vkGetDeviceImageMemoryRequirements" on Vulkan >= 1.3, but you can also fetch it from "vkGetDeviceImageMemoryRequirementsKHR" if you enabled extension VK_KHR_maintenance4. + PFN_vkGetDeviceImageMemoryRequirements VMA_NULLABLE vkGetDeviceImageMemoryRequirements; +#endif +} VmaVulkanFunctions; + +/// Description of a Allocator to be created. +typedef struct VmaAllocatorCreateInfo +{ + /// Flags for created allocator. Use #VmaAllocatorCreateFlagBits enum. + VmaAllocatorCreateFlags flags; + /// Vulkan physical device. + /** It must be valid throughout whole lifetime of created allocator. */ + VkPhysicalDevice VMA_NOT_NULL physicalDevice; + /// Vulkan device. + /** It must be valid throughout whole lifetime of created allocator. */ + VkDevice VMA_NOT_NULL device; + /// Preferred size of a single `VkDeviceMemory` block to be allocated from large heaps > 1 GiB. Optional. + /** Set to 0 to use default, which is currently 256 MiB. */ + VkDeviceSize preferredLargeHeapBlockSize; + /// Custom CPU memory allocation callbacks. Optional. + /** Optional, can be null. When specified, will also be used for all CPU-side memory allocations. */ + const VkAllocationCallbacks* VMA_NULLABLE pAllocationCallbacks; + /// Informative callbacks for `vkAllocateMemory`, `vkFreeMemory`. Optional. + /** Optional, can be null. */ + const VmaDeviceMemoryCallbacks* VMA_NULLABLE pDeviceMemoryCallbacks; + /** \brief Either null or a pointer to an array of limits on maximum number of bytes that can be allocated out of particular Vulkan memory heap. + + If not NULL, it must be a pointer to an array of + `VkPhysicalDeviceMemoryProperties::memoryHeapCount` elements, defining limit on + maximum number of bytes that can be allocated out of particular Vulkan memory + heap. + + Any of the elements may be equal to `VK_WHOLE_SIZE`, which means no limit on that + heap. This is also the default in case of `pHeapSizeLimit` = NULL. + + If there is a limit defined for a heap: + + - If user tries to allocate more memory from that heap using this allocator, + the allocation fails with `VK_ERROR_OUT_OF_DEVICE_MEMORY`. + - If the limit is smaller than heap size reported in `VkMemoryHeap::size`, the + value of this limit will be reported instead when using vmaGetMemoryProperties(). + + Warning! Using this feature may not be equivalent to installing a GPU with + smaller amount of memory, because graphics driver doesn't necessary fail new + allocations with `VK_ERROR_OUT_OF_DEVICE_MEMORY` result when memory capacity is + exceeded. It may return success and just silently migrate some device memory + blocks to system RAM. This driver behavior can also be controlled using + VK_AMD_memory_overallocation_behavior extension. */ - VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT = 0x00000040, - /** Create both buffer/image and allocation, but don't bind them together. - It is useful when you want to bind yourself to do some more advanced binding, e.g. using some extensions. - The flag is meaningful only with functions that bind by default: vmaCreateBuffer(), vmaCreateImage(). - Otherwise it is ignored. + const VkDeviceSize* VMA_NULLABLE VMA_LEN_IF_NOT_NULL("VkPhysicalDeviceMemoryProperties::memoryHeapCount") pHeapSizeLimit; + + /** \brief Pointers to Vulkan functions. Can be null. + + For details see [Pointers to Vulkan functions](@ref config_Vulkan_functions). */ - VMA_ALLOCATION_CREATE_DONT_BIND_BIT = 0x00000080, - /** Create allocation only if additional device memory required for it, if any, won't exceed - memory budget. Otherwise return `VK_ERROR_OUT_OF_DEVICE_MEMORY`. + const VmaVulkanFunctions* VMA_NULLABLE pVulkanFunctions; + /** \brief Handle to Vulkan instance object. + + Starting from version 3.0.0 this member is no longer optional, it must be set! */ - VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT = 0x00000100, + VkInstance VMA_NOT_NULL instance; + /** \brief Optional. The highest version of Vulkan that the application is designed to use. + + It must be a value in the format as created by macro `VK_MAKE_VERSION` or a constant like: `VK_API_VERSION_1_1`, `VK_API_VERSION_1_0`. + The patch version number specified is ignored. Only the major and minor versions are considered. + It must be less or equal (preferably equal) to value as passed to `vkCreateInstance` as `VkApplicationInfo::apiVersion`. + Only versions 1.0, 1.1, 1.2, 1.3 are supported by the current implementation. + Leaving it initialized to zero is equivalent to `VK_API_VERSION_1_0`. + */ + uint32_t vulkanApiVersion; +#if VMA_EXTERNAL_MEMORY + /** \brief Either null or a pointer to an array of external memory handle types for each Vulkan memory type. + + If not NULL, it must be a pointer to an array of `VkPhysicalDeviceMemoryProperties::memoryTypeCount` + elements, defining external memory handle types of particular Vulkan memory type, + to be passed using `VkExportMemoryAllocateInfoKHR`. + + Any of the elements may be equal to 0, which means not to use `VkExportMemoryAllocateInfoKHR` on this memory type. + This is also the default in case of `pTypeExternalMemoryHandleTypes` = NULL. + */ + const VkExternalMemoryHandleTypeFlagsKHR* VMA_NULLABLE VMA_LEN_IF_NOT_NULL("VkPhysicalDeviceMemoryProperties::memoryTypeCount") pTypeExternalMemoryHandleTypes; +#endif // #if VMA_EXTERNAL_MEMORY +} VmaAllocatorCreateInfo; + +/// Information about existing #VmaAllocator object. +typedef struct VmaAllocatorInfo +{ + /** \brief Handle to Vulkan instance object. - /** Allocation strategy that chooses smallest possible free range for the - allocation. + This is the same value as has been passed through VmaAllocatorCreateInfo::instance. */ - VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT = 0x00010000, - /** Allocation strategy that chooses biggest possible free range for the - allocation. + VkInstance VMA_NOT_NULL instance; + /** \brief Handle to Vulkan physical device object. + + This is the same value as has been passed through VmaAllocatorCreateInfo::physicalDevice. */ - VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT = 0x00020000, - /** Allocation strategy that chooses first suitable free range for the - allocation. + VkPhysicalDevice VMA_NOT_NULL physicalDevice; + /** \brief Handle to Vulkan device object. - "First" doesn't necessarily means the one with smallest offset in memory, - but rather the one that is easiest and fastest to find. + This is the same value as has been passed through VmaAllocatorCreateInfo::device. */ - VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT = 0x00040000, + VkDevice VMA_NOT_NULL device; +} VmaAllocatorInfo; - /** Allocation strategy that tries to minimize memory usage. +/** @} */ + +/** +\addtogroup group_stats +@{ +*/ + +/** \brief Calculated statistics of memory usage e.g. in a specific memory type, heap, custom pool, or total. + +These are fast to calculate. +See functions: vmaGetHeapBudgets(), vmaGetPoolStatistics(). +*/ +typedef struct VmaStatistics +{ + /** \brief Number of `VkDeviceMemory` objects - Vulkan memory blocks allocated. */ - VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT = VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT, - /** Allocation strategy that tries to minimize allocation time. + uint32_t blockCount; + /** \brief Number of #VmaAllocation objects allocated. + + Dedicated allocations have their own blocks, so each one adds 1 to `allocationCount` as well as `blockCount`. */ - VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT = VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT, - /** Allocation strategy that tries to minimize memory fragmentation. + uint32_t allocationCount; + /** \brief Number of bytes allocated in `VkDeviceMemory` blocks. + + \note To avoid confusion, please be aware that what Vulkan calls an "allocation" - a whole `VkDeviceMemory` object + (e.g. as in `VkPhysicalDeviceLimits::maxMemoryAllocationCount`) is called a "block" in VMA, while VMA calls + "allocation" a #VmaAllocation object that represents a memory region sub-allocated from such block, usually for a single buffer or image. */ - VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT = VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT, + VkDeviceSize blockBytes; + /** \brief Total number of bytes occupied by all #VmaAllocation objects. - /** A bit mask to extract only `STRATEGY` bits from entire set of flags. + Always less or equal than `blockBytes`. + Difference `(blockBytes - allocationBytes)` is the amount of memory allocated from Vulkan + but unused by any #VmaAllocation. */ - VMA_ALLOCATION_CREATE_STRATEGY_MASK = - VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT | - VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT | - VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT, + VkDeviceSize allocationBytes; +} VmaStatistics; - VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VmaAllocationCreateFlagBits; -typedef VkFlags VmaAllocationCreateFlags; +/** \brief More detailed statistics than #VmaStatistics. + +These are slower to calculate. Use for debugging purposes. +See functions: vmaCalculateStatistics(), vmaCalculatePoolStatistics(). + +Previous version of the statistics API provided averages, but they have been removed +because they can be easily calculated as: + +\code +VkDeviceSize allocationSizeAvg = detailedStats.statistics.allocationBytes / detailedStats.statistics.allocationCount; +VkDeviceSize unusedBytes = detailedStats.statistics.blockBytes - detailedStats.statistics.allocationBytes; +VkDeviceSize unusedRangeSizeAvg = unusedBytes / detailedStats.unusedRangeCount; +\endcode +*/ +typedef struct VmaDetailedStatistics +{ + /// Basic statistics. + VmaStatistics statistics; + /// Number of free ranges of memory between allocations. + uint32_t unusedRangeCount; + /// Smallest allocation size. `VK_WHOLE_SIZE` if there are 0 allocations. + VkDeviceSize allocationSizeMin; + /// Largest allocation size. 0 if there are 0 allocations. + VkDeviceSize allocationSizeMax; + /// Smallest empty range size. `VK_WHOLE_SIZE` if there are 0 empty ranges. + VkDeviceSize unusedRangeSizeMin; + /// Largest empty range size. 0 if there are 0 empty ranges. + VkDeviceSize unusedRangeSizeMax; +} VmaDetailedStatistics; + +/** \brief General statistics from current state of the Allocator - +total memory usage across all memory heaps and types. + +These are slower to calculate. Use for debugging purposes. +See function vmaCalculateStatistics(). +*/ +typedef struct VmaTotalStatistics +{ + VmaDetailedStatistics memoryType[VK_MAX_MEMORY_TYPES]; + VmaDetailedStatistics memoryHeap[VK_MAX_MEMORY_HEAPS]; + VmaDetailedStatistics total; +} VmaTotalStatistics; + +/** \brief Statistics of current memory usage and available budget for a specific memory heap. + +These are fast to calculate. +See function vmaGetHeapBudgets(). +*/ +typedef struct VmaBudget +{ + /** \brief Statistics fetched from the library. + */ + VmaStatistics statistics; + /** \brief Estimated current memory usage of the program, in bytes. + + Fetched from system using VK_EXT_memory_budget extension if enabled. + + It might be different than `statistics.blockBytes` (usually higher) due to additional implicit objects + also occupying the memory, like swapchain, pipelines, descriptor heaps, command buffers, or + `VkDeviceMemory` blocks allocated outside of this library, if any. + */ + VkDeviceSize usage; + /** \brief Estimated amount of memory available to the program, in bytes. + + Fetched from system using VK_EXT_memory_budget extension if enabled. + + It might be different (most probably smaller) than `VkMemoryHeap::size[heapIndex]` due to factors + external to the program, decided by the operating system. + Difference `budget - usage` is the amount of additional memory that can probably + be allocated without problems. Exceeding the budget may result in various problems. + */ + VkDeviceSize budget; +} VmaBudget; + +/** @} */ + +/** +\addtogroup group_alloc +@{ +*/ +/** \brief Parameters of new #VmaAllocation. + +To be used with functions like vmaCreateBuffer(), vmaCreateImage(), and many others. +*/ typedef struct VmaAllocationCreateInfo { /// Use #VmaAllocationCreateFlagBits enum. @@ -1033,169 +1269,39 @@ typedef struct VmaAllocationCreateInfo float priority; } VmaAllocationCreateInfo; -/** -\brief Helps to find memoryTypeIndex, given memoryTypeBits and VmaAllocationCreateInfo. +/// Describes parameter of created #VmaPool. +typedef struct VmaPoolCreateInfo +{ + /** \brief Vulkan memory type index to allocate this pool from. + */ + uint32_t memoryTypeIndex; + /** \brief Use combination of #VmaPoolCreateFlagBits. + */ + VmaPoolCreateFlags flags; + /** \brief Size of a single `VkDeviceMemory` block to be allocated as part of this pool, in bytes. Optional. -This algorithm tries to find a memory type that: + Specify nonzero to set explicit, constant size of memory blocks used by this + pool. -- Is allowed by memoryTypeBits. -- Contains all the flags from pAllocationCreateInfo->requiredFlags. -- Matches intended usage. -- Has as many flags from pAllocationCreateInfo->preferredFlags as possible. + Leave 0 to use default and let the library manage block sizes automatically. + Sizes of particular blocks may vary. + In this case, the pool will also support dedicated allocations. + */ + VkDeviceSize blockSize; + /** \brief Minimum number of blocks to be always allocated in this pool, even if they stay empty. -\return Returns VK_ERROR_FEATURE_NOT_PRESENT if not found. Receiving such result -from this function or any other allocating function probably means that your -device doesn't support any memory type with requested features for the specific -type of resource you want to use it for. Please check parameters of your -resource, like image layout (OPTIMAL versus LINEAR) or mip level count. -*/ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndex( - VmaAllocator VMA_NOT_NULL allocator, - uint32_t memoryTypeBits, - const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, - uint32_t* VMA_NOT_NULL pMemoryTypeIndex); + Set to 0 to have no preallocated blocks and allow the pool be completely empty. + */ + size_t minBlockCount; + /** \brief Maximum number of blocks that can be allocated in this pool. Optional. -/** -\brief Helps to find memoryTypeIndex, given VkBufferCreateInfo and VmaAllocationCreateInfo. + Set to 0 to use default, which is `SIZE_MAX`, which means no limit. -It can be useful e.g. to determine value to be used as VmaPoolCreateInfo::memoryTypeIndex. -It internally creates a temporary, dummy buffer that never has memory bound. -It is just a convenience function, equivalent to calling: - -- `vkCreateBuffer` -- `vkGetBufferMemoryRequirements` -- `vmaFindMemoryTypeIndex` -- `vkDestroyBuffer` -*/ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndexForBufferInfo( - VmaAllocator VMA_NOT_NULL allocator, - const VkBufferCreateInfo* VMA_NOT_NULL pBufferCreateInfo, - const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, - uint32_t* VMA_NOT_NULL pMemoryTypeIndex); - -/** -\brief Helps to find memoryTypeIndex, given VkImageCreateInfo and VmaAllocationCreateInfo. - -It can be useful e.g. to determine value to be used as VmaPoolCreateInfo::memoryTypeIndex. -It internally creates a temporary, dummy image that never has memory bound. -It is just a convenience function, equivalent to calling: - -- `vkCreateImage` -- `vkGetImageMemoryRequirements` -- `vmaFindMemoryTypeIndex` -- `vkDestroyImage` -*/ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndexForImageInfo( - VmaAllocator VMA_NOT_NULL allocator, - const VkImageCreateInfo* VMA_NOT_NULL pImageCreateInfo, - const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, - uint32_t* VMA_NOT_NULL pMemoryTypeIndex); - -/// Flags to be passed as VmaPoolCreateInfo::flags. -typedef enum VmaPoolCreateFlagBits { - /** \brief Use this flag if you always allocate only buffers and linear images or only optimal images out of this pool and so Buffer-Image Granularity can be ignored. - - This is an optional optimization flag. - - If you always allocate using vmaCreateBuffer(), vmaCreateImage(), - vmaAllocateMemoryForBuffer(), then you don't need to use it because allocator - knows exact type of your allocations so it can handle Buffer-Image Granularity - in the optimal way. - - If you also allocate using vmaAllocateMemoryForImage() or vmaAllocateMemory(), - exact type of such allocations is not known, so allocator must be conservative - in handling Buffer-Image Granularity, which can lead to suboptimal allocation - (wasted memory). In that case, if you can make sure you always allocate only - buffers and linear images or only optimal images out of this pool, use this flag - to make allocator disregard Buffer-Image Granularity and so make allocations - faster and more optimal. - */ - VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT = 0x00000002, - - /** \brief Enables alternative, linear allocation algorithm in this pool. - - Specify this flag to enable linear allocation algorithm, which always creates - new allocations after last one and doesn't reuse space from allocations freed in - between. It trades memory consumption for simplified algorithm and data - structure, which has better performance and uses less memory for metadata. - - By using this flag, you can achieve behavior of free-at-once, stack, - ring buffer, and double stack. For details, see documentation chapter - \ref linear_algorithm. - - When using this flag, you must specify VmaPoolCreateInfo::maxBlockCount == 1 (or 0 for default). - - For more details, see [Linear allocation algorithm](@ref linear_algorithm). - */ - VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT = 0x00000004, - - /** \brief Enables alternative, buddy allocation algorithm in this pool. - - It operates on a tree of blocks, each having size that is a power of two and - a half of its parent's size. Comparing to default algorithm, this one provides - faster allocation and deallocation and decreased external fragmentation, - at the expense of more memory wasted (internal fragmentation). - - For more details, see [Buddy allocation algorithm](@ref buddy_algorithm). - */ - VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT = 0x00000008, - - /** Bit mask to extract only `ALGORITHM` bits from entire set of flags. - */ - VMA_POOL_CREATE_ALGORITHM_MASK = - VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT | - VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT, - - VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VmaPoolCreateFlagBits; -typedef VkFlags VmaPoolCreateFlags; - -/** \brief Describes parameter of created #VmaPool. -*/ -typedef struct VmaPoolCreateInfo { - /** \brief Vulkan memory type index to allocate this pool from. - */ - uint32_t memoryTypeIndex; - /** \brief Use combination of #VmaPoolCreateFlagBits. - */ - VmaPoolCreateFlags flags; - /** \brief Size of a single `VkDeviceMemory` block to be allocated as part of this pool, in bytes. Optional. - - Specify nonzero to set explicit, constant size of memory blocks used by this - pool. - - Leave 0 to use default and let the library manage block sizes automatically. - Sizes of particular blocks may vary. - */ - VkDeviceSize blockSize; - /** \brief Minimum number of blocks to be always allocated in this pool, even if they stay empty. - - Set to 0 to have no preallocated blocks and allow the pool be completely empty. - */ - size_t minBlockCount; - /** \brief Maximum number of blocks that can be allocated in this pool. Optional. - - Set to 0 to use default, which is `SIZE_MAX`, which means no limit. - - Set to same value as VmaPoolCreateInfo::minBlockCount to have fixed amount of memory allocated - throughout whole lifetime of this pool. - */ - size_t maxBlockCount; - /** \brief Maximum number of additional frames that are in use at the same time as current frame. - - This value is used only when you make allocations with - #VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT flag. Such allocation cannot become - lost if allocation.lastUseFrameIndex >= allocator.currentFrameIndex - frameInUseCount. - - For example, if you double-buffer your command buffers, so resources used for - rendering in previous frame may still be in use by the GPU at the moment you - allocate resources needed for the current frame, set this value to 1. - - If you want to allow any allocations other than used in the current frame to - become lost, set this value to 0. - */ - uint32_t frameInUseCount; - /** \brief A floating-point value between 0 and 1, indicating the priority of the allocations in this pool relative to other memory allocations. + Set to same value as VmaPoolCreateInfo::minBlockCount to have fixed amount of memory allocated + throughout whole lifetime of this pool. + */ + size_t maxBlockCount; + /** \brief A floating-point value between 0 and 1, indicating the priority of the allocations in this pool relative to other memory allocations. It is used only when #VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT flag was used during creation of the #VmaAllocator object. Otherwise, this variable is ignored. @@ -1217,141 +1323,23 @@ typedef struct VmaPoolCreateInfo { Please note that some structures, e.g. `VkMemoryPriorityAllocateInfoEXT`, `VkMemoryDedicatedAllocateInfoKHR`, can be attached automatically by this library when using other, more convenient of its features. */ - void* VMA_NULLABLE pMemoryAllocateNext; + void* VMA_NULLABLE VMA_EXTENDS_VK_STRUCT(VkMemoryAllocateInfo) pMemoryAllocateNext; } VmaPoolCreateInfo; -/** \brief Describes parameter of existing #VmaPool. -*/ -typedef struct VmaPoolStats { - /** \brief Total amount of `VkDeviceMemory` allocated from Vulkan for this pool, in bytes. - */ - VkDeviceSize size; - /** \brief Total number of bytes in the pool not used by any #VmaAllocation. - */ - VkDeviceSize unusedSize; - /** \brief Number of #VmaAllocation objects created from this pool that were not destroyed or lost. - */ - size_t allocationCount; - /** \brief Number of continuous memory ranges in the pool not used by any #VmaAllocation. - */ - size_t unusedRangeCount; - /** \brief Size of the largest continuous free memory region available for new allocation. - - Making a new allocation of that size is not guaranteed to succeed because of - possible additional margin required to respect alignment and buffer/image - granularity. - */ - VkDeviceSize unusedRangeSizeMax; - /** \brief Number of `VkDeviceMemory` blocks allocated for this pool. - */ - size_t blockCount; -} VmaPoolStats; - -/** \brief Allocates Vulkan device memory and creates #VmaPool object. - -@param allocator Allocator object. -@param pCreateInfo Parameters of pool to create. -@param[out] pPool Handle to created pool. -*/ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreatePool( - VmaAllocator VMA_NOT_NULL allocator, - const VmaPoolCreateInfo* VMA_NOT_NULL pCreateInfo, - VmaPool VMA_NULLABLE * VMA_NOT_NULL pPool); - -/** \brief Destroys #VmaPool object and frees Vulkan device memory. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaDestroyPool( - VmaAllocator VMA_NOT_NULL allocator, - VmaPool VMA_NULLABLE pool); - -/** \brief Retrieves statistics of existing #VmaPool object. - -@param allocator Allocator object. -@param pool Pool object. -@param[out] pPoolStats Statistics of specified pool. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaGetPoolStats( - VmaAllocator VMA_NOT_NULL allocator, - VmaPool VMA_NOT_NULL pool, - VmaPoolStats* VMA_NOT_NULL pPoolStats); - -/** \brief Marks all allocations in given pool as lost if they are not used in current frame or VmaPoolCreateInfo::frameInUseCount back from now. - -@param allocator Allocator object. -@param pool Pool. -@param[out] pLostAllocationCount Number of allocations marked as lost. Optional - pass null if you don't need this information. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaMakePoolAllocationsLost( - VmaAllocator VMA_NOT_NULL allocator, - VmaPool VMA_NOT_NULL pool, - size_t* VMA_NULLABLE pLostAllocationCount); - -/** \brief Checks magic number in margins around all allocations in given memory pool in search for corruptions. - -Corruption detection is enabled only when `VMA_DEBUG_DETECT_CORRUPTION` macro is defined to nonzero, -`VMA_DEBUG_MARGIN` is defined to nonzero and the pool is created in memory type that is -`HOST_VISIBLE` and `HOST_COHERENT`. For more information, see [Corruption detection](@ref debugging_memory_usage_corruption_detection). - -Possible return values: - -- `VK_ERROR_FEATURE_NOT_PRESENT` - corruption detection is not enabled for specified pool. -- `VK_SUCCESS` - corruption detection has been performed and succeeded. -- `VK_ERROR_UNKNOWN` - corruption detection has been performed and found memory corruptions around one of the allocations. - `VMA_ASSERT` is also fired in that case. -- Other value: Error returned by Vulkan, e.g. memory mapping failure. -*/ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaCheckPoolCorruption(VmaAllocator VMA_NOT_NULL allocator, VmaPool VMA_NOT_NULL pool); - -/** \brief Retrieves name of a custom pool. - -After the call `ppName` is either null or points to an internally-owned null-terminated string -containing name of the pool that was previously set. The pointer becomes invalid when the pool is -destroyed or its name is changed using vmaSetPoolName(). -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaGetPoolName( - VmaAllocator VMA_NOT_NULL allocator, - VmaPool VMA_NOT_NULL pool, - const char* VMA_NULLABLE * VMA_NOT_NULL ppName); - -/** \brief Sets name of a custom pool. +/** @} */ -`pName` can be either null or pointer to a null-terminated string with new name for the pool. -Function makes internal copy of the string, so it can be changed or freed immediately after this call. +/** +\addtogroup group_alloc +@{ */ -VMA_CALL_PRE void VMA_CALL_POST vmaSetPoolName( - VmaAllocator VMA_NOT_NULL allocator, - VmaPool VMA_NOT_NULL pool, - const char* VMA_NULLABLE pName); - -/** \struct VmaAllocation -\brief Represents single memory allocation. - -It may be either dedicated block of `VkDeviceMemory` or a specific region of a bigger block of this type -plus unique offset. - -There are multiple ways to create such object. -You need to fill structure VmaAllocationCreateInfo. -For more information see [Choosing memory type](@ref choosing_memory_type). - -Although the library provides convenience functions that create Vulkan buffer or image, -allocate memory for it and bind them together, -binding of the allocation to a buffer or an image is out of scope of the allocation itself. -Allocation object can exist without buffer/image bound, -binding can be done manually by the user, and destruction of it can be done -independently of destruction of the allocation. - -The object also remembers its size and some other information. -To retrieve this information, use function vmaGetAllocationInfo() and inspect -returned structure VmaAllocationInfo. -Some kinds allocations can be in lost state. -For more information, see [Lost allocations](@ref lost_allocations). -*/ -VK_DEFINE_HANDLE(VmaAllocation) +/** +Parameters of #VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo(). -/** \brief Parameters of #VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo(). +There is also an extended version of this structure that carries additional parameters: #VmaAllocationInfo2. */ -typedef struct VmaAllocationInfo { +typedef struct VmaAllocationInfo +{ /** \brief Memory type index that this allocation was allocated from. It never changes. @@ -1361,9 +1349,7 @@ typedef struct VmaAllocationInfo { Same memory object can be shared by multiple allocations. - It can change after call to vmaDefragment() if this allocation is passed to the function, or if allocation is lost. - - If the allocation is lost, it is equal to `VK_NULL_HANDLE`. + It can change after the allocation is moved during \ref defragmentation. */ VkDeviceMemory VMA_NULLABLE_NON_DISPATCHABLE deviceMemory; /** \brief Offset in `VkDeviceMemory` object to the beginning of this allocation, in bytes. `(deviceMemory, offset)` pair is unique to this allocation. @@ -1373,12 +1359,12 @@ typedef struct VmaAllocationInfo { not entire device memory block. Functions like vmaMapMemory(), vmaBindBufferMemory() also refer to the beginning of the allocation and apply this offset automatically. - It can change after call to vmaDefragment() if this allocation is passed to the function, or if allocation is lost. + It can change after the allocation is moved during \ref defragmentation. */ VkDeviceSize offset; /** \brief Size of this allocation, in bytes. - It never changes, unless allocation is lost. + It never changes. \note Allocation size returned in this variable may be greater than the size requested for the resource e.g. as `VkBufferCreateInfo::size`. Whole size of the @@ -1393,7 +1379,7 @@ typedef struct VmaAllocationInfo { created with #VMA_ALLOCATION_CREATE_MAPPED_BIT flag, this value is null. It can change after call to vmaMapMemory(), vmaUnmapMemory(). - It can also change after call to vmaDefragment() if this allocation is passed to the function. + It can also change after the allocation is moved during \ref defragmentation. */ void* VMA_NULLABLE pMappedData; /** \brief Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vmaSetAllocationUserData(). @@ -1401,6102 +1387,5552 @@ typedef struct VmaAllocationInfo { It can change after call to vmaSetAllocationUserData() for this allocation. */ void* VMA_NULLABLE pUserData; -} VmaAllocationInfo; + /** \brief Custom allocation name that was set with vmaSetAllocationName(). -/** \brief General purpose memory allocation. + It can change after call to vmaSetAllocationName() for this allocation. -@param allocator -@param pVkMemoryRequirements -@param pCreateInfo -@param[out] pAllocation Handle to allocated memory. -@param[out] pAllocationInfo Optional. Information about allocated memory. It can be later fetched using function vmaGetAllocationInfo(). + Another way to set custom name is to pass it in VmaAllocationCreateInfo::pUserData with + additional flag #VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT set [DEPRECATED]. + */ + const char* VMA_NULLABLE pName; +} VmaAllocationInfo; -You should free the memory using vmaFreeMemory() or vmaFreeMemoryPages(). +/// Extended parameters of a #VmaAllocation object that can be retrieved using function vmaGetAllocationInfo2(). +typedef struct VmaAllocationInfo2 +{ + /** \brief Basic parameters of the allocation. + + If you need only these, you can use function vmaGetAllocationInfo() and structure #VmaAllocationInfo instead. + */ + VmaAllocationInfo allocationInfo; + /** \brief Size of the `VkDeviceMemory` block that the allocation belongs to. + + In case of an allocation with dedicated memory, it will be equal to `allocationInfo.size`. + */ + VkDeviceSize blockSize; + /** \brief `VK_TRUE` if the allocation has dedicated memory, `VK_FALSE` if it was placed as part of a larger memory block. + + When `VK_TRUE`, it also means `VkMemoryDedicatedAllocateInfo` was used when creating the allocation + (if VK_KHR_dedicated_allocation extension or Vulkan version >= 1.1 is enabled). + */ + VkBool32 dedicatedMemory; +} VmaAllocationInfo2; -It is recommended to use vmaAllocateMemoryForBuffer(), vmaAllocateMemoryForImage(), -vmaCreateBuffer(), vmaCreateImage() instead whenever possible. +/** Callback function called during vmaBeginDefragmentation() to check custom criterion about ending current defragmentation pass. + +Should return true if the defragmentation needs to stop current pass. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemory( - VmaAllocator VMA_NOT_NULL allocator, - const VkMemoryRequirements* VMA_NOT_NULL pVkMemoryRequirements, - const VmaAllocationCreateInfo* VMA_NOT_NULL pCreateInfo, - VmaAllocation VMA_NULLABLE * VMA_NOT_NULL pAllocation, - VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); +typedef VkBool32 (VKAPI_PTR* PFN_vmaCheckDefragmentationBreakFunction)(void* VMA_NULLABLE pUserData); -/** \brief General purpose memory allocation for multiple allocation objects at once. +/** \brief Parameters for defragmentation. -@param allocator Allocator object. -@param pVkMemoryRequirements Memory requirements for each allocation. -@param pCreateInfo Creation parameters for each alloction. -@param allocationCount Number of allocations to make. -@param[out] pAllocations Pointer to array that will be filled with handles to created allocations. -@param[out] pAllocationInfo Optional. Pointer to array that will be filled with parameters of created allocations. +To be used with function vmaBeginDefragmentation(). +*/ +typedef struct VmaDefragmentationInfo +{ + /// \brief Use combination of #VmaDefragmentationFlagBits. + VmaDefragmentationFlags flags; + /** \brief Custom pool to be defragmented. -You should free the memory using vmaFreeMemory() or vmaFreeMemoryPages(). + If null then default pools will undergo defragmentation process. + */ + VmaPool VMA_NULLABLE pool; + /** \brief Maximum numbers of bytes that can be copied during single pass, while moving allocations to different places. -Word "pages" is just a suggestion to use this function to allocate pieces of memory needed for sparse binding. -It is just a general purpose allocation function able to make multiple allocations at once. -It may be internally optimized to be more efficient than calling vmaAllocateMemory() `allocationCount` times. + `0` means no limit. + */ + VkDeviceSize maxBytesPerPass; + /** \brief Maximum number of allocations that can be moved during single pass to a different place. -All allocations are made using same parameters. All of them are created out of the same memory pool and type. -If any allocation fails, all allocations already made within this function call are also freed, so that when -returned result is not `VK_SUCCESS`, `pAllocation` array is always entirely filled with `VK_NULL_HANDLE`. -*/ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemoryPages( - VmaAllocator VMA_NOT_NULL allocator, - const VkMemoryRequirements* VMA_NOT_NULL VMA_LEN_IF_NOT_NULL(allocationCount) pVkMemoryRequirements, - const VmaAllocationCreateInfo* VMA_NOT_NULL VMA_LEN_IF_NOT_NULL(allocationCount) pCreateInfo, - size_t allocationCount, - VmaAllocation VMA_NULLABLE * VMA_NOT_NULL VMA_LEN_IF_NOT_NULL(allocationCount) pAllocations, - VmaAllocationInfo* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) pAllocationInfo); + `0` means no limit. + */ + uint32_t maxAllocationsPerPass; + /** \brief Optional custom callback for stopping vmaBeginDefragmentation(). -/** -@param allocator -@param buffer -@param pCreateInfo -@param[out] pAllocation Handle to allocated memory. -@param[out] pAllocationInfo Optional. Information about allocated memory. It can be later fetched using function vmaGetAllocationInfo(). + Have to return true for breaking current defragmentation pass. + */ + PFN_vmaCheckDefragmentationBreakFunction VMA_NULLABLE pfnBreakCallback; + /// \brief Optional data to pass to custom callback for stopping pass of defragmentation. + void* VMA_NULLABLE pBreakCallbackUserData; +} VmaDefragmentationInfo; -You should free the memory using vmaFreeMemory(). -*/ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemoryForBuffer( - VmaAllocator VMA_NOT_NULL allocator, - VkBuffer VMA_NOT_NULL_NON_DISPATCHABLE buffer, - const VmaAllocationCreateInfo* VMA_NOT_NULL pCreateInfo, - VmaAllocation VMA_NULLABLE * VMA_NOT_NULL pAllocation, - VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); +/// Single move of an allocation to be done for defragmentation. +typedef struct VmaDefragmentationMove +{ + /// Operation to be performed on the allocation by vmaEndDefragmentationPass(). Default value is #VMA_DEFRAGMENTATION_MOVE_OPERATION_COPY. You can modify it. + VmaDefragmentationMoveOperation operation; + /// Allocation that should be moved. + VmaAllocation VMA_NOT_NULL srcAllocation; + /** \brief Temporary allocation pointing to destination memory that will replace `srcAllocation`. -/// Function similar to vmaAllocateMemoryForBuffer(). -VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemoryForImage( - VmaAllocator VMA_NOT_NULL allocator, - VkImage VMA_NOT_NULL_NON_DISPATCHABLE image, - const VmaAllocationCreateInfo* VMA_NOT_NULL pCreateInfo, - VmaAllocation VMA_NULLABLE * VMA_NOT_NULL pAllocation, - VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); + \warning Do not store this allocation in your data structures! It exists only temporarily, for the duration of the defragmentation pass, + to be used for binding new buffer/image to the destination memory using e.g. vmaBindBufferMemory(). + vmaEndDefragmentationPass() will destroy it and make `srcAllocation` point to this memory. + */ + VmaAllocation VMA_NOT_NULL dstTmpAllocation; +} VmaDefragmentationMove; -/** \brief Frees memory previously allocated using vmaAllocateMemory(), vmaAllocateMemoryForBuffer(), or vmaAllocateMemoryForImage(). +/** \brief Parameters for incremental defragmentation steps. -Passing `VK_NULL_HANDLE` as `allocation` is valid. Such function call is just skipped. +To be used with function vmaBeginDefragmentationPass(). */ -VMA_CALL_PRE void VMA_CALL_POST vmaFreeMemory( - VmaAllocator VMA_NOT_NULL allocator, - const VmaAllocation VMA_NULLABLE allocation); +typedef struct VmaDefragmentationPassMoveInfo +{ + /// Number of elements in the `pMoves` array. + uint32_t moveCount; + /** \brief Array of moves to be performed by the user in the current defragmentation pass. -/** \brief Frees memory and destroys multiple allocations. - -Word "pages" is just a suggestion to use this function to free pieces of memory used for sparse binding. -It is just a general purpose function to free memory and destroy allocations made using e.g. vmaAllocateMemory(), -vmaAllocateMemoryPages() and other functions. -It may be internally optimized to be more efficient than calling vmaFreeMemory() `allocationCount` times. + Pointer to an array of `moveCount` elements, owned by VMA, created in vmaBeginDefragmentationPass(), destroyed in vmaEndDefragmentationPass(). -Allocations in `pAllocations` array can come from any memory pools and types. -Passing `VK_NULL_HANDLE` as elements of `pAllocations` array is valid. Such entries are just skipped. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaFreeMemoryPages( - VmaAllocator VMA_NOT_NULL allocator, - size_t allocationCount, - const VmaAllocation VMA_NULLABLE * VMA_NOT_NULL VMA_LEN_IF_NOT_NULL(allocationCount) pAllocations); + For each element, you should: -/** \brief Returns current information about specified allocation and atomically marks it as used in current frame. + 1. Create a new buffer/image in the place pointed by VmaDefragmentationMove::dstMemory + VmaDefragmentationMove::dstOffset. + 2. Copy data from the VmaDefragmentationMove::srcAllocation e.g. using `vkCmdCopyBuffer`, `vkCmdCopyImage`. + 3. Make sure these commands finished executing on the GPU. + 4. Destroy the old buffer/image. -Current paramteres of given allocation are returned in `pAllocationInfo`. + Only then you can finish defragmentation pass by calling vmaEndDefragmentationPass(). + After this call, the allocation will point to the new place in memory. -This function also atomically "touches" allocation - marks it as used in current frame, -just like vmaTouchAllocation(). -If the allocation is in lost state, `pAllocationInfo->deviceMemory == VK_NULL_HANDLE`. + Alternatively, if you cannot move specific allocation, you can set VmaDefragmentationMove::operation to #VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE. -Although this function uses atomics and doesn't lock any mutex, so it should be quite efficient, -you can avoid calling it too often. + Alternatively, if you decide you want to completely remove the allocation: -- You can retrieve same VmaAllocationInfo structure while creating your resource, from function - vmaCreateBuffer(), vmaCreateImage(). You can remember it if you are sure parameters don't change - (e.g. due to defragmentation or allocation becoming lost). -- If you just want to check if allocation is not lost, vmaTouchAllocation() will work faster. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaGetAllocationInfo( - VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NOT_NULL allocation, - VmaAllocationInfo* VMA_NOT_NULL pAllocationInfo); + 1. Destroy its buffer/image. + 2. Set VmaDefragmentationMove::operation to #VMA_DEFRAGMENTATION_MOVE_OPERATION_DESTROY. -/** \brief Returns `VK_TRUE` if allocation is not lost and atomically marks it as used in current frame. + Then, after vmaEndDefragmentationPass() the allocation will be freed. + */ + VmaDefragmentationMove* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(moveCount) pMoves; +} VmaDefragmentationPassMoveInfo; -If the allocation has been created with #VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT flag, -this function returns `VK_TRUE` if it is not in lost state, so it can still be used. -It then also atomically "touches" the allocation - marks it as used in current frame, -so that you can be sure it won't become lost in current frame or next `frameInUseCount` frames. +/// Statistics returned for defragmentation process in function vmaEndDefragmentation(). +typedef struct VmaDefragmentationStats +{ + /// Total number of bytes that have been copied while moving allocations to different places. + VkDeviceSize bytesMoved; + /// Total number of bytes that have been released to the system by freeing empty `VkDeviceMemory` objects. + VkDeviceSize bytesFreed; + /// Number of allocations that have been moved to different places. + uint32_t allocationsMoved; + /// Number of empty `VkDeviceMemory` objects that have been released to the system. + uint32_t deviceMemoryBlocksFreed; +} VmaDefragmentationStats; -If the allocation is in lost state, the function returns `VK_FALSE`. -Memory of such allocation, as well as buffer or image bound to it, should not be used. -Lost allocation and the buffer/image still need to be destroyed. +/** @} */ -If the allocation has been created without #VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT flag, -this function always returns `VK_TRUE`. +/** +\addtogroup group_virtual +@{ */ -VMA_CALL_PRE VkBool32 VMA_CALL_POST vmaTouchAllocation( - VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NOT_NULL allocation); -/** \brief Sets pUserData in given allocation to new value. +/// Parameters of created #VmaVirtualBlock object to be passed to vmaCreateVirtualBlock(). +typedef struct VmaVirtualBlockCreateInfo +{ + /** \brief Total size of the virtual block. -If the allocation was created with VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT, -pUserData must be either null, or pointer to a null-terminated string. The function -makes local copy of the string and sets it as allocation's `pUserData`. String -passed as pUserData doesn't need to be valid for whole lifetime of the allocation - -you can free it after this call. String previously pointed by allocation's -pUserData is freed from memory. + Sizes can be expressed in bytes or any units you want as long as you are consistent in using them. + For example, if you allocate from some array of structures, 1 can mean single instance of entire structure. + */ + VkDeviceSize size; -If the flag was not used, the value of pointer `pUserData` is just copied to -allocation's `pUserData`. It is opaque, so you can use it however you want - e.g. -as a pointer, ordinal number or some handle to you own data. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaSetAllocationUserData( - VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NOT_NULL allocation, - void* VMA_NULLABLE pUserData); + /** \brief Use combination of #VmaVirtualBlockCreateFlagBits. + */ + VmaVirtualBlockCreateFlags flags; -/** \brief Creates new allocation that is in lost state from the beginning. + /** \brief Custom CPU memory allocation callbacks. Optional. -It can be useful if you need a dummy, non-null allocation. + Optional, can be null. When specified, they will be used for all CPU-side memory allocations. + */ + const VkAllocationCallbacks* VMA_NULLABLE pAllocationCallbacks; +} VmaVirtualBlockCreateInfo; -You still need to destroy created object using vmaFreeMemory(). +/// Parameters of created virtual allocation to be passed to vmaVirtualAllocate(). +typedef struct VmaVirtualAllocationCreateInfo +{ + /** \brief Size of the allocation. -Returned allocation is not tied to any specific memory pool or memory type and -not bound to any image or buffer. It has size = 0. It cannot be turned into -a real, non-empty allocation. -*/ -VMA_CALL_PRE void VMA_CALL_POST vmaCreateLostAllocation( - VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NULLABLE * VMA_NOT_NULL pAllocation); + Cannot be zero. + */ + VkDeviceSize size; + /** \brief Required alignment of the allocation. Optional. -/** \brief Maps memory represented by given allocation and returns pointer to it. + Must be power of two. Special value 0 has the same meaning as 1 - means no special alignment is required, so allocation can start at any offset. + */ + VkDeviceSize alignment; + /** \brief Use combination of #VmaVirtualAllocationCreateFlagBits. + */ + VmaVirtualAllocationCreateFlags flags; + /** \brief Custom pointer to be associated with the allocation. Optional. -Maps memory represented by given allocation to make it accessible to CPU code. -When succeeded, `*ppData` contains pointer to first byte of this memory. -If the allocation is part of bigger `VkDeviceMemory` block, the pointer is -correctly offsetted to the beginning of region assigned to this particular -allocation. + It can be any value and can be used for user-defined purposes. It can be fetched or changed later. + */ + void* VMA_NULLABLE pUserData; +} VmaVirtualAllocationCreateInfo; -Mapping is internally reference-counted and synchronized, so despite raw Vulkan -function `vkMapMemory()` cannot be used to map same block of `VkDeviceMemory` -multiple times simultaneously, it is safe to call this function on allocations -assigned to the same memory block. Actual Vulkan memory will be mapped on first -mapping and unmapped on last unmapping. +/// Parameters of an existing virtual allocation, returned by vmaGetVirtualAllocationInfo(). +typedef struct VmaVirtualAllocationInfo +{ + /** \brief Offset of the allocation. -If the function succeeded, you must call vmaUnmapMemory() to unmap the -allocation when mapping is no longer needed or before freeing the allocation, at -the latest. + Offset at which the allocation was made. + */ + VkDeviceSize offset; + /** \brief Size of the allocation. -It also safe to call this function multiple times on the same allocation. You -must call vmaUnmapMemory() same number of times as you called vmaMapMemory(). + Same value as passed in VmaVirtualAllocationCreateInfo::size. + */ + VkDeviceSize size; + /** \brief Custom pointer associated with the allocation. -It is also safe to call this function on allocation created with -#VMA_ALLOCATION_CREATE_MAPPED_BIT flag. Its memory stays mapped all the time. -You must still call vmaUnmapMemory() same number of times as you called -vmaMapMemory(). You must not call vmaUnmapMemory() additional time to free the -"0-th" mapping made automatically due to #VMA_ALLOCATION_CREATE_MAPPED_BIT flag. + Same value as passed in VmaVirtualAllocationCreateInfo::pUserData or to vmaSetVirtualAllocationUserData(). + */ + void* VMA_NULLABLE pUserData; +} VmaVirtualAllocationInfo; -This function fails when used on allocation made in memory type that is not -`HOST_VISIBLE`. +/** @} */ -This function always fails when called for allocation that was created with -#VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT flag. Such allocations cannot be -mapped. +#endif // _VMA_DATA_TYPES_DECLARATIONS -This function doesn't automatically flush or invalidate caches. -If the allocation is made from a memory types that is not `HOST_COHERENT`, -you also need to use vmaInvalidateAllocation() / vmaFlushAllocation(), as required by Vulkan specification. +#ifndef _VMA_FUNCTION_HEADERS + +/** +\addtogroup group_init +@{ */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaMapMemory( - VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NOT_NULL allocation, - void* VMA_NULLABLE * VMA_NOT_NULL ppData); -/** \brief Unmaps memory represented by given allocation, mapped previously using vmaMapMemory(). +/// Creates #VmaAllocator object. +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateAllocator( + const VmaAllocatorCreateInfo* VMA_NOT_NULL pCreateInfo, + VmaAllocator VMA_NULLABLE* VMA_NOT_NULL pAllocator); -For details, see description of vmaMapMemory(). +/// Destroys allocator object. +VMA_CALL_PRE void VMA_CALL_POST vmaDestroyAllocator( + VmaAllocator VMA_NULLABLE allocator); -This function doesn't automatically flush or invalidate caches. -If the allocation is made from a memory types that is not `HOST_COHERENT`, -you also need to use vmaInvalidateAllocation() / vmaFlushAllocation(), as required by Vulkan specification. +/** \brief Returns information about existing #VmaAllocator object - handle to Vulkan device etc. + +It might be useful if you want to keep just the #VmaAllocator handle and fetch other required handles to +`VkPhysicalDevice`, `VkDevice` etc. every time using this function. */ -VMA_CALL_PRE void VMA_CALL_POST vmaUnmapMemory( +VMA_CALL_PRE void VMA_CALL_POST vmaGetAllocatorInfo( VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NOT_NULL allocation); + VmaAllocatorInfo* VMA_NOT_NULL pAllocatorInfo); -/** \brief Flushes memory of given allocation. +/** +PhysicalDeviceProperties are fetched from physicalDevice by the allocator. +You can access it here, without fetching it again on your own. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaGetPhysicalDeviceProperties( + VmaAllocator VMA_NOT_NULL allocator, + const VkPhysicalDeviceProperties* VMA_NULLABLE* VMA_NOT_NULL ppPhysicalDeviceProperties); -Calls `vkFlushMappedMemoryRanges()` for memory associated with given range of given allocation. -It needs to be called after writing to a mapped memory for memory types that are not `HOST_COHERENT`. -Unmap operation doesn't do that automatically. +/** +PhysicalDeviceMemoryProperties are fetched from physicalDevice by the allocator. +You can access it here, without fetching it again on your own. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaGetMemoryProperties( + VmaAllocator VMA_NOT_NULL allocator, + const VkPhysicalDeviceMemoryProperties* VMA_NULLABLE* VMA_NOT_NULL ppPhysicalDeviceMemoryProperties); -- `offset` must be relative to the beginning of allocation. -- `size` can be `VK_WHOLE_SIZE`. It means all memory from `offset` the the end of given allocation. -- `offset` and `size` don't have to be aligned. - They are internally rounded down/up to multiply of `nonCoherentAtomSize`. -- If `size` is 0, this call is ignored. -- If memory type that the `allocation` belongs to is not `HOST_VISIBLE` or it is `HOST_COHERENT`, - this call is ignored. +/** +\brief Given Memory Type Index, returns Property Flags of this memory type. -Warning! `offset` and `size` are relative to the contents of given `allocation`. -If you mean whole allocation, you can pass 0 and `VK_WHOLE_SIZE`, respectively. -Do not pass allocation's offset as `offset`!!! +This is just a convenience function. Same information can be obtained using +vmaGetMemoryProperties(). +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaGetMemoryTypeProperties( + VmaAllocator VMA_NOT_NULL allocator, + uint32_t memoryTypeIndex, + VkMemoryPropertyFlags* VMA_NOT_NULL pFlags); -This function returns the `VkResult` from `vkFlushMappedMemoryRanges` if it is -called, otherwise `VK_SUCCESS`. +/** \brief Sets index of the current frame. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaFlushAllocation( +VMA_CALL_PRE void VMA_CALL_POST vmaSetCurrentFrameIndex( VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NOT_NULL allocation, - VkDeviceSize offset, - VkDeviceSize size); + uint32_t frameIndex); -/** \brief Invalidates memory of given allocation. +/** @} */ -Calls `vkInvalidateMappedMemoryRanges()` for memory associated with given range of given allocation. -It needs to be called before reading from a mapped memory for memory types that are not `HOST_COHERENT`. -Map operation doesn't do that automatically. +/** +\addtogroup group_stats +@{ +*/ -- `offset` must be relative to the beginning of allocation. -- `size` can be `VK_WHOLE_SIZE`. It means all memory from `offset` the the end of given allocation. -- `offset` and `size` don't have to be aligned. - They are internally rounded down/up to multiply of `nonCoherentAtomSize`. -- If `size` is 0, this call is ignored. -- If memory type that the `allocation` belongs to is not `HOST_VISIBLE` or it is `HOST_COHERENT`, - this call is ignored. +/** \brief Retrieves statistics from current state of the Allocator. -Warning! `offset` and `size` are relative to the contents of given `allocation`. -If you mean whole allocation, you can pass 0 and `VK_WHOLE_SIZE`, respectively. -Do not pass allocation's offset as `offset`!!! +This function is called "calculate" not "get" because it has to traverse all +internal data structures, so it may be quite slow. Use it for debugging purposes. +For faster but more brief statistics suitable to be called every frame or every allocation, +use vmaGetHeapBudgets(). -This function returns the `VkResult` from `vkInvalidateMappedMemoryRanges` if -it is called, otherwise `VK_SUCCESS`. +Note that when using allocator from multiple threads, returned information may immediately +become outdated. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaInvalidateAllocation( +VMA_CALL_PRE void VMA_CALL_POST vmaCalculateStatistics( VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NOT_NULL allocation, - VkDeviceSize offset, - VkDeviceSize size); + VmaTotalStatistics* VMA_NOT_NULL pStats); -/** \brief Flushes memory of given set of allocations. - -Calls `vkFlushMappedMemoryRanges()` for memory associated with given ranges of given allocations. -For more information, see documentation of vmaFlushAllocation(). +/** \brief Retrieves information about current memory usage and budget for all memory heaps. \param allocator -\param allocationCount -\param allocations -\param offsets If not null, it must point to an array of offsets of regions to flush, relative to the beginning of respective allocations. Null means all ofsets are zero. -\param sizes If not null, it must point to an array of sizes of regions to flush in respective allocations. Null means `VK_WHOLE_SIZE` for all allocations. +\param[out] pBudgets Must point to array with number of elements at least equal to number of memory heaps in physical device used. -This function returns the `VkResult` from `vkFlushMappedMemoryRanges` if it is -called, otherwise `VK_SUCCESS`. +This function is called "get" not "calculate" because it is very fast, suitable to be called +every frame or every allocation. For more detailed statistics use vmaCalculateStatistics(). + +Note that when using allocator from multiple threads, returned information may immediately +become outdated. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaFlushAllocations( +VMA_CALL_PRE void VMA_CALL_POST vmaGetHeapBudgets( VmaAllocator VMA_NOT_NULL allocator, - uint32_t allocationCount, - const VmaAllocation VMA_NOT_NULL * VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) allocations, - const VkDeviceSize* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) offsets, - const VkDeviceSize* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) sizes); - -/** \brief Invalidates memory of given set of allocations. + VmaBudget* VMA_NOT_NULL VMA_LEN_IF_NOT_NULL("VkPhysicalDeviceMemoryProperties::memoryHeapCount") pBudgets); -Calls `vkInvalidateMappedMemoryRanges()` for memory associated with given ranges of given allocations. -For more information, see documentation of vmaInvalidateAllocation(). - -\param allocator -\param allocationCount -\param allocations -\param offsets If not null, it must point to an array of offsets of regions to flush, relative to the beginning of respective allocations. Null means all ofsets are zero. -\param sizes If not null, it must point to an array of sizes of regions to flush in respective allocations. Null means `VK_WHOLE_SIZE` for all allocations. +/** @} */ -This function returns the `VkResult` from `vkInvalidateMappedMemoryRanges` if it is -called, otherwise `VK_SUCCESS`. +/** +\addtogroup group_alloc +@{ */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaInvalidateAllocations( - VmaAllocator VMA_NOT_NULL allocator, - uint32_t allocationCount, - const VmaAllocation VMA_NOT_NULL * VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) allocations, - const VkDeviceSize* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) offsets, - const VkDeviceSize* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) sizes); -/** \brief Checks magic number in margins around all allocations in given memory types (in both default and custom pools) in search for corruptions. - -@param allocator -@param memoryTypeBits Bit mask, where each bit set means that a memory type with that index should be checked. +/** +\brief Helps to find memoryTypeIndex, given memoryTypeBits and VmaAllocationCreateInfo. -Corruption detection is enabled only when `VMA_DEBUG_DETECT_CORRUPTION` macro is defined to nonzero, -`VMA_DEBUG_MARGIN` is defined to nonzero and only for memory types that are -`HOST_VISIBLE` and `HOST_COHERENT`. For more information, see [Corruption detection](@ref debugging_memory_usage_corruption_detection). +This algorithm tries to find a memory type that: -Possible return values: +- Is allowed by memoryTypeBits. +- Contains all the flags from pAllocationCreateInfo->requiredFlags. +- Matches intended usage. +- Has as many flags from pAllocationCreateInfo->preferredFlags as possible. -- `VK_ERROR_FEATURE_NOT_PRESENT` - corruption detection is not enabled for any of specified memory types. -- `VK_SUCCESS` - corruption detection has been performed and succeeded. -- `VK_ERROR_UNKNOWN` - corruption detection has been performed and found memory corruptions around one of the allocations. - `VMA_ASSERT` is also fired in that case. -- Other value: Error returned by Vulkan, e.g. memory mapping failure. +\return Returns VK_ERROR_FEATURE_NOT_PRESENT if not found. Receiving such result +from this function or any other allocating function probably means that your +device doesn't support any memory type with requested features for the specific +type of resource you want to use it for. Please check parameters of your +resource, like image layout (OPTIMAL versus LINEAR) or mip level count. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaCheckCorruption(VmaAllocator VMA_NOT_NULL allocator, uint32_t memoryTypeBits); +VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndex( + VmaAllocator VMA_NOT_NULL allocator, + uint32_t memoryTypeBits, + const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, + uint32_t* VMA_NOT_NULL pMemoryTypeIndex); -/** \struct VmaDefragmentationContext -\brief Represents Opaque object that represents started defragmentation process. +/** +\brief Helps to find memoryTypeIndex, given VkBufferCreateInfo and VmaAllocationCreateInfo. -Fill structure #VmaDefragmentationInfo2 and call function vmaDefragmentationBegin() to create it. -Call function vmaDefragmentationEnd() to destroy it. +It can be useful e.g. to determine value to be used as VmaPoolCreateInfo::memoryTypeIndex. +It internally creates a temporary, dummy buffer that never has memory bound. */ -VK_DEFINE_HANDLE(VmaDefragmentationContext) +VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndexForBufferInfo( + VmaAllocator VMA_NOT_NULL allocator, + const VkBufferCreateInfo* VMA_NOT_NULL pBufferCreateInfo, + const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, + uint32_t* VMA_NOT_NULL pMemoryTypeIndex); -/// Flags to be used in vmaDefragmentationBegin(). None at the moment. Reserved for future use. -typedef enum VmaDefragmentationFlagBits { - VMA_DEFRAGMENTATION_FLAG_INCREMENTAL = 0x1, - VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VmaDefragmentationFlagBits; -typedef VkFlags VmaDefragmentationFlags; +/** +\brief Helps to find memoryTypeIndex, given VkImageCreateInfo and VmaAllocationCreateInfo. -/** \brief Parameters for defragmentation. - -To be used with function vmaDefragmentationBegin(). +It can be useful e.g. to determine value to be used as VmaPoolCreateInfo::memoryTypeIndex. +It internally creates a temporary, dummy image that never has memory bound. */ -typedef struct VmaDefragmentationInfo2 { - /** \brief Reserved for future use. Should be 0. - */ - VmaDefragmentationFlags flags; - /** \brief Number of allocations in `pAllocations` array. - */ - uint32_t allocationCount; - /** \brief Pointer to array of allocations that can be defragmented. - - The array should have `allocationCount` elements. - The array should not contain nulls. - Elements in the array should be unique - same allocation cannot occur twice. - It is safe to pass allocations that are in the lost state - they are ignored. - All allocations not present in this array are considered non-moveable during this defragmentation. - */ - const VmaAllocation VMA_NOT_NULL * VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) pAllocations; - /** \brief Optional, output. Pointer to array that will be filled with information whether the allocation at certain index has been changed during defragmentation. - - The array should have `allocationCount` elements. - You can pass null if you are not interested in this information. - */ - VkBool32* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) pAllocationsChanged; - /** \brief Numer of pools in `pPools` array. - */ - uint32_t poolCount; - /** \brief Either null or pointer to array of pools to be defragmented. - - All the allocations in the specified pools can be moved during defragmentation - and there is no way to check if they were really moved as in `pAllocationsChanged`, - so you must query all the allocations in all these pools for new `VkDeviceMemory` - and offset using vmaGetAllocationInfo() if you might need to recreate buffers - and images bound to them. - - The array should have `poolCount` elements. - The array should not contain nulls. - Elements in the array should be unique - same pool cannot occur twice. - - Using this array is equivalent to specifying all allocations from the pools in `pAllocations`. - It might be more efficient. - */ - const VmaPool VMA_NOT_NULL * VMA_NULLABLE VMA_LEN_IF_NOT_NULL(poolCount) pPools; - /** \brief Maximum total numbers of bytes that can be copied while moving allocations to different places using transfers on CPU side, like `memcpy()`, `memmove()`. +VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndexForImageInfo( + VmaAllocator VMA_NOT_NULL allocator, + const VkImageCreateInfo* VMA_NOT_NULL pImageCreateInfo, + const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, + uint32_t* VMA_NOT_NULL pMemoryTypeIndex); - `VK_WHOLE_SIZE` means no limit. - */ - VkDeviceSize maxCpuBytesToMove; - /** \brief Maximum number of allocations that can be moved to a different place using transfers on CPU side, like `memcpy()`, `memmove()`. +/** \brief Allocates Vulkan device memory and creates #VmaPool object. - `UINT32_MAX` means no limit. - */ - uint32_t maxCpuAllocationsToMove; - /** \brief Maximum total numbers of bytes that can be copied while moving allocations to different places using transfers on GPU side, posted to `commandBuffer`. +\param allocator Allocator object. +\param pCreateInfo Parameters of pool to create. +\param[out] pPool Handle to created pool. +*/ +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreatePool( + VmaAllocator VMA_NOT_NULL allocator, + const VmaPoolCreateInfo* VMA_NOT_NULL pCreateInfo, + VmaPool VMA_NULLABLE* VMA_NOT_NULL pPool); - `VK_WHOLE_SIZE` means no limit. - */ - VkDeviceSize maxGpuBytesToMove; - /** \brief Maximum number of allocations that can be moved to a different place using transfers on GPU side, posted to `commandBuffer`. +/** \brief Destroys #VmaPool object and frees Vulkan device memory. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaDestroyPool( + VmaAllocator VMA_NOT_NULL allocator, + VmaPool VMA_NULLABLE pool); - `UINT32_MAX` means no limit. - */ - uint32_t maxGpuAllocationsToMove; - /** \brief Optional. Command buffer where GPU copy commands will be posted. +/** @} */ - If not null, it must be a valid command buffer handle that supports Transfer queue type. - It must be in the recording state and outside of a render pass instance. - You need to submit it and make sure it finished execution before calling vmaDefragmentationEnd(). +/** +\addtogroup group_stats +@{ +*/ - Passing null means that only CPU defragmentation will be performed. - */ - VkCommandBuffer VMA_NULLABLE commandBuffer; -} VmaDefragmentationInfo2; +/** \brief Retrieves statistics of existing #VmaPool object. -typedef struct VmaDefragmentationPassMoveInfo { - VmaAllocation VMA_NOT_NULL allocation; - VkDeviceMemory VMA_NOT_NULL_NON_DISPATCHABLE memory; - VkDeviceSize offset; -} VmaDefragmentationPassMoveInfo; +\param allocator Allocator object. +\param pool Pool object. +\param[out] pPoolStats Statistics of specified pool. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaGetPoolStatistics( + VmaAllocator VMA_NOT_NULL allocator, + VmaPool VMA_NOT_NULL pool, + VmaStatistics* VMA_NOT_NULL pPoolStats); -/** \brief Parameters for incremental defragmentation steps. +/** \brief Retrieves detailed statistics of existing #VmaPool object. -To be used with function vmaBeginDefragmentationPass(). +\param allocator Allocator object. +\param pool Pool object. +\param[out] pPoolStats Statistics of specified pool. */ -typedef struct VmaDefragmentationPassInfo { - uint32_t moveCount; - VmaDefragmentationPassMoveInfo* VMA_NOT_NULL VMA_LEN_IF_NOT_NULL(moveCount) pMoves; -} VmaDefragmentationPassInfo; +VMA_CALL_PRE void VMA_CALL_POST vmaCalculatePoolStatistics( + VmaAllocator VMA_NOT_NULL allocator, + VmaPool VMA_NOT_NULL pool, + VmaDetailedStatistics* VMA_NOT_NULL pPoolStats); -/** \brief Deprecated. Optional configuration parameters to be passed to function vmaDefragment(). +/** @} */ -\deprecated This is a part of the old interface. It is recommended to use structure #VmaDefragmentationInfo2 and function vmaDefragmentationBegin() instead. +/** +\addtogroup group_alloc +@{ */ -typedef struct VmaDefragmentationInfo { - /** \brief Maximum total numbers of bytes that can be copied while moving allocations to different places. - - Default is `VK_WHOLE_SIZE`, which means no limit. - */ - VkDeviceSize maxBytesToMove; - /** \brief Maximum number of allocations that can be moved to different place. - Default is `UINT32_MAX`, which means no limit. - */ - uint32_t maxAllocationsToMove; -} VmaDefragmentationInfo; +/** \brief Checks magic number in margins around all allocations in given memory pool in search for corruptions. -/** \brief Statistics returned by function vmaDefragment(). */ -typedef struct VmaDefragmentationStats { - /// Total number of bytes that have been copied while moving allocations to different places. - VkDeviceSize bytesMoved; - /// Total number of bytes that have been released to the system by freeing empty `VkDeviceMemory` objects. - VkDeviceSize bytesFreed; - /// Number of allocations that have been moved to different places. - uint32_t allocationsMoved; - /// Number of empty `VkDeviceMemory` objects that have been released to the system. - uint32_t deviceMemoryBlocksFreed; -} VmaDefragmentationStats; +Corruption detection is enabled only when `VMA_DEBUG_DETECT_CORRUPTION` macro is defined to nonzero, +`VMA_DEBUG_MARGIN` is defined to nonzero and the pool is created in memory type that is +`HOST_VISIBLE` and `HOST_COHERENT`. For more information, see [Corruption detection](@ref debugging_memory_usage_corruption_detection). -/** \brief Begins defragmentation process. +Possible return values: -@param allocator Allocator object. -@param pInfo Structure filled with parameters of defragmentation. -@param[out] pStats Optional. Statistics of defragmentation. You can pass null if you are not interested in this information. -@param[out] pContext Context object that must be passed to vmaDefragmentationEnd() to finish defragmentation. -@return `VK_SUCCESS` and `*pContext == null` if defragmentation finished within this function call. `VK_NOT_READY` and `*pContext != null` if defragmentation has been started and you need to call vmaDefragmentationEnd() to finish it. Negative value in case of error. - -Use this function instead of old, deprecated vmaDefragment(). - -Warning! Between the call to vmaDefragmentationBegin() and vmaDefragmentationEnd(): - -- You should not use any of allocations passed as `pInfo->pAllocations` or - any allocations that belong to pools passed as `pInfo->pPools`, - including calling vmaGetAllocationInfo(), vmaTouchAllocation(), or access - their data. -- Some mutexes protecting internal data structures may be locked, so trying to - make or free any allocations, bind buffers or images, map memory, or launch - another simultaneous defragmentation in between may cause stall (when done on - another thread) or deadlock (when done on the same thread), unless you are - 100% sure that defragmented allocations are in different pools. -- Information returned via `pStats` and `pInfo->pAllocationsChanged` are undefined. - They become valid after call to vmaDefragmentationEnd(). -- If `pInfo->commandBuffer` is not null, you must submit that command buffer - and make sure it finished execution before calling vmaDefragmentationEnd(). - -For more information and important limitations regarding defragmentation, see documentation chapter: -[Defragmentation](@ref defragmentation). +- `VK_ERROR_FEATURE_NOT_PRESENT` - corruption detection is not enabled for specified pool. +- `VK_SUCCESS` - corruption detection has been performed and succeeded. +- `VK_ERROR_UNKNOWN` - corruption detection has been performed and found memory corruptions around one of the allocations. + `VMA_ASSERT` is also fired in that case. +- Other value: Error returned by Vulkan, e.g. memory mapping failure. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaDefragmentationBegin( +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCheckPoolCorruption( VmaAllocator VMA_NOT_NULL allocator, - const VmaDefragmentationInfo2* VMA_NOT_NULL pInfo, - VmaDefragmentationStats* VMA_NULLABLE pStats, - VmaDefragmentationContext VMA_NULLABLE * VMA_NOT_NULL pContext); + VmaPool VMA_NOT_NULL pool); -/** \brief Ends defragmentation process. +/** \brief Retrieves name of a custom pool. -Use this function to finish defragmentation started by vmaDefragmentationBegin(). -It is safe to pass `context == null`. The function then does nothing. +After the call `ppName` is either null or points to an internally-owned null-terminated string +containing name of the pool that was previously set. The pointer becomes invalid when the pool is +destroyed or its name is changed using vmaSetPoolName(). */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaDefragmentationEnd( +VMA_CALL_PRE void VMA_CALL_POST vmaGetPoolName( VmaAllocator VMA_NOT_NULL allocator, - VmaDefragmentationContext VMA_NULLABLE context); + VmaPool VMA_NOT_NULL pool, + const char* VMA_NULLABLE* VMA_NOT_NULL ppName); -VMA_CALL_PRE VkResult VMA_CALL_POST vmaBeginDefragmentationPass( - VmaAllocator VMA_NOT_NULL allocator, - VmaDefragmentationContext VMA_NULLABLE context, - VmaDefragmentationPassInfo* VMA_NOT_NULL pInfo -); -VMA_CALL_PRE VkResult VMA_CALL_POST vmaEndDefragmentationPass( - VmaAllocator VMA_NOT_NULL allocator, - VmaDefragmentationContext VMA_NULLABLE context -); - -/** \brief Deprecated. Compacts memory by moving allocations. - -@param allocator -@param pAllocations Array of allocations that can be moved during this compation. -@param allocationCount Number of elements in pAllocations and pAllocationsChanged arrays. -@param[out] pAllocationsChanged Array of boolean values that will indicate whether matching allocation in pAllocations array has been moved. This parameter is optional. Pass null if you don't need this information. -@param pDefragmentationInfo Configuration parameters. Optional - pass null to use default values. -@param[out] pDefragmentationStats Statistics returned by the function. Optional - pass null if you don't need this information. -@return `VK_SUCCESS` if completed, negative error code in case of error. - -\deprecated This is a part of the old interface. It is recommended to use structure #VmaDefragmentationInfo2 and function vmaDefragmentationBegin() instead. - -This function works by moving allocations to different places (different -`VkDeviceMemory` objects and/or different offsets) in order to optimize memory -usage. Only allocations that are in `pAllocations` array can be moved. All other -allocations are considered nonmovable in this call. Basic rules: - -- Only allocations made in memory types that have - `VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT` and `VK_MEMORY_PROPERTY_HOST_COHERENT_BIT` - flags can be compacted. You may pass other allocations but it makes no sense - - these will never be moved. -- Custom pools created with #VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT or - #VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT flag are not defragmented. Allocations - passed to this function that come from such pools are ignored. -- Allocations created with #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT or - created as dedicated allocations for any other reason are also ignored. -- Both allocations made with or without #VMA_ALLOCATION_CREATE_MAPPED_BIT - flag can be compacted. If not persistently mapped, memory will be mapped - temporarily inside this function if needed. -- You must not pass same #VmaAllocation object multiple times in `pAllocations` array. - -The function also frees empty `VkDeviceMemory` blocks. - -Warning: This function may be time-consuming, so you shouldn't call it too often -(like after every resource creation/destruction). -You can call it on special occasions (like when reloading a game level or -when you just destroyed a lot of objects). Calling it every frame may be OK, but -you should measure that on your platform. - -For more information, see [Defragmentation](@ref defragmentation) chapter. +/** \brief Sets name of a custom pool. + +`pName` can be either null or pointer to a null-terminated string with new name for the pool. +Function makes internal copy of the string, so it can be changed or freed immediately after this call. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaDefragment( +VMA_CALL_PRE void VMA_CALL_POST vmaSetPoolName( VmaAllocator VMA_NOT_NULL allocator, - const VmaAllocation VMA_NOT_NULL * VMA_NOT_NULL VMA_LEN_IF_NOT_NULL(allocationCount) pAllocations, - size_t allocationCount, - VkBool32* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) pAllocationsChanged, - const VmaDefragmentationInfo* VMA_NULLABLE pDefragmentationInfo, - VmaDefragmentationStats* VMA_NULLABLE pDefragmentationStats); + VmaPool VMA_NOT_NULL pool, + const char* VMA_NULLABLE pName); -/** \brief Binds buffer to allocation. +/** \brief General purpose memory allocation. -Binds specified buffer to region of memory represented by specified allocation. -Gets `VkDeviceMemory` handle and offset from the allocation. -If you want to create a buffer, allocate memory for it and bind them together separately, -you should use this function for binding instead of standard `vkBindBufferMemory()`, -because it ensures proper synchronization so that when a `VkDeviceMemory` object is used by multiple -allocations, calls to `vkBind*Memory()` or `vkMapMemory()` won't happen from multiple threads simultaneously -(which is illegal in Vulkan). +\param allocator +\param pVkMemoryRequirements +\param pCreateInfo +\param[out] pAllocation Handle to allocated memory. +\param[out] pAllocationInfo Optional. Information about allocated memory. It can be later fetched using function vmaGetAllocationInfo(). -It is recommended to use function vmaCreateBuffer() instead of this one. +You should free the memory using vmaFreeMemory() or vmaFreeMemoryPages(). + +It is recommended to use vmaAllocateMemoryForBuffer(), vmaAllocateMemoryForImage(), +vmaCreateBuffer(), vmaCreateImage() instead whenever possible. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaBindBufferMemory( +VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemory( VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NOT_NULL allocation, - VkBuffer VMA_NOT_NULL_NON_DISPATCHABLE buffer); + const VkMemoryRequirements* VMA_NOT_NULL pVkMemoryRequirements, + const VmaAllocationCreateInfo* VMA_NOT_NULL pCreateInfo, + VmaAllocation VMA_NULLABLE* VMA_NOT_NULL pAllocation, + VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); -/** \brief Binds buffer to allocation with additional parameters. +/** \brief General purpose memory allocation for multiple allocation objects at once. -@param allocator -@param allocation -@param allocationLocalOffset Additional offset to be added while binding, relative to the beginning of the `allocation`. Normally it should be 0. -@param buffer -@param pNext A chain of structures to be attached to `VkBindBufferMemoryInfoKHR` structure used internally. Normally it should be null. +\param allocator Allocator object. +\param pVkMemoryRequirements Memory requirements for each allocation. +\param pCreateInfo Creation parameters for each allocation. +\param allocationCount Number of allocations to make. +\param[out] pAllocations Pointer to array that will be filled with handles to created allocations. +\param[out] pAllocationInfo Optional. Pointer to array that will be filled with parameters of created allocations. -This function is similar to vmaBindBufferMemory(), but it provides additional parameters. +You should free the memory using vmaFreeMemory() or vmaFreeMemoryPages(). -If `pNext` is not null, #VmaAllocator object must have been created with #VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT flag -or with VmaAllocatorCreateInfo::vulkanApiVersion `>= VK_API_VERSION_1_1`. Otherwise the call fails. +Word "pages" is just a suggestion to use this function to allocate pieces of memory needed for sparse binding. +It is just a general purpose allocation function able to make multiple allocations at once. +It may be internally optimized to be more efficient than calling vmaAllocateMemory() `allocationCount` times. + +All allocations are made using same parameters. All of them are created out of the same memory pool and type. +If any allocation fails, all allocations already made within this function call are also freed, so that when +returned result is not `VK_SUCCESS`, `pAllocation` array is always entirely filled with `VK_NULL_HANDLE`. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaBindBufferMemory2( +VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemoryPages( VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NOT_NULL allocation, - VkDeviceSize allocationLocalOffset, - VkBuffer VMA_NOT_NULL_NON_DISPATCHABLE buffer, - const void* VMA_NULLABLE pNext); + const VkMemoryRequirements* VMA_NOT_NULL VMA_LEN_IF_NOT_NULL(allocationCount) pVkMemoryRequirements, + const VmaAllocationCreateInfo* VMA_NOT_NULL VMA_LEN_IF_NOT_NULL(allocationCount) pCreateInfo, + size_t allocationCount, + VmaAllocation VMA_NULLABLE* VMA_NOT_NULL VMA_LEN_IF_NOT_NULL(allocationCount) pAllocations, + VmaAllocationInfo* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) pAllocationInfo); -/** \brief Binds image to allocation. +/** \brief Allocates memory suitable for given `VkBuffer`. -Binds specified image to region of memory represented by specified allocation. -Gets `VkDeviceMemory` handle and offset from the allocation. -If you want to create an image, allocate memory for it and bind them together separately, -you should use this function for binding instead of standard `vkBindImageMemory()`, -because it ensures proper synchronization so that when a `VkDeviceMemory` object is used by multiple -allocations, calls to `vkBind*Memory()` or `vkMapMemory()` won't happen from multiple threads simultaneously -(which is illegal in Vulkan). +\param allocator +\param buffer +\param pCreateInfo +\param[out] pAllocation Handle to allocated memory. +\param[out] pAllocationInfo Optional. Information about allocated memory. It can be later fetched using function vmaGetAllocationInfo(). -It is recommended to use function vmaCreateImage() instead of this one. +It only creates #VmaAllocation. To bind the memory to the buffer, use vmaBindBufferMemory(). + +This is a special-purpose function. In most cases you should use vmaCreateBuffer(). + +You must free the allocation using vmaFreeMemory() when no longer needed. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaBindImageMemory( +VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemoryForBuffer( VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NOT_NULL allocation, - VkImage VMA_NOT_NULL_NON_DISPATCHABLE image); + VkBuffer VMA_NOT_NULL_NON_DISPATCHABLE buffer, + const VmaAllocationCreateInfo* VMA_NOT_NULL pCreateInfo, + VmaAllocation VMA_NULLABLE* VMA_NOT_NULL pAllocation, + VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); -/** \brief Binds image to allocation with additional parameters. +/** \brief Allocates memory suitable for given `VkImage`. + +\param allocator +\param image +\param pCreateInfo +\param[out] pAllocation Handle to allocated memory. +\param[out] pAllocationInfo Optional. Information about allocated memory. It can be later fetched using function vmaGetAllocationInfo(). -@param allocator -@param allocation -@param allocationLocalOffset Additional offset to be added while binding, relative to the beginning of the `allocation`. Normally it should be 0. -@param image -@param pNext A chain of structures to be attached to `VkBindImageMemoryInfoKHR` structure used internally. Normally it should be null. +It only creates #VmaAllocation. To bind the memory to the buffer, use vmaBindImageMemory(). -This function is similar to vmaBindImageMemory(), but it provides additional parameters. +This is a special-purpose function. In most cases you should use vmaCreateImage(). -If `pNext` is not null, #VmaAllocator object must have been created with #VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT flag -or with VmaAllocatorCreateInfo::vulkanApiVersion `>= VK_API_VERSION_1_1`. Otherwise the call fails. +You must free the allocation using vmaFreeMemory() when no longer needed. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaBindImageMemory2( +VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemoryForImage( VmaAllocator VMA_NOT_NULL allocator, - VmaAllocation VMA_NOT_NULL allocation, - VkDeviceSize allocationLocalOffset, VkImage VMA_NOT_NULL_NON_DISPATCHABLE image, - const void* VMA_NULLABLE pNext); + const VmaAllocationCreateInfo* VMA_NOT_NULL pCreateInfo, + VmaAllocation VMA_NULLABLE* VMA_NOT_NULL pAllocation, + VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); -/** -@param allocator -@param pBufferCreateInfo -@param pAllocationCreateInfo -@param[out] pBuffer Buffer that was created. -@param[out] pAllocation Allocation that was created. -@param[out] pAllocationInfo Optional. Information about allocated memory. It can be later fetched using function vmaGetAllocationInfo(). +/** \brief Frees memory previously allocated using vmaAllocateMemory(), vmaAllocateMemoryForBuffer(), or vmaAllocateMemoryForImage(). -This function automatically: +Passing `VK_NULL_HANDLE` as `allocation` is valid. Such function call is just skipped. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaFreeMemory( + VmaAllocator VMA_NOT_NULL allocator, + const VmaAllocation VMA_NULLABLE allocation); --# Creates buffer. --# Allocates appropriate memory for it. --# Binds the buffer with the memory. +/** \brief Frees memory and destroys multiple allocations. -If any of these operations fail, buffer and allocation are not created, -returned value is negative error code, *pBuffer and *pAllocation are null. +Word "pages" is just a suggestion to use this function to free pieces of memory used for sparse binding. +It is just a general purpose function to free memory and destroy allocations made using e.g. vmaAllocateMemory(), +vmaAllocateMemoryPages() and other functions. +It may be internally optimized to be more efficient than calling vmaFreeMemory() `allocationCount` times. -If the function succeeded, you must destroy both buffer and allocation when you -no longer need them using either convenience function vmaDestroyBuffer() or -separately, using `vkDestroyBuffer()` and vmaFreeMemory(). +Allocations in `pAllocations` array can come from any memory pools and types. +Passing `VK_NULL_HANDLE` as elements of `pAllocations` array is valid. Such entries are just skipped. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaFreeMemoryPages( + VmaAllocator VMA_NOT_NULL allocator, + size_t allocationCount, + const VmaAllocation VMA_NULLABLE* VMA_NOT_NULL VMA_LEN_IF_NOT_NULL(allocationCount) pAllocations); -If #VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT flag was used, -VK_KHR_dedicated_allocation extension is used internally to query driver whether -it requires or prefers the new buffer to have dedicated allocation. If yes, -and if dedicated allocation is possible (VmaAllocationCreateInfo::pool is null -and #VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT is not used), it creates dedicated -allocation for this buffer, just like when using -#VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT. +/** \brief Returns current information about specified allocation. -\note This function creates a new `VkBuffer`. Sub-allocation of parts of one large buffer, -although recommended as a good practice, is out of scope of this library and could be implemented -by the user as a higher-level logic on top of VMA. +Current parameters of given allocation are returned in `pAllocationInfo`. + +Although this function doesn't lock any mutex, so it should be quite efficient, +you should avoid calling it too often. +You can retrieve same VmaAllocationInfo structure while creating your resource, from function +vmaCreateBuffer(), vmaCreateImage(). You can remember it if you are sure parameters don't change +(e.g. due to defragmentation). + +There is also a new function vmaGetAllocationInfo2() that offers extended information +about the allocation, returned using new structure #VmaAllocationInfo2. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateBuffer( +VMA_CALL_PRE void VMA_CALL_POST vmaGetAllocationInfo( VmaAllocator VMA_NOT_NULL allocator, - const VkBufferCreateInfo* VMA_NOT_NULL pBufferCreateInfo, - const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, - VkBuffer VMA_NULLABLE_NON_DISPATCHABLE * VMA_NOT_NULL pBuffer, - VmaAllocation VMA_NULLABLE * VMA_NOT_NULL pAllocation, - VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); + VmaAllocation VMA_NOT_NULL allocation, + VmaAllocationInfo* VMA_NOT_NULL pAllocationInfo); -/** \brief Creates a buffer with additional minimum alignment. +/** \brief Returns extended information about specified allocation. -Similar to vmaCreateBuffer() but provides additional parameter `minAlignment` which allows to specify custom, -minimum alignment to be used when placing the buffer inside a larger memory block, which may be needed e.g. -for interop with OpenGL. +Current parameters of given allocation are returned in `pAllocationInfo`. +Extended parameters in structure #VmaAllocationInfo2 include memory block size +and a flag telling whether the allocation has dedicated memory. +It can be useful e.g. for interop with OpenGL. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateBufferWithAlignment( +VMA_CALL_PRE void VMA_CALL_POST vmaGetAllocationInfo2( VmaAllocator VMA_NOT_NULL allocator, - const VkBufferCreateInfo* VMA_NOT_NULL pBufferCreateInfo, - const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, - VkDeviceSize minAlignment, - VkBuffer VMA_NULLABLE_NON_DISPATCHABLE * VMA_NOT_NULL pBuffer, - VmaAllocation VMA_NULLABLE * VMA_NOT_NULL pAllocation, - VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); + VmaAllocation VMA_NOT_NULL allocation, + VmaAllocationInfo2* VMA_NOT_NULL pAllocationInfo); -/** \brief Destroys Vulkan buffer and frees allocated memory. +/** \brief Sets pUserData in given allocation to new value. -This is just a convenience function equivalent to: +The value of pointer `pUserData` is copied to allocation's `pUserData`. +It is opaque, so you can use it however you want - e.g. +as a pointer, ordinal number or some handle to you own data. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaSetAllocationUserData( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + void* VMA_NULLABLE pUserData); -\code -vkDestroyBuffer(device, buffer, allocationCallbacks); -vmaFreeMemory(allocator, allocation); -\endcode +/** \brief Sets pName in given allocation to new value. -It it safe to pass null as buffer and/or allocation. +`pName` must be either null, or pointer to a null-terminated string. The function +makes local copy of the string and sets it as allocation's `pName`. String +passed as pName doesn't need to be valid for whole lifetime of the allocation - +you can free it after this call. String previously pointed by allocation's +`pName` is freed from memory. */ -VMA_CALL_PRE void VMA_CALL_POST vmaDestroyBuffer( +VMA_CALL_PRE void VMA_CALL_POST vmaSetAllocationName( VmaAllocator VMA_NOT_NULL allocator, - VkBuffer VMA_NULLABLE_NON_DISPATCHABLE buffer, - VmaAllocation VMA_NULLABLE allocation); + VmaAllocation VMA_NOT_NULL allocation, + const char* VMA_NULLABLE pName); -/// Function similar to vmaCreateBuffer(). -VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateImage( +/** +\brief Given an allocation, returns Property Flags of its memory type. + +This is just a convenience function. Same information can be obtained using +vmaGetAllocationInfo() + vmaGetMemoryProperties(). +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaGetAllocationMemoryProperties( VmaAllocator VMA_NOT_NULL allocator, - const VkImageCreateInfo* VMA_NOT_NULL pImageCreateInfo, - const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, - VkImage VMA_NULLABLE_NON_DISPATCHABLE * VMA_NOT_NULL pImage, - VmaAllocation VMA_NULLABLE * VMA_NOT_NULL pAllocation, - VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); + VmaAllocation VMA_NOT_NULL allocation, + VkMemoryPropertyFlags* VMA_NOT_NULL pFlags); -/** \brief Destroys Vulkan image and frees allocated memory. +/** \brief Maps memory represented by given allocation and returns pointer to it. -This is just a convenience function equivalent to: +Maps memory represented by given allocation to make it accessible to CPU code. +When succeeded, `*ppData` contains pointer to first byte of this memory. -\code -vkDestroyImage(device, image, allocationCallbacks); -vmaFreeMemory(allocator, allocation); -\endcode +\warning +If the allocation is part of a bigger `VkDeviceMemory` block, returned pointer is +correctly offsetted to the beginning of region assigned to this particular allocation. +Unlike the result of `vkMapMemory`, it points to the allocation, not to the beginning of the whole block. +You should not add VmaAllocationInfo::offset to it! + +Mapping is internally reference-counted and synchronized, so despite raw Vulkan +function `vkMapMemory()` cannot be used to map same block of `VkDeviceMemory` +multiple times simultaneously, it is safe to call this function on allocations +assigned to the same memory block. Actual Vulkan memory will be mapped on first +mapping and unmapped on last unmapping. + +If the function succeeded, you must call vmaUnmapMemory() to unmap the +allocation when mapping is no longer needed or before freeing the allocation, at +the latest. -It it safe to pass null as image and/or allocation. +It also safe to call this function multiple times on the same allocation. You +must call vmaUnmapMemory() same number of times as you called vmaMapMemory(). + +It is also safe to call this function on allocation created with +#VMA_ALLOCATION_CREATE_MAPPED_BIT flag. Its memory stays mapped all the time. +You must still call vmaUnmapMemory() same number of times as you called +vmaMapMemory(). You must not call vmaUnmapMemory() additional time to free the +"0-th" mapping made automatically due to #VMA_ALLOCATION_CREATE_MAPPED_BIT flag. + +This function fails when used on allocation made in memory type that is not +`HOST_VISIBLE`. + +This function doesn't automatically flush or invalidate caches. +If the allocation is made from a memory types that is not `HOST_COHERENT`, +you also need to use vmaInvalidateAllocation() / vmaFlushAllocation(), as required by Vulkan specification. */ -VMA_CALL_PRE void VMA_CALL_POST vmaDestroyImage( +VMA_CALL_PRE VkResult VMA_CALL_POST vmaMapMemory( VmaAllocator VMA_NOT_NULL allocator, - VkImage VMA_NULLABLE_NON_DISPATCHABLE image, - VmaAllocation VMA_NULLABLE allocation); + VmaAllocation VMA_NOT_NULL allocation, + void* VMA_NULLABLE* VMA_NOT_NULL ppData); -#ifdef __cplusplus -} -#endif +/** \brief Unmaps memory represented by given allocation, mapped previously using vmaMapMemory(). -#endif // AMD_VULKAN_MEMORY_ALLOCATOR_H +For details, see description of vmaMapMemory(). -// For Visual Studio IntelliSense. -#if defined(__cplusplus) && defined(__INTELLISENSE__) -#define VMA_IMPLEMENTATION -#endif +This function doesn't automatically flush or invalidate caches. +If the allocation is made from a memory types that is not `HOST_COHERENT`, +you also need to use vmaInvalidateAllocation() / vmaFlushAllocation(), as required by Vulkan specification. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaUnmapMemory( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation); -#ifdef VMA_IMPLEMENTATION -#undef VMA_IMPLEMENTATION +/** \brief Flushes memory of given allocation. -#include -#include -#include -#include +Calls `vkFlushMappedMemoryRanges()` for memory associated with given range of given allocation. +It needs to be called after writing to a mapped memory for memory types that are not `HOST_COHERENT`. +Unmap operation doesn't do that automatically. -#if VMA_RECORDING_ENABLED - #include - #if defined(_WIN32) - #include - #else - #include - #include - #endif -#endif +- `offset` must be relative to the beginning of allocation. +- `size` can be `VK_WHOLE_SIZE`. It means all memory from `offset` the the end of given allocation. +- `offset` and `size` don't have to be aligned. + They are internally rounded down/up to multiply of `nonCoherentAtomSize`. +- If `size` is 0, this call is ignored. +- If memory type that the `allocation` belongs to is not `HOST_VISIBLE` or it is `HOST_COHERENT`, + this call is ignored. -/******************************************************************************* -CONFIGURATION SECTION +Warning! `offset` and `size` are relative to the contents of given `allocation`. +If you mean whole allocation, you can pass 0 and `VK_WHOLE_SIZE`, respectively. +Do not pass allocation's offset as `offset`!!! -Define some of these macros before each #include of this header or change them -here if you need other then default behavior depending on your environment. +This function returns the `VkResult` from `vkFlushMappedMemoryRanges` if it is +called, otherwise `VK_SUCCESS`. */ +VMA_CALL_PRE VkResult VMA_CALL_POST vmaFlushAllocation( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + VkDeviceSize offset, + VkDeviceSize size); -/* -Define this macro to 1 to make the library fetch pointers to Vulkan functions -internally, like: +/** \brief Invalidates memory of given allocation. - vulkanFunctions.vkAllocateMemory = &vkAllocateMemory; +Calls `vkInvalidateMappedMemoryRanges()` for memory associated with given range of given allocation. +It needs to be called before reading from a mapped memory for memory types that are not `HOST_COHERENT`. +Map operation doesn't do that automatically. + +- `offset` must be relative to the beginning of allocation. +- `size` can be `VK_WHOLE_SIZE`. It means all memory from `offset` the the end of given allocation. +- `offset` and `size` don't have to be aligned. + They are internally rounded down/up to multiply of `nonCoherentAtomSize`. +- If `size` is 0, this call is ignored. +- If memory type that the `allocation` belongs to is not `HOST_VISIBLE` or it is `HOST_COHERENT`, + this call is ignored. + +Warning! `offset` and `size` are relative to the contents of given `allocation`. +If you mean whole allocation, you can pass 0 and `VK_WHOLE_SIZE`, respectively. +Do not pass allocation's offset as `offset`!!! + +This function returns the `VkResult` from `vkInvalidateMappedMemoryRanges` if +it is called, otherwise `VK_SUCCESS`. */ -#if !defined(VMA_STATIC_VULKAN_FUNCTIONS) && !defined(VK_NO_PROTOTYPES) - #define VMA_STATIC_VULKAN_FUNCTIONS 1 -#endif +VMA_CALL_PRE VkResult VMA_CALL_POST vmaInvalidateAllocation( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + VkDeviceSize offset, + VkDeviceSize size); -/* -Define this macro to 1 to make the library fetch pointers to Vulkan functions -internally, like: +/** \brief Flushes memory of given set of allocations. + +Calls `vkFlushMappedMemoryRanges()` for memory associated with given ranges of given allocations. +For more information, see documentation of vmaFlushAllocation(). + +\param allocator +\param allocationCount +\param allocations +\param offsets If not null, it must point to an array of offsets of regions to flush, relative to the beginning of respective allocations. Null means all ofsets are zero. +\param sizes If not null, it must point to an array of sizes of regions to flush in respective allocations. Null means `VK_WHOLE_SIZE` for all allocations. - vulkanFunctions.vkAllocateMemory = (PFN_vkAllocateMemory)vkGetDeviceProcAddr(m_hDevice, vkAllocateMemory); +This function returns the `VkResult` from `vkFlushMappedMemoryRanges` if it is +called, otherwise `VK_SUCCESS`. */ -#if !defined(VMA_DYNAMIC_VULKAN_FUNCTIONS) - #define VMA_DYNAMIC_VULKAN_FUNCTIONS 1 - #if defined(VK_NO_PROTOTYPES) - extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; - extern PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; - #endif -#endif +VMA_CALL_PRE VkResult VMA_CALL_POST vmaFlushAllocations( + VmaAllocator VMA_NOT_NULL allocator, + uint32_t allocationCount, + const VmaAllocation VMA_NOT_NULL* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) allocations, + const VkDeviceSize* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) offsets, + const VkDeviceSize* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) sizes); + +/** \brief Invalidates memory of given set of allocations. -// Define this macro to 1 to make the library use STL containers instead of its own implementation. -//#define VMA_USE_STL_CONTAINERS 1 +Calls `vkInvalidateMappedMemoryRanges()` for memory associated with given ranges of given allocations. +For more information, see documentation of vmaInvalidateAllocation(). -/* Set this macro to 1 to make the library including and using STL containers: -std::pair, std::vector, std::list, std::unordered_map. +\param allocator +\param allocationCount +\param allocations +\param offsets If not null, it must point to an array of offsets of regions to flush, relative to the beginning of respective allocations. Null means all ofsets are zero. +\param sizes If not null, it must point to an array of sizes of regions to flush in respective allocations. Null means `VK_WHOLE_SIZE` for all allocations. -Set it to 0 or undefined to make the library using its own implementation of -the containers. +This function returns the `VkResult` from `vkInvalidateMappedMemoryRanges` if it is +called, otherwise `VK_SUCCESS`. */ -#if VMA_USE_STL_CONTAINERS - #define VMA_USE_STL_VECTOR 1 - #define VMA_USE_STL_UNORDERED_MAP 1 - #define VMA_USE_STL_LIST 1 -#endif +VMA_CALL_PRE VkResult VMA_CALL_POST vmaInvalidateAllocations( + VmaAllocator VMA_NOT_NULL allocator, + uint32_t allocationCount, + const VmaAllocation VMA_NOT_NULL* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) allocations, + const VkDeviceSize* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) offsets, + const VkDeviceSize* VMA_NULLABLE VMA_LEN_IF_NOT_NULL(allocationCount) sizes); -#ifndef VMA_USE_STL_SHARED_MUTEX - // Compiler conforms to C++17. - #if __cplusplus >= 201703L - #define VMA_USE_STL_SHARED_MUTEX 1 - // Visual studio defines __cplusplus properly only when passed additional parameter: /Zc:__cplusplus - // Otherwise it is always 199711L, despite shared_mutex works since Visual Studio 2015 Update 2. - #elif defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023918 && __cplusplus == 199711L && _MSVC_LANG >= 201703L - #define VMA_USE_STL_SHARED_MUTEX 1 - #else - #define VMA_USE_STL_SHARED_MUTEX 0 - #endif -#endif +/** \brief Checks magic number in margins around all allocations in given memory types (in both default and custom pools) in search for corruptions. -/* -THESE INCLUDES ARE NOT ENABLED BY DEFAULT. -Library has its own container implementation. +\param allocator +\param memoryTypeBits Bit mask, where each bit set means that a memory type with that index should be checked. + +Corruption detection is enabled only when `VMA_DEBUG_DETECT_CORRUPTION` macro is defined to nonzero, +`VMA_DEBUG_MARGIN` is defined to nonzero and only for memory types that are +`HOST_VISIBLE` and `HOST_COHERENT`. For more information, see [Corruption detection](@ref debugging_memory_usage_corruption_detection). + +Possible return values: + +- `VK_ERROR_FEATURE_NOT_PRESENT` - corruption detection is not enabled for any of specified memory types. +- `VK_SUCCESS` - corruption detection has been performed and succeeded. +- `VK_ERROR_UNKNOWN` - corruption detection has been performed and found memory corruptions around one of the allocations. + `VMA_ASSERT` is also fired in that case. +- Other value: Error returned by Vulkan, e.g. memory mapping failure. */ -#if VMA_USE_STL_VECTOR - #include -#endif +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCheckCorruption( + VmaAllocator VMA_NOT_NULL allocator, + uint32_t memoryTypeBits); -#if VMA_USE_STL_UNORDERED_MAP - #include -#endif +/** \brief Begins defragmentation process. -#if VMA_USE_STL_LIST - #include -#endif +\param allocator Allocator object. +\param pInfo Structure filled with parameters of defragmentation. +\param[out] pContext Context object that must be passed to vmaEndDefragmentation() to finish defragmentation. +\returns +- `VK_SUCCESS` if defragmentation can begin. +- `VK_ERROR_FEATURE_NOT_PRESENT` if defragmentation is not supported. -/* -Following headers are used in this CONFIGURATION section only, so feel free to -remove them if not needed. +For more information about defragmentation, see documentation chapter: +[Defragmentation](@ref defragmentation). */ -#include // for assert -#include // for min, max -#include +VMA_CALL_PRE VkResult VMA_CALL_POST vmaBeginDefragmentation( + VmaAllocator VMA_NOT_NULL allocator, + const VmaDefragmentationInfo* VMA_NOT_NULL pInfo, + VmaDefragmentationContext VMA_NULLABLE* VMA_NOT_NULL pContext); -#ifndef VMA_NULL - // Value used as null pointer. Define it to e.g.: nullptr, NULL, 0, (void*)0. - #define VMA_NULL nullptr -#endif +/** \brief Ends defragmentation process. -#if defined(__ANDROID_API__) && (__ANDROID_API__ < 16) -#include -static void* vma_aligned_alloc(size_t alignment, size_t size) -{ - // alignment must be >= sizeof(void*) - if(alignment < sizeof(void*)) - { - alignment = sizeof(void*); - } +\param allocator Allocator object. +\param context Context object that has been created by vmaBeginDefragmentation(). +\param[out] pStats Optional stats for the defragmentation. Can be null. - return memalign(alignment, size); -} -#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) -#include +Use this function to finish defragmentation started by vmaBeginDefragmentation(). +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaEndDefragmentation( + VmaAllocator VMA_NOT_NULL allocator, + VmaDefragmentationContext VMA_NOT_NULL context, + VmaDefragmentationStats* VMA_NULLABLE pStats); + +/** \brief Starts single defragmentation pass. + +\param allocator Allocator object. +\param context Context object that has been created by vmaBeginDefragmentation(). +\param[out] pPassInfo Computed information for current pass. +\returns +- `VK_SUCCESS` if no more moves are possible. Then you can omit call to vmaEndDefragmentationPass() and simply end whole defragmentation. +- `VK_INCOMPLETE` if there are pending moves returned in `pPassInfo`. You need to perform them, call vmaEndDefragmentationPass(), + and then preferably try another pass with vmaBeginDefragmentationPass(). +*/ +VMA_CALL_PRE VkResult VMA_CALL_POST vmaBeginDefragmentationPass( + VmaAllocator VMA_NOT_NULL allocator, + VmaDefragmentationContext VMA_NOT_NULL context, + VmaDefragmentationPassMoveInfo* VMA_NOT_NULL pPassInfo); -#if defined(__APPLE__) -#include -#endif +/** \brief Ends single defragmentation pass. -static void* vma_aligned_alloc(size_t alignment, size_t size) -{ - // Unfortunately, aligned_alloc causes VMA to crash due to it returning null pointers. (At least under 11.4) - // Therefore, for now disable this specific exception until a proper solution is found. - //#if defined(__APPLE__) && (defined(MAC_OS_X_VERSION_10_16) || defined(__IPHONE_14_0)) - //#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_16 || __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_0 - // // For C++14, usr/include/malloc/_malloc.h declares aligned_alloc()) only - // // with the MacOSX11.0 SDK in Xcode 12 (which is what adds - // // MAC_OS_X_VERSION_10_16), even though the function is marked - // // availabe for 10.15. That is why the preprocessor checks for 10.16 but - // // the __builtin_available checks for 10.15. - // // People who use C++17 could call aligned_alloc with the 10.15 SDK already. - // if (__builtin_available(macOS 10.15, iOS 13, *)) - // return aligned_alloc(alignment, size); - //#endif - //#endif +\param allocator Allocator object. +\param context Context object that has been created by vmaBeginDefragmentation(). +\param pPassInfo Computed information for current pass filled by vmaBeginDefragmentationPass() and possibly modified by you. - // alignment must be >= sizeof(void*) - if(alignment < sizeof(void*)) - { - alignment = sizeof(void*); - } +Returns `VK_SUCCESS` if no more moves are possible or `VK_INCOMPLETE` if more defragmentations are possible. - void *pointer; - if(posix_memalign(&pointer, alignment, size) == 0) - return pointer; - return VMA_NULL; -} -#elif defined(_WIN32) -static void* vma_aligned_alloc(size_t alignment, size_t size) -{ - return _aligned_malloc(size, alignment); -} -#else -static void* vma_aligned_alloc(size_t alignment, size_t size) -{ - return aligned_alloc(alignment, size); -} -#endif +Ends incremental defragmentation pass and commits all defragmentation moves from `pPassInfo`. +After this call: -#if defined(_WIN32) -static void vma_aligned_free(void* ptr) -{ - _aligned_free(ptr); -} -#else -static void vma_aligned_free(void* VMA_NULLABLE ptr) -{ - free(ptr); -} -#endif +- Allocations at `pPassInfo[i].srcAllocation` that had `pPassInfo[i].operation ==` #VMA_DEFRAGMENTATION_MOVE_OPERATION_COPY + (which is the default) will be pointing to the new destination place. +- Allocation at `pPassInfo[i].srcAllocation` that had `pPassInfo[i].operation ==` #VMA_DEFRAGMENTATION_MOVE_OPERATION_DESTROY + will be freed. -// If your compiler is not compatible with C++11 and definition of -// aligned_alloc() function is missing, uncommeting following line may help: - -//#include +If no more moves are possible you can end whole defragmentation. +*/ +VMA_CALL_PRE VkResult VMA_CALL_POST vmaEndDefragmentationPass( + VmaAllocator VMA_NOT_NULL allocator, + VmaDefragmentationContext VMA_NOT_NULL context, + VmaDefragmentationPassMoveInfo* VMA_NOT_NULL pPassInfo); -// Normal assert to check for programmer's errors, especially in Debug configuration. -#ifndef VMA_ASSERT - #ifdef NDEBUG - #define VMA_ASSERT(expr) - #else - #define VMA_ASSERT(expr) assert(expr) - #endif -#endif +/** \brief Binds buffer to allocation. -// Assert that will be called very often, like inside data structures e.g. operator[]. -// Making it non-empty can make program slow. -#ifndef VMA_HEAVY_ASSERT - #ifdef NDEBUG - #define VMA_HEAVY_ASSERT(expr) - #else - #define VMA_HEAVY_ASSERT(expr) //VMA_ASSERT(expr) - #endif -#endif +Binds specified buffer to region of memory represented by specified allocation. +Gets `VkDeviceMemory` handle and offset from the allocation. +If you want to create a buffer, allocate memory for it and bind them together separately, +you should use this function for binding instead of standard `vkBindBufferMemory()`, +because it ensures proper synchronization so that when a `VkDeviceMemory` object is used by multiple +allocations, calls to `vkBind*Memory()` or `vkMapMemory()` won't happen from multiple threads simultaneously +(which is illegal in Vulkan). -#ifndef VMA_ALIGN_OF - #define VMA_ALIGN_OF(type) (__alignof(type)) -#endif +It is recommended to use function vmaCreateBuffer() instead of this one. +*/ +VMA_CALL_PRE VkResult VMA_CALL_POST vmaBindBufferMemory( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + VkBuffer VMA_NOT_NULL_NON_DISPATCHABLE buffer); -#ifndef VMA_SYSTEM_ALIGNED_MALLOC - #define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment) vma_aligned_alloc((alignment), (size)) -#endif +/** \brief Binds buffer to allocation with additional parameters. -#ifndef VMA_SYSTEM_ALIGNED_FREE - // VMA_SYSTEM_FREE is the old name, but might have been defined by the user - #if defined(VMA_SYSTEM_FREE) - #define VMA_SYSTEM_ALIGNED_FREE(ptr) VMA_SYSTEM_FREE(ptr) - #else - #define VMA_SYSTEM_ALIGNED_FREE(ptr) vma_aligned_free(ptr) - #endif -#endif +\param allocator +\param allocation +\param allocationLocalOffset Additional offset to be added while binding, relative to the beginning of the `allocation`. Normally it should be 0. +\param buffer +\param pNext A chain of structures to be attached to `VkBindBufferMemoryInfoKHR` structure used internally. Normally it should be null. -#ifndef VMA_MIN - #define VMA_MIN(v1, v2) ((std::min)((v1), (v2))) -#endif +This function is similar to vmaBindBufferMemory(), but it provides additional parameters. -#ifndef VMA_MAX - #define VMA_MAX(v1, v2) ((std::max)((v1), (v2))) -#endif +If `pNext` is not null, #VmaAllocator object must have been created with #VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT flag +or with VmaAllocatorCreateInfo::vulkanApiVersion `>= VK_API_VERSION_1_1`. Otherwise the call fails. +*/ +VMA_CALL_PRE VkResult VMA_CALL_POST vmaBindBufferMemory2( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + VkDeviceSize allocationLocalOffset, + VkBuffer VMA_NOT_NULL_NON_DISPATCHABLE buffer, + const void* VMA_NULLABLE VMA_EXTENDS_VK_STRUCT(VkBindBufferMemoryInfoKHR) pNext); -#ifndef VMA_SWAP - #define VMA_SWAP(v1, v2) std::swap((v1), (v2)) -#endif +/** \brief Binds image to allocation. -#ifndef VMA_SORT - #define VMA_SORT(beg, end, cmp) std::sort(beg, end, cmp) -#endif +Binds specified image to region of memory represented by specified allocation. +Gets `VkDeviceMemory` handle and offset from the allocation. +If you want to create an image, allocate memory for it and bind them together separately, +you should use this function for binding instead of standard `vkBindImageMemory()`, +because it ensures proper synchronization so that when a `VkDeviceMemory` object is used by multiple +allocations, calls to `vkBind*Memory()` or `vkMapMemory()` won't happen from multiple threads simultaneously +(which is illegal in Vulkan). -#ifndef VMA_DEBUG_LOG - #define VMA_DEBUG_LOG(format, ...) - /* - #define VMA_DEBUG_LOG(format, ...) do { \ - printf(format, __VA_ARGS__); \ - printf("\n"); \ - } while(false) - */ -#endif +It is recommended to use function vmaCreateImage() instead of this one. +*/ +VMA_CALL_PRE VkResult VMA_CALL_POST vmaBindImageMemory( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + VkImage VMA_NOT_NULL_NON_DISPATCHABLE image); -// Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString. -#if VMA_STATS_STRING_ENABLED - static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num) - { - snprintf(outStr, strLen, "%u", static_cast(num)); - } - static inline void VmaUint64ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint64_t num) - { - snprintf(outStr, strLen, "%llu", static_cast(num)); - } - static inline void VmaPtrToStr(char* VMA_NOT_NULL outStr, size_t strLen, const void* ptr) - { - snprintf(outStr, strLen, "%p", ptr); - } -#endif +/** \brief Binds image to allocation with additional parameters. -#ifndef VMA_MUTEX - class VmaMutex - { - public: - void Lock() { m_Mutex.lock(); } - void Unlock() { m_Mutex.unlock(); } - bool TryLock() { return m_Mutex.try_lock(); } - private: - std::mutex m_Mutex; - }; - #define VMA_MUTEX VmaMutex -#endif +\param allocator +\param allocation +\param allocationLocalOffset Additional offset to be added while binding, relative to the beginning of the `allocation`. Normally it should be 0. +\param image +\param pNext A chain of structures to be attached to `VkBindImageMemoryInfoKHR` structure used internally. Normally it should be null. -// Read-write mutex, where "read" is shared access, "write" is exclusive access. -#ifndef VMA_RW_MUTEX - #if VMA_USE_STL_SHARED_MUTEX - // Use std::shared_mutex from C++17. - #include - class VmaRWMutex - { - public: - void LockRead() { m_Mutex.lock_shared(); } - void UnlockRead() { m_Mutex.unlock_shared(); } - bool TryLockRead() { return m_Mutex.try_lock_shared(); } - void LockWrite() { m_Mutex.lock(); } - void UnlockWrite() { m_Mutex.unlock(); } - bool TryLockWrite() { return m_Mutex.try_lock(); } - private: - std::shared_mutex m_Mutex; - }; - #define VMA_RW_MUTEX VmaRWMutex - #elif defined(_WIN32) && defined(WINVER) && WINVER >= 0x0600 - // Use SRWLOCK from WinAPI. - // Minimum supported client = Windows Vista, server = Windows Server 2008. - class VmaRWMutex - { - public: - VmaRWMutex() { InitializeSRWLock(&m_Lock); } - void LockRead() { AcquireSRWLockShared(&m_Lock); } - void UnlockRead() { ReleaseSRWLockShared(&m_Lock); } - bool TryLockRead() { return TryAcquireSRWLockShared(&m_Lock) != FALSE; } - void LockWrite() { AcquireSRWLockExclusive(&m_Lock); } - void UnlockWrite() { ReleaseSRWLockExclusive(&m_Lock); } - bool TryLockWrite() { return TryAcquireSRWLockExclusive(&m_Lock) != FALSE; } - private: - SRWLOCK m_Lock; - }; - #define VMA_RW_MUTEX VmaRWMutex - #else - // Less efficient fallback: Use normal mutex. - class VmaRWMutex - { - public: - void LockRead() { m_Mutex.Lock(); } - void UnlockRead() { m_Mutex.Unlock(); } - bool TryLockRead() { return m_Mutex.TryLock(); } - void LockWrite() { m_Mutex.Lock(); } - void UnlockWrite() { m_Mutex.Unlock(); } - bool TryLockWrite() { return m_Mutex.TryLock(); } - private: - VMA_MUTEX m_Mutex; - }; - #define VMA_RW_MUTEX VmaRWMutex - #endif // #if VMA_USE_STL_SHARED_MUTEX -#endif // #ifndef VMA_RW_MUTEX +This function is similar to vmaBindImageMemory(), but it provides additional parameters. -/* -If providing your own implementation, you need to implement a subset of std::atomic. +If `pNext` is not null, #VmaAllocator object must have been created with #VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT flag +or with VmaAllocatorCreateInfo::vulkanApiVersion `>= VK_API_VERSION_1_1`. Otherwise the call fails. */ -#ifndef VMA_ATOMIC_UINT32 - #include - #define VMA_ATOMIC_UINT32 std::atomic -#endif - -#ifndef VMA_ATOMIC_UINT64 - #include - #define VMA_ATOMIC_UINT64 std::atomic -#endif +VMA_CALL_PRE VkResult VMA_CALL_POST vmaBindImageMemory2( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + VkDeviceSize allocationLocalOffset, + VkImage VMA_NOT_NULL_NON_DISPATCHABLE image, + const void* VMA_NULLABLE VMA_EXTENDS_VK_STRUCT(VkBindImageMemoryInfoKHR) pNext); -#ifndef VMA_DEBUG_ALWAYS_DEDICATED_MEMORY - /** - Every allocation will have its own memory block. - Define to 1 for debugging purposes only. - */ - #define VMA_DEBUG_ALWAYS_DEDICATED_MEMORY (0) -#endif +/** \brief Creates a new `VkBuffer`, allocates and binds memory for it. -#ifndef VMA_MIN_ALIGNMENT - /** - Minimum alignment of all allocations, in bytes. - Set to more than 1 for debugging purposes. Must be power of two. - */ - #ifdef VMA_DEBUG_ALIGNMENT // Old name - #define VMA_MIN_ALIGNMENT VMA_DEBUG_ALIGNMENT - #else - #define VMA_MIN_ALIGNMENT (1) - #endif -#endif +\param allocator +\param pBufferCreateInfo +\param pAllocationCreateInfo +\param[out] pBuffer Buffer that was created. +\param[out] pAllocation Allocation that was created. +\param[out] pAllocationInfo Optional. Information about allocated memory. It can be later fetched using function vmaGetAllocationInfo(). -#ifndef VMA_DEBUG_MARGIN - /** - Minimum margin before and after every allocation, in bytes. - Set nonzero for debugging purposes only. - */ - #define VMA_DEBUG_MARGIN (0) -#endif +This function automatically: -#ifndef VMA_DEBUG_INITIALIZE_ALLOCATIONS - /** - Define this macro to 1 to automatically fill new allocations and destroyed - allocations with some bit pattern. - */ - #define VMA_DEBUG_INITIALIZE_ALLOCATIONS (0) -#endif +-# Creates buffer. +-# Allocates appropriate memory for it. +-# Binds the buffer with the memory. -#ifndef VMA_DEBUG_DETECT_CORRUPTION - /** - Define this macro to 1 together with non-zero value of VMA_DEBUG_MARGIN to - enable writing magic value to the margin before and after every allocation and - validating it, so that memory corruptions (out-of-bounds writes) are detected. - */ - #define VMA_DEBUG_DETECT_CORRUPTION (0) -#endif +If any of these operations fail, buffer and allocation are not created, +returned value is negative error code, `*pBuffer` and `*pAllocation` are null. -#ifndef VMA_DEBUG_GLOBAL_MUTEX - /** - Set this to 1 for debugging purposes only, to enable single mutex protecting all - entry calls to the library. Can be useful for debugging multithreading issues. - */ - #define VMA_DEBUG_GLOBAL_MUTEX (0) -#endif +If the function succeeded, you must destroy both buffer and allocation when you +no longer need them using either convenience function vmaDestroyBuffer() or +separately, using `vkDestroyBuffer()` and vmaFreeMemory(). -#ifndef VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY - /** - Minimum value for VkPhysicalDeviceLimits::bufferImageGranularity. - Set to more than 1 for debugging purposes only. Must be power of two. - */ - #define VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY (1) -#endif +If #VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT flag was used, +VK_KHR_dedicated_allocation extension is used internally to query driver whether +it requires or prefers the new buffer to have dedicated allocation. If yes, +and if dedicated allocation is possible +(#VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT is not used), it creates dedicated +allocation for this buffer, just like when using +#VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT. -#ifndef VMA_DEBUG_DONT_EXCEED_MAX_MEMORY_ALLOCATION_COUNT - /* - Set this to 1 to make VMA never exceed VkPhysicalDeviceLimits::maxMemoryAllocationCount - and return error instead of leaving up to Vulkan implementation what to do in such cases. - */ - #define VMA_DEBUG_DONT_EXCEED_MAX_MEMORY_ALLOCATION_COUNT (0) -#endif +\note This function creates a new `VkBuffer`. Sub-allocation of parts of one large buffer, +although recommended as a good practice, is out of scope of this library and could be implemented +by the user as a higher-level logic on top of VMA. +*/ +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateBuffer( + VmaAllocator VMA_NOT_NULL allocator, + const VkBufferCreateInfo* VMA_NOT_NULL pBufferCreateInfo, + const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, + VkBuffer VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pBuffer, + VmaAllocation VMA_NULLABLE* VMA_NOT_NULL pAllocation, + VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); -#ifndef VMA_SMALL_HEAP_MAX_SIZE - /// Maximum size of a memory heap in Vulkan to consider it "small". - #define VMA_SMALL_HEAP_MAX_SIZE (1024ull * 1024 * 1024) -#endif +/** \brief Creates a buffer with additional minimum alignment. -#ifndef VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE - /// Default size of a block allocated as single VkDeviceMemory from a "large" heap. - #define VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE (256ull * 1024 * 1024) -#endif +Similar to vmaCreateBuffer() but provides additional parameter `minAlignment` which allows to specify custom, +minimum alignment to be used when placing the buffer inside a larger memory block, which may be needed e.g. +for interop with OpenGL. +*/ +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateBufferWithAlignment( + VmaAllocator VMA_NOT_NULL allocator, + const VkBufferCreateInfo* VMA_NOT_NULL pBufferCreateInfo, + const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, + VkDeviceSize minAlignment, + VkBuffer VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pBuffer, + VmaAllocation VMA_NULLABLE* VMA_NOT_NULL pAllocation, + VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); -#ifndef VMA_CLASS_NO_COPY - #define VMA_CLASS_NO_COPY(className) \ - private: \ - className(const className&) = delete; \ - className& operator=(const className&) = delete; -#endif +/** \brief Creates a new `VkBuffer`, binds already created memory for it. -static const uint32_t VMA_FRAME_INDEX_LOST = UINT32_MAX; +\param allocator +\param allocation Allocation that provides memory to be used for binding new buffer to it. +\param pBufferCreateInfo +\param[out] pBuffer Buffer that was created. -// Decimal 2139416166, float NaN, little-endian binary 66 E6 84 7F. -static const uint32_t VMA_CORRUPTION_DETECTION_MAGIC_VALUE = 0x7F84E666; +This function automatically: -static const uint8_t VMA_ALLOCATION_FILL_PATTERN_CREATED = 0xDC; -static const uint8_t VMA_ALLOCATION_FILL_PATTERN_DESTROYED = 0xEF; +-# Creates buffer. +-# Binds the buffer with the supplied memory. -/******************************************************************************* -END OF CONFIGURATION +If any of these operations fail, buffer is not created, +returned value is negative error code and `*pBuffer` is null. + +If the function succeeded, you must destroy the buffer when you +no longer need it using `vkDestroyBuffer()`. If you want to also destroy the corresponding +allocation you can use convenience function vmaDestroyBuffer(). + +\note There is a new version of this function augmented with parameter `allocationLocalOffset` - see vmaCreateAliasingBuffer2(). */ +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateAliasingBuffer( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + const VkBufferCreateInfo* VMA_NOT_NULL pBufferCreateInfo, + VkBuffer VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pBuffer); -// # Copy of some Vulkan definitions so we don't need to check their existence just to handle few constants. +/** \brief Creates a new `VkBuffer`, binds already created memory for it. -static const uint32_t VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD_COPY = 0x00000040; -static const uint32_t VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD_COPY = 0x00000080; -static const uint32_t VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_COPY = 0x00020000; +\param allocator +\param allocation Allocation that provides memory to be used for binding new buffer to it. +\param allocationLocalOffset Additional offset to be added while binding, relative to the beginning of the allocation. Normally it should be 0. +\param pBufferCreateInfo +\param[out] pBuffer Buffer that was created. -static const uint32_t VMA_ALLOCATION_INTERNAL_STRATEGY_MIN_OFFSET = 0x10000000u; +This function automatically: -static VkAllocationCallbacks VmaEmptyAllocationCallbacks = { - VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL }; +-# Creates buffer. +-# Binds the buffer with the supplied memory. -// Returns number of bits set to 1 in (v). -static inline uint32_t VmaCountBitsSet(uint32_t v) -{ - uint32_t c = v - ((v >> 1) & 0x55555555); - c = ((c >> 2) & 0x33333333) + (c & 0x33333333); - c = ((c >> 4) + c) & 0x0F0F0F0F; - c = ((c >> 8) + c) & 0x00FF00FF; - c = ((c >> 16) + c) & 0x0000FFFF; - return c; -} +If any of these operations fail, buffer is not created, +returned value is negative error code and `*pBuffer` is null. -/* -Returns true if given number is a power of two. -T must be unsigned integer number or signed integer but always nonnegative. -For 0 returns true. +If the function succeeded, you must destroy the buffer when you +no longer need it using `vkDestroyBuffer()`. If you want to also destroy the corresponding +allocation you can use convenience function vmaDestroyBuffer(). + +\note This is a new version of the function augmented with parameter `allocationLocalOffset`. */ -template -inline bool VmaIsPow2(T x) -{ - return (x & (x-1)) == 0; -} +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateAliasingBuffer2( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + VkDeviceSize allocationLocalOffset, + const VkBufferCreateInfo* VMA_NOT_NULL pBufferCreateInfo, + VkBuffer VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pBuffer); -// Aligns given value up to nearest multiply of align value. For example: VmaAlignUp(11, 8) = 16. -// Use types like uint32_t, uint64_t as T. -template -static inline T VmaAlignUp(T val, T alignment) -{ - VMA_HEAVY_ASSERT(VmaIsPow2(alignment)); - return (val + alignment - 1) & ~(alignment - 1); -} -// Aligns given value down to nearest multiply of align value. For example: VmaAlignUp(11, 8) = 8. -// Use types like uint32_t, uint64_t as T. -template -static inline T VmaAlignDown(T val, T alignment) -{ - VMA_HEAVY_ASSERT(VmaIsPow2(alignment)); - return val & ~(alignment - 1); -} +/** \brief Destroys Vulkan buffer and frees allocated memory. -// Division with mathematical rounding to nearest number. -template -static inline T VmaRoundDiv(T x, T y) -{ - return (x + (y / (T)2)) / y; -} +This is just a convenience function equivalent to: -// Returns smallest power of 2 greater or equal to v. -static inline uint32_t VmaNextPow2(uint32_t v) -{ - v--; - v |= v >> 1; - v |= v >> 2; - v |= v >> 4; - v |= v >> 8; - v |= v >> 16; - v++; - return v; -} -static inline uint64_t VmaNextPow2(uint64_t v) -{ - v--; - v |= v >> 1; - v |= v >> 2; - v |= v >> 4; - v |= v >> 8; - v |= v >> 16; - v |= v >> 32; - v++; - return v; -} +\code +vkDestroyBuffer(device, buffer, allocationCallbacks); +vmaFreeMemory(allocator, allocation); +\endcode -// Returns largest power of 2 less or equal to v. -static inline uint32_t VmaPrevPow2(uint32_t v) -{ - v |= v >> 1; - v |= v >> 2; - v |= v >> 4; - v |= v >> 8; - v |= v >> 16; - v = v ^ (v >> 1); - return v; -} -static inline uint64_t VmaPrevPow2(uint64_t v) -{ - v |= v >> 1; - v |= v >> 2; - v |= v >> 4; - v |= v >> 8; - v |= v >> 16; - v |= v >> 32; - v = v ^ (v >> 1); - return v; -} +It is safe to pass null as buffer and/or allocation. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaDestroyBuffer( + VmaAllocator VMA_NOT_NULL allocator, + VkBuffer VMA_NULLABLE_NON_DISPATCHABLE buffer, + VmaAllocation VMA_NULLABLE allocation); -static inline bool VmaStrIsEmpty(const char* pStr) -{ - return pStr == VMA_NULL || *pStr == '\0'; -} +/// Function similar to vmaCreateBuffer(). +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateImage( + VmaAllocator VMA_NOT_NULL allocator, + const VkImageCreateInfo* VMA_NOT_NULL pImageCreateInfo, + const VmaAllocationCreateInfo* VMA_NOT_NULL pAllocationCreateInfo, + VkImage VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pImage, + VmaAllocation VMA_NULLABLE* VMA_NOT_NULL pAllocation, + VmaAllocationInfo* VMA_NULLABLE pAllocationInfo); -#if VMA_STATS_STRING_ENABLED +/// Function similar to vmaCreateAliasingBuffer() but for images. +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateAliasingImage( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + const VkImageCreateInfo* VMA_NOT_NULL pImageCreateInfo, + VkImage VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pImage); -static const char* VmaAlgorithmToStr(uint32_t algorithm) -{ - switch(algorithm) - { - case VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT: - return "Linear"; - case VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT: - return "Buddy"; - case 0: - return "Default"; - default: - VMA_ASSERT(0); - return ""; - } -} +/// Function similar to vmaCreateAliasingBuffer2() but for images. +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateAliasingImage2( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + VkDeviceSize allocationLocalOffset, + const VkImageCreateInfo* VMA_NOT_NULL pImageCreateInfo, + VkImage VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pImage); -#endif // #if VMA_STATS_STRING_ENABLED +/** \brief Destroys Vulkan image and frees allocated memory. -#ifndef VMA_SORT +This is just a convenience function equivalent to: -template -Iterator VmaQuickSortPartition(Iterator beg, Iterator end, Compare cmp) -{ - Iterator centerValue = end; --centerValue; - Iterator insertIndex = beg; - for(Iterator memTypeIndex = beg; memTypeIndex < centerValue; ++memTypeIndex) - { - if(cmp(*memTypeIndex, *centerValue)) - { - if(insertIndex != memTypeIndex) - { - VMA_SWAP(*memTypeIndex, *insertIndex); - } - ++insertIndex; - } - } - if(insertIndex != centerValue) - { - VMA_SWAP(*insertIndex, *centerValue); - } - return insertIndex; -} +\code +vkDestroyImage(device, image, allocationCallbacks); +vmaFreeMemory(allocator, allocation); +\endcode -template -void VmaQuickSort(Iterator beg, Iterator end, Compare cmp) -{ - if(beg < end) - { - Iterator it = VmaQuickSortPartition(beg, end, cmp); - VmaQuickSort(beg, it, cmp); - VmaQuickSort(it + 1, end, cmp); - } -} +It is safe to pass null as image and/or allocation. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaDestroyImage( + VmaAllocator VMA_NOT_NULL allocator, + VkImage VMA_NULLABLE_NON_DISPATCHABLE image, + VmaAllocation VMA_NULLABLE allocation); -#define VMA_SORT(beg, end, cmp) VmaQuickSort(beg, end, cmp) +/** @} */ -#endif // #ifndef VMA_SORT +/** +\addtogroup group_virtual +@{ +*/ -/* -Returns true if two memory blocks occupy overlapping pages. -ResourceA must be in less memory offset than ResourceB. +/** \brief Creates new #VmaVirtualBlock object. -Algorithm is based on "Vulkan 1.0.39 - A Specification (with all registered Vulkan extensions)" -chapter 11.6 "Resource Memory Association", paragraph "Buffer-Image Granularity". +\param pCreateInfo Parameters for creation. +\param[out] pVirtualBlock Returned virtual block object or `VMA_NULL` if creation failed. */ -static inline bool VmaBlocksOnSamePage( - VkDeviceSize resourceAOffset, - VkDeviceSize resourceASize, - VkDeviceSize resourceBOffset, - VkDeviceSize pageSize) -{ - VMA_ASSERT(resourceAOffset + resourceASize <= resourceBOffset && resourceASize > 0 && pageSize > 0); - VkDeviceSize resourceAEnd = resourceAOffset + resourceASize - 1; - VkDeviceSize resourceAEndPage = resourceAEnd & ~(pageSize - 1); - VkDeviceSize resourceBStart = resourceBOffset; - VkDeviceSize resourceBStartPage = resourceBStart & ~(pageSize - 1); - return resourceAEndPage == resourceBStartPage; -} +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateVirtualBlock( + const VmaVirtualBlockCreateInfo* VMA_NOT_NULL pCreateInfo, + VmaVirtualBlock VMA_NULLABLE* VMA_NOT_NULL pVirtualBlock); -enum VmaSuballocationType -{ - VMA_SUBALLOCATION_TYPE_FREE = 0, - VMA_SUBALLOCATION_TYPE_UNKNOWN = 1, - VMA_SUBALLOCATION_TYPE_BUFFER = 2, - VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN = 3, - VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR = 4, - VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL = 5, - VMA_SUBALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF -}; +/** \brief Destroys #VmaVirtualBlock object. -/* -Returns true if given suballocation types could conflict and must respect -VkPhysicalDeviceLimits::bufferImageGranularity. They conflict if one is buffer -or linear image and another one is optimal image. If type is unknown, behave -conservatively. +Please note that you should consciously handle virtual allocations that could remain unfreed in the block. +You should either free them individually using vmaVirtualFree() or call vmaClearVirtualBlock() +if you are sure this is what you want. If you do neither, an assert is called. + +If you keep pointers to some additional metadata associated with your virtual allocations in their `pUserData`, +don't forget to free them. */ -static inline bool VmaIsBufferImageGranularityConflict( - VmaSuballocationType suballocType1, - VmaSuballocationType suballocType2) -{ - if(suballocType1 > suballocType2) - { - VMA_SWAP(suballocType1, suballocType2); - } +VMA_CALL_PRE void VMA_CALL_POST vmaDestroyVirtualBlock( + VmaVirtualBlock VMA_NULLABLE virtualBlock); - switch(suballocType1) - { - case VMA_SUBALLOCATION_TYPE_FREE: - return false; - case VMA_SUBALLOCATION_TYPE_UNKNOWN: - return true; - case VMA_SUBALLOCATION_TYPE_BUFFER: - return - suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN || - suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL; - case VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN: - return - suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN || - suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR || - suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL; - case VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR: - return - suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL; - case VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL: - return false; - default: - VMA_ASSERT(0); - return true; - } -} +/** \brief Returns true of the #VmaVirtualBlock is empty - contains 0 virtual allocations and has all its space available for new allocations. +*/ +VMA_CALL_PRE VkBool32 VMA_CALL_POST vmaIsVirtualBlockEmpty( + VmaVirtualBlock VMA_NOT_NULL virtualBlock); -static void VmaWriteMagicValue(void* pData, VkDeviceSize offset) -{ -#if VMA_DEBUG_MARGIN > 0 && VMA_DEBUG_DETECT_CORRUPTION - uint32_t* pDst = (uint32_t*)((char*)pData + offset); - const size_t numberCount = VMA_DEBUG_MARGIN / sizeof(uint32_t); - for(size_t i = 0; i < numberCount; ++i, ++pDst) - { - *pDst = VMA_CORRUPTION_DETECTION_MAGIC_VALUE; - } -#else - // no-op -#endif -} +/** \brief Returns information about a specific virtual allocation within a virtual block, like its size and `pUserData` pointer. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaGetVirtualAllocationInfo( + VmaVirtualBlock VMA_NOT_NULL virtualBlock, + VmaVirtualAllocation VMA_NOT_NULL_NON_DISPATCHABLE allocation, VmaVirtualAllocationInfo* VMA_NOT_NULL pVirtualAllocInfo); -static bool VmaValidateMagicValue(const void* pData, VkDeviceSize offset) -{ -#if VMA_DEBUG_MARGIN > 0 && VMA_DEBUG_DETECT_CORRUPTION - const uint32_t* pSrc = (const uint32_t*)((const char*)pData + offset); - const size_t numberCount = VMA_DEBUG_MARGIN / sizeof(uint32_t); - for(size_t i = 0; i < numberCount; ++i, ++pSrc) - { - if(*pSrc != VMA_CORRUPTION_DETECTION_MAGIC_VALUE) - { - return false; - } - } -#endif - return true; -} +/** \brief Allocates new virtual allocation inside given #VmaVirtualBlock. -/* -Fills structure with parameters of an example buffer to be used for transfers -during GPU memory defragmentation. +If the allocation fails due to not enough free space available, `VK_ERROR_OUT_OF_DEVICE_MEMORY` is returned +(despite the function doesn't ever allocate actual GPU memory). +`pAllocation` is then set to `VK_NULL_HANDLE` and `pOffset`, if not null, it set to `UINT64_MAX`. + +\param virtualBlock Virtual block +\param pCreateInfo Parameters for the allocation +\param[out] pAllocation Returned handle of the new allocation +\param[out] pOffset Returned offset of the new allocation. Optional, can be null. */ -static void VmaFillGpuDefragmentationBufferCreateInfo(VkBufferCreateInfo& outBufCreateInfo) -{ - memset(&outBufCreateInfo, 0, sizeof(outBufCreateInfo)); - outBufCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; - outBufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; - outBufCreateInfo.size = (VkDeviceSize)VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE; // Example size. -} +VMA_CALL_PRE VkResult VMA_CALL_POST vmaVirtualAllocate( + VmaVirtualBlock VMA_NOT_NULL virtualBlock, + const VmaVirtualAllocationCreateInfo* VMA_NOT_NULL pCreateInfo, + VmaVirtualAllocation VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pAllocation, + VkDeviceSize* VMA_NULLABLE pOffset); -// Helper RAII class to lock a mutex in constructor and unlock it in destructor (at the end of scope). -struct VmaMutexLock -{ - VMA_CLASS_NO_COPY(VmaMutexLock) -public: - VmaMutexLock(VMA_MUTEX& mutex, bool useMutex = true) : - m_pMutex(useMutex ? &mutex : VMA_NULL) - { if(m_pMutex) { m_pMutex->Lock(); } } - ~VmaMutexLock() - { if(m_pMutex) { m_pMutex->Unlock(); } } -private: - VMA_MUTEX* m_pMutex; -}; +/** \brief Frees virtual allocation inside given #VmaVirtualBlock. -// Helper RAII class to lock a RW mutex in constructor and unlock it in destructor (at the end of scope), for reading. -struct VmaMutexLockRead -{ - VMA_CLASS_NO_COPY(VmaMutexLockRead) -public: - VmaMutexLockRead(VMA_RW_MUTEX& mutex, bool useMutex) : - m_pMutex(useMutex ? &mutex : VMA_NULL) - { if(m_pMutex) { m_pMutex->LockRead(); } } - ~VmaMutexLockRead() { if(m_pMutex) { m_pMutex->UnlockRead(); } } -private: - VMA_RW_MUTEX* m_pMutex; -}; +It is correct to call this function with `allocation == VK_NULL_HANDLE` - it does nothing. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaVirtualFree( + VmaVirtualBlock VMA_NOT_NULL virtualBlock, + VmaVirtualAllocation VMA_NULLABLE_NON_DISPATCHABLE allocation); -// Helper RAII class to lock a RW mutex in constructor and unlock it in destructor (at the end of scope), for writing. -struct VmaMutexLockWrite -{ - VMA_CLASS_NO_COPY(VmaMutexLockWrite) -public: - VmaMutexLockWrite(VMA_RW_MUTEX& mutex, bool useMutex) : - m_pMutex(useMutex ? &mutex : VMA_NULL) - { if(m_pMutex) { m_pMutex->LockWrite(); } } - ~VmaMutexLockWrite() { if(m_pMutex) { m_pMutex->UnlockWrite(); } } -private: - VMA_RW_MUTEX* m_pMutex; -}; +/** \brief Frees all virtual allocations inside given #VmaVirtualBlock. -#if VMA_DEBUG_GLOBAL_MUTEX - static VMA_MUTEX gDebugGlobalMutex; - #define VMA_DEBUG_GLOBAL_MUTEX_LOCK VmaMutexLock debugGlobalMutexLock(gDebugGlobalMutex, true); -#else - #define VMA_DEBUG_GLOBAL_MUTEX_LOCK -#endif +You must either call this function or free each virtual allocation individually with vmaVirtualFree() +before destroying a virtual block. Otherwise, an assert is called. -// Minimum size of a free suballocation to register it in the free suballocation collection. -static const VkDeviceSize VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER = 16; +If you keep pointer to some additional metadata associated with your virtual allocation in its `pUserData`, +don't forget to free it as well. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaClearVirtualBlock( + VmaVirtualBlock VMA_NOT_NULL virtualBlock); -/* -Performs binary search and returns iterator to first element that is greater or -equal to (key), according to comparison (cmp). +/** \brief Changes custom pointer associated with given virtual allocation. +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaSetVirtualAllocationUserData( + VmaVirtualBlock VMA_NOT_NULL virtualBlock, + VmaVirtualAllocation VMA_NOT_NULL_NON_DISPATCHABLE allocation, + void* VMA_NULLABLE pUserData); -Cmp should return true if first argument is less than second argument. +/** \brief Calculates and returns statistics about virtual allocations and memory usage in given #VmaVirtualBlock. -Returned value is the found element, if present in the collection or place where -new element with value (key) should be inserted. +This function is fast to call. For more detailed statistics, see vmaCalculateVirtualBlockStatistics(). */ -template -static IterT VmaBinaryFindFirstNotLess(IterT beg, IterT end, const KeyT &key, const CmpLess& cmp) -{ - size_t down = 0, up = (end - beg); - while(down < up) - { - const size_t mid = down + (up - down) / 2; // Overflow-safe midpoint calculation - if(cmp(*(beg+mid), key)) - { - down = mid + 1; - } - else - { - up = mid; - } - } - return beg + down; -} +VMA_CALL_PRE void VMA_CALL_POST vmaGetVirtualBlockStatistics( + VmaVirtualBlock VMA_NOT_NULL virtualBlock, + VmaStatistics* VMA_NOT_NULL pStats); -template -IterT VmaBinaryFindSorted(const IterT& beg, const IterT& end, const KeyT& value, const CmpLess& cmp) -{ - IterT it = VmaBinaryFindFirstNotLess( - beg, end, value, cmp); - if(it == end || - (!cmp(*it, value) && !cmp(value, *it))) - { - return it; - } - return end; -} +/** \brief Calculates and returns detailed statistics about virtual allocations and memory usage in given #VmaVirtualBlock. -/* -Returns true if all pointers in the array are not-null and unique. -Warning! O(n^2) complexity. Use only inside VMA_HEAVY_ASSERT. -T must be pointer type, e.g. VmaAllocation, VmaPool. +This function is slow to call. Use for debugging purposes. +For less detailed statistics, see vmaGetVirtualBlockStatistics(). */ -template -static bool VmaValidatePointerArray(uint32_t count, const T* arr) -{ - for(uint32_t i = 0; i < count; ++i) - { - const T iPtr = arr[i]; - if(iPtr == VMA_NULL) - { - return false; - } - for(uint32_t j = i + 1; j < count; ++j) - { - if(iPtr == arr[j]) - { - return false; - } - } - } - return true; -} +VMA_CALL_PRE void VMA_CALL_POST vmaCalculateVirtualBlockStatistics( + VmaVirtualBlock VMA_NOT_NULL virtualBlock, + VmaDetailedStatistics* VMA_NOT_NULL pStats); -template -static inline void VmaPnextChainPushFront(MainT* mainStruct, NewT* newStruct) -{ - newStruct->pNext = mainStruct->pNext; - mainStruct->pNext = newStruct; -} +/** @} */ -//////////////////////////////////////////////////////////////////////////////// -// Memory allocation +#if VMA_STATS_STRING_ENABLED +/** +\addtogroup group_stats +@{ +*/ -static void* VmaMalloc(const VkAllocationCallbacks* pAllocationCallbacks, size_t size, size_t alignment) -{ - void* result = VMA_NULL; - if((pAllocationCallbacks != VMA_NULL) && - (pAllocationCallbacks->pfnAllocation != VMA_NULL)) - { - result = (*pAllocationCallbacks->pfnAllocation)( - pAllocationCallbacks->pUserData, - size, - alignment, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); - } - else - { - result = VMA_SYSTEM_ALIGNED_MALLOC(size, alignment); - } - VMA_ASSERT(result != VMA_NULL && "CPU memory allocation failed."); - return result; -} +/** \brief Builds and returns a null-terminated string in JSON format with information about given #VmaVirtualBlock. +\param virtualBlock Virtual block. +\param[out] ppStatsString Returned string. +\param detailedMap Pass `VK_FALSE` to only obtain statistics as returned by vmaCalculateVirtualBlockStatistics(). Pass `VK_TRUE` to also obtain full list of allocations and free spaces. -static void VmaFree(const VkAllocationCallbacks* pAllocationCallbacks, void* ptr) -{ - if((pAllocationCallbacks != VMA_NULL) && - (pAllocationCallbacks->pfnFree != VMA_NULL)) - { - (*pAllocationCallbacks->pfnFree)(pAllocationCallbacks->pUserData, ptr); - } - else - { - VMA_SYSTEM_ALIGNED_FREE(ptr); - } -} +Returned string must be freed using vmaFreeVirtualBlockStatsString(). +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaBuildVirtualBlockStatsString( + VmaVirtualBlock VMA_NOT_NULL virtualBlock, + char* VMA_NULLABLE* VMA_NOT_NULL ppStatsString, + VkBool32 detailedMap); -template -static T* VmaAllocate(const VkAllocationCallbacks* pAllocationCallbacks) -{ - return (T*)VmaMalloc(pAllocationCallbacks, sizeof(T), VMA_ALIGN_OF(T)); -} +/// Frees a string returned by vmaBuildVirtualBlockStatsString(). +VMA_CALL_PRE void VMA_CALL_POST vmaFreeVirtualBlockStatsString( + VmaVirtualBlock VMA_NOT_NULL virtualBlock, + char* VMA_NULLABLE pStatsString); -template -static T* VmaAllocateArray(const VkAllocationCallbacks* pAllocationCallbacks, size_t count) -{ - return (T*)VmaMalloc(pAllocationCallbacks, sizeof(T) * count, VMA_ALIGN_OF(T)); -} +/** \brief Builds and returns statistics as a null-terminated string in JSON format. +\param allocator +\param[out] ppStatsString Must be freed using vmaFreeStatsString() function. +\param detailedMap +*/ +VMA_CALL_PRE void VMA_CALL_POST vmaBuildStatsString( + VmaAllocator VMA_NOT_NULL allocator, + char* VMA_NULLABLE* VMA_NOT_NULL ppStatsString, + VkBool32 detailedMap); -#define vma_new(allocator, type) new(VmaAllocate(allocator))(type) +VMA_CALL_PRE void VMA_CALL_POST vmaFreeStatsString( + VmaAllocator VMA_NOT_NULL allocator, + char* VMA_NULLABLE pStatsString); -#define vma_new_array(allocator, type, count) new(VmaAllocateArray((allocator), (count)))(type) +/** @} */ -template -static void vma_delete(const VkAllocationCallbacks* pAllocationCallbacks, T* ptr) -{ - ptr->~T(); - VmaFree(pAllocationCallbacks, ptr); -} +#endif // VMA_STATS_STRING_ENABLED -template -static void vma_delete_array(const VkAllocationCallbacks* pAllocationCallbacks, T* ptr, size_t count) -{ - if(ptr != VMA_NULL) - { - for(size_t i = count; i--; ) - { - ptr[i].~T(); - } - VmaFree(pAllocationCallbacks, ptr); - } -} +#endif // _VMA_FUNCTION_HEADERS -static char* VmaCreateStringCopy(const VkAllocationCallbacks* allocs, const char* srcStr) -{ - if(srcStr != VMA_NULL) - { - const size_t len = strlen(srcStr); - char* const result = vma_new_array(allocs, char, len + 1); - memcpy(result, srcStr, len + 1); - return result; - } - else - { - return VMA_NULL; - } +#ifdef __cplusplus } +#endif -static void VmaFreeString(const VkAllocationCallbacks* allocs, char* str) -{ - if(str != VMA_NULL) - { - const size_t len = strlen(str); - vma_delete_array(allocs, str, len + 1); - } -} - -// STL-compatible allocator. -template -class VmaStlAllocator -{ -public: - const VkAllocationCallbacks* const m_pCallbacks; - typedef T value_type; +#endif // AMD_VULKAN_MEMORY_ALLOCATOR_H - VmaStlAllocator(const VkAllocationCallbacks* pCallbacks) : m_pCallbacks(pCallbacks) { } - template VmaStlAllocator(const VmaStlAllocator& src) : m_pCallbacks(src.m_pCallbacks) { } +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +// +// IMPLEMENTATION +// +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// - T* allocate(size_t n) { return VmaAllocateArray(m_pCallbacks, n); } - void deallocate(T* p, size_t n) { VmaFree(m_pCallbacks, p); } +// For Visual Studio IntelliSense. +#if defined(__cplusplus) && defined(__INTELLISENSE__) +#define VMA_IMPLEMENTATION +#endif - template - bool operator==(const VmaStlAllocator& rhs) const - { - return m_pCallbacks == rhs.m_pCallbacks; - } - template - bool operator!=(const VmaStlAllocator& rhs) const - { - return m_pCallbacks != rhs.m_pCallbacks; - } +#ifdef VMA_IMPLEMENTATION +#undef VMA_IMPLEMENTATION - VmaStlAllocator& operator=(const VmaStlAllocator& x) = delete; - VmaStlAllocator(const VmaStlAllocator&) = default; -}; +#include +#include +#include +#include +#include -#if VMA_USE_STL_VECTOR +#if !defined(VMA_CPP20) + #if __cplusplus >= 202002L || _MSVC_LANG >= 202002L // C++20 + #define VMA_CPP20 1 + #else + #define VMA_CPP20 0 + #endif +#endif -#define VmaVector std::vector +#ifdef _MSC_VER + #include // For functions like __popcnt, _BitScanForward etc. +#endif +#if VMA_CPP20 + #include // For std::popcount +#endif -template -static void VmaVectorInsert(std::vector& vec, size_t index, const T& item) -{ - vec.insert(vec.begin() + index, item); -} +#if VMA_STATS_STRING_ENABLED + #include // For snprintf +#endif -template -static void VmaVectorRemove(std::vector& vec, size_t index) -{ - vec.erase(vec.begin() + index); -} +/******************************************************************************* +CONFIGURATION SECTION -#else // #if VMA_USE_STL_VECTOR +Define some of these macros before each #include of this header or change them +here if you need other then default behavior depending on your environment. +*/ +#ifndef _VMA_CONFIGURATION -/* Class with interface compatible with subset of std::vector. -T must be POD because constructors and destructors are not called and memcpy is -used for these objects. */ -template -class VmaVector -{ -public: - typedef T value_type; +/* +Define this macro to 1 to make the library fetch pointers to Vulkan functions +internally, like: - VmaVector(const AllocatorT& allocator) : - m_Allocator(allocator), - m_pArray(VMA_NULL), - m_Count(0), - m_Capacity(0) - { - } + vulkanFunctions.vkAllocateMemory = &vkAllocateMemory; +*/ +#if !defined(VMA_STATIC_VULKAN_FUNCTIONS) && !defined(VK_NO_PROTOTYPES) + #define VMA_STATIC_VULKAN_FUNCTIONS 1 +#endif - VmaVector(size_t count, const AllocatorT& allocator) : - m_Allocator(allocator), - m_pArray(count ? (T*)VmaAllocateArray(allocator.m_pCallbacks, count) : VMA_NULL), - m_Count(count), - m_Capacity(count) - { - } +/* +Define this macro to 1 to make the library fetch pointers to Vulkan functions +internally, like: - // This version of the constructor is here for compatibility with pre-C++14 std::vector. - // value is unused. - VmaVector(size_t count, const T& value, const AllocatorT& allocator) - : VmaVector(count, allocator) {} + vulkanFunctions.vkAllocateMemory = (PFN_vkAllocateMemory)vkGetDeviceProcAddr(device, "vkAllocateMemory"); - VmaVector(const VmaVector& src) : - m_Allocator(src.m_Allocator), - m_pArray(src.m_Count ? (T*)VmaAllocateArray(src.m_Allocator.m_pCallbacks, src.m_Count) : VMA_NULL), - m_Count(src.m_Count), - m_Capacity(src.m_Count) - { - if(m_Count != 0) - { - memcpy(m_pArray, src.m_pArray, m_Count * sizeof(T)); - } - } +To use this feature in new versions of VMA you now have to pass +VmaVulkanFunctions::vkGetInstanceProcAddr and vkGetDeviceProcAddr as +VmaAllocatorCreateInfo::pVulkanFunctions. Other members can be null. +*/ +#if !defined(VMA_DYNAMIC_VULKAN_FUNCTIONS) + #define VMA_DYNAMIC_VULKAN_FUNCTIONS 1 +#endif - ~VmaVector() - { - VmaFree(m_Allocator.m_pCallbacks, m_pArray); - } +#ifndef VMA_USE_STL_SHARED_MUTEX + #if __cplusplus >= 201703L || _MSVC_LANG >= 201703L // C++17 + #define VMA_USE_STL_SHARED_MUTEX 1 + // Visual studio defines __cplusplus properly only when passed additional parameter: /Zc:__cplusplus + // Otherwise it is always 199711L, despite shared_mutex works since Visual Studio 2015 Update 2. + #elif defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023918 && __cplusplus == 199711L && _MSVC_LANG >= 201703L + #define VMA_USE_STL_SHARED_MUTEX 1 + #else + #define VMA_USE_STL_SHARED_MUTEX 0 + #endif +#endif - VmaVector& operator=(const VmaVector& rhs) - { - if(&rhs != this) - { - resize(rhs.m_Count); - if(m_Count != 0) - { - memcpy(m_pArray, rhs.m_pArray, m_Count * sizeof(T)); - } - } - return *this; - } +/* +Define this macro to include custom header files without having to edit this file directly, e.g.: - bool empty() const { return m_Count == 0; } - size_t size() const { return m_Count; } - T* data() { return m_pArray; } - const T* data() const { return m_pArray; } + // Inside of "my_vma_configuration_user_includes.h": - T& operator[](size_t index) - { - VMA_HEAVY_ASSERT(index < m_Count); - return m_pArray[index]; - } - const T& operator[](size_t index) const - { - VMA_HEAVY_ASSERT(index < m_Count); - return m_pArray[index]; - } + #include "my_custom_assert.h" // for MY_CUSTOM_ASSERT + #include "my_custom_min.h" // for my_custom_min + #include + #include - T& front() - { - VMA_HEAVY_ASSERT(m_Count > 0); - return m_pArray[0]; - } - const T& front() const - { - VMA_HEAVY_ASSERT(m_Count > 0); - return m_pArray[0]; - } - T& back() - { - VMA_HEAVY_ASSERT(m_Count > 0); - return m_pArray[m_Count - 1]; - } - const T& back() const - { - VMA_HEAVY_ASSERT(m_Count > 0); - return m_pArray[m_Count - 1]; - } + // Inside a different file, which includes "vk_mem_alloc.h": - void reserve(size_t newCapacity, bool freeMemory = false) - { - newCapacity = VMA_MAX(newCapacity, m_Count); + #define VMA_CONFIGURATION_USER_INCLUDES_H "my_vma_configuration_user_includes.h" + #define VMA_ASSERT(expr) MY_CUSTOM_ASSERT(expr) + #define VMA_MIN(v1, v2) (my_custom_min(v1, v2)) + #include "vk_mem_alloc.h" + ... - if((newCapacity < m_Capacity) && !freeMemory) - { - newCapacity = m_Capacity; - } +The following headers are used in this CONFIGURATION section only, so feel free to +remove them if not needed. +*/ +#if !defined(VMA_CONFIGURATION_USER_INCLUDES_H) + #include // for assert + #include // for min, max + #include +#else + #include VMA_CONFIGURATION_USER_INCLUDES_H +#endif - if(newCapacity != m_Capacity) - { - T* const newArray = newCapacity ? VmaAllocateArray(m_Allocator, newCapacity) : VMA_NULL; - if(m_Count != 0) - { - memcpy(newArray, m_pArray, m_Count * sizeof(T)); - } - VmaFree(m_Allocator.m_pCallbacks, m_pArray); - m_Capacity = newCapacity; - m_pArray = newArray; - } - } +#ifndef VMA_NULL + // Value used as null pointer. Define it to e.g.: nullptr, NULL, 0, (void*)0. + #define VMA_NULL nullptr +#endif - void resize(size_t newCount) - { - size_t newCapacity = m_Capacity; - if(newCount > m_Capacity) - { - newCapacity = VMA_MAX(newCount, VMA_MAX(m_Capacity * 3 / 2, (size_t)8)); - } +#ifndef VMA_FALLTHROUGH + #if __cplusplus >= 201703L || _MSVC_LANG >= 201703L // C++17 + #define VMA_FALLTHROUGH [[fallthrough]] + #else + #define VMA_FALLTHROUGH + #endif +#endif - if(newCapacity != m_Capacity) - { - T* const newArray = newCapacity ? VmaAllocateArray(m_Allocator.m_pCallbacks, newCapacity) : VMA_NULL; - const size_t elementsToCopy = VMA_MIN(m_Count, newCount); - if(elementsToCopy != 0) - { - memcpy(newArray, m_pArray, elementsToCopy * sizeof(T)); - } - VmaFree(m_Allocator.m_pCallbacks, m_pArray); - m_Capacity = newCapacity; - m_pArray = newArray; - } +// Normal assert to check for programmer's errors, especially in Debug configuration. +#ifndef VMA_ASSERT + #ifdef NDEBUG + #define VMA_ASSERT(expr) + #else + #define VMA_ASSERT(expr) assert(expr) + #endif +#endif - m_Count = newCount; - } +// Assert that will be called very often, like inside data structures e.g. operator[]. +// Making it non-empty can make program slow. +#ifndef VMA_HEAVY_ASSERT + #ifdef NDEBUG + #define VMA_HEAVY_ASSERT(expr) + #else + #define VMA_HEAVY_ASSERT(expr) //VMA_ASSERT(expr) + #endif +#endif - void clear() - { - resize(0); - } +// Assert used for reporting memory leaks - unfreed allocations. +#ifndef VMA_ASSERT_LEAK + #define VMA_ASSERT_LEAK(expr) VMA_ASSERT(expr) +#endif - void shrink_to_fit() - { - if(m_Capacity > m_Count) - { - T* newArray = VMA_NULL; - if(m_Count > 0) - { - newArray = VmaAllocateArray(m_Allocator.m_pCallbacks, m_Count); - memcpy(newArray, m_pArray, m_Count * sizeof(T)); - } - VmaFree(m_Allocator.m_pCallbacks, m_pArray); - m_Capacity = m_Count; - m_pArray = newArray; - } - } +// If your compiler is not compatible with C++17 and definition of +// aligned_alloc() function is missing, uncommenting following line may help: - void insert(size_t index, const T& src) - { - VMA_HEAVY_ASSERT(index <= m_Count); - const size_t oldCount = size(); - resize(oldCount + 1); - if(index < oldCount) - { - memmove(m_pArray + (index + 1), m_pArray + index, (oldCount - index) * sizeof(T)); - } - m_pArray[index] = src; - } +//#include - void remove(size_t index) +#if defined(__ANDROID_API__) && (__ANDROID_API__ < 16) +#include +static void* vma_aligned_alloc(size_t alignment, size_t size) +{ + // alignment must be >= sizeof(void*) + if(alignment < sizeof(void*)) { - VMA_HEAVY_ASSERT(index < m_Count); - const size_t oldCount = size(); - if(index < oldCount - 1) - { - memmove(m_pArray + index, m_pArray + (index + 1), (oldCount - index - 1) * sizeof(T)); - } - resize(oldCount - 1); + alignment = sizeof(void*); } - void push_back(const T& src) - { - const size_t newIndex = size(); - resize(newIndex + 1); - m_pArray[newIndex] = src; - } + return memalign(alignment, size); +} +#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) +#include - void pop_back() - { - VMA_HEAVY_ASSERT(m_Count > 0); - resize(size() - 1); - } +#if defined(__APPLE__) +#include +#endif - void push_front(const T& src) - { - insert(0, src); - } +static void* vma_aligned_alloc(size_t alignment, size_t size) +{ + // Unfortunately, aligned_alloc causes VMA to crash due to it returning null pointers. (At least under 11.4) + // Therefore, for now disable this specific exception until a proper solution is found. + //#if defined(__APPLE__) && (defined(MAC_OS_X_VERSION_10_16) || defined(__IPHONE_14_0)) + //#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_16 || __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_0 + // // For C++14, usr/include/malloc/_malloc.h declares aligned_alloc()) only + // // with the MacOSX11.0 SDK in Xcode 12 (which is what adds + // // MAC_OS_X_VERSION_10_16), even though the function is marked + // // available for 10.15. That is why the preprocessor checks for 10.16 but + // // the __builtin_available checks for 10.15. + // // People who use C++17 could call aligned_alloc with the 10.15 SDK already. + // if (__builtin_available(macOS 10.15, iOS 13, *)) + // return aligned_alloc(alignment, size); + //#endif + //#endif - void pop_front() + // alignment must be >= sizeof(void*) + if(alignment < sizeof(void*)) { - VMA_HEAVY_ASSERT(m_Count > 0); - remove(0); + alignment = sizeof(void*); } - typedef T* iterator; - typedef const T* const_iterator; - - iterator begin() { return m_pArray; } - iterator end() { return m_pArray + m_Count; } - const_iterator cbegin() const { return m_pArray; } - const_iterator cend() const { return m_pArray + m_Count; } - const_iterator begin() const { return cbegin(); } - const_iterator end() const { return cend(); } - -private: - AllocatorT m_Allocator; - T* m_pArray; - size_t m_Count; - size_t m_Capacity; -}; - -template -static void VmaVectorInsert(VmaVector& vec, size_t index, const T& item) + void *pointer; + if(posix_memalign(&pointer, alignment, size) == 0) + return pointer; + return VMA_NULL; +} +#elif defined(_WIN32) +static void* vma_aligned_alloc(size_t alignment, size_t size) { - vec.insert(index, item); + return _aligned_malloc(size, alignment); } - -template -static void VmaVectorRemove(VmaVector& vec, size_t index) +#elif __cplusplus >= 201703L || _MSVC_LANG >= 201703L // C++17 +static void* vma_aligned_alloc(size_t alignment, size_t size) { - vec.remove(index); + return aligned_alloc(alignment, size); } - -#endif // #if VMA_USE_STL_VECTOR - -template -size_t VmaVectorInsertSorted(VectorT& vector, const typename VectorT::value_type& value) +#else +static void* vma_aligned_alloc(size_t alignment, size_t size) { - const size_t indexToInsert = VmaBinaryFindFirstNotLess( - vector.data(), - vector.data() + vector.size(), - value, - CmpLess()) - vector.data(); - VmaVectorInsert(vector, indexToInsert, value); - return indexToInsert; + VMA_ASSERT(0 && "Could not implement aligned_alloc automatically. Please enable C++17 or later in your compiler or provide custom implementation of macro VMA_SYSTEM_ALIGNED_MALLOC (and VMA_SYSTEM_ALIGNED_FREE if needed) using the API of your system."); + return VMA_NULL; } +#endif -template -bool VmaVectorRemoveSorted(VectorT& vector, const typename VectorT::value_type& value) +#if defined(_WIN32) +static void vma_aligned_free(void* ptr) { - CmpLess comparator; - typename VectorT::iterator it = VmaBinaryFindFirstNotLess( - vector.begin(), - vector.end(), - value, - comparator); - if((it != vector.end()) && !comparator(*it, value) && !comparator(value, *it)) - { - size_t indexToRemove = it - vector.begin(); - VmaVectorRemove(vector, indexToRemove); - return true; - } - return false; + _aligned_free(ptr); +} +#else +static void vma_aligned_free(void* VMA_NULLABLE ptr) +{ + free(ptr); } +#endif -//////////////////////////////////////////////////////////////////////////////// -// class VmaSmallVector +#ifndef VMA_ALIGN_OF + #define VMA_ALIGN_OF(type) (alignof(type)) +#endif -/* -This is a vector (a variable-sized array), optimized for the case when the array is small. +#ifndef VMA_SYSTEM_ALIGNED_MALLOC + #define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment) vma_aligned_alloc((alignment), (size)) +#endif -It contains some number of elements in-place, which allows it to avoid heap allocation -when the actual number of elements is below that threshold. This allows normal "small" -cases to be fast without losing generality for large inputs. -*/ +#ifndef VMA_SYSTEM_ALIGNED_FREE + // VMA_SYSTEM_FREE is the old name, but might have been defined by the user + #if defined(VMA_SYSTEM_FREE) + #define VMA_SYSTEM_ALIGNED_FREE(ptr) VMA_SYSTEM_FREE(ptr) + #else + #define VMA_SYSTEM_ALIGNED_FREE(ptr) vma_aligned_free(ptr) + #endif +#endif -template -class VmaSmallVector -{ -public: - typedef T value_type; +#ifndef VMA_COUNT_BITS_SET + // Returns number of bits set to 1 in (v) + #define VMA_COUNT_BITS_SET(v) VmaCountBitsSet(v) +#endif - VmaSmallVector(const AllocatorT& allocator) : - m_Count(0), - m_DynamicArray(allocator) - { - } - VmaSmallVector(size_t count, const AllocatorT& allocator) : - m_Count(count), - m_DynamicArray(count > N ? count : 0, allocator) - { - } - template - VmaSmallVector(const VmaSmallVector& src) = delete; - template - VmaSmallVector& operator=(const VmaSmallVector& rhs) = delete; +#ifndef VMA_BITSCAN_LSB + // Scans integer for index of first nonzero value from the Least Significant Bit (LSB). If mask is 0 then returns UINT8_MAX + #define VMA_BITSCAN_LSB(mask) VmaBitScanLSB(mask) +#endif - bool empty() const { return m_Count == 0; } - size_t size() const { return m_Count; } - T* data() { return m_Count > N ? m_DynamicArray.data() : m_StaticArray; } - const T* data() const { return m_Count > N ? m_DynamicArray.data() : m_StaticArray; } +#ifndef VMA_BITSCAN_MSB + // Scans integer for index of first nonzero value from the Most Significant Bit (MSB). If mask is 0 then returns UINT8_MAX + #define VMA_BITSCAN_MSB(mask) VmaBitScanMSB(mask) +#endif - T& operator[](size_t index) - { - VMA_HEAVY_ASSERT(index < m_Count); - return data()[index]; - } - const T& operator[](size_t index) const - { - VMA_HEAVY_ASSERT(index < m_Count); - return data()[index]; - } +#ifndef VMA_MIN + #define VMA_MIN(v1, v2) ((std::min)((v1), (v2))) +#endif - T& front() - { - VMA_HEAVY_ASSERT(m_Count > 0); - return data()[0]; - } - const T& front() const - { - VMA_HEAVY_ASSERT(m_Count > 0); - return data()[0]; - } - T& back() - { - VMA_HEAVY_ASSERT(m_Count > 0); - return data()[m_Count - 1]; - } - const T& back() const - { - VMA_HEAVY_ASSERT(m_Count > 0); - return data()[m_Count - 1]; - } +#ifndef VMA_MAX + #define VMA_MAX(v1, v2) ((std::max)((v1), (v2))) +#endif - void resize(size_t newCount, bool freeMemory = false) - { - if(newCount > N && m_Count > N) - { - // Any direction, staying in m_DynamicArray - m_DynamicArray.resize(newCount); - if(freeMemory) - { - m_DynamicArray.shrink_to_fit(); - } - } - else if(newCount > N && m_Count <= N) - { - // Growing, moving from m_StaticArray to m_DynamicArray - m_DynamicArray.resize(newCount); - if(m_Count > 0) - { - memcpy(m_DynamicArray.data(), m_StaticArray, m_Count * sizeof(T)); - } - } - else if(newCount <= N && m_Count > N) - { - // Shrinking, moving from m_DynamicArray to m_StaticArray - if(newCount > 0) - { - memcpy(m_StaticArray, m_DynamicArray.data(), newCount * sizeof(T)); - } - m_DynamicArray.resize(0); - if(freeMemory) - { - m_DynamicArray.shrink_to_fit(); - } - } - else - { - // Any direction, staying in m_StaticArray - nothing to do here - } - m_Count = newCount; - } +#ifndef VMA_SWAP + #define VMA_SWAP(v1, v2) std::swap((v1), (v2)) +#endif - void clear(bool freeMemory = false) - { - m_DynamicArray.clear(); - if(freeMemory) - { - m_DynamicArray.shrink_to_fit(); - } - m_Count = 0; - } +#ifndef VMA_SORT + #define VMA_SORT(beg, end, cmp) std::sort(beg, end, cmp) +#endif - void insert(size_t index, const T& src) - { - VMA_HEAVY_ASSERT(index <= m_Count); - const size_t oldCount = size(); - resize(oldCount + 1); - T* const dataPtr = data(); - if(index < oldCount) - { - // I know, this could be more optimal for case where memmove can be memcpy directly from m_StaticArray to m_DynamicArray. - memmove(dataPtr + (index + 1), dataPtr + index, (oldCount - index) * sizeof(T)); - } - dataPtr[index] = src; - } +#ifndef VMA_DEBUG_LOG_FORMAT + #define VMA_DEBUG_LOG_FORMAT(format, ...) + /* + #define VMA_DEBUG_LOG_FORMAT(format, ...) do { \ + printf((format), __VA_ARGS__); \ + printf("\n"); \ + } while(false) + */ +#endif - void remove(size_t index) - { - VMA_HEAVY_ASSERT(index < m_Count); - const size_t oldCount = size(); - if(index < oldCount - 1) - { - // I know, this could be more optimal for case where memmove can be memcpy directly from m_DynamicArray to m_StaticArray. - T* const dataPtr = data(); - memmove(dataPtr + index, dataPtr + (index + 1), (oldCount - index - 1) * sizeof(T)); - } - resize(oldCount - 1); - } +#ifndef VMA_DEBUG_LOG + #define VMA_DEBUG_LOG(str) VMA_DEBUG_LOG_FORMAT("%s", (str)) +#endif - void push_back(const T& src) - { - const size_t newIndex = size(); - resize(newIndex + 1); - data()[newIndex] = src; - } +#ifndef VMA_CLASS_NO_COPY + #define VMA_CLASS_NO_COPY(className) \ + private: \ + className(const className&) = delete; \ + className& operator=(const className&) = delete; +#endif +#ifndef VMA_CLASS_NO_COPY_NO_MOVE + #define VMA_CLASS_NO_COPY_NO_MOVE(className) \ + private: \ + className(const className&) = delete; \ + className(className&&) = delete; \ + className& operator=(const className&) = delete; \ + className& operator=(className&&) = delete; +#endif - void pop_back() +// Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString. +#if VMA_STATS_STRING_ENABLED + static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num) { - VMA_HEAVY_ASSERT(m_Count > 0); - resize(size() - 1); + snprintf(outStr, strLen, "%u", static_cast(num)); } - - void push_front(const T& src) + static inline void VmaUint64ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint64_t num) { - insert(0, src); + snprintf(outStr, strLen, "%llu", static_cast(num)); } - - void pop_front() + static inline void VmaPtrToStr(char* VMA_NOT_NULL outStr, size_t strLen, const void* ptr) { - VMA_HEAVY_ASSERT(m_Count > 0); - remove(0); + snprintf(outStr, strLen, "%p", ptr); } +#endif - typedef T* iterator; - - iterator begin() { return data(); } - iterator end() { return data() + m_Count; } - -private: - size_t m_Count; - T m_StaticArray[N]; // Used when m_Size <= N - VmaVector m_DynamicArray; // Used when m_Size > N -}; - -//////////////////////////////////////////////////////////////////////////////// -// class VmaPoolAllocator - -/* -Allocator for objects of type T using a list of arrays (pools) to speed up -allocation. Number of elements that can be allocated is not bounded because -allocator can create multiple blocks. -*/ -template -class VmaPoolAllocator -{ - VMA_CLASS_NO_COPY(VmaPoolAllocator) -public: - VmaPoolAllocator(const VkAllocationCallbacks* pAllocationCallbacks, uint32_t firstBlockCapacity); - ~VmaPoolAllocator(); - template T* Alloc(Types&&... args); - void Free(T* ptr); - -private: - union Item - { - uint32_t NextFreeIndex; - alignas(T) char Value[sizeof(T)]; - }; - - struct ItemBlock +#ifndef VMA_MUTEX + class VmaMutex { - Item* pItems; - uint32_t Capacity; - uint32_t FirstFreeIndex; + VMA_CLASS_NO_COPY_NO_MOVE(VmaMutex) + public: + VmaMutex() { } + void Lock() { m_Mutex.lock(); } + void Unlock() { m_Mutex.unlock(); } + bool TryLock() { return m_Mutex.try_lock(); } + private: + std::mutex m_Mutex; }; + #define VMA_MUTEX VmaMutex +#endif - const VkAllocationCallbacks* m_pAllocationCallbacks; - const uint32_t m_FirstBlockCapacity; - VmaVector< ItemBlock, VmaStlAllocator > m_ItemBlocks; - - ItemBlock& CreateNewBlock(); -}; - -template -VmaPoolAllocator::VmaPoolAllocator(const VkAllocationCallbacks* pAllocationCallbacks, uint32_t firstBlockCapacity) : - m_pAllocationCallbacks(pAllocationCallbacks), - m_FirstBlockCapacity(firstBlockCapacity), - m_ItemBlocks(VmaStlAllocator(pAllocationCallbacks)) -{ - VMA_ASSERT(m_FirstBlockCapacity > 1); -} - -template -VmaPoolAllocator::~VmaPoolAllocator() -{ - for(size_t i = m_ItemBlocks.size(); i--; ) - vma_delete_array(m_pAllocationCallbacks, m_ItemBlocks[i].pItems, m_ItemBlocks[i].Capacity); - m_ItemBlocks.clear(); -} - -template -template T* VmaPoolAllocator::Alloc(Types&&... args) -{ - for(size_t i = m_ItemBlocks.size(); i--; ) - { - ItemBlock& block = m_ItemBlocks[i]; - // This block has some free items: Use first one. - if(block.FirstFreeIndex != UINT32_MAX) +// Read-write mutex, where "read" is shared access, "write" is exclusive access. +#ifndef VMA_RW_MUTEX + #if VMA_USE_STL_SHARED_MUTEX + // Use std::shared_mutex from C++17. + #include + class VmaRWMutex { - Item* const pItem = &block.pItems[block.FirstFreeIndex]; - block.FirstFreeIndex = pItem->NextFreeIndex; - T* result = (T*)&pItem->Value; - new(result)T(std::forward(args)...); // Explicit constructor call. - return result; - } - } - - // No block has free item: Create new one and use it. - ItemBlock& newBlock = CreateNewBlock(); - Item* const pItem = &newBlock.pItems[0]; - newBlock.FirstFreeIndex = pItem->NextFreeIndex; - T* result = (T*)&pItem->Value; - new(result)T(std::forward(args)...); // Explicit constructor call. - return result; -} + public: + void LockRead() { m_Mutex.lock_shared(); } + void UnlockRead() { m_Mutex.unlock_shared(); } + bool TryLockRead() { return m_Mutex.try_lock_shared(); } + void LockWrite() { m_Mutex.lock(); } + void UnlockWrite() { m_Mutex.unlock(); } + bool TryLockWrite() { return m_Mutex.try_lock(); } + private: + std::shared_mutex m_Mutex; + }; + #define VMA_RW_MUTEX VmaRWMutex + #elif defined(_WIN32) && defined(WINVER) && WINVER >= 0x0600 + // Use SRWLOCK from WinAPI. + // Minimum supported client = Windows Vista, server = Windows Server 2008. + class VmaRWMutex + { + public: + VmaRWMutex() { InitializeSRWLock(&m_Lock); } + void LockRead() { AcquireSRWLockShared(&m_Lock); } + void UnlockRead() { ReleaseSRWLockShared(&m_Lock); } + bool TryLockRead() { return TryAcquireSRWLockShared(&m_Lock) != FALSE; } + void LockWrite() { AcquireSRWLockExclusive(&m_Lock); } + void UnlockWrite() { ReleaseSRWLockExclusive(&m_Lock); } + bool TryLockWrite() { return TryAcquireSRWLockExclusive(&m_Lock) != FALSE; } + private: + SRWLOCK m_Lock; + }; + #define VMA_RW_MUTEX VmaRWMutex + #else + // Less efficient fallback: Use normal mutex. + class VmaRWMutex + { + public: + void LockRead() { m_Mutex.Lock(); } + void UnlockRead() { m_Mutex.Unlock(); } + bool TryLockRead() { return m_Mutex.TryLock(); } + void LockWrite() { m_Mutex.Lock(); } + void UnlockWrite() { m_Mutex.Unlock(); } + bool TryLockWrite() { return m_Mutex.TryLock(); } + private: + VMA_MUTEX m_Mutex; + }; + #define VMA_RW_MUTEX VmaRWMutex + #endif // #if VMA_USE_STL_SHARED_MUTEX +#endif // #ifndef VMA_RW_MUTEX -template -void VmaPoolAllocator::Free(T* ptr) -{ - // Search all memory blocks to find ptr. - for(size_t i = m_ItemBlocks.size(); i--; ) - { - ItemBlock& block = m_ItemBlocks[i]; +/* +If providing your own implementation, you need to implement a subset of std::atomic. +*/ +#ifndef VMA_ATOMIC_UINT32 + #include + #define VMA_ATOMIC_UINT32 std::atomic +#endif - // Casting to union. - Item* pItemPtr; - memcpy(&pItemPtr, &ptr, sizeof(pItemPtr)); +#ifndef VMA_ATOMIC_UINT64 + #include + #define VMA_ATOMIC_UINT64 std::atomic +#endif - // Check if pItemPtr is in address range of this block. - if((pItemPtr >= block.pItems) && (pItemPtr < block.pItems + block.Capacity)) - { - ptr->~T(); // Explicit destructor call. - const uint32_t index = static_cast(pItemPtr - block.pItems); - pItemPtr->NextFreeIndex = block.FirstFreeIndex; - block.FirstFreeIndex = index; - return; - } - } - VMA_ASSERT(0 && "Pointer doesn't belong to this memory pool."); -} +#ifndef VMA_DEBUG_ALWAYS_DEDICATED_MEMORY + /** + Every allocation will have its own memory block. + Define to 1 for debugging purposes only. + */ + #define VMA_DEBUG_ALWAYS_DEDICATED_MEMORY (0) +#endif -template -typename VmaPoolAllocator::ItemBlock& VmaPoolAllocator::CreateNewBlock() -{ - const uint32_t newBlockCapacity = m_ItemBlocks.empty() ? - m_FirstBlockCapacity : m_ItemBlocks.back().Capacity * 3 / 2; +#ifndef VMA_MIN_ALIGNMENT + /** + Minimum alignment of all allocations, in bytes. + Set to more than 1 for debugging purposes. Must be power of two. + */ + #ifdef VMA_DEBUG_ALIGNMENT // Old name + #define VMA_MIN_ALIGNMENT VMA_DEBUG_ALIGNMENT + #else + #define VMA_MIN_ALIGNMENT (1) + #endif +#endif - const ItemBlock newBlock = { - vma_new_array(m_pAllocationCallbacks, Item, newBlockCapacity), - newBlockCapacity, - 0 }; +#ifndef VMA_DEBUG_MARGIN + /** + Minimum margin after every allocation, in bytes. + Set nonzero for debugging purposes only. + */ + #define VMA_DEBUG_MARGIN (0) +#endif - m_ItemBlocks.push_back(newBlock); +#ifndef VMA_DEBUG_INITIALIZE_ALLOCATIONS + /** + Define this macro to 1 to automatically fill new allocations and destroyed + allocations with some bit pattern. + */ + #define VMA_DEBUG_INITIALIZE_ALLOCATIONS (0) +#endif - // Setup singly-linked list of all free items in this block. - for(uint32_t i = 0; i < newBlockCapacity - 1; ++i) - newBlock.pItems[i].NextFreeIndex = i + 1; - newBlock.pItems[newBlockCapacity - 1].NextFreeIndex = UINT32_MAX; - return m_ItemBlocks.back(); -} +#ifndef VMA_DEBUG_DETECT_CORRUPTION + /** + Define this macro to 1 together with non-zero value of VMA_DEBUG_MARGIN to + enable writing magic value to the margin after every allocation and + validating it, so that memory corruptions (out-of-bounds writes) are detected. + */ + #define VMA_DEBUG_DETECT_CORRUPTION (0) +#endif -//////////////////////////////////////////////////////////////////////////////// -// class VmaRawList, VmaList +#ifndef VMA_DEBUG_GLOBAL_MUTEX + /** + Set this to 1 for debugging purposes only, to enable single mutex protecting all + entry calls to the library. Can be useful for debugging multithreading issues. + */ + #define VMA_DEBUG_GLOBAL_MUTEX (0) +#endif -#if VMA_USE_STL_LIST +#ifndef VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY + /** + Minimum value for VkPhysicalDeviceLimits::bufferImageGranularity. + Set to more than 1 for debugging purposes only. Must be power of two. + */ + #define VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY (1) +#endif -#define VmaList std::list +#ifndef VMA_DEBUG_DONT_EXCEED_MAX_MEMORY_ALLOCATION_COUNT + /* + Set this to 1 to make VMA never exceed VkPhysicalDeviceLimits::maxMemoryAllocationCount + and return error instead of leaving up to Vulkan implementation what to do in such cases. + */ + #define VMA_DEBUG_DONT_EXCEED_MAX_MEMORY_ALLOCATION_COUNT (0) +#endif -#else // #if VMA_USE_STL_LIST +#ifndef VMA_SMALL_HEAP_MAX_SIZE + /// Maximum size of a memory heap in Vulkan to consider it "small". + #define VMA_SMALL_HEAP_MAX_SIZE (1024ull * 1024 * 1024) +#endif -template -struct VmaListItem -{ - VmaListItem* pPrev; - VmaListItem* pNext; - T Value; -}; +#ifndef VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE + /// Default size of a block allocated as single VkDeviceMemory from a "large" heap. + #define VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE (256ull * 1024 * 1024) +#endif -// Doubly linked list. -template -class VmaRawList -{ - VMA_CLASS_NO_COPY(VmaRawList) -public: - typedef VmaListItem ItemType; +/* +Mapping hysteresis is a logic that launches when vmaMapMemory/vmaUnmapMemory is called +or a persistently mapped allocation is created and destroyed several times in a row. +It keeps additional +1 mapping of a device memory block to prevent calling actual +vkMapMemory/vkUnmapMemory too many times, which may improve performance and help +tools like RenderDoc. +*/ +#ifndef VMA_MAPPING_HYSTERESIS_ENABLED + #define VMA_MAPPING_HYSTERESIS_ENABLED 1 +#endif - VmaRawList(const VkAllocationCallbacks* pAllocationCallbacks); - ~VmaRawList(); - void Clear(); +#define VMA_VALIDATE(cond) do { if(!(cond)) { \ + VMA_ASSERT(0 && "Validation failed: " #cond); \ + return false; \ + } } while(false) - size_t GetCount() const { return m_Count; } - bool IsEmpty() const { return m_Count == 0; } +/******************************************************************************* +END OF CONFIGURATION +*/ +#endif // _VMA_CONFIGURATION - ItemType* Front() { return m_pFront; } - const ItemType* Front() const { return m_pFront; } - ItemType* Back() { return m_pBack; } - const ItemType* Back() const { return m_pBack; } - ItemType* PushBack(); - ItemType* PushFront(); - ItemType* PushBack(const T& value); - ItemType* PushFront(const T& value); - void PopBack(); - void PopFront(); +static const uint8_t VMA_ALLOCATION_FILL_PATTERN_CREATED = 0xDC; +static const uint8_t VMA_ALLOCATION_FILL_PATTERN_DESTROYED = 0xEF; +// Decimal 2139416166, float NaN, little-endian binary 66 E6 84 7F. +static const uint32_t VMA_CORRUPTION_DETECTION_MAGIC_VALUE = 0x7F84E666; - // Item can be null - it means PushBack. - ItemType* InsertBefore(ItemType* pItem); - // Item can be null - it means PushFront. - ItemType* InsertAfter(ItemType* pItem); +// Copy of some Vulkan definitions so we don't need to check their existence just to handle few constants. +static const uint32_t VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD_COPY = 0x00000040; +static const uint32_t VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD_COPY = 0x00000080; +static const uint32_t VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_COPY = 0x00020000; +static const uint32_t VK_IMAGE_CREATE_DISJOINT_BIT_COPY = 0x00000200; +static const int32_t VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT_COPY = 1000158000; +static const uint32_t VMA_ALLOCATION_INTERNAL_STRATEGY_MIN_OFFSET = 0x10000000u; +static const uint32_t VMA_ALLOCATION_TRY_COUNT = 32; +static const uint32_t VMA_VENDOR_ID_AMD = 4098; - ItemType* InsertBefore(ItemType* pItem, const T& value); - ItemType* InsertAfter(ItemType* pItem, const T& value); +// This one is tricky. Vulkan specification defines this code as available since +// Vulkan 1.0, but doesn't actually define it in Vulkan SDK earlier than 1.2.131. +// See pull request #207. +#define VK_ERROR_UNKNOWN_COPY ((VkResult)-13) - void Remove(ItemType* pItem); -private: - const VkAllocationCallbacks* const m_pAllocationCallbacks; - VmaPoolAllocator m_ItemAllocator; - ItemType* m_pFront; - ItemType* m_pBack; - size_t m_Count; +#if VMA_STATS_STRING_ENABLED +// Correspond to values of enum VmaSuballocationType. +static const char* VMA_SUBALLOCATION_TYPE_NAMES[] = +{ + "FREE", + "UNKNOWN", + "BUFFER", + "IMAGE_UNKNOWN", + "IMAGE_LINEAR", + "IMAGE_OPTIMAL", }; +#endif -template -VmaRawList::VmaRawList(const VkAllocationCallbacks* pAllocationCallbacks) : - m_pAllocationCallbacks(pAllocationCallbacks), - m_ItemAllocator(pAllocationCallbacks, 128), - m_pFront(VMA_NULL), - m_pBack(VMA_NULL), - m_Count(0) -{ -} +static VkAllocationCallbacks VmaEmptyAllocationCallbacks = + { VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL }; -template -VmaRawList::~VmaRawList() = default; -// Intentionally not calling Clear, because that would be unnecessary -// computations to return all items to m_ItemAllocator as free. -template -void VmaRawList::Clear() +#ifndef _VMA_ENUM_DECLARATIONS + +enum VmaSuballocationType { - if(IsEmpty() == false) - { - ItemType* pItem = m_pBack; - while(pItem != VMA_NULL) - { - ItemType* const pPrevItem = pItem->pPrev; - m_ItemAllocator.Free(pItem); - pItem = pPrevItem; - } - m_pFront = VMA_NULL; - m_pBack = VMA_NULL; - m_Count = 0; - } -} + VMA_SUBALLOCATION_TYPE_FREE = 0, + VMA_SUBALLOCATION_TYPE_UNKNOWN = 1, + VMA_SUBALLOCATION_TYPE_BUFFER = 2, + VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN = 3, + VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR = 4, + VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL = 5, + VMA_SUBALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF +}; -template -VmaListItem* VmaRawList::PushBack() +enum VMA_CACHE_OPERATION { - ItemType* const pNewItem = m_ItemAllocator.Alloc(); - pNewItem->pNext = VMA_NULL; - if(IsEmpty()) - { - pNewItem->pPrev = VMA_NULL; - m_pFront = pNewItem; - m_pBack = pNewItem; - m_Count = 1; - } - else - { - pNewItem->pPrev = m_pBack; - m_pBack->pNext = pNewItem; - m_pBack = pNewItem; - ++m_Count; - } - return pNewItem; -} + VMA_CACHE_FLUSH, + VMA_CACHE_INVALIDATE +}; -template -VmaListItem* VmaRawList::PushFront() +enum class VmaAllocationRequestType { - ItemType* const pNewItem = m_ItemAllocator.Alloc(); - pNewItem->pPrev = VMA_NULL; - if(IsEmpty()) - { - pNewItem->pNext = VMA_NULL; - m_pFront = pNewItem; - m_pBack = pNewItem; - m_Count = 1; - } - else - { - pNewItem->pNext = m_pFront; - m_pFront->pPrev = pNewItem; - m_pFront = pNewItem; - ++m_Count; - } - return pNewItem; -} + Normal, + TLSF, + // Used by "Linear" algorithm. + UpperAddress, + EndOf1st, + EndOf2nd, +}; + +#endif // _VMA_ENUM_DECLARATIONS + +#ifndef _VMA_FORWARD_DECLARATIONS +// Opaque handle used by allocation algorithms to identify single allocation in any conforming way. +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VmaAllocHandle); + +struct VmaMutexLock; +struct VmaMutexLockRead; +struct VmaMutexLockWrite; template -VmaListItem* VmaRawList::PushBack(const T& value) -{ - ItemType* const pNewItem = PushBack(); - pNewItem->Value = value; - return pNewItem; -} +struct AtomicTransactionalIncrement; template -VmaListItem* VmaRawList::PushFront(const T& value) -{ - ItemType* const pNewItem = PushFront(); - pNewItem->Value = value; - return pNewItem; -} +struct VmaStlAllocator; + +template +class VmaVector; + +template +class VmaSmallVector; template -void VmaRawList::PopBack() -{ - VMA_HEAVY_ASSERT(m_Count > 0); - ItemType* const pBackItem = m_pBack; - ItemType* const pPrevItem = pBackItem->pPrev; - if(pPrevItem != VMA_NULL) - { - pPrevItem->pNext = VMA_NULL; - } - m_pBack = pPrevItem; - m_ItemAllocator.Free(pBackItem); - --m_Count; -} +class VmaPoolAllocator; template -void VmaRawList::PopFront() -{ - VMA_HEAVY_ASSERT(m_Count > 0); - ItemType* const pFrontItem = m_pFront; - ItemType* const pNextItem = pFrontItem->pNext; - if(pNextItem != VMA_NULL) - { - pNextItem->pPrev = VMA_NULL; - } - m_pFront = pNextItem; - m_ItemAllocator.Free(pFrontItem); - --m_Count; -} +struct VmaListItem; template -void VmaRawList::Remove(ItemType* pItem) +class VmaRawList; + +template +class VmaList; + +template +class VmaIntrusiveLinkedList; + +// Unused in this version +#if 0 +template +struct VmaPair; +template +struct VmaPairFirstLess; + +template +class VmaMap; +#endif + +#if VMA_STATS_STRING_ENABLED +class VmaStringBuilder; +class VmaJsonWriter; +#endif + +class VmaDeviceMemoryBlock; + +struct VmaDedicatedAllocationListItemTraits; +class VmaDedicatedAllocationList; + +struct VmaSuballocation; +struct VmaSuballocationOffsetLess; +struct VmaSuballocationOffsetGreater; +struct VmaSuballocationItemSizeLess; + +typedef VmaList> VmaSuballocationList; + +struct VmaAllocationRequest; + +class VmaBlockMetadata; +class VmaBlockMetadata_Linear; +class VmaBlockMetadata_TLSF; + +class VmaBlockVector; + +struct VmaPoolListItemTraits; + +struct VmaCurrentBudgetData; + +class VmaAllocationObjectAllocator; + +#endif // _VMA_FORWARD_DECLARATIONS + + +#ifndef _VMA_FUNCTIONS + +/* +Returns number of bits set to 1 in (v). + +On specific platforms and compilers you can use instrinsics like: + +Visual Studio: + return __popcnt(v); +GCC, Clang: + return static_cast(__builtin_popcount(v)); + +Define macro VMA_COUNT_BITS_SET to provide your optimized implementation. +But you need to check in runtime whether user's CPU supports these, as some old processors don't. +*/ +static inline uint32_t VmaCountBitsSet(uint32_t v) { - VMA_HEAVY_ASSERT(pItem != VMA_NULL); - VMA_HEAVY_ASSERT(m_Count > 0); +#if VMA_CPP20 + return std::popcount(v); +#else + uint32_t c = v - ((v >> 1) & 0x55555555); + c = ((c >> 2) & 0x33333333) + (c & 0x33333333); + c = ((c >> 4) + c) & 0x0F0F0F0F; + c = ((c >> 8) + c) & 0x00FF00FF; + c = ((c >> 16) + c) & 0x0000FFFF; + return c; +#endif +} - if(pItem->pPrev != VMA_NULL) - { - pItem->pPrev->pNext = pItem->pNext; - } - else +static inline uint8_t VmaBitScanLSB(uint64_t mask) +{ +#if defined(_MSC_VER) && defined(_WIN64) + unsigned long pos; + if (_BitScanForward64(&pos, mask)) + return static_cast(pos); + return UINT8_MAX; +#elif defined __GNUC__ || defined __clang__ + return static_cast(__builtin_ffsll(mask)) - 1U; +#else + uint8_t pos = 0; + uint64_t bit = 1; + do { - VMA_HEAVY_ASSERT(m_pFront == pItem); - m_pFront = pItem->pNext; - } + if (mask & bit) + return pos; + bit <<= 1; + } while (pos++ < 63); + return UINT8_MAX; +#endif +} - if(pItem->pNext != VMA_NULL) - { - pItem->pNext->pPrev = pItem->pPrev; - } - else +static inline uint8_t VmaBitScanLSB(uint32_t mask) +{ +#ifdef _MSC_VER + unsigned long pos; + if (_BitScanForward(&pos, mask)) + return static_cast(pos); + return UINT8_MAX; +#elif defined __GNUC__ || defined __clang__ + return static_cast(__builtin_ffs(mask)) - 1U; +#else + uint8_t pos = 0; + uint32_t bit = 1; + do { - VMA_HEAVY_ASSERT(m_pBack == pItem); - m_pBack = pItem->pPrev; - } - - m_ItemAllocator.Free(pItem); - --m_Count; + if (mask & bit) + return pos; + bit <<= 1; + } while (pos++ < 31); + return UINT8_MAX; +#endif } -template -VmaListItem* VmaRawList::InsertBefore(ItemType* pItem) +static inline uint8_t VmaBitScanMSB(uint64_t mask) { - if(pItem != VMA_NULL) +#if defined(_MSC_VER) && defined(_WIN64) + unsigned long pos; + if (_BitScanReverse64(&pos, mask)) + return static_cast(pos); +#elif defined __GNUC__ || defined __clang__ + if (mask) + return 63 - static_cast(__builtin_clzll(mask)); +#else + uint8_t pos = 63; + uint64_t bit = 1ULL << 63; + do { - ItemType* const prevItem = pItem->pPrev; - ItemType* const newItem = m_ItemAllocator.Alloc(); - newItem->pPrev = prevItem; - newItem->pNext = pItem; - pItem->pPrev = newItem; - if(prevItem != VMA_NULL) - { - prevItem->pNext = newItem; - } - else - { - VMA_HEAVY_ASSERT(m_pFront == pItem); - m_pFront = newItem; - } - ++m_Count; - return newItem; - } - else - return PushBack(); + if (mask & bit) + return pos; + bit >>= 1; + } while (pos-- > 0); +#endif + return UINT8_MAX; } -template -VmaListItem* VmaRawList::InsertAfter(ItemType* pItem) +static inline uint8_t VmaBitScanMSB(uint32_t mask) { - if(pItem != VMA_NULL) +#ifdef _MSC_VER + unsigned long pos; + if (_BitScanReverse(&pos, mask)) + return static_cast(pos); +#elif defined __GNUC__ || defined __clang__ + if (mask) + return 31 - static_cast(__builtin_clz(mask)); +#else + uint8_t pos = 31; + uint32_t bit = 1UL << 31; + do { - ItemType* const nextItem = pItem->pNext; - ItemType* const newItem = m_ItemAllocator.Alloc(); - newItem->pNext = nextItem; - newItem->pPrev = pItem; - pItem->pNext = newItem; - if(nextItem != VMA_NULL) - { - nextItem->pPrev = newItem; - } - else - { - VMA_HEAVY_ASSERT(m_pBack == pItem); - m_pBack = newItem; - } - ++m_Count; - return newItem; - } - else - return PushFront(); + if (mask & bit) + return pos; + bit >>= 1; + } while (pos-- > 0); +#endif + return UINT8_MAX; } -template -VmaListItem* VmaRawList::InsertBefore(ItemType* pItem, const T& value) +/* +Returns true if given number is a power of two. +T must be unsigned integer number or signed integer but always nonnegative. +For 0 returns true. +*/ +template +inline bool VmaIsPow2(T x) { - ItemType* const newItem = InsertBefore(pItem); - newItem->Value = value; - return newItem; + return (x & (x - 1)) == 0; } -template -VmaListItem* VmaRawList::InsertAfter(ItemType* pItem, const T& value) +// Aligns given value up to nearest multiply of align value. For example: VmaAlignUp(11, 8) = 16. +// Use types like uint32_t, uint64_t as T. +template +static inline T VmaAlignUp(T val, T alignment) { - ItemType* const newItem = InsertAfter(pItem); - newItem->Value = value; - return newItem; + VMA_HEAVY_ASSERT(VmaIsPow2(alignment)); + return (val + alignment - 1) & ~(alignment - 1); } -template -class VmaList +// Aligns given value down to nearest multiply of align value. For example: VmaAlignDown(11, 8) = 8. +// Use types like uint32_t, uint64_t as T. +template +static inline T VmaAlignDown(T val, T alignment) { - VMA_CLASS_NO_COPY(VmaList) -public: - class iterator - { - public: - iterator() : - m_pList(VMA_NULL), - m_pItem(VMA_NULL) - { - } + VMA_HEAVY_ASSERT(VmaIsPow2(alignment)); + return val & ~(alignment - 1); +} - T& operator*() const - { - VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); - return m_pItem->Value; - } - T* operator->() const - { - VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); - return &m_pItem->Value; - } +// Division with mathematical rounding to nearest number. +template +static inline T VmaRoundDiv(T x, T y) +{ + return (x + (y / (T)2)) / y; +} - iterator& operator++() - { - VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); - m_pItem = m_pItem->pNext; - return *this; - } - iterator& operator--() - { - if(m_pItem != VMA_NULL) - { - m_pItem = m_pItem->pPrev; - } - else - { - VMA_HEAVY_ASSERT(!m_pList->IsEmpty()); - m_pItem = m_pList->Back(); - } - return *this; - } +// Divide by 'y' and round up to nearest integer. +template +static inline T VmaDivideRoundingUp(T x, T y) +{ + return (x + y - (T)1) / y; +} - iterator operator++(int) - { - iterator result = *this; - ++*this; - return result; - } - iterator operator--(int) - { - iterator result = *this; - --*this; - return result; - } +// Returns smallest power of 2 greater or equal to v. +static inline uint32_t VmaNextPow2(uint32_t v) +{ + v--; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + v++; + return v; +} - bool operator==(const iterator& rhs) const - { - VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); - return m_pItem == rhs.m_pItem; - } - bool operator!=(const iterator& rhs) const - { - VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); - return m_pItem != rhs.m_pItem; - } +static inline uint64_t VmaNextPow2(uint64_t v) +{ + v--; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + v |= v >> 32; + v++; + return v; +} - private: - VmaRawList* m_pList; - VmaListItem* m_pItem; +// Returns largest power of 2 less or equal to v. +static inline uint32_t VmaPrevPow2(uint32_t v) +{ + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + v = v ^ (v >> 1); + return v; +} - iterator(VmaRawList* pList, VmaListItem* pItem) : - m_pList(pList), - m_pItem(pItem) - { - } +static inline uint64_t VmaPrevPow2(uint64_t v) +{ + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + v |= v >> 32; + v = v ^ (v >> 1); + return v; +} - friend class VmaList; - }; +static inline bool VmaStrIsEmpty(const char* pStr) +{ + return pStr == VMA_NULL || *pStr == '\0'; +} - class const_iterator +/* +Returns true if two memory blocks occupy overlapping pages. +ResourceA must be in less memory offset than ResourceB. + +Algorithm is based on "Vulkan 1.0.39 - A Specification (with all registered Vulkan extensions)" +chapter 11.6 "Resource Memory Association", paragraph "Buffer-Image Granularity". +*/ +static inline bool VmaBlocksOnSamePage( + VkDeviceSize resourceAOffset, + VkDeviceSize resourceASize, + VkDeviceSize resourceBOffset, + VkDeviceSize pageSize) +{ + VMA_ASSERT(resourceAOffset + resourceASize <= resourceBOffset && resourceASize > 0 && pageSize > 0); + VkDeviceSize resourceAEnd = resourceAOffset + resourceASize - 1; + VkDeviceSize resourceAEndPage = resourceAEnd & ~(pageSize - 1); + VkDeviceSize resourceBStart = resourceBOffset; + VkDeviceSize resourceBStartPage = resourceBStart & ~(pageSize - 1); + return resourceAEndPage == resourceBStartPage; +} + +/* +Returns true if given suballocation types could conflict and must respect +VkPhysicalDeviceLimits::bufferImageGranularity. They conflict if one is buffer +or linear image and another one is optimal image. If type is unknown, behave +conservatively. +*/ +static inline bool VmaIsBufferImageGranularityConflict( + VmaSuballocationType suballocType1, + VmaSuballocationType suballocType2) +{ + if (suballocType1 > suballocType2) { - public: - const_iterator() : - m_pList(VMA_NULL), - m_pItem(VMA_NULL) - { - } + VMA_SWAP(suballocType1, suballocType2); + } + + switch (suballocType1) + { + case VMA_SUBALLOCATION_TYPE_FREE: + return false; + case VMA_SUBALLOCATION_TYPE_UNKNOWN: + return true; + case VMA_SUBALLOCATION_TYPE_BUFFER: + return + suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN || + suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL; + case VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN: + return + suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN || + suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR || + suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL; + case VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR: + return + suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL; + case VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL: + return false; + default: + VMA_ASSERT(0); + return true; + } +} + +static void VmaWriteMagicValue(void* pData, VkDeviceSize offset) +{ +#if VMA_DEBUG_MARGIN > 0 && VMA_DEBUG_DETECT_CORRUPTION + uint32_t* pDst = (uint32_t*)((char*)pData + offset); + const size_t numberCount = VMA_DEBUG_MARGIN / sizeof(uint32_t); + for (size_t i = 0; i < numberCount; ++i, ++pDst) + { + *pDst = VMA_CORRUPTION_DETECTION_MAGIC_VALUE; + } +#else + // no-op +#endif +} - const_iterator(const iterator& src) : - m_pList(src.m_pList), - m_pItem(src.m_pItem) +static bool VmaValidateMagicValue(const void* pData, VkDeviceSize offset) +{ +#if VMA_DEBUG_MARGIN > 0 && VMA_DEBUG_DETECT_CORRUPTION + const uint32_t* pSrc = (const uint32_t*)((const char*)pData + offset); + const size_t numberCount = VMA_DEBUG_MARGIN / sizeof(uint32_t); + for (size_t i = 0; i < numberCount; ++i, ++pSrc) + { + if (*pSrc != VMA_CORRUPTION_DETECTION_MAGIC_VALUE) { + return false; } + } +#endif + return true; +} + +/* +Fills structure with parameters of an example buffer to be used for transfers +during GPU memory defragmentation. +*/ +static void VmaFillGpuDefragmentationBufferCreateInfo(VkBufferCreateInfo& outBufCreateInfo) +{ + memset(&outBufCreateInfo, 0, sizeof(outBufCreateInfo)); + outBufCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; + outBufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; + outBufCreateInfo.size = (VkDeviceSize)VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE; // Example size. +} + + +/* +Performs binary search and returns iterator to first element that is greater or +equal to (key), according to comparison (cmp). + +Cmp should return true if first argument is less than second argument. - const T& operator*() const +Returned value is the found element, if present in the collection or place where +new element with value (key) should be inserted. +*/ +template +static IterT VmaBinaryFindFirstNotLess(IterT beg, IterT end, const KeyT& key, const CmpLess& cmp) +{ + size_t down = 0, up = size_t(end - beg); + while (down < up) + { + const size_t mid = down + (up - down) / 2; // Overflow-safe midpoint calculation + if (cmp(*(beg + mid), key)) { - VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); - return m_pItem->Value; + down = mid + 1; } - const T* operator->() const + else { - VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); - return &m_pItem->Value; + up = mid; } + } + return beg + down; +} + +template +IterT VmaBinaryFindSorted(const IterT& beg, const IterT& end, const KeyT& value, const CmpLess& cmp) +{ + IterT it = VmaBinaryFindFirstNotLess( + beg, end, value, cmp); + if (it == end || + (!cmp(*it, value) && !cmp(value, *it))) + { + return it; + } + return end; +} - const_iterator& operator++() +/* +Returns true if all pointers in the array are not-null and unique. +Warning! O(n^2) complexity. Use only inside VMA_HEAVY_ASSERT. +T must be pointer type, e.g. VmaAllocation, VmaPool. +*/ +template +static bool VmaValidatePointerArray(uint32_t count, const T* arr) +{ + for (uint32_t i = 0; i < count; ++i) + { + const T iPtr = arr[i]; + if (iPtr == VMA_NULL) { - VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); - m_pItem = m_pItem->pNext; - return *this; + return false; } - const_iterator& operator--() + for (uint32_t j = i + 1; j < count; ++j) { - if(m_pItem != VMA_NULL) + if (iPtr == arr[j]) { - m_pItem = m_pItem->pPrev; - } - else - { - VMA_HEAVY_ASSERT(!m_pList->IsEmpty()); - m_pItem = m_pList->Back(); + return false; } - return *this; } + } + return true; +} - const_iterator operator++(int) - { - const_iterator result = *this; - ++*this; - return result; - } - const_iterator operator--(int) - { - const_iterator result = *this; - --*this; - return result; - } +template +static inline void VmaPnextChainPushFront(MainT* mainStruct, NewT* newStruct) +{ + newStruct->pNext = mainStruct->pNext; + mainStruct->pNext = newStruct; +} - bool operator==(const const_iterator& rhs) const - { - VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); - return m_pItem == rhs.m_pItem; - } - bool operator!=(const const_iterator& rhs) const - { - VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); - return m_pItem != rhs.m_pItem; - } - - private: - const_iterator(const VmaRawList* pList, const VmaListItem* pItem) : - m_pList(pList), - m_pItem(pItem) - { - } - - const VmaRawList* m_pList; - const VmaListItem* m_pItem; - - friend class VmaList; - }; - - VmaList(const AllocatorT& allocator) : m_RawList(allocator.m_pCallbacks) { } - - bool empty() const { return m_RawList.IsEmpty(); } - size_t size() const { return m_RawList.GetCount(); } - - iterator begin() { return iterator(&m_RawList, m_RawList.Front()); } - iterator end() { return iterator(&m_RawList, VMA_NULL); } - - const_iterator cbegin() const { return const_iterator(&m_RawList, m_RawList.Front()); } - const_iterator cend() const { return const_iterator(&m_RawList, VMA_NULL); } - - const_iterator begin() const { return cbegin(); } - const_iterator end() const { return cend(); } - - void clear() { m_RawList.Clear(); } - void push_back(const T& value) { m_RawList.PushBack(value); } - void erase(iterator it) { m_RawList.Remove(it.m_pItem); } - iterator insert(iterator it, const T& value) { return iterator(&m_RawList, m_RawList.InsertBefore(it.m_pItem, value)); } - -private: - VmaRawList m_RawList; -}; - -#endif // #if VMA_USE_STL_LIST - -//////////////////////////////////////////////////////////////////////////////// -// class VmaIntrusiveLinkedList - -/* -Expected interface of ItemTypeTraits: -struct MyItemTypeTraits -{ - typedef MyItem ItemType; - static ItemType* GetPrev(const ItemType* item) { return item->myPrevPtr; } - static ItemType* GetNext(const ItemType* item) { return item->myNextPtr; } - static ItemType*& AccessPrev(ItemType* item) { return item->myPrevPtr; } - static ItemType*& AccessNext(ItemType* item) { return item->myNextPtr; } -}; -*/ -template -class VmaIntrusiveLinkedList +// This is the main algorithm that guides the selection of a memory type best for an allocation - +// converts usage to required/preferred/not preferred flags. +static bool FindMemoryPreferences( + bool isIntegratedGPU, + const VmaAllocationCreateInfo& allocCreateInfo, + VkFlags bufImgUsage, // VkBufferCreateInfo::usage or VkImageCreateInfo::usage. UINT32_MAX if unknown. + VkMemoryPropertyFlags& outRequiredFlags, + VkMemoryPropertyFlags& outPreferredFlags, + VkMemoryPropertyFlags& outNotPreferredFlags) { -public: - typedef typename ItemTypeTraits::ItemType ItemType; - static ItemType* GetPrev(const ItemType* item) { return ItemTypeTraits::GetPrev(item); } - static ItemType* GetNext(const ItemType* item) { return ItemTypeTraits::GetNext(item); } - // Movable, not copyable. - VmaIntrusiveLinkedList() = default; - VmaIntrusiveLinkedList(const VmaIntrusiveLinkedList& src) = delete; - VmaIntrusiveLinkedList(VmaIntrusiveLinkedList&& src) : - m_Front(src.m_Front), m_Back(src.m_Back), m_Count(src.m_Count) - { - src.m_Front = src.m_Back = VMA_NULL; - src.m_Count = 0; - } - ~VmaIntrusiveLinkedList() - { - VMA_HEAVY_ASSERT(IsEmpty()); - } - VmaIntrusiveLinkedList& operator=(const VmaIntrusiveLinkedList& src) = delete; - VmaIntrusiveLinkedList& operator=(VmaIntrusiveLinkedList&& src) - { - if(&src != this) - { - VMA_HEAVY_ASSERT(IsEmpty()); - m_Front = src.m_Front; - m_Back = src.m_Back; - m_Count = src.m_Count; - src.m_Front = src.m_Back = VMA_NULL; - src.m_Count = 0; - } - return *this; - } - void RemoveAll() - { - if(!IsEmpty()) - { - ItemType* item = m_Back; - while(item != VMA_NULL) - { - ItemType* const prevItem = ItemTypeTraits::AccessPrev(item); - ItemTypeTraits::AccessPrev(item) = VMA_NULL; - ItemTypeTraits::AccessNext(item) = VMA_NULL; - item = prevItem; - } - m_Front = VMA_NULL; - m_Back = VMA_NULL; - m_Count = 0; - } - } - size_t GetCount() const { return m_Count; } - bool IsEmpty() const { return m_Count == 0; } - ItemType* Front() { return m_Front; } - const ItemType* Front() const { return m_Front; } - ItemType* Back() { return m_Back; } - const ItemType* Back() const { return m_Back; } - void PushBack(ItemType* item) - { - VMA_HEAVY_ASSERT(ItemTypeTraits::GetPrev(item) == VMA_NULL && ItemTypeTraits::GetNext(item) == VMA_NULL); - if(IsEmpty()) - { - m_Front = item; - m_Back = item; - m_Count = 1; - } - else - { - ItemTypeTraits::AccessPrev(item) = m_Back; - ItemTypeTraits::AccessNext(m_Back) = item; - m_Back = item; - ++m_Count; - } - } - void PushFront(ItemType* item) + outRequiredFlags = allocCreateInfo.requiredFlags; + outPreferredFlags = allocCreateInfo.preferredFlags; + outNotPreferredFlags = 0; + + switch(allocCreateInfo.usage) { - VMA_HEAVY_ASSERT(ItemTypeTraits::GetPrev(item) == VMA_NULL && ItemTypeTraits::GetNext(item) == VMA_NULL); - if(IsEmpty()) - { - m_Front = item; - m_Back = item; - m_Count = 1; - } - else + case VMA_MEMORY_USAGE_UNKNOWN: + break; + case VMA_MEMORY_USAGE_GPU_ONLY: + if(!isIntegratedGPU || (outPreferredFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) == 0) { - ItemTypeTraits::AccessNext(item) = m_Front; - ItemTypeTraits::AccessPrev(m_Front) = item; - m_Front = item; - ++m_Count; + outPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; } - } - ItemType* PopBack() - { - VMA_HEAVY_ASSERT(m_Count > 0); - ItemType* const backItem = m_Back; - ItemType* const prevItem = ItemTypeTraits::GetPrev(backItem); - if(prevItem != VMA_NULL) + break; + case VMA_MEMORY_USAGE_CPU_ONLY: + outRequiredFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + break; + case VMA_MEMORY_USAGE_CPU_TO_GPU: + outRequiredFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + if(!isIntegratedGPU || (outPreferredFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) == 0) { - ItemTypeTraits::AccessNext(prevItem) = VMA_NULL; + outPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; } - m_Back = prevItem; - --m_Count; - ItemTypeTraits::AccessPrev(backItem) = VMA_NULL; - ItemTypeTraits::AccessNext(backItem) = VMA_NULL; - return backItem; - } - ItemType* PopFront() + break; + case VMA_MEMORY_USAGE_GPU_TO_CPU: + outRequiredFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + outPreferredFlags |= VK_MEMORY_PROPERTY_HOST_CACHED_BIT; + break; + case VMA_MEMORY_USAGE_CPU_COPY: + outNotPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + break; + case VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED: + outRequiredFlags |= VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT; + break; + case VMA_MEMORY_USAGE_AUTO: + case VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE: + case VMA_MEMORY_USAGE_AUTO_PREFER_HOST: { - VMA_HEAVY_ASSERT(m_Count > 0); - ItemType* const frontItem = m_Front; - ItemType* const nextItem = ItemTypeTraits::GetNext(frontItem); - if(nextItem != VMA_NULL) + if(bufImgUsage == UINT32_MAX) { - ItemTypeTraits::AccessPrev(nextItem) = VMA_NULL; + VMA_ASSERT(0 && "VMA_MEMORY_USAGE_AUTO* values can only be used with functions like vmaCreateBuffer, vmaCreateImage so that the details of the created resource are known."); + return false; } - m_Front = nextItem; - --m_Count; - ItemTypeTraits::AccessPrev(frontItem) = VMA_NULL; - ItemTypeTraits::AccessNext(frontItem) = VMA_NULL; - return frontItem; - } + // This relies on values of VK_IMAGE_USAGE_TRANSFER* being the same VK_BUFFER_IMAGE_TRANSFER*. + const bool deviceAccess = (bufImgUsage & ~static_cast(VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT)) != 0; + const bool hostAccessSequentialWrite = (allocCreateInfo.flags & VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT) != 0; + const bool hostAccessRandom = (allocCreateInfo.flags & VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT) != 0; + const bool hostAccessAllowTransferInstead = (allocCreateInfo.flags & VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT) != 0; + const bool preferDevice = allocCreateInfo.usage == VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE; + const bool preferHost = allocCreateInfo.usage == VMA_MEMORY_USAGE_AUTO_PREFER_HOST; - // MyItem can be null - it means PushBack. - void InsertBefore(ItemType* existingItem, ItemType* newItem) - { - VMA_HEAVY_ASSERT(newItem != VMA_NULL && ItemTypeTraits::GetPrev(newItem) == VMA_NULL && ItemTypeTraits::GetNext(newItem) == VMA_NULL); - if(existingItem != VMA_NULL) + // CPU random access - e.g. a buffer written to or transferred from GPU to read back on CPU. + if(hostAccessRandom) { - ItemType* const prevItem = ItemTypeTraits::GetPrev(existingItem); - ItemTypeTraits::AccessPrev(newItem) = prevItem; - ItemTypeTraits::AccessNext(newItem) = existingItem; - ItemTypeTraits::AccessPrev(existingItem) = newItem; - if(prevItem != VMA_NULL) + // Prefer cached. Cannot require it, because some platforms don't have it (e.g. Raspberry Pi - see #362)! + outPreferredFlags |= VK_MEMORY_PROPERTY_HOST_CACHED_BIT; + + if (!isIntegratedGPU && deviceAccess && hostAccessAllowTransferInstead && !preferHost) { - ItemTypeTraits::AccessNext(prevItem) = newItem; + // Nice if it will end up in HOST_VISIBLE, but more importantly prefer DEVICE_LOCAL. + // Omitting HOST_VISIBLE here is intentional. + // In case there is DEVICE_LOCAL | HOST_VISIBLE | HOST_CACHED, it will pick that one. + // Otherwise, this will give same weight to DEVICE_LOCAL as HOST_VISIBLE | HOST_CACHED and select the former if occurs first on the list. + outPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; } else { - VMA_HEAVY_ASSERT(m_Front == existingItem); - m_Front = newItem; + // Always CPU memory. + outRequiredFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; } - ++m_Count; } - else - PushBack(newItem); - } - // MyItem can be null - it means PushFront. - void InsertAfter(ItemType* existingItem, ItemType* newItem) - { - VMA_HEAVY_ASSERT(newItem != VMA_NULL && ItemTypeTraits::GetPrev(newItem) == VMA_NULL && ItemTypeTraits::GetNext(newItem) == VMA_NULL); - if(existingItem != VMA_NULL) + // CPU sequential write - may be CPU or host-visible GPU memory, uncached and write-combined. + else if(hostAccessSequentialWrite) { - ItemType* const nextItem = ItemTypeTraits::GetNext(existingItem); - ItemTypeTraits::AccessNext(newItem) = nextItem; - ItemTypeTraits::AccessPrev(newItem) = existingItem; - ItemTypeTraits::AccessNext(existingItem) = newItem; - if(nextItem != VMA_NULL) + // Want uncached and write-combined. + outNotPreferredFlags |= VK_MEMORY_PROPERTY_HOST_CACHED_BIT; + + if(!isIntegratedGPU && deviceAccess && hostAccessAllowTransferInstead && !preferHost) { - ItemTypeTraits::AccessPrev(nextItem) = newItem; + outPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; } else { - VMA_HEAVY_ASSERT(m_Back == existingItem); - m_Back = newItem; + outRequiredFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + // Direct GPU access, CPU sequential write (e.g. a dynamic uniform buffer updated every frame) + if(deviceAccess) + { + // Could go to CPU memory or GPU BAR/unified. Up to the user to decide. If no preference, choose GPU memory. + if(preferHost) + outNotPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + else + outPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + } + // GPU no direct access, CPU sequential write (e.g. an upload buffer to be transferred to the GPU) + else + { + // Could go to CPU memory or GPU BAR/unified. Up to the user to decide. If no preference, choose CPU memory. + if(preferDevice) + outPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + else + outNotPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + } } - ++m_Count; - } - else - return PushFront(newItem); - } - void Remove(ItemType* item) - { - VMA_HEAVY_ASSERT(item != VMA_NULL && m_Count > 0); - if(ItemTypeTraits::GetPrev(item) != VMA_NULL) - { - ItemTypeTraits::AccessNext(ItemTypeTraits::AccessPrev(item)) = ItemTypeTraits::GetNext(item); - } - else - { - VMA_HEAVY_ASSERT(m_Front == item); - m_Front = ItemTypeTraits::GetNext(item); - } - - if(ItemTypeTraits::GetNext(item) != VMA_NULL) - { - ItemTypeTraits::AccessPrev(ItemTypeTraits::AccessNext(item)) = ItemTypeTraits::GetPrev(item); } + // No CPU access else { - VMA_HEAVY_ASSERT(m_Back == item); - m_Back = ItemTypeTraits::GetPrev(item); + // if(deviceAccess) + // + // GPU access, no CPU access (e.g. a color attachment image) - prefer GPU memory, + // unless there is a clear preference from the user not to do so. + // + // else: + // + // No direct GPU access, no CPU access, just transfers. + // It may be staging copy intended for e.g. preserving image for next frame (then better GPU memory) or + // a "swap file" copy to free some GPU memory (then better CPU memory). + // Up to the user to decide. If no preferece, assume the former and choose GPU memory. + + if(preferHost) + outNotPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + else + outPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; } - ItemTypeTraits::AccessPrev(item) = VMA_NULL; - ItemTypeTraits::AccessNext(item) = VMA_NULL; - --m_Count; + break; + } + default: + VMA_ASSERT(0); } -private: - ItemType* m_Front = VMA_NULL; - ItemType* m_Back = VMA_NULL; - size_t m_Count = 0; -}; - -//////////////////////////////////////////////////////////////////////////////// -// class VmaMap - -// Unused in this version. -#if 0 - -#if VMA_USE_STL_UNORDERED_MAP - -#define VmaPair std::pair - -#define VMA_MAP_TYPE(KeyT, ValueT) \ - std::unordered_map< KeyT, ValueT, std::hash, std::equal_to, VmaStlAllocator< std::pair > > - -#else // #if VMA_USE_STL_UNORDERED_MAP - -template -struct VmaPair -{ - T1 first; - T2 second; - - VmaPair() : first(), second() { } - VmaPair(const T1& firstSrc, const T2& secondSrc) : first(firstSrc), second(secondSrc) { } -}; - -/* Class compatible with subset of interface of std::unordered_map. -KeyT, ValueT must be POD because they will be stored in VmaVector. -*/ -template -class VmaMap -{ -public: - typedef VmaPair PairType; - typedef PairType* iterator; - - VmaMap(const VmaStlAllocator& allocator) : m_Vector(allocator) { } - - iterator begin() { return m_Vector.begin(); } - iterator end() { return m_Vector.end(); } - void insert(const PairType& pair); - iterator find(const KeyT& key); - void erase(iterator it); + // Avoid DEVICE_COHERENT unless explicitly requested. + if(((allocCreateInfo.requiredFlags | allocCreateInfo.preferredFlags) & + (VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD_COPY | VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD_COPY)) == 0) + { + outNotPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD_COPY; + } -private: - VmaVector< PairType, VmaStlAllocator > m_Vector; -}; + return true; +} -#define VMA_MAP_TYPE(KeyT, ValueT) VmaMap +//////////////////////////////////////////////////////////////////////////////// +// Memory allocation -template -struct VmaPairFirstLess +static void* VmaMalloc(const VkAllocationCallbacks* pAllocationCallbacks, size_t size, size_t alignment) { - bool operator()(const VmaPair& lhs, const VmaPair& rhs) const + void* result = VMA_NULL; + if ((pAllocationCallbacks != VMA_NULL) && + (pAllocationCallbacks->pfnAllocation != VMA_NULL)) { - return lhs.first < rhs.first; + result = (*pAllocationCallbacks->pfnAllocation)( + pAllocationCallbacks->pUserData, + size, + alignment, + VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); } - bool operator()(const VmaPair& lhs, const FirstT& rhsFirst) const + else { - return lhs.first < rhsFirst; + result = VMA_SYSTEM_ALIGNED_MALLOC(size, alignment); } -}; - -template -void VmaMap::insert(const PairType& pair) -{ - const size_t indexToInsert = VmaBinaryFindFirstNotLess( - m_Vector.data(), - m_Vector.data() + m_Vector.size(), - pair, - VmaPairFirstLess()) - m_Vector.data(); - VmaVectorInsert(m_Vector, indexToInsert, pair); + VMA_ASSERT(result != VMA_NULL && "CPU memory allocation failed."); + return result; } -template -VmaPair* VmaMap::find(const KeyT& key) +static void VmaFree(const VkAllocationCallbacks* pAllocationCallbacks, void* ptr) { - PairType* it = VmaBinaryFindFirstNotLess( - m_Vector.data(), - m_Vector.data() + m_Vector.size(), - key, - VmaPairFirstLess()); - if((it != m_Vector.end()) && (it->first == key)) + if ((pAllocationCallbacks != VMA_NULL) && + (pAllocationCallbacks->pfnFree != VMA_NULL)) { - return it; + (*pAllocationCallbacks->pfnFree)(pAllocationCallbacks->pUserData, ptr); } else { - return m_Vector.end(); + VMA_SYSTEM_ALIGNED_FREE(ptr); } } -template -void VmaMap::erase(iterator it) +template +static T* VmaAllocate(const VkAllocationCallbacks* pAllocationCallbacks) { - VmaVectorRemove(m_Vector, it - m_Vector.begin()); + return (T*)VmaMalloc(pAllocationCallbacks, sizeof(T), VMA_ALIGN_OF(T)); } -#endif // #if VMA_USE_STL_UNORDERED_MAP - -#endif // #if 0 - -//////////////////////////////////////////////////////////////////////////////// +template +static T* VmaAllocateArray(const VkAllocationCallbacks* pAllocationCallbacks, size_t count) +{ + return (T*)VmaMalloc(pAllocationCallbacks, sizeof(T) * count, VMA_ALIGN_OF(T)); +} -class VmaDeviceMemoryBlock; +#define vma_new(allocator, type) new(VmaAllocate(allocator))(type) -enum VMA_CACHE_OPERATION { VMA_CACHE_FLUSH, VMA_CACHE_INVALIDATE }; +#define vma_new_array(allocator, type, count) new(VmaAllocateArray((allocator), (count)))(type) -struct VmaAllocation_T -{ -private: - static const uint8_t MAP_COUNT_FLAG_PERSISTENT_MAP = 0x80; - - enum FLAGS - { - FLAG_USER_DATA_STRING = 0x01, - }; - -public: - enum ALLOCATION_TYPE - { - ALLOCATION_TYPE_NONE, - ALLOCATION_TYPE_BLOCK, - ALLOCATION_TYPE_DEDICATED, - }; - - /* - This struct is allocated using VmaPoolAllocator. - */ - - VmaAllocation_T(uint32_t currentFrameIndex, bool userDataString) : - m_Alignment{1}, - m_Size{0}, - m_pUserData{VMA_NULL}, - m_LastUseFrameIndex{currentFrameIndex}, - m_MemoryTypeIndex{0}, - m_Type{(uint8_t)ALLOCATION_TYPE_NONE}, - m_SuballocationType{(uint8_t)VMA_SUBALLOCATION_TYPE_UNKNOWN}, - m_MapCount{0}, - m_Flags{userDataString ? (uint8_t)FLAG_USER_DATA_STRING : (uint8_t)0} - { -#if VMA_STATS_STRING_ENABLED - m_CreationFrameIndex = currentFrameIndex; - m_BufferImageUsage = 0; -#endif - } - - ~VmaAllocation_T() - { - VMA_ASSERT((m_MapCount & ~MAP_COUNT_FLAG_PERSISTENT_MAP) == 0 && "Allocation was not unmapped before destruction."); - - // Check if owned string was freed. - VMA_ASSERT(m_pUserData == VMA_NULL); - } - - void InitBlockAllocation( - VmaDeviceMemoryBlock* block, - VkDeviceSize offset, - VkDeviceSize alignment, - VkDeviceSize size, - uint32_t memoryTypeIndex, - VmaSuballocationType suballocationType, - bool mapped, - bool canBecomeLost) - { - VMA_ASSERT(m_Type == ALLOCATION_TYPE_NONE); - VMA_ASSERT(block != VMA_NULL); - m_Type = (uint8_t)ALLOCATION_TYPE_BLOCK; - m_Alignment = alignment; - m_Size = size; - m_MemoryTypeIndex = memoryTypeIndex; - m_MapCount = mapped ? MAP_COUNT_FLAG_PERSISTENT_MAP : 0; - m_SuballocationType = (uint8_t)suballocationType; - m_BlockAllocation.m_Block = block; - m_BlockAllocation.m_Offset = offset; - m_BlockAllocation.m_CanBecomeLost = canBecomeLost; - } - - void InitLost() - { - VMA_ASSERT(m_Type == ALLOCATION_TYPE_NONE); - VMA_ASSERT(m_LastUseFrameIndex.load() == VMA_FRAME_INDEX_LOST); - m_Type = (uint8_t)ALLOCATION_TYPE_BLOCK; - m_MemoryTypeIndex = 0; - m_BlockAllocation.m_Block = VMA_NULL; - m_BlockAllocation.m_Offset = 0; - m_BlockAllocation.m_CanBecomeLost = true; - } - - void ChangeBlockAllocation( - VmaAllocator hAllocator, - VmaDeviceMemoryBlock* block, - VkDeviceSize offset); - - void ChangeOffset(VkDeviceSize newOffset); - - // pMappedData not null means allocation is created with MAPPED flag. - void InitDedicatedAllocation( - uint32_t memoryTypeIndex, - VkDeviceMemory hMemory, - VmaSuballocationType suballocationType, - void* pMappedData, - VkDeviceSize size) - { - VMA_ASSERT(m_Type == ALLOCATION_TYPE_NONE); - VMA_ASSERT(hMemory != VK_NULL_HANDLE); - m_Type = (uint8_t)ALLOCATION_TYPE_DEDICATED; - m_Alignment = 0; - m_Size = size; - m_MemoryTypeIndex = memoryTypeIndex; - m_SuballocationType = (uint8_t)suballocationType; - m_MapCount = (pMappedData != VMA_NULL) ? MAP_COUNT_FLAG_PERSISTENT_MAP : 0; - m_DedicatedAllocation.m_hMemory = hMemory; - m_DedicatedAllocation.m_pMappedData = pMappedData; - m_DedicatedAllocation.m_Prev = VMA_NULL; - m_DedicatedAllocation.m_Next = VMA_NULL; - } - - ALLOCATION_TYPE GetType() const { return (ALLOCATION_TYPE)m_Type; } - VkDeviceSize GetAlignment() const { return m_Alignment; } - VkDeviceSize GetSize() const { return m_Size; } - bool IsUserDataString() const { return (m_Flags & FLAG_USER_DATA_STRING) != 0; } - void* GetUserData() const { return m_pUserData; } - void SetUserData(VmaAllocator hAllocator, void* pUserData); - VmaSuballocationType GetSuballocationType() const { return (VmaSuballocationType)m_SuballocationType; } - - VmaDeviceMemoryBlock* GetBlock() const - { - VMA_ASSERT(m_Type == ALLOCATION_TYPE_BLOCK); - return m_BlockAllocation.m_Block; - } - VkDeviceSize GetOffset() const; - VkDeviceMemory GetMemory() const; - uint32_t GetMemoryTypeIndex() const { return m_MemoryTypeIndex; } - bool IsPersistentMap() const { return (m_MapCount & MAP_COUNT_FLAG_PERSISTENT_MAP) != 0; } - void* GetMappedData() const; - bool CanBecomeLost() const; - - uint32_t GetLastUseFrameIndex() const - { - return m_LastUseFrameIndex.load(); - } - bool CompareExchangeLastUseFrameIndex(uint32_t& expected, uint32_t desired) - { - return m_LastUseFrameIndex.compare_exchange_weak(expected, desired); - } - /* - - If hAllocation.LastUseFrameIndex + frameInUseCount < allocator.CurrentFrameIndex, - makes it lost by setting LastUseFrameIndex = VMA_FRAME_INDEX_LOST and returns true. - - Else, returns false. - - If hAllocation is already lost, assert - you should not call it then. - If hAllocation was not created with CAN_BECOME_LOST_BIT, assert. - */ - bool MakeLost(uint32_t currentFrameIndex, uint32_t frameInUseCount); - - void DedicatedAllocCalcStatsInfo(VmaStatInfo& outInfo) - { - VMA_ASSERT(m_Type == ALLOCATION_TYPE_DEDICATED); - outInfo.blockCount = 1; - outInfo.allocationCount = 1; - outInfo.unusedRangeCount = 0; - outInfo.usedBytes = m_Size; - outInfo.unusedBytes = 0; - outInfo.allocationSizeMin = outInfo.allocationSizeMax = m_Size; - outInfo.unusedRangeSizeMin = UINT64_MAX; - outInfo.unusedRangeSizeMax = 0; - } - - void BlockAllocMap(); - void BlockAllocUnmap(); - VkResult DedicatedAllocMap(VmaAllocator hAllocator, void** ppData); - void DedicatedAllocUnmap(VmaAllocator hAllocator); - -#if VMA_STATS_STRING_ENABLED - uint32_t GetCreationFrameIndex() const { return m_CreationFrameIndex; } - uint32_t GetBufferImageUsage() const { return m_BufferImageUsage; } - - void InitBufferImageUsage(uint32_t bufferImageUsage) - { - VMA_ASSERT(m_BufferImageUsage == 0); - m_BufferImageUsage = bufferImageUsage; - } - - void PrintParameters(class VmaJsonWriter& json) const; -#endif - -private: - VkDeviceSize m_Alignment; - VkDeviceSize m_Size; - void* m_pUserData; - VMA_ATOMIC_UINT32 m_LastUseFrameIndex; - uint32_t m_MemoryTypeIndex; - uint8_t m_Type; // ALLOCATION_TYPE - uint8_t m_SuballocationType; // VmaSuballocationType - // Bit 0x80 is set when allocation was created with VMA_ALLOCATION_CREATE_MAPPED_BIT. - // Bits with mask 0x7F are reference counter for vmaMapMemory()/vmaUnmapMemory(). - uint8_t m_MapCount; - uint8_t m_Flags; // enum FLAGS - - // Allocation out of VmaDeviceMemoryBlock. - struct BlockAllocation - { - VmaDeviceMemoryBlock* m_Block; - VkDeviceSize m_Offset; - bool m_CanBecomeLost; - }; - - // Allocation for an object that has its own private VkDeviceMemory. - struct DedicatedAllocation - { - VkDeviceMemory m_hMemory; - void* m_pMappedData; // Not null means memory is mapped. - VmaAllocation_T* m_Prev; - VmaAllocation_T* m_Next; - }; - - union - { - // Allocation out of VmaDeviceMemoryBlock. - BlockAllocation m_BlockAllocation; - // Allocation for an object that has its own private VkDeviceMemory. - DedicatedAllocation m_DedicatedAllocation; - }; - -#if VMA_STATS_STRING_ENABLED - uint32_t m_CreationFrameIndex; - uint32_t m_BufferImageUsage; // 0 if unknown. -#endif - - void FreeUserDataString(VmaAllocator hAllocator); - - friend struct VmaDedicatedAllocationListItemTraits; -}; +template +static void vma_delete(const VkAllocationCallbacks* pAllocationCallbacks, T* ptr) +{ + ptr->~T(); + VmaFree(pAllocationCallbacks, ptr); +} -struct VmaDedicatedAllocationListItemTraits +template +static void vma_delete_array(const VkAllocationCallbacks* pAllocationCallbacks, T* ptr, size_t count) { - typedef VmaAllocation_T ItemType; - static ItemType* GetPrev(const ItemType* item) + if (ptr != VMA_NULL) { - VMA_HEAVY_ASSERT(item->GetType() == VmaAllocation_T::ALLOCATION_TYPE_DEDICATED); - return item->m_DedicatedAllocation.m_Prev; - } - static ItemType* GetNext(const ItemType* item) - { - VMA_HEAVY_ASSERT(item->GetType() == VmaAllocation_T::ALLOCATION_TYPE_DEDICATED); - return item->m_DedicatedAllocation.m_Next; - } - static ItemType*& AccessPrev(ItemType* item) - { - VMA_HEAVY_ASSERT(item->GetType() == VmaAllocation_T::ALLOCATION_TYPE_DEDICATED); - return item->m_DedicatedAllocation.m_Prev; - } - static ItemType*& AccessNext(ItemType* item){ - VMA_HEAVY_ASSERT(item->GetType() == VmaAllocation_T::ALLOCATION_TYPE_DEDICATED); - return item->m_DedicatedAllocation.m_Next; + for (size_t i = count; i--; ) + { + ptr[i].~T(); + } + VmaFree(pAllocationCallbacks, ptr); } -}; - -/* -Represents a region of VmaDeviceMemoryBlock that is either assigned and returned as -allocated memory block or free. -*/ -struct VmaSuballocation -{ - VkDeviceSize offset; - VkDeviceSize size; - VmaAllocation hAllocation; - VmaSuballocationType type; -}; +} -// Comparator for offsets. -struct VmaSuballocationOffsetLess +static char* VmaCreateStringCopy(const VkAllocationCallbacks* allocs, const char* srcStr) { - bool operator()(const VmaSuballocation& lhs, const VmaSuballocation& rhs) const + if (srcStr != VMA_NULL) { - return lhs.offset < rhs.offset; + const size_t len = strlen(srcStr); + char* const result = vma_new_array(allocs, char, len + 1); + memcpy(result, srcStr, len + 1); + return result; } -}; -struct VmaSuballocationOffsetGreater + return VMA_NULL; +} + +#if VMA_STATS_STRING_ENABLED +static char* VmaCreateStringCopy(const VkAllocationCallbacks* allocs, const char* srcStr, size_t strLen) { - bool operator()(const VmaSuballocation& lhs, const VmaSuballocation& rhs) const + if (srcStr != VMA_NULL) { - return lhs.offset > rhs.offset; + char* const result = vma_new_array(allocs, char, strLen + 1); + memcpy(result, srcStr, strLen); + result[strLen] = '\0'; + return result; } -}; - -typedef VmaList< VmaSuballocation, VmaStlAllocator > VmaSuballocationList; - -// Cost of one additional allocation lost, as equivalent in bytes. -static const VkDeviceSize VMA_LOST_ALLOCATION_COST = 1048576; - -enum class VmaAllocationRequestType -{ - Normal, - // Used by "Linear" algorithm. - UpperAddress, - EndOf1st, - EndOf2nd, -}; - -/* -Parameters of planned allocation inside a VmaDeviceMemoryBlock. - -If canMakeOtherLost was false: -- item points to a FREE suballocation. -- itemsToMakeLostCount is 0. + return VMA_NULL; +} +#endif // VMA_STATS_STRING_ENABLED -If canMakeOtherLost was true: -- item points to first of sequence of suballocations, which are either FREE, - or point to VmaAllocations that can become lost. -- itemsToMakeLostCount is the number of VmaAllocations that need to be made lost for - the requested allocation to succeed. -*/ -struct VmaAllocationRequest +static void VmaFreeString(const VkAllocationCallbacks* allocs, char* str) { - VkDeviceSize offset; - VkDeviceSize sumFreeSize; // Sum size of free items that overlap with proposed allocation. - VkDeviceSize sumItemSize; // Sum size of items to make lost that overlap with proposed allocation. - VmaSuballocationList::iterator item; - size_t itemsToMakeLostCount; - void* customData; - VmaAllocationRequestType type; - - VkDeviceSize CalcCost() const + if (str != VMA_NULL) { - return sumItemSize + itemsToMakeLostCount * VMA_LOST_ALLOCATION_COST; + const size_t len = strlen(str); + vma_delete_array(allocs, str, len + 1); } -}; - -/* -Data structure used for bookkeeping of allocations and unused ranges of memory -in a single VkDeviceMemory block. -*/ -class VmaBlockMetadata -{ -public: - VmaBlockMetadata(VmaAllocator hAllocator); - virtual ~VmaBlockMetadata() { } - virtual void Init(VkDeviceSize size) { m_Size = size; } - - // Validates all data structures inside this object. If not valid, returns false. - virtual bool Validate() const = 0; - VkDeviceSize GetSize() const { return m_Size; } - virtual size_t GetAllocationCount() const = 0; - virtual VkDeviceSize GetSumFreeSize() const = 0; - virtual VkDeviceSize GetUnusedRangeSizeMax() const = 0; - // Returns true if this block is empty - contains only single free suballocation. - virtual bool IsEmpty() const = 0; - - virtual void CalcAllocationStatInfo(VmaStatInfo& outInfo) const = 0; - // Shouldn't modify blockCount. - virtual void AddPoolStats(VmaPoolStats& inoutStats) const = 0; - -#if VMA_STATS_STRING_ENABLED - virtual void PrintDetailedMap(class VmaJsonWriter& json) const = 0; -#endif - - // Tries to find a place for suballocation with given parameters inside this block. - // If succeeded, fills pAllocationRequest and returns true. - // If failed, returns false. - virtual bool CreateAllocationRequest( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, - VkDeviceSize allocSize, - VkDeviceSize allocAlignment, - bool upperAddress, - VmaSuballocationType allocType, - bool canMakeOtherLost, - // Always one of VMA_ALLOCATION_CREATE_STRATEGY_* or VMA_ALLOCATION_INTERNAL_STRATEGY_* flags. - uint32_t strategy, - VmaAllocationRequest* pAllocationRequest) = 0; - - virtual bool MakeRequestedAllocationsLost( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VmaAllocationRequest* pAllocationRequest) = 0; - - virtual uint32_t MakeAllocationsLost(uint32_t currentFrameIndex, uint32_t frameInUseCount) = 0; - - virtual VkResult CheckCorruption(const void* pBlockData) = 0; - - // Makes actual allocation based on request. Request must already be checked and valid. - virtual void Alloc( - const VmaAllocationRequest& request, - VmaSuballocationType type, - VkDeviceSize allocSize, - VmaAllocation hAllocation) = 0; - - // Frees suballocation assigned to given memory region. - virtual void Free(const VmaAllocation allocation) = 0; - virtual void FreeAtOffset(VkDeviceSize offset) = 0; - -protected: - const VkAllocationCallbacks* GetAllocationCallbacks() const { return m_pAllocationCallbacks; } - -#if VMA_STATS_STRING_ENABLED - void PrintDetailedMap_Begin(class VmaJsonWriter& json, - VkDeviceSize unusedBytes, - size_t allocationCount, - size_t unusedRangeCount) const; - void PrintDetailedMap_Allocation(class VmaJsonWriter& json, - VkDeviceSize offset, - VmaAllocation hAllocation) const; - void PrintDetailedMap_UnusedRange(class VmaJsonWriter& json, - VkDeviceSize offset, - VkDeviceSize size) const; - void PrintDetailedMap_End(class VmaJsonWriter& json) const; -#endif - -private: - VkDeviceSize m_Size; - const VkAllocationCallbacks* m_pAllocationCallbacks; -}; - -#define VMA_VALIDATE(cond) do { if(!(cond)) { \ - VMA_ASSERT(0 && "Validation failed: " #cond); \ - return false; \ - } } while(false) - -class VmaBlockMetadata_Generic : public VmaBlockMetadata -{ - VMA_CLASS_NO_COPY(VmaBlockMetadata_Generic) -public: - VmaBlockMetadata_Generic(VmaAllocator hAllocator); - virtual ~VmaBlockMetadata_Generic(); - virtual void Init(VkDeviceSize size); - - virtual bool Validate() const; - virtual size_t GetAllocationCount() const { return m_Suballocations.size() - m_FreeCount; } - virtual VkDeviceSize GetSumFreeSize() const { return m_SumFreeSize; } - virtual VkDeviceSize GetUnusedRangeSizeMax() const; - virtual bool IsEmpty() const; - - virtual void CalcAllocationStatInfo(VmaStatInfo& outInfo) const; - virtual void AddPoolStats(VmaPoolStats& inoutStats) const; - -#if VMA_STATS_STRING_ENABLED - virtual void PrintDetailedMap(class VmaJsonWriter& json) const; -#endif - - virtual bool CreateAllocationRequest( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, - VkDeviceSize allocSize, - VkDeviceSize allocAlignment, - bool upperAddress, - VmaSuballocationType allocType, - bool canMakeOtherLost, - uint32_t strategy, - VmaAllocationRequest* pAllocationRequest); - - virtual bool MakeRequestedAllocationsLost( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VmaAllocationRequest* pAllocationRequest); - - virtual uint32_t MakeAllocationsLost(uint32_t currentFrameIndex, uint32_t frameInUseCount); - - virtual VkResult CheckCorruption(const void* pBlockData); - - virtual void Alloc( - const VmaAllocationRequest& request, - VmaSuballocationType type, - VkDeviceSize allocSize, - VmaAllocation hAllocation); - - virtual void Free(const VmaAllocation allocation); - virtual void FreeAtOffset(VkDeviceSize offset); - - //////////////////////////////////////////////////////////////////////////////// - // For defragmentation - - bool IsBufferImageGranularityConflictPossible( - VkDeviceSize bufferImageGranularity, - VmaSuballocationType& inOutPrevSuballocType) const; - -private: - friend class VmaDefragmentationAlgorithm_Generic; - friend class VmaDefragmentationAlgorithm_Fast; - - uint32_t m_FreeCount; - VkDeviceSize m_SumFreeSize; - VmaSuballocationList m_Suballocations; - // Suballocations that are free and have size greater than certain threshold. - // Sorted by size, ascending. - VmaVector< VmaSuballocationList::iterator, VmaStlAllocator< VmaSuballocationList::iterator > > m_FreeSuballocationsBySize; - - bool ValidateFreeSuballocationList() const; - - // Checks if requested suballocation with given parameters can be placed in given pFreeSuballocItem. - // If yes, fills pOffset and returns true. If no, returns false. - bool CheckAllocation( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, - VkDeviceSize allocSize, - VkDeviceSize allocAlignment, - VmaSuballocationType allocType, - VmaSuballocationList::const_iterator suballocItem, - bool canMakeOtherLost, - VkDeviceSize* pOffset, - size_t* itemsToMakeLostCount, - VkDeviceSize* pSumFreeSize, - VkDeviceSize* pSumItemSize) const; - // Given free suballocation, it merges it with following one, which must also be free. - void MergeFreeWithNext(VmaSuballocationList::iterator item); - // Releases given suballocation, making it free. - // Merges it with adjacent free suballocations if applicable. - // Returns iterator to new free suballocation at this place. - VmaSuballocationList::iterator FreeSuballocation(VmaSuballocationList::iterator suballocItem); - // Given free suballocation, it inserts it into sorted list of - // m_FreeSuballocationsBySize if it is suitable. - void RegisterFreeSuballocation(VmaSuballocationList::iterator item); - // Given free suballocation, it removes it from sorted list of - // m_FreeSuballocationsBySize if it is suitable. - void UnregisterFreeSuballocation(VmaSuballocationList::iterator item); -}; - -/* -Allocations and their references in internal data structure look like this: - -if(m_2ndVectorMode == SECOND_VECTOR_EMPTY): - - 0 +-------+ - | | - | | - | | - +-------+ - | Alloc | 1st[m_1stNullItemsBeginCount] - +-------+ - | Alloc | 1st[m_1stNullItemsBeginCount + 1] - +-------+ - | ... | - +-------+ - | Alloc | 1st[1st.size() - 1] - +-------+ - | | - | | - | | -GetSize() +-------+ - -if(m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER): - - 0 +-------+ - | Alloc | 2nd[0] - +-------+ - | Alloc | 2nd[1] - +-------+ - | ... | - +-------+ - | Alloc | 2nd[2nd.size() - 1] - +-------+ - | | - | | - | | - +-------+ - | Alloc | 1st[m_1stNullItemsBeginCount] - +-------+ - | Alloc | 1st[m_1stNullItemsBeginCount + 1] - +-------+ - | ... | - +-------+ - | Alloc | 1st[1st.size() - 1] - +-------+ - | | -GetSize() +-------+ +} -if(m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK): +template +size_t VmaVectorInsertSorted(VectorT& vector, const typename VectorT::value_type& value) +{ + const size_t indexToInsert = VmaBinaryFindFirstNotLess( + vector.data(), + vector.data() + vector.size(), + value, + CmpLess()) - vector.data(); + VmaVectorInsert(vector, indexToInsert, value); + return indexToInsert; +} - 0 +-------+ - | | - | | - | | - +-------+ - | Alloc | 1st[m_1stNullItemsBeginCount] - +-------+ - | Alloc | 1st[m_1stNullItemsBeginCount + 1] - +-------+ - | ... | - +-------+ - | Alloc | 1st[1st.size() - 1] - +-------+ - | | - | | - | | - +-------+ - | Alloc | 2nd[2nd.size() - 1] - +-------+ - | ... | - +-------+ - | Alloc | 2nd[1] - +-------+ - | Alloc | 2nd[0] -GetSize() +-------+ +template +bool VmaVectorRemoveSorted(VectorT& vector, const typename VectorT::value_type& value) +{ + CmpLess comparator; + typename VectorT::iterator it = VmaBinaryFindFirstNotLess( + vector.begin(), + vector.end(), + value, + comparator); + if ((it != vector.end()) && !comparator(*it, value) && !comparator(value, *it)) + { + size_t indexToRemove = it - vector.begin(); + VmaVectorRemove(vector, indexToRemove); + return true; + } + return false; +} +#endif // _VMA_FUNCTIONS -*/ -class VmaBlockMetadata_Linear : public VmaBlockMetadata +#ifndef _VMA_STATISTICS_FUNCTIONS + +static void VmaClearStatistics(VmaStatistics& outStats) { - VMA_CLASS_NO_COPY(VmaBlockMetadata_Linear) -public: - VmaBlockMetadata_Linear(VmaAllocator hAllocator); - virtual ~VmaBlockMetadata_Linear(); - virtual void Init(VkDeviceSize size); + outStats.blockCount = 0; + outStats.allocationCount = 0; + outStats.blockBytes = 0; + outStats.allocationBytes = 0; +} - virtual bool Validate() const; - virtual size_t GetAllocationCount() const; - virtual VkDeviceSize GetSumFreeSize() const { return m_SumFreeSize; } - virtual VkDeviceSize GetUnusedRangeSizeMax() const; - virtual bool IsEmpty() const { return GetAllocationCount() == 0; } +static void VmaAddStatistics(VmaStatistics& inoutStats, const VmaStatistics& src) +{ + inoutStats.blockCount += src.blockCount; + inoutStats.allocationCount += src.allocationCount; + inoutStats.blockBytes += src.blockBytes; + inoutStats.allocationBytes += src.allocationBytes; +} - virtual void CalcAllocationStatInfo(VmaStatInfo& outInfo) const; - virtual void AddPoolStats(VmaPoolStats& inoutStats) const; +static void VmaClearDetailedStatistics(VmaDetailedStatistics& outStats) +{ + VmaClearStatistics(outStats.statistics); + outStats.unusedRangeCount = 0; + outStats.allocationSizeMin = VK_WHOLE_SIZE; + outStats.allocationSizeMax = 0; + outStats.unusedRangeSizeMin = VK_WHOLE_SIZE; + outStats.unusedRangeSizeMax = 0; +} -#if VMA_STATS_STRING_ENABLED - virtual void PrintDetailedMap(class VmaJsonWriter& json) const; -#endif +static void VmaAddDetailedStatisticsAllocation(VmaDetailedStatistics& inoutStats, VkDeviceSize size) +{ + inoutStats.statistics.allocationCount++; + inoutStats.statistics.allocationBytes += size; + inoutStats.allocationSizeMin = VMA_MIN(inoutStats.allocationSizeMin, size); + inoutStats.allocationSizeMax = VMA_MAX(inoutStats.allocationSizeMax, size); +} - virtual bool CreateAllocationRequest( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, - VkDeviceSize allocSize, - VkDeviceSize allocAlignment, - bool upperAddress, - VmaSuballocationType allocType, - bool canMakeOtherLost, - uint32_t strategy, - VmaAllocationRequest* pAllocationRequest); +static void VmaAddDetailedStatisticsUnusedRange(VmaDetailedStatistics& inoutStats, VkDeviceSize size) +{ + inoutStats.unusedRangeCount++; + inoutStats.unusedRangeSizeMin = VMA_MIN(inoutStats.unusedRangeSizeMin, size); + inoutStats.unusedRangeSizeMax = VMA_MAX(inoutStats.unusedRangeSizeMax, size); +} - virtual bool MakeRequestedAllocationsLost( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VmaAllocationRequest* pAllocationRequest); +static void VmaAddDetailedStatistics(VmaDetailedStatistics& inoutStats, const VmaDetailedStatistics& src) +{ + VmaAddStatistics(inoutStats.statistics, src.statistics); + inoutStats.unusedRangeCount += src.unusedRangeCount; + inoutStats.allocationSizeMin = VMA_MIN(inoutStats.allocationSizeMin, src.allocationSizeMin); + inoutStats.allocationSizeMax = VMA_MAX(inoutStats.allocationSizeMax, src.allocationSizeMax); + inoutStats.unusedRangeSizeMin = VMA_MIN(inoutStats.unusedRangeSizeMin, src.unusedRangeSizeMin); + inoutStats.unusedRangeSizeMax = VMA_MAX(inoutStats.unusedRangeSizeMax, src.unusedRangeSizeMax); +} - virtual uint32_t MakeAllocationsLost(uint32_t currentFrameIndex, uint32_t frameInUseCount); +#endif // _VMA_STATISTICS_FUNCTIONS - virtual VkResult CheckCorruption(const void* pBlockData); +#ifndef _VMA_MUTEX_LOCK +// Helper RAII class to lock a mutex in constructor and unlock it in destructor (at the end of scope). +struct VmaMutexLock +{ + VMA_CLASS_NO_COPY_NO_MOVE(VmaMutexLock) +public: + VmaMutexLock(VMA_MUTEX& mutex, bool useMutex = true) : + m_pMutex(useMutex ? &mutex : VMA_NULL) + { + if (m_pMutex) { m_pMutex->Lock(); } + } + ~VmaMutexLock() { if (m_pMutex) { m_pMutex->Unlock(); } } - virtual void Alloc( - const VmaAllocationRequest& request, - VmaSuballocationType type, - VkDeviceSize allocSize, - VmaAllocation hAllocation); +private: + VMA_MUTEX* m_pMutex; +}; - virtual void Free(const VmaAllocation allocation); - virtual void FreeAtOffset(VkDeviceSize offset); +// Helper RAII class to lock a RW mutex in constructor and unlock it in destructor (at the end of scope), for reading. +struct VmaMutexLockRead +{ + VMA_CLASS_NO_COPY_NO_MOVE(VmaMutexLockRead) +public: + VmaMutexLockRead(VMA_RW_MUTEX& mutex, bool useMutex) : + m_pMutex(useMutex ? &mutex : VMA_NULL) + { + if (m_pMutex) { m_pMutex->LockRead(); } + } + ~VmaMutexLockRead() { if (m_pMutex) { m_pMutex->UnlockRead(); } } private: - /* - There are two suballocation vectors, used in ping-pong way. - The one with index m_1stVectorIndex is called 1st. - The one with index (m_1stVectorIndex ^ 1) is called 2nd. - 2nd can be non-empty only when 1st is not empty. - When 2nd is not empty, m_2ndVectorMode indicates its mode of operation. - */ - typedef VmaVector< VmaSuballocation, VmaStlAllocator > SuballocationVectorType; + VMA_RW_MUTEX* m_pMutex; +}; - enum SECOND_VECTOR_MODE +// Helper RAII class to lock a RW mutex in constructor and unlock it in destructor (at the end of scope), for writing. +struct VmaMutexLockWrite +{ + VMA_CLASS_NO_COPY_NO_MOVE(VmaMutexLockWrite) +public: + VmaMutexLockWrite(VMA_RW_MUTEX& mutex, bool useMutex) + : m_pMutex(useMutex ? &mutex : VMA_NULL) { - SECOND_VECTOR_EMPTY, - /* - Suballocations in 2nd vector are created later than the ones in 1st, but they - all have smaller offset. - */ - SECOND_VECTOR_RING_BUFFER, - /* - Suballocations in 2nd vector are upper side of double stack. - They all have offsets higher than those in 1st vector. - Top of this stack means smaller offsets, but higher indices in this vector. - */ - SECOND_VECTOR_DOUBLE_STACK, - }; + if (m_pMutex) { m_pMutex->LockWrite(); } + } + ~VmaMutexLockWrite() { if (m_pMutex) { m_pMutex->UnlockWrite(); } } - VkDeviceSize m_SumFreeSize; - SuballocationVectorType m_Suballocations0, m_Suballocations1; - uint32_t m_1stVectorIndex; - SECOND_VECTOR_MODE m_2ndVectorMode; +private: + VMA_RW_MUTEX* m_pMutex; +}; - SuballocationVectorType& AccessSuballocations1st() { return m_1stVectorIndex ? m_Suballocations1 : m_Suballocations0; } - SuballocationVectorType& AccessSuballocations2nd() { return m_1stVectorIndex ? m_Suballocations0 : m_Suballocations1; } - const SuballocationVectorType& AccessSuballocations1st() const { return m_1stVectorIndex ? m_Suballocations1 : m_Suballocations0; } - const SuballocationVectorType& AccessSuballocations2nd() const { return m_1stVectorIndex ? m_Suballocations0 : m_Suballocations1; } +#if VMA_DEBUG_GLOBAL_MUTEX + static VMA_MUTEX gDebugGlobalMutex; + #define VMA_DEBUG_GLOBAL_MUTEX_LOCK VmaMutexLock debugGlobalMutexLock(gDebugGlobalMutex, true); +#else + #define VMA_DEBUG_GLOBAL_MUTEX_LOCK +#endif +#endif // _VMA_MUTEX_LOCK - // Number of items in 1st vector with hAllocation = null at the beginning. - size_t m_1stNullItemsBeginCount; - // Number of other items in 1st vector with hAllocation = null somewhere in the middle. - size_t m_1stNullItemsMiddleCount; - // Number of items in 2nd vector with hAllocation = null. - size_t m_2ndNullItemsCount; +#ifndef _VMA_ATOMIC_TRANSACTIONAL_INCREMENT +// An object that increments given atomic but decrements it back in the destructor unless Commit() is called. +template +struct AtomicTransactionalIncrement +{ +public: + using T = decltype(AtomicT().load()); - bool ShouldCompact1st() const; - void CleanupAfterFree(); + ~AtomicTransactionalIncrement() + { + if(m_Atomic) + --(*m_Atomic); + } - bool CreateAllocationRequest_LowerAddress( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, - VkDeviceSize allocSize, - VkDeviceSize allocAlignment, - VmaSuballocationType allocType, - bool canMakeOtherLost, - uint32_t strategy, - VmaAllocationRequest* pAllocationRequest); - bool CreateAllocationRequest_UpperAddress( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, - VkDeviceSize allocSize, - VkDeviceSize allocAlignment, - VmaSuballocationType allocType, - bool canMakeOtherLost, - uint32_t strategy, - VmaAllocationRequest* pAllocationRequest); + void Commit() { m_Atomic = nullptr; } + T Increment(AtomicT* atomic) + { + m_Atomic = atomic; + return m_Atomic->fetch_add(1); + } + +private: + AtomicT* m_Atomic = nullptr; }; +#endif // _VMA_ATOMIC_TRANSACTIONAL_INCREMENT -/* -- GetSize() is the original size of allocated memory block. -- m_UsableSize is this size aligned down to a power of two. - All allocations and calculations happen relative to m_UsableSize. -- GetUnusableSize() is the difference between them. - It is reported as separate, unused range, not available for allocations. +#ifndef _VMA_STL_ALLOCATOR +// STL-compatible allocator. +template +struct VmaStlAllocator +{ + const VkAllocationCallbacks* const m_pCallbacks; + typedef T value_type; -Node at level 0 has size = m_UsableSize. -Each next level contains nodes with size 2 times smaller than current level. -m_LevelCount is the maximum number of levels to use in the current object. -*/ -class VmaBlockMetadata_Buddy : public VmaBlockMetadata + VmaStlAllocator(const VkAllocationCallbacks* pCallbacks) : m_pCallbacks(pCallbacks) {} + template + VmaStlAllocator(const VmaStlAllocator& src) : m_pCallbacks(src.m_pCallbacks) {} + VmaStlAllocator(const VmaStlAllocator&) = default; + VmaStlAllocator& operator=(const VmaStlAllocator&) = delete; + + T* allocate(size_t n) { return VmaAllocateArray(m_pCallbacks, n); } + void deallocate(T* p, size_t n) { VmaFree(m_pCallbacks, p); } + + template + bool operator==(const VmaStlAllocator& rhs) const + { + return m_pCallbacks == rhs.m_pCallbacks; + } + template + bool operator!=(const VmaStlAllocator& rhs) const + { + return m_pCallbacks != rhs.m_pCallbacks; + } +}; +#endif // _VMA_STL_ALLOCATOR + +#ifndef _VMA_VECTOR +/* Class with interface compatible with subset of std::vector. +T must be POD because constructors and destructors are not called and memcpy is +used for these objects. */ +template +class VmaVector { - VMA_CLASS_NO_COPY(VmaBlockMetadata_Buddy) public: - VmaBlockMetadata_Buddy(VmaAllocator hAllocator); - virtual ~VmaBlockMetadata_Buddy(); - virtual void Init(VkDeviceSize size); + typedef T value_type; + typedef T* iterator; + typedef const T* const_iterator; - virtual bool Validate() const; - virtual size_t GetAllocationCount() const { return m_AllocationCount; } - virtual VkDeviceSize GetSumFreeSize() const { return m_SumFreeSize + GetUnusableSize(); } - virtual VkDeviceSize GetUnusedRangeSizeMax() const; - virtual bool IsEmpty() const { return m_Root->type == Node::TYPE_FREE; } + VmaVector(const AllocatorT& allocator); + VmaVector(size_t count, const AllocatorT& allocator); + // This version of the constructor is here for compatibility with pre-C++14 std::vector. + // value is unused. + VmaVector(size_t count, const T& value, const AllocatorT& allocator) : VmaVector(count, allocator) {} + VmaVector(const VmaVector& src); + VmaVector& operator=(const VmaVector& rhs); + ~VmaVector() { VmaFree(m_Allocator.m_pCallbacks, m_pArray); } - virtual void CalcAllocationStatInfo(VmaStatInfo& outInfo) const; - virtual void AddPoolStats(VmaPoolStats& inoutStats) const; + bool empty() const { return m_Count == 0; } + size_t size() const { return m_Count; } + T* data() { return m_pArray; } + T& front() { VMA_HEAVY_ASSERT(m_Count > 0); return m_pArray[0]; } + T& back() { VMA_HEAVY_ASSERT(m_Count > 0); return m_pArray[m_Count - 1]; } + const T* data() const { return m_pArray; } + const T& front() const { VMA_HEAVY_ASSERT(m_Count > 0); return m_pArray[0]; } + const T& back() const { VMA_HEAVY_ASSERT(m_Count > 0); return m_pArray[m_Count - 1]; } -#if VMA_STATS_STRING_ENABLED - virtual void PrintDetailedMap(class VmaJsonWriter& json) const; -#endif + iterator begin() { return m_pArray; } + iterator end() { return m_pArray + m_Count; } + const_iterator cbegin() const { return m_pArray; } + const_iterator cend() const { return m_pArray + m_Count; } + const_iterator begin() const { return cbegin(); } + const_iterator end() const { return cend(); } - virtual bool CreateAllocationRequest( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, - VkDeviceSize allocSize, - VkDeviceSize allocAlignment, - bool upperAddress, - VmaSuballocationType allocType, - bool canMakeOtherLost, - uint32_t strategy, - VmaAllocationRequest* pAllocationRequest); + void pop_front() { VMA_HEAVY_ASSERT(m_Count > 0); remove(0); } + void pop_back() { VMA_HEAVY_ASSERT(m_Count > 0); resize(size() - 1); } + void push_front(const T& src) { insert(0, src); } + + void push_back(const T& src); + void reserve(size_t newCapacity, bool freeMemory = false); + void resize(size_t newCount); + void clear() { resize(0); } + void shrink_to_fit(); + void insert(size_t index, const T& src); + void remove(size_t index); + + T& operator[](size_t index) { VMA_HEAVY_ASSERT(index < m_Count); return m_pArray[index]; } + const T& operator[](size_t index) const { VMA_HEAVY_ASSERT(index < m_Count); return m_pArray[index]; } + +private: + AllocatorT m_Allocator; + T* m_pArray; + size_t m_Count; + size_t m_Capacity; +}; - virtual bool MakeRequestedAllocationsLost( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VmaAllocationRequest* pAllocationRequest); +#ifndef _VMA_VECTOR_FUNCTIONS +template +VmaVector::VmaVector(const AllocatorT& allocator) + : m_Allocator(allocator), + m_pArray(VMA_NULL), + m_Count(0), + m_Capacity(0) {} - virtual uint32_t MakeAllocationsLost(uint32_t currentFrameIndex, uint32_t frameInUseCount); +template +VmaVector::VmaVector(size_t count, const AllocatorT& allocator) + : m_Allocator(allocator), + m_pArray(count ? (T*)VmaAllocateArray(allocator.m_pCallbacks, count) : VMA_NULL), + m_Count(count), + m_Capacity(count) {} - virtual VkResult CheckCorruption(const void* pBlockData) { return VK_ERROR_FEATURE_NOT_PRESENT; } +template +VmaVector::VmaVector(const VmaVector& src) + : m_Allocator(src.m_Allocator), + m_pArray(src.m_Count ? (T*)VmaAllocateArray(src.m_Allocator.m_pCallbacks, src.m_Count) : VMA_NULL), + m_Count(src.m_Count), + m_Capacity(src.m_Count) +{ + if (m_Count != 0) + { + memcpy(m_pArray, src.m_pArray, m_Count * sizeof(T)); + } +} - virtual void Alloc( - const VmaAllocationRequest& request, - VmaSuballocationType type, - VkDeviceSize allocSize, - VmaAllocation hAllocation); +template +VmaVector& VmaVector::operator=(const VmaVector& rhs) +{ + if (&rhs != this) + { + resize(rhs.m_Count); + if (m_Count != 0) + { + memcpy(m_pArray, rhs.m_pArray, m_Count * sizeof(T)); + } + } + return *this; +} - virtual void Free(const VmaAllocation allocation) { FreeAtOffset(allocation, allocation->GetOffset()); } - virtual void FreeAtOffset(VkDeviceSize offset) { FreeAtOffset(VMA_NULL, offset); } +template +void VmaVector::push_back(const T& src) +{ + const size_t newIndex = size(); + resize(newIndex + 1); + m_pArray[newIndex] = src; +} -private: - static const VkDeviceSize MIN_NODE_SIZE = 32; - static const size_t MAX_LEVELS = 30; +template +void VmaVector::reserve(size_t newCapacity, bool freeMemory) +{ + newCapacity = VMA_MAX(newCapacity, m_Count); - struct ValidationContext + if ((newCapacity < m_Capacity) && !freeMemory) + { + newCapacity = m_Capacity; + } + + if (newCapacity != m_Capacity) { - size_t calculatedAllocationCount; - size_t calculatedFreeCount; - VkDeviceSize calculatedSumFreeSize; + T* const newArray = newCapacity ? VmaAllocateArray(m_Allocator, newCapacity) : VMA_NULL; + if (m_Count != 0) + { + memcpy(newArray, m_pArray, m_Count * sizeof(T)); + } + VmaFree(m_Allocator.m_pCallbacks, m_pArray); + m_Capacity = newCapacity; + m_pArray = newArray; + } +} - ValidationContext() : - calculatedAllocationCount(0), - calculatedFreeCount(0), - calculatedSumFreeSize(0) { } - }; +template +void VmaVector::resize(size_t newCount) +{ + size_t newCapacity = m_Capacity; + if (newCount > m_Capacity) + { + newCapacity = VMA_MAX(newCount, VMA_MAX(m_Capacity * 3 / 2, (size_t)8)); + } - struct Node + if (newCapacity != m_Capacity) { - VkDeviceSize offset; - enum TYPE + T* const newArray = newCapacity ? VmaAllocateArray(m_Allocator.m_pCallbacks, newCapacity) : VMA_NULL; + const size_t elementsToCopy = VMA_MIN(m_Count, newCount); + if (elementsToCopy != 0) { - TYPE_FREE, - TYPE_ALLOCATION, - TYPE_SPLIT, - TYPE_COUNT - } type; - Node* parent; - Node* buddy; + memcpy(newArray, m_pArray, elementsToCopy * sizeof(T)); + } + VmaFree(m_Allocator.m_pCallbacks, m_pArray); + m_Capacity = newCapacity; + m_pArray = newArray; + } - union + m_Count = newCount; +} + +template +void VmaVector::shrink_to_fit() +{ + if (m_Capacity > m_Count) + { + T* newArray = VMA_NULL; + if (m_Count > 0) { - struct - { - Node* prev; - Node* next; - } free; - struct - { - VmaAllocation alloc; - } allocation; - struct - { - Node* leftChild; - } split; - }; - }; + newArray = VmaAllocateArray(m_Allocator.m_pCallbacks, m_Count); + memcpy(newArray, m_pArray, m_Count * sizeof(T)); + } + VmaFree(m_Allocator.m_pCallbacks, m_pArray); + m_Capacity = m_Count; + m_pArray = newArray; + } +} - // Size of the memory block aligned down to a power of two. - VkDeviceSize m_UsableSize; - uint32_t m_LevelCount; +template +void VmaVector::insert(size_t index, const T& src) +{ + VMA_HEAVY_ASSERT(index <= m_Count); + const size_t oldCount = size(); + resize(oldCount + 1); + if (index < oldCount) + { + memmove(m_pArray + (index + 1), m_pArray + index, (oldCount - index) * sizeof(T)); + } + m_pArray[index] = src; +} - Node* m_Root; - struct { - Node* front; - Node* back; - } m_FreeList[MAX_LEVELS]; - // Number of nodes in the tree with type == TYPE_ALLOCATION. - size_t m_AllocationCount; - // Number of nodes in the tree with type == TYPE_FREE. - size_t m_FreeCount; - // This includes space wasted due to internal fragmentation. Doesn't include unusable size. - VkDeviceSize m_SumFreeSize; +template +void VmaVector::remove(size_t index) +{ + VMA_HEAVY_ASSERT(index < m_Count); + const size_t oldCount = size(); + if (index < oldCount - 1) + { + memmove(m_pArray + index, m_pArray + (index + 1), (oldCount - index - 1) * sizeof(T)); + } + resize(oldCount - 1); +} +#endif // _VMA_VECTOR_FUNCTIONS - VkDeviceSize GetUnusableSize() const { return GetSize() - m_UsableSize; } - void DeleteNode(Node* node); - bool ValidateNode(ValidationContext& ctx, const Node* parent, const Node* curr, uint32_t level, VkDeviceSize levelNodeSize) const; - uint32_t AllocSizeToLevel(VkDeviceSize allocSize) const; - inline VkDeviceSize LevelToNodeSize(uint32_t level) const { return m_UsableSize >> level; } - // Alloc passed just for validation. Can be null. - void FreeAtOffset(VmaAllocation alloc, VkDeviceSize offset); - void CalcAllocationStatInfoNode(VmaStatInfo& outInfo, const Node* node, VkDeviceSize levelNodeSize) const; - // Adds node to the front of FreeList at given level. - // node->type must be FREE. - // node->free.prev, next can be undefined. - void AddToFreeListFront(uint32_t level, Node* node); - // Removes node from FreeList at given level. - // node->type must be FREE. - // node->free.prev, next stay untouched. - void RemoveFromFreeList(uint32_t level, Node* node); +template +static void VmaVectorInsert(VmaVector& vec, size_t index, const T& item) +{ + vec.insert(index, item); +} -#if VMA_STATS_STRING_ENABLED - void PrintDetailedMapNode(class VmaJsonWriter& json, const Node* node, VkDeviceSize levelNodeSize) const; -#endif -}; +template +static void VmaVectorRemove(VmaVector& vec, size_t index) +{ + vec.remove(index); +} +#endif // _VMA_VECTOR +#ifndef _VMA_SMALL_VECTOR /* -Represents a single block of device memory (`VkDeviceMemory`) with all the -data about its regions (aka suballocations, #VmaAllocation), assigned and free. +This is a vector (a variable-sized array), optimized for the case when the array is small. -Thread-safety: This class must be externally synchronized. +It contains some number of elements in-place, which allows it to avoid heap allocation +when the actual number of elements is below that threshold. This allows normal "small" +cases to be fast without losing generality for large inputs. */ -class VmaDeviceMemoryBlock +template +class VmaSmallVector { - VMA_CLASS_NO_COPY(VmaDeviceMemoryBlock) public: - VmaBlockMetadata* m_pMetadata; - - VmaDeviceMemoryBlock(VmaAllocator hAllocator); - - ~VmaDeviceMemoryBlock() - { - VMA_ASSERT(m_MapCount == 0 && "VkDeviceMemory block is being destroyed while it is still mapped."); - VMA_ASSERT(m_hMemory == VK_NULL_HANDLE); - } - - // Always call after construction. - void Init( - VmaAllocator hAllocator, - VmaPool hParentPool, - uint32_t newMemoryTypeIndex, - VkDeviceMemory newMemory, - VkDeviceSize newSize, - uint32_t id, - uint32_t algorithm); - // Always call before destruction. - void Destroy(VmaAllocator allocator); + typedef T value_type; + typedef T* iterator; - VmaPool GetParentPool() const { return m_hParentPool; } - VkDeviceMemory GetDeviceMemory() const { return m_hMemory; } - uint32_t GetMemoryTypeIndex() const { return m_MemoryTypeIndex; } - uint32_t GetId() const { return m_Id; } - void* GetMappedData() const { return m_pMappedData; } + VmaSmallVector(const AllocatorT& allocator); + VmaSmallVector(size_t count, const AllocatorT& allocator); + template + VmaSmallVector(const VmaSmallVector&) = delete; + template + VmaSmallVector& operator=(const VmaSmallVector&) = delete; + ~VmaSmallVector() = default; - // Validates all data structures inside this object. If not valid, returns false. - bool Validate() const; + bool empty() const { return m_Count == 0; } + size_t size() const { return m_Count; } + T* data() { return m_Count > N ? m_DynamicArray.data() : m_StaticArray; } + T& front() { VMA_HEAVY_ASSERT(m_Count > 0); return data()[0]; } + T& back() { VMA_HEAVY_ASSERT(m_Count > 0); return data()[m_Count - 1]; } + const T* data() const { return m_Count > N ? m_DynamicArray.data() : m_StaticArray; } + const T& front() const { VMA_HEAVY_ASSERT(m_Count > 0); return data()[0]; } + const T& back() const { VMA_HEAVY_ASSERT(m_Count > 0); return data()[m_Count - 1]; } - VkResult CheckCorruption(VmaAllocator hAllocator); + iterator begin() { return data(); } + iterator end() { return data() + m_Count; } - // ppData can be null. - VkResult Map(VmaAllocator hAllocator, uint32_t count, void** ppData); - void Unmap(VmaAllocator hAllocator, uint32_t count); + void pop_front() { VMA_HEAVY_ASSERT(m_Count > 0); remove(0); } + void pop_back() { VMA_HEAVY_ASSERT(m_Count > 0); resize(size() - 1); } + void push_front(const T& src) { insert(0, src); } - VkResult WriteMagicValueAroundAllocation(VmaAllocator hAllocator, VkDeviceSize allocOffset, VkDeviceSize allocSize); - VkResult ValidateMagicValueAroundAllocation(VmaAllocator hAllocator, VkDeviceSize allocOffset, VkDeviceSize allocSize); + void push_back(const T& src); + void resize(size_t newCount, bool freeMemory = false); + void clear(bool freeMemory = false); + void insert(size_t index, const T& src); + void remove(size_t index); - VkResult BindBufferMemory( - const VmaAllocator hAllocator, - const VmaAllocation hAllocation, - VkDeviceSize allocationLocalOffset, - VkBuffer hBuffer, - const void* pNext); - VkResult BindImageMemory( - const VmaAllocator hAllocator, - const VmaAllocation hAllocation, - VkDeviceSize allocationLocalOffset, - VkImage hImage, - const void* pNext); + T& operator[](size_t index) { VMA_HEAVY_ASSERT(index < m_Count); return data()[index]; } + const T& operator[](size_t index) const { VMA_HEAVY_ASSERT(index < m_Count); return data()[index]; } private: - VmaPool m_hParentPool; // VK_NULL_HANDLE if not belongs to custom pool. - uint32_t m_MemoryTypeIndex; - uint32_t m_Id; - VkDeviceMemory m_hMemory; - - /* - Protects access to m_hMemory so it is not used by multiple threads simultaneously, e.g. vkMapMemory, vkBindBufferMemory. - Also protects m_MapCount, m_pMappedData. - Allocations, deallocations, any change in m_pMetadata is protected by parent's VmaBlockVector::m_Mutex. - */ - VMA_MUTEX m_Mutex; - uint32_t m_MapCount; - void* m_pMappedData; -}; - -struct VmaDefragmentationMove -{ - size_t srcBlockIndex; - size_t dstBlockIndex; - VkDeviceSize srcOffset; - VkDeviceSize dstOffset; - VkDeviceSize size; - VmaAllocation hAllocation; - VmaDeviceMemoryBlock* pSrcBlock; - VmaDeviceMemoryBlock* pDstBlock; + size_t m_Count; + T m_StaticArray[N]; // Used when m_Size <= N + VmaVector m_DynamicArray; // Used when m_Size > N }; -class VmaDefragmentationAlgorithm; +#ifndef _VMA_SMALL_VECTOR_FUNCTIONS +template +VmaSmallVector::VmaSmallVector(const AllocatorT& allocator) + : m_Count(0), + m_DynamicArray(allocator) {} -/* -Sequence of VmaDeviceMemoryBlock. Represents memory blocks allocated for a specific -Vulkan memory type. +template +VmaSmallVector::VmaSmallVector(size_t count, const AllocatorT& allocator) + : m_Count(count), + m_DynamicArray(count > N ? count : 0, allocator) {} -Synchronized internally with a mutex. -*/ -struct VmaBlockVector +template +void VmaSmallVector::push_back(const T& src) { - VMA_CLASS_NO_COPY(VmaBlockVector) -public: - VmaBlockVector( - VmaAllocator hAllocator, - VmaPool hParentPool, - uint32_t memoryTypeIndex, - VkDeviceSize preferredBlockSize, - size_t minBlockCount, - size_t maxBlockCount, - VkDeviceSize bufferImageGranularity, - uint32_t frameInUseCount, - bool explicitBlockSize, - uint32_t algorithm, - float priority, - VkDeviceSize minAllocationAlignment, - void* pMemoryAllocateNext); - ~VmaBlockVector(); - - VkResult CreateMinBlocks(); - - VmaAllocator GetAllocator() const { return m_hAllocator; } - VmaPool GetParentPool() const { return m_hParentPool; } - bool IsCustomPool() const { return m_hParentPool != VMA_NULL; } - uint32_t GetMemoryTypeIndex() const { return m_MemoryTypeIndex; } - VkDeviceSize GetPreferredBlockSize() const { return m_PreferredBlockSize; } - VkDeviceSize GetBufferImageGranularity() const { return m_BufferImageGranularity; } - uint32_t GetFrameInUseCount() const { return m_FrameInUseCount; } - uint32_t GetAlgorithm() const { return m_Algorithm; } - - void GetPoolStats(VmaPoolStats* pStats); + const size_t newIndex = size(); + resize(newIndex + 1); + data()[newIndex] = src; +} - bool IsEmpty(); - bool IsCorruptionDetectionEnabled() const; +template +void VmaSmallVector::resize(size_t newCount, bool freeMemory) +{ + if (newCount > N && m_Count > N) + { + // Any direction, staying in m_DynamicArray + m_DynamicArray.resize(newCount); + if (freeMemory) + { + m_DynamicArray.shrink_to_fit(); + } + } + else if (newCount > N && m_Count <= N) + { + // Growing, moving from m_StaticArray to m_DynamicArray + m_DynamicArray.resize(newCount); + if (m_Count > 0) + { + memcpy(m_DynamicArray.data(), m_StaticArray, m_Count * sizeof(T)); + } + } + else if (newCount <= N && m_Count > N) + { + // Shrinking, moving from m_DynamicArray to m_StaticArray + if (newCount > 0) + { + memcpy(m_StaticArray, m_DynamicArray.data(), newCount * sizeof(T)); + } + m_DynamicArray.resize(0); + if (freeMemory) + { + m_DynamicArray.shrink_to_fit(); + } + } + else + { + // Any direction, staying in m_StaticArray - nothing to do here + } + m_Count = newCount; +} - VkResult Allocate( - uint32_t currentFrameIndex, - VkDeviceSize size, - VkDeviceSize alignment, - const VmaAllocationCreateInfo& createInfo, - VmaSuballocationType suballocType, - size_t allocationCount, - VmaAllocation* pAllocations); +template +void VmaSmallVector::clear(bool freeMemory) +{ + m_DynamicArray.clear(); + if (freeMemory) + { + m_DynamicArray.shrink_to_fit(); + } + m_Count = 0; +} - void Free(const VmaAllocation hAllocation); +template +void VmaSmallVector::insert(size_t index, const T& src) +{ + VMA_HEAVY_ASSERT(index <= m_Count); + const size_t oldCount = size(); + resize(oldCount + 1); + T* const dataPtr = data(); + if (index < oldCount) + { + // I know, this could be more optimal for case where memmove can be memcpy directly from m_StaticArray to m_DynamicArray. + memmove(dataPtr + (index + 1), dataPtr + index, (oldCount - index) * sizeof(T)); + } + dataPtr[index] = src; +} - // Adds statistics of this BlockVector to pStats. - void AddStats(VmaStats* pStats); +template +void VmaSmallVector::remove(size_t index) +{ + VMA_HEAVY_ASSERT(index < m_Count); + const size_t oldCount = size(); + if (index < oldCount - 1) + { + // I know, this could be more optimal for case where memmove can be memcpy directly from m_DynamicArray to m_StaticArray. + T* const dataPtr = data(); + memmove(dataPtr + index, dataPtr + (index + 1), (oldCount - index - 1) * sizeof(T)); + } + resize(oldCount - 1); +} +#endif // _VMA_SMALL_VECTOR_FUNCTIONS +#endif // _VMA_SMALL_VECTOR -#if VMA_STATS_STRING_ENABLED - void PrintDetailedMap(class VmaJsonWriter& json); -#endif +#ifndef _VMA_POOL_ALLOCATOR +/* +Allocator for objects of type T using a list of arrays (pools) to speed up +allocation. Number of elements that can be allocated is not bounded because +allocator can create multiple blocks. +*/ +template +class VmaPoolAllocator +{ + VMA_CLASS_NO_COPY_NO_MOVE(VmaPoolAllocator) +public: + VmaPoolAllocator(const VkAllocationCallbacks* pAllocationCallbacks, uint32_t firstBlockCapacity); + ~VmaPoolAllocator(); + template T* Alloc(Types&&... args); + void Free(T* ptr); - void MakePoolAllocationsLost( - uint32_t currentFrameIndex, - size_t* pLostAllocationCount); - VkResult CheckCorruption(); +private: + union Item + { + uint32_t NextFreeIndex; + alignas(T) char Value[sizeof(T)]; + }; + struct ItemBlock + { + Item* pItems; + uint32_t Capacity; + uint32_t FirstFreeIndex; + }; - // Saves results in pCtx->res. - void Defragment( - class VmaBlockVectorDefragmentationContext* pCtx, - VmaDefragmentationStats* pStats, VmaDefragmentationFlags flags, - VkDeviceSize& maxCpuBytesToMove, uint32_t& maxCpuAllocationsToMove, - VkDeviceSize& maxGpuBytesToMove, uint32_t& maxGpuAllocationsToMove, - VkCommandBuffer commandBuffer); - void DefragmentationEnd( - class VmaBlockVectorDefragmentationContext* pCtx, - uint32_t flags, - VmaDefragmentationStats* pStats); - - uint32_t ProcessDefragmentations( - class VmaBlockVectorDefragmentationContext *pCtx, - VmaDefragmentationPassMoveInfo* pMove, uint32_t maxMoves); - - void CommitDefragmentations( - class VmaBlockVectorDefragmentationContext *pCtx, - VmaDefragmentationStats* pStats); - - //////////////////////////////////////////////////////////////////////////////// - // To be used only while the m_Mutex is locked. Used during defragmentation. + const VkAllocationCallbacks* m_pAllocationCallbacks; + const uint32_t m_FirstBlockCapacity; + VmaVector> m_ItemBlocks; - size_t GetBlockCount() const { return m_Blocks.size(); } - VmaDeviceMemoryBlock* GetBlock(size_t index) const { return m_Blocks[index]; } - size_t CalcAllocationCount() const; - bool IsBufferImageGranularityConflictPossible() const; + ItemBlock& CreateNewBlock(); +}; -private: - friend class VmaDefragmentationAlgorithm_Generic; +#ifndef _VMA_POOL_ALLOCATOR_FUNCTIONS +template +VmaPoolAllocator::VmaPoolAllocator(const VkAllocationCallbacks* pAllocationCallbacks, uint32_t firstBlockCapacity) + : m_pAllocationCallbacks(pAllocationCallbacks), + m_FirstBlockCapacity(firstBlockCapacity), + m_ItemBlocks(VmaStlAllocator(pAllocationCallbacks)) +{ + VMA_ASSERT(m_FirstBlockCapacity > 1); +} - const VmaAllocator m_hAllocator; - const VmaPool m_hParentPool; - const uint32_t m_MemoryTypeIndex; - const VkDeviceSize m_PreferredBlockSize; - const size_t m_MinBlockCount; - const size_t m_MaxBlockCount; - const VkDeviceSize m_BufferImageGranularity; - const uint32_t m_FrameInUseCount; - const bool m_ExplicitBlockSize; - const uint32_t m_Algorithm; - const float m_Priority; - const VkDeviceSize m_MinAllocationAlignment; - void* const m_pMemoryAllocateNext; - VMA_RW_MUTEX m_Mutex; +template +VmaPoolAllocator::~VmaPoolAllocator() +{ + for (size_t i = m_ItemBlocks.size(); i--;) + vma_delete_array(m_pAllocationCallbacks, m_ItemBlocks[i].pItems, m_ItemBlocks[i].Capacity); + m_ItemBlocks.clear(); +} - /* There can be at most one allocation that is completely empty (except when minBlockCount > 0) - - a hysteresis to avoid pessimistic case of alternating creation and destruction of a VkDeviceMemory. */ - bool m_HasEmptyBlock; - // Incrementally sorted by sumFreeSize, ascending. - VmaVector< VmaDeviceMemoryBlock*, VmaStlAllocator > m_Blocks; - uint32_t m_NextBlockId; +template +template T* VmaPoolAllocator::Alloc(Types&&... args) +{ + for (size_t i = m_ItemBlocks.size(); i--; ) + { + ItemBlock& block = m_ItemBlocks[i]; + // This block has some free items: Use first one. + if (block.FirstFreeIndex != UINT32_MAX) + { + Item* const pItem = &block.pItems[block.FirstFreeIndex]; + block.FirstFreeIndex = pItem->NextFreeIndex; + T* result = (T*)&pItem->Value; + new(result)T(std::forward(args)...); // Explicit constructor call. + return result; + } + } - VkDeviceSize CalcMaxBlockSize() const; + // No block has free item: Create new one and use it. + ItemBlock& newBlock = CreateNewBlock(); + Item* const pItem = &newBlock.pItems[0]; + newBlock.FirstFreeIndex = pItem->NextFreeIndex; + T* result = (T*)&pItem->Value; + new(result) T(std::forward(args)...); // Explicit constructor call. + return result; +} - // Finds and removes given block from vector. - void Remove(VmaDeviceMemoryBlock* pBlock); +template +void VmaPoolAllocator::Free(T* ptr) +{ + // Search all memory blocks to find ptr. + for (size_t i = m_ItemBlocks.size(); i--; ) + { + ItemBlock& block = m_ItemBlocks[i]; - // Performs single step in sorting m_Blocks. They may not be fully sorted - // after this call. - void IncrementallySortBlocks(); + // Casting to union. + Item* pItemPtr; + memcpy(&pItemPtr, &ptr, sizeof(pItemPtr)); - VkResult AllocatePage( - uint32_t currentFrameIndex, - VkDeviceSize size, - VkDeviceSize alignment, - const VmaAllocationCreateInfo& createInfo, - VmaSuballocationType suballocType, - VmaAllocation* pAllocation); + // Check if pItemPtr is in address range of this block. + if ((pItemPtr >= block.pItems) && (pItemPtr < block.pItems + block.Capacity)) + { + ptr->~T(); // Explicit destructor call. + const uint32_t index = static_cast(pItemPtr - block.pItems); + pItemPtr->NextFreeIndex = block.FirstFreeIndex; + block.FirstFreeIndex = index; + return; + } + } + VMA_ASSERT(0 && "Pointer doesn't belong to this memory pool."); +} - // To be used only without CAN_MAKE_OTHER_LOST flag. - VkResult AllocateFromBlock( - VmaDeviceMemoryBlock* pBlock, - uint32_t currentFrameIndex, - VkDeviceSize size, - VkDeviceSize alignment, - VmaAllocationCreateFlags allocFlags, - void* pUserData, - VmaSuballocationType suballocType, - uint32_t strategy, - VmaAllocation* pAllocation); +template +typename VmaPoolAllocator::ItemBlock& VmaPoolAllocator::CreateNewBlock() +{ + const uint32_t newBlockCapacity = m_ItemBlocks.empty() ? + m_FirstBlockCapacity : m_ItemBlocks.back().Capacity * 3 / 2; - VkResult CreateBlock(VkDeviceSize blockSize, size_t* pNewBlockIndex); + const ItemBlock newBlock = + { + vma_new_array(m_pAllocationCallbacks, Item, newBlockCapacity), + newBlockCapacity, + 0 + }; - // Saves result to pCtx->res. - void ApplyDefragmentationMovesCpu( - class VmaBlockVectorDefragmentationContext* pDefragCtx, - const VmaVector< VmaDefragmentationMove, VmaStlAllocator >& moves); - // Saves result to pCtx->res. - void ApplyDefragmentationMovesGpu( - class VmaBlockVectorDefragmentationContext* pDefragCtx, - VmaVector< VmaDefragmentationMove, VmaStlAllocator >& moves, - VkCommandBuffer commandBuffer); + m_ItemBlocks.push_back(newBlock); - /* - Used during defragmentation. pDefragmentationStats is optional. It is in/out - - updated with new data. - */ - void FreeEmptyBlocks(VmaDefragmentationStats* pDefragmentationStats); + // Setup singly-linked list of all free items in this block. + for (uint32_t i = 0; i < newBlockCapacity - 1; ++i) + newBlock.pItems[i].NextFreeIndex = i + 1; + newBlock.pItems[newBlockCapacity - 1].NextFreeIndex = UINT32_MAX; + return m_ItemBlocks.back(); +} +#endif // _VMA_POOL_ALLOCATOR_FUNCTIONS +#endif // _VMA_POOL_ALLOCATOR - void UpdateHasEmptyBlock(); +#ifndef _VMA_RAW_LIST +template +struct VmaListItem +{ + VmaListItem* pPrev; + VmaListItem* pNext; + T Value; }; -struct VmaPool_T +// Doubly linked list. +template +class VmaRawList { - VMA_CLASS_NO_COPY(VmaPool_T) + VMA_CLASS_NO_COPY_NO_MOVE(VmaRawList) public: - VmaBlockVector m_BlockVector; + typedef VmaListItem ItemType; - VmaPool_T( - VmaAllocator hAllocator, - const VmaPoolCreateInfo& createInfo, - VkDeviceSize preferredBlockSize); - ~VmaPool_T(); + VmaRawList(const VkAllocationCallbacks* pAllocationCallbacks); + // Intentionally not calling Clear, because that would be unnecessary + // computations to return all items to m_ItemAllocator as free. + ~VmaRawList() = default; - uint32_t GetId() const { return m_Id; } - void SetId(uint32_t id) { VMA_ASSERT(m_Id == 0); m_Id = id; } + size_t GetCount() const { return m_Count; } + bool IsEmpty() const { return m_Count == 0; } - const char* GetName() const { return m_Name; } - void SetName(const char* pName); + ItemType* Front() { return m_pFront; } + ItemType* Back() { return m_pBack; } + const ItemType* Front() const { return m_pFront; } + const ItemType* Back() const { return m_pBack; } -#if VMA_STATS_STRING_ENABLED - //void PrintDetailedMap(class VmaStringBuilder& sb); -#endif + ItemType* PushFront(); + ItemType* PushBack(); + ItemType* PushFront(const T& value); + ItemType* PushBack(const T& value); + void PopFront(); + void PopBack(); + + // Item can be null - it means PushBack. + ItemType* InsertBefore(ItemType* pItem); + // Item can be null - it means PushFront. + ItemType* InsertAfter(ItemType* pItem); + ItemType* InsertBefore(ItemType* pItem, const T& value); + ItemType* InsertAfter(ItemType* pItem, const T& value); + + void Clear(); + void Remove(ItemType* pItem); private: - uint32_t m_Id; - char* m_Name; - VmaPool_T* m_PrevPool = VMA_NULL; - VmaPool_T* m_NextPool = VMA_NULL; - friend struct VmaPoolListItemTraits; + const VkAllocationCallbacks* const m_pAllocationCallbacks; + VmaPoolAllocator m_ItemAllocator; + ItemType* m_pFront; + ItemType* m_pBack; + size_t m_Count; }; -struct VmaPoolListItemTraits -{ - typedef VmaPool_T ItemType; - static ItemType* GetPrev(const ItemType* item) { return item->m_PrevPool; } - static ItemType* GetNext(const ItemType* item) { return item->m_NextPool; } - static ItemType*& AccessPrev(ItemType* item) { return item->m_PrevPool; } - static ItemType*& AccessNext(ItemType* item) { return item->m_NextPool; } -}; +#ifndef _VMA_RAW_LIST_FUNCTIONS +template +VmaRawList::VmaRawList(const VkAllocationCallbacks* pAllocationCallbacks) + : m_pAllocationCallbacks(pAllocationCallbacks), + m_ItemAllocator(pAllocationCallbacks, 128), + m_pFront(VMA_NULL), + m_pBack(VMA_NULL), + m_Count(0) {} -/* -Performs defragmentation: +template +VmaListItem* VmaRawList::PushFront() +{ + ItemType* const pNewItem = m_ItemAllocator.Alloc(); + pNewItem->pPrev = VMA_NULL; + if (IsEmpty()) + { + pNewItem->pNext = VMA_NULL; + m_pFront = pNewItem; + m_pBack = pNewItem; + m_Count = 1; + } + else + { + pNewItem->pNext = m_pFront; + m_pFront->pPrev = pNewItem; + m_pFront = pNewItem; + ++m_Count; + } + return pNewItem; +} -- Updates `pBlockVector->m_pMetadata`. -- Updates allocations by calling ChangeBlockAllocation() or ChangeOffset(). -- Does not move actual data, only returns requested moves as `moves`. -*/ -class VmaDefragmentationAlgorithm +template +VmaListItem* VmaRawList::PushBack() { - VMA_CLASS_NO_COPY(VmaDefragmentationAlgorithm) -public: - VmaDefragmentationAlgorithm( - VmaAllocator hAllocator, - VmaBlockVector* pBlockVector, - uint32_t currentFrameIndex) : - m_hAllocator(hAllocator), - m_pBlockVector(pBlockVector), - m_CurrentFrameIndex(currentFrameIndex) + ItemType* const pNewItem = m_ItemAllocator.Alloc(); + pNewItem->pNext = VMA_NULL; + if(IsEmpty()) { + pNewItem->pPrev = VMA_NULL; + m_pFront = pNewItem; + m_pBack = pNewItem; + m_Count = 1; } - virtual ~VmaDefragmentationAlgorithm() + else { + pNewItem->pPrev = m_pBack; + m_pBack->pNext = pNewItem; + m_pBack = pNewItem; + ++m_Count; } + return pNewItem; +} - virtual void AddAllocation(VmaAllocation hAlloc, VkBool32* pChanged) = 0; - virtual void AddAll() = 0; - - virtual VkResult Defragment( - VmaVector< VmaDefragmentationMove, VmaStlAllocator >& moves, - VkDeviceSize maxBytesToMove, - uint32_t maxAllocationsToMove, - VmaDefragmentationFlags flags) = 0; +template +VmaListItem* VmaRawList::PushFront(const T& value) +{ + ItemType* const pNewItem = PushFront(); + pNewItem->Value = value; + return pNewItem; +} - virtual VkDeviceSize GetBytesMoved() const = 0; - virtual uint32_t GetAllocationsMoved() const = 0; +template +VmaListItem* VmaRawList::PushBack(const T& value) +{ + ItemType* const pNewItem = PushBack(); + pNewItem->Value = value; + return pNewItem; +} -protected: - VmaAllocator const m_hAllocator; - VmaBlockVector* const m_pBlockVector; - const uint32_t m_CurrentFrameIndex; +template +void VmaRawList::PopFront() +{ + VMA_HEAVY_ASSERT(m_Count > 0); + ItemType* const pFrontItem = m_pFront; + ItemType* const pNextItem = pFrontItem->pNext; + if (pNextItem != VMA_NULL) + { + pNextItem->pPrev = VMA_NULL; + } + m_pFront = pNextItem; + m_ItemAllocator.Free(pFrontItem); + --m_Count; +} - struct AllocationInfo +template +void VmaRawList::PopBack() +{ + VMA_HEAVY_ASSERT(m_Count > 0); + ItemType* const pBackItem = m_pBack; + ItemType* const pPrevItem = pBackItem->pPrev; + if(pPrevItem != VMA_NULL) { - VmaAllocation m_hAllocation; - VkBool32* m_pChanged; + pPrevItem->pNext = VMA_NULL; + } + m_pBack = pPrevItem; + m_ItemAllocator.Free(pBackItem); + --m_Count; +} - AllocationInfo() : - m_hAllocation(VK_NULL_HANDLE), - m_pChanged(VMA_NULL) - { - } - AllocationInfo(VmaAllocation hAlloc, VkBool32* pChanged) : - m_hAllocation(hAlloc), - m_pChanged(pChanged) +template +void VmaRawList::Clear() +{ + if (IsEmpty() == false) + { + ItemType* pItem = m_pBack; + while (pItem != VMA_NULL) { + ItemType* const pPrevItem = pItem->pPrev; + m_ItemAllocator.Free(pItem); + pItem = pPrevItem; } - }; -}; + m_pFront = VMA_NULL; + m_pBack = VMA_NULL; + m_Count = 0; + } +} -class VmaDefragmentationAlgorithm_Generic : public VmaDefragmentationAlgorithm +template +void VmaRawList::Remove(ItemType* pItem) { - VMA_CLASS_NO_COPY(VmaDefragmentationAlgorithm_Generic) -public: - VmaDefragmentationAlgorithm_Generic( - VmaAllocator hAllocator, - VmaBlockVector* pBlockVector, - uint32_t currentFrameIndex, - bool overlappingMoveSupported); - virtual ~VmaDefragmentationAlgorithm_Generic(); - - virtual void AddAllocation(VmaAllocation hAlloc, VkBool32* pChanged); - virtual void AddAll() { m_AllAllocations = true; } - - virtual VkResult Defragment( - VmaVector< VmaDefragmentationMove, VmaStlAllocator >& moves, - VkDeviceSize maxBytesToMove, - uint32_t maxAllocationsToMove, - VmaDefragmentationFlags flags); - - virtual VkDeviceSize GetBytesMoved() const { return m_BytesMoved; } - virtual uint32_t GetAllocationsMoved() const { return m_AllocationsMoved; } - -private: - uint32_t m_AllocationCount; - bool m_AllAllocations; - - VkDeviceSize m_BytesMoved; - uint32_t m_AllocationsMoved; + VMA_HEAVY_ASSERT(pItem != VMA_NULL); + VMA_HEAVY_ASSERT(m_Count > 0); - struct AllocationInfoSizeGreater + if(pItem->pPrev != VMA_NULL) { - bool operator()(const AllocationInfo& lhs, const AllocationInfo& rhs) const - { - return lhs.m_hAllocation->GetSize() > rhs.m_hAllocation->GetSize(); - } - }; - - struct AllocationInfoOffsetGreater + pItem->pPrev->pNext = pItem->pNext; + } + else { - bool operator()(const AllocationInfo& lhs, const AllocationInfo& rhs) const - { - return lhs.m_hAllocation->GetOffset() > rhs.m_hAllocation->GetOffset(); - } - }; + VMA_HEAVY_ASSERT(m_pFront == pItem); + m_pFront = pItem->pNext; + } - struct BlockInfo + if(pItem->pNext != VMA_NULL) { - size_t m_OriginalBlockIndex; - VmaDeviceMemoryBlock* m_pBlock; - bool m_HasNonMovableAllocations; - VmaVector< AllocationInfo, VmaStlAllocator > m_Allocations; - - BlockInfo(const VkAllocationCallbacks* pAllocationCallbacks) : - m_OriginalBlockIndex(SIZE_MAX), - m_pBlock(VMA_NULL), - m_HasNonMovableAllocations(true), - m_Allocations(pAllocationCallbacks) - { - } + pItem->pNext->pPrev = pItem->pPrev; + } + else + { + VMA_HEAVY_ASSERT(m_pBack == pItem); + m_pBack = pItem->pPrev; + } - void CalcHasNonMovableAllocations() - { - const size_t blockAllocCount = m_pBlock->m_pMetadata->GetAllocationCount(); - const size_t defragmentAllocCount = m_Allocations.size(); - m_HasNonMovableAllocations = blockAllocCount != defragmentAllocCount; - } + m_ItemAllocator.Free(pItem); + --m_Count; +} - void SortAllocationsBySizeDescending() +template +VmaListItem* VmaRawList::InsertBefore(ItemType* pItem) +{ + if(pItem != VMA_NULL) + { + ItemType* const prevItem = pItem->pPrev; + ItemType* const newItem = m_ItemAllocator.Alloc(); + newItem->pPrev = prevItem; + newItem->pNext = pItem; + pItem->pPrev = newItem; + if(prevItem != VMA_NULL) { - VMA_SORT(m_Allocations.begin(), m_Allocations.end(), AllocationInfoSizeGreater()); + prevItem->pNext = newItem; } - - void SortAllocationsByOffsetDescending() + else { - VMA_SORT(m_Allocations.begin(), m_Allocations.end(), AllocationInfoOffsetGreater()); + VMA_HEAVY_ASSERT(m_pFront == pItem); + m_pFront = newItem; } - }; + ++m_Count; + return newItem; + } + else + return PushBack(); +} - struct BlockPointerLess +template +VmaListItem* VmaRawList::InsertAfter(ItemType* pItem) +{ + if(pItem != VMA_NULL) { - bool operator()(const BlockInfo* pLhsBlockInfo, const VmaDeviceMemoryBlock* pRhsBlock) const - { - return pLhsBlockInfo->m_pBlock < pRhsBlock; - } - bool operator()(const BlockInfo* pLhsBlockInfo, const BlockInfo* pRhsBlockInfo) const + ItemType* const nextItem = pItem->pNext; + ItemType* const newItem = m_ItemAllocator.Alloc(); + newItem->pNext = nextItem; + newItem->pPrev = pItem; + pItem->pNext = newItem; + if(nextItem != VMA_NULL) { - return pLhsBlockInfo->m_pBlock < pRhsBlockInfo->m_pBlock; + nextItem->pPrev = newItem; } - }; - - // 1. Blocks with some non-movable allocations go first. - // 2. Blocks with smaller sumFreeSize go first. - struct BlockInfoCompareMoveDestination - { - bool operator()(const BlockInfo* pLhsBlockInfo, const BlockInfo* pRhsBlockInfo) const + else { - if(pLhsBlockInfo->m_HasNonMovableAllocations && !pRhsBlockInfo->m_HasNonMovableAllocations) - { - return true; - } - if(!pLhsBlockInfo->m_HasNonMovableAllocations && pRhsBlockInfo->m_HasNonMovableAllocations) - { - return false; - } - if(pLhsBlockInfo->m_pBlock->m_pMetadata->GetSumFreeSize() < pRhsBlockInfo->m_pBlock->m_pMetadata->GetSumFreeSize()) - { - return true; - } - return false; + VMA_HEAVY_ASSERT(m_pBack == pItem); + m_pBack = newItem; } - }; - - typedef VmaVector< BlockInfo*, VmaStlAllocator > BlockInfoVector; - BlockInfoVector m_Blocks; - - VkResult DefragmentRound( - VmaVector< VmaDefragmentationMove, VmaStlAllocator >& moves, - VkDeviceSize maxBytesToMove, - uint32_t maxAllocationsToMove, - bool freeOldAllocations); + ++m_Count; + return newItem; + } + else + return PushFront(); +} - size_t CalcBlocksWithNonMovableCount() const; +template +VmaListItem* VmaRawList::InsertBefore(ItemType* pItem, const T& value) +{ + ItemType* const newItem = InsertBefore(pItem); + newItem->Value = value; + return newItem; +} - static bool MoveMakesSense( - size_t dstBlockIndex, VkDeviceSize dstOffset, - size_t srcBlockIndex, VkDeviceSize srcOffset); -}; +template +VmaListItem* VmaRawList::InsertAfter(ItemType* pItem, const T& value) +{ + ItemType* const newItem = InsertAfter(pItem); + newItem->Value = value; + return newItem; +} +#endif // _VMA_RAW_LIST_FUNCTIONS +#endif // _VMA_RAW_LIST -class VmaDefragmentationAlgorithm_Fast : public VmaDefragmentationAlgorithm +#ifndef _VMA_LIST +template +class VmaList { - VMA_CLASS_NO_COPY(VmaDefragmentationAlgorithm_Fast) + VMA_CLASS_NO_COPY_NO_MOVE(VmaList) public: - VmaDefragmentationAlgorithm_Fast( - VmaAllocator hAllocator, - VmaBlockVector* pBlockVector, - uint32_t currentFrameIndex, - bool overlappingMoveSupported); - virtual ~VmaDefragmentationAlgorithm_Fast(); - - virtual void AddAllocation(VmaAllocation hAlloc, VkBool32* pChanged) { ++m_AllocationCount; } - virtual void AddAll() { m_AllAllocations = true; } - - virtual VkResult Defragment( - VmaVector< VmaDefragmentationMove, VmaStlAllocator >& moves, - VkDeviceSize maxBytesToMove, - uint32_t maxAllocationsToMove, - VmaDefragmentationFlags flags); - - virtual VkDeviceSize GetBytesMoved() const { return m_BytesMoved; } - virtual uint32_t GetAllocationsMoved() const { return m_AllocationsMoved; } - -private: - struct BlockInfo - { - size_t origBlockIndex; - }; + class reverse_iterator; + class const_iterator; + class const_reverse_iterator; - class FreeSpaceDatabase + class iterator { + friend class const_iterator; + friend class VmaList; public: - FreeSpaceDatabase() - { - FreeSpace s = {}; - s.blockInfoIndex = SIZE_MAX; - for(size_t i = 0; i < MAX_COUNT; ++i) - { - m_FreeSpaces[i] = s; - } - } + iterator() : m_pList(VMA_NULL), m_pItem(VMA_NULL) {} + iterator(const reverse_iterator& src) : m_pList(src.m_pList), m_pItem(src.m_pItem) {} - void Register(size_t blockInfoIndex, VkDeviceSize offset, VkDeviceSize size) - { - if(size < VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER) - { - return; - } + T& operator*() const { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); return m_pItem->Value; } + T* operator->() const { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); return &m_pItem->Value; } - // Find first invalid or the smallest structure. - size_t bestIndex = SIZE_MAX; - for(size_t i = 0; i < MAX_COUNT; ++i) - { - // Empty structure. - if(m_FreeSpaces[i].blockInfoIndex == SIZE_MAX) - { - bestIndex = i; - break; - } - if(m_FreeSpaces[i].size < size && - (bestIndex == SIZE_MAX || m_FreeSpaces[bestIndex].size > m_FreeSpaces[i].size)) - { - bestIndex = i; - } - } + bool operator==(const iterator& rhs) const { VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); return m_pItem == rhs.m_pItem; } + bool operator!=(const iterator& rhs) const { VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); return m_pItem != rhs.m_pItem; } - if(bestIndex != SIZE_MAX) - { - m_FreeSpaces[bestIndex].blockInfoIndex = blockInfoIndex; - m_FreeSpaces[bestIndex].offset = offset; - m_FreeSpaces[bestIndex].size = size; - } - } + iterator operator++(int) { iterator result = *this; ++*this; return result; } + iterator operator--(int) { iterator result = *this; --*this; return result; } - bool Fetch(VkDeviceSize alignment, VkDeviceSize size, - size_t& outBlockInfoIndex, VkDeviceSize& outDstOffset) - { - size_t bestIndex = SIZE_MAX; - VkDeviceSize bestFreeSpaceAfter = 0; - for(size_t i = 0; i < MAX_COUNT; ++i) - { - // Structure is valid. - if(m_FreeSpaces[i].blockInfoIndex != SIZE_MAX) - { - const VkDeviceSize dstOffset = VmaAlignUp(m_FreeSpaces[i].offset, alignment); - // Allocation fits into this structure. - if(dstOffset + size <= m_FreeSpaces[i].offset + m_FreeSpaces[i].size) - { - const VkDeviceSize freeSpaceAfter = (m_FreeSpaces[i].offset + m_FreeSpaces[i].size) - - (dstOffset + size); - if(bestIndex == SIZE_MAX || freeSpaceAfter > bestFreeSpaceAfter) - { - bestIndex = i; - bestFreeSpaceAfter = freeSpaceAfter; - } - } - } - } + iterator& operator++() { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); m_pItem = m_pItem->pNext; return *this; } + iterator& operator--(); + + private: + VmaRawList* m_pList; + VmaListItem* m_pItem; + + iterator(VmaRawList* pList, VmaListItem* pItem) : m_pList(pList), m_pItem(pItem) {} + }; + class reverse_iterator + { + friend class const_reverse_iterator; + friend class VmaList; + public: + reverse_iterator() : m_pList(VMA_NULL), m_pItem(VMA_NULL) {} + reverse_iterator(const iterator& src) : m_pList(src.m_pList), m_pItem(src.m_pItem) {} - if(bestIndex != SIZE_MAX) - { - outBlockInfoIndex = m_FreeSpaces[bestIndex].blockInfoIndex; - outDstOffset = VmaAlignUp(m_FreeSpaces[bestIndex].offset, alignment); + T& operator*() const { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); return m_pItem->Value; } + T* operator->() const { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); return &m_pItem->Value; } - if(bestFreeSpaceAfter >= VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER) - { - // Leave this structure for remaining empty space. - const VkDeviceSize alignmentPlusSize = (outDstOffset - m_FreeSpaces[bestIndex].offset) + size; - m_FreeSpaces[bestIndex].offset += alignmentPlusSize; - m_FreeSpaces[bestIndex].size -= alignmentPlusSize; - } - else - { - // This structure becomes invalid. - m_FreeSpaces[bestIndex].blockInfoIndex = SIZE_MAX; - } + bool operator==(const reverse_iterator& rhs) const { VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); return m_pItem == rhs.m_pItem; } + bool operator!=(const reverse_iterator& rhs) const { VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); return m_pItem != rhs.m_pItem; } - return true; - } + reverse_iterator operator++(int) { reverse_iterator result = *this; ++* this; return result; } + reverse_iterator operator--(int) { reverse_iterator result = *this; --* this; return result; } - return false; - } + reverse_iterator& operator++() { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); m_pItem = m_pItem->pPrev; return *this; } + reverse_iterator& operator--(); private: - static const size_t MAX_COUNT = 4; + VmaRawList* m_pList; + VmaListItem* m_pItem; - struct FreeSpace - { - size_t blockInfoIndex; // SIZE_MAX means this structure is invalid. - VkDeviceSize offset; - VkDeviceSize size; - } m_FreeSpaces[MAX_COUNT]; + reverse_iterator(VmaRawList* pList, VmaListItem* pItem) : m_pList(pList), m_pItem(pItem) {} }; + class const_iterator + { + friend class VmaList; + public: + const_iterator() : m_pList(VMA_NULL), m_pItem(VMA_NULL) {} + const_iterator(const iterator& src) : m_pList(src.m_pList), m_pItem(src.m_pItem) {} + const_iterator(const reverse_iterator& src) : m_pList(src.m_pList), m_pItem(src.m_pItem) {} - const bool m_OverlappingMoveSupported; + iterator drop_const() { return { const_cast*>(m_pList), const_cast*>(m_pItem) }; } - uint32_t m_AllocationCount; - bool m_AllAllocations; + const T& operator*() const { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); return m_pItem->Value; } + const T* operator->() const { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); return &m_pItem->Value; } - VkDeviceSize m_BytesMoved; - uint32_t m_AllocationsMoved; + bool operator==(const const_iterator& rhs) const { VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); return m_pItem == rhs.m_pItem; } + bool operator!=(const const_iterator& rhs) const { VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); return m_pItem != rhs.m_pItem; } - VmaVector< BlockInfo, VmaStlAllocator > m_BlockInfos; + const_iterator operator++(int) { const_iterator result = *this; ++* this; return result; } + const_iterator operator--(int) { const_iterator result = *this; --* this; return result; } - void PreprocessMetadata(); - void PostprocessMetadata(); - void InsertSuballoc(VmaBlockMetadata_Generic* pMetadata, const VmaSuballocation& suballoc); -}; + const_iterator& operator++() { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); m_pItem = m_pItem->pNext; return *this; } + const_iterator& operator--(); -struct VmaBlockDefragmentationContext -{ - enum BLOCK_FLAG - { - BLOCK_FLAG_USED = 0x00000001, + private: + const VmaRawList* m_pList; + const VmaListItem* m_pItem; + + const_iterator(const VmaRawList* pList, const VmaListItem* pItem) : m_pList(pList), m_pItem(pItem) {} }; - uint32_t flags; - VkBuffer hBuffer; -}; + class const_reverse_iterator + { + friend class VmaList; + public: + const_reverse_iterator() : m_pList(VMA_NULL), m_pItem(VMA_NULL) {} + const_reverse_iterator(const reverse_iterator& src) : m_pList(src.m_pList), m_pItem(src.m_pItem) {} + const_reverse_iterator(const iterator& src) : m_pList(src.m_pList), m_pItem(src.m_pItem) {} -class VmaBlockVectorDefragmentationContext -{ - VMA_CLASS_NO_COPY(VmaBlockVectorDefragmentationContext) -public: - VkResult res; - bool mutexLocked; - VmaVector< VmaBlockDefragmentationContext, VmaStlAllocator > blockContexts; - VmaVector< VmaDefragmentationMove, VmaStlAllocator > defragmentationMoves; - uint32_t defragmentationMovesProcessed; - uint32_t defragmentationMovesCommitted; - bool hasDefragmentationPlan; - - VmaBlockVectorDefragmentationContext( - VmaAllocator hAllocator, - VmaPool hCustomPool, // Optional. - VmaBlockVector* pBlockVector, - uint32_t currFrameIndex); - ~VmaBlockVectorDefragmentationContext(); + reverse_iterator drop_const() { return { const_cast*>(m_pList), const_cast*>(m_pItem) }; } - VmaPool GetCustomPool() const { return m_hCustomPool; } - VmaBlockVector* GetBlockVector() const { return m_pBlockVector; } - VmaDefragmentationAlgorithm* GetAlgorithm() const { return m_pAlgorithm; } + const T& operator*() const { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); return m_pItem->Value; } + const T* operator->() const { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); return &m_pItem->Value; } - void AddAllocation(VmaAllocation hAlloc, VkBool32* pChanged); - void AddAll() { m_AllAllocations = true; } + bool operator==(const const_reverse_iterator& rhs) const { VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); return m_pItem == rhs.m_pItem; } + bool operator!=(const const_reverse_iterator& rhs) const { VMA_HEAVY_ASSERT(m_pList == rhs.m_pList); return m_pItem != rhs.m_pItem; } - void Begin(bool overlappingMoveSupported, VmaDefragmentationFlags flags); + const_reverse_iterator operator++(int) { const_reverse_iterator result = *this; ++* this; return result; } + const_reverse_iterator operator--(int) { const_reverse_iterator result = *this; --* this; return result; } -private: - const VmaAllocator m_hAllocator; - // Null if not from custom pool. - const VmaPool m_hCustomPool; - // Redundant, for convenience not to fetch from m_hCustomPool->m_BlockVector or m_hAllocator->m_pBlockVectors. - VmaBlockVector* const m_pBlockVector; - const uint32_t m_CurrFrameIndex; - // Owner of this object. - VmaDefragmentationAlgorithm* m_pAlgorithm; - - struct AllocInfo - { - VmaAllocation hAlloc; - VkBool32* pChanged; + const_reverse_iterator& operator++() { VMA_HEAVY_ASSERT(m_pItem != VMA_NULL); m_pItem = m_pItem->pPrev; return *this; } + const_reverse_iterator& operator--(); + + private: + const VmaRawList* m_pList; + const VmaListItem* m_pItem; + + const_reverse_iterator(const VmaRawList* pList, const VmaListItem* pItem) : m_pList(pList), m_pItem(pItem) {} }; - // Used between constructor and Begin. - VmaVector< AllocInfo, VmaStlAllocator > m_Allocations; - bool m_AllAllocations; -}; -struct VmaDefragmentationContext_T -{ -private: - VMA_CLASS_NO_COPY(VmaDefragmentationContext_T) -public: - VmaDefragmentationContext_T( - VmaAllocator hAllocator, - uint32_t currFrameIndex, - uint32_t flags, - VmaDefragmentationStats* pStats); - ~VmaDefragmentationContext_T(); + VmaList(const AllocatorT& allocator) : m_RawList(allocator.m_pCallbacks) {} - void AddPools(uint32_t poolCount, const VmaPool* pPools); - void AddAllocations( - uint32_t allocationCount, - const VmaAllocation* pAllocations, - VkBool32* pAllocationsChanged); + bool empty() const { return m_RawList.IsEmpty(); } + size_t size() const { return m_RawList.GetCount(); } - /* - Returns: - - `VK_SUCCESS` if succeeded and object can be destroyed immediately. - - `VK_NOT_READY` if succeeded but the object must remain alive until vmaDefragmentationEnd(). - - Negative value if error occurred and object can be destroyed immediately. - */ - VkResult Defragment( - VkDeviceSize maxCpuBytesToMove, uint32_t maxCpuAllocationsToMove, - VkDeviceSize maxGpuBytesToMove, uint32_t maxGpuAllocationsToMove, - VkCommandBuffer commandBuffer, VmaDefragmentationStats* pStats, VmaDefragmentationFlags flags); + iterator begin() { return iterator(&m_RawList, m_RawList.Front()); } + iterator end() { return iterator(&m_RawList, VMA_NULL); } - VkResult DefragmentPassBegin(VmaDefragmentationPassInfo* pInfo); - VkResult DefragmentPassEnd(); + const_iterator cbegin() const { return const_iterator(&m_RawList, m_RawList.Front()); } + const_iterator cend() const { return const_iterator(&m_RawList, VMA_NULL); } -private: - const VmaAllocator m_hAllocator; - const uint32_t m_CurrFrameIndex; - const uint32_t m_Flags; - VmaDefragmentationStats* const m_pStats; - - VkDeviceSize m_MaxCpuBytesToMove; - uint32_t m_MaxCpuAllocationsToMove; - VkDeviceSize m_MaxGpuBytesToMove; - uint32_t m_MaxGpuAllocationsToMove; - - // Owner of these objects. - VmaBlockVectorDefragmentationContext* m_DefaultPoolContexts[VK_MAX_MEMORY_TYPES]; - // Owner of these objects. - VmaVector< VmaBlockVectorDefragmentationContext*, VmaStlAllocator > m_CustomPoolContexts; -}; + const_iterator begin() const { return cbegin(); } + const_iterator end() const { return cend(); } -#if VMA_RECORDING_ENABLED + reverse_iterator rbegin() { return reverse_iterator(&m_RawList, m_RawList.Back()); } + reverse_iterator rend() { return reverse_iterator(&m_RawList, VMA_NULL); } -class VmaRecorder -{ -public: - VmaRecorder(); - VkResult Init(const VmaRecordSettings& settings, bool useMutex); - void WriteConfiguration( - const VkPhysicalDeviceProperties& devProps, - const VkPhysicalDeviceMemoryProperties& memProps, - uint32_t vulkanApiVersion, - bool dedicatedAllocationExtensionEnabled, - bool bindMemory2ExtensionEnabled, - bool memoryBudgetExtensionEnabled, - bool deviceCoherentMemoryExtensionEnabled); - ~VmaRecorder(); - - void RecordCreateAllocator(uint32_t frameIndex); - void RecordDestroyAllocator(uint32_t frameIndex); - void RecordCreatePool(uint32_t frameIndex, - const VmaPoolCreateInfo& createInfo, - VmaPool pool); - void RecordDestroyPool(uint32_t frameIndex, VmaPool pool); - void RecordAllocateMemory(uint32_t frameIndex, - const VkMemoryRequirements& vkMemReq, - const VmaAllocationCreateInfo& createInfo, - VmaAllocation allocation); - void RecordAllocateMemoryPages(uint32_t frameIndex, - const VkMemoryRequirements& vkMemReq, - const VmaAllocationCreateInfo& createInfo, - uint64_t allocationCount, - const VmaAllocation* pAllocations); - void RecordAllocateMemoryForBuffer(uint32_t frameIndex, - const VkMemoryRequirements& vkMemReq, - bool requiresDedicatedAllocation, - bool prefersDedicatedAllocation, - const VmaAllocationCreateInfo& createInfo, - VmaAllocation allocation); - void RecordAllocateMemoryForImage(uint32_t frameIndex, - const VkMemoryRequirements& vkMemReq, - bool requiresDedicatedAllocation, - bool prefersDedicatedAllocation, - const VmaAllocationCreateInfo& createInfo, - VmaAllocation allocation); - void RecordFreeMemory(uint32_t frameIndex, - VmaAllocation allocation); - void RecordFreeMemoryPages(uint32_t frameIndex, - uint64_t allocationCount, - const VmaAllocation* pAllocations); - void RecordSetAllocationUserData(uint32_t frameIndex, - VmaAllocation allocation, - const void* pUserData); - void RecordCreateLostAllocation(uint32_t frameIndex, - VmaAllocation allocation); - void RecordMapMemory(uint32_t frameIndex, - VmaAllocation allocation); - void RecordUnmapMemory(uint32_t frameIndex, - VmaAllocation allocation); - void RecordFlushAllocation(uint32_t frameIndex, - VmaAllocation allocation, VkDeviceSize offset, VkDeviceSize size); - void RecordInvalidateAllocation(uint32_t frameIndex, - VmaAllocation allocation, VkDeviceSize offset, VkDeviceSize size); - void RecordCreateBuffer(uint32_t frameIndex, - const VkBufferCreateInfo& bufCreateInfo, - const VmaAllocationCreateInfo& allocCreateInfo, - VmaAllocation allocation); - void RecordCreateImage(uint32_t frameIndex, - const VkImageCreateInfo& imageCreateInfo, - const VmaAllocationCreateInfo& allocCreateInfo, - VmaAllocation allocation); - void RecordDestroyBuffer(uint32_t frameIndex, - VmaAllocation allocation); - void RecordDestroyImage(uint32_t frameIndex, - VmaAllocation allocation); - void RecordTouchAllocation(uint32_t frameIndex, - VmaAllocation allocation); - void RecordGetAllocationInfo(uint32_t frameIndex, - VmaAllocation allocation); - void RecordMakePoolAllocationsLost(uint32_t frameIndex, - VmaPool pool); - void RecordDefragmentationBegin(uint32_t frameIndex, - const VmaDefragmentationInfo2& info, - VmaDefragmentationContext ctx); - void RecordDefragmentationEnd(uint32_t frameIndex, - VmaDefragmentationContext ctx); - void RecordSetPoolName(uint32_t frameIndex, - VmaPool pool, - const char* name); + const_reverse_iterator crbegin() const { return const_reverse_iterator(&m_RawList, m_RawList.Back()); } + const_reverse_iterator crend() const { return const_reverse_iterator(&m_RawList, VMA_NULL); } -private: - struct CallParams - { - uint32_t threadId; - double time; - }; + const_reverse_iterator rbegin() const { return crbegin(); } + const_reverse_iterator rend() const { return crend(); } - class UserDataString - { - public: - UserDataString(VmaAllocationCreateFlags allocFlags, const void* pUserData); - const char* GetString() const { return m_Str; } + void push_back(const T& value) { m_RawList.PushBack(value); } + iterator insert(iterator it, const T& value) { return iterator(&m_RawList, m_RawList.InsertBefore(it.m_pItem, value)); } - private: - char m_PtrStr[17]; - const char* m_Str; - }; + void clear() { m_RawList.Clear(); } + void erase(iterator it) { m_RawList.Remove(it.m_pItem); } - bool m_UseMutex; - VmaRecordFlags m_Flags; - FILE* m_File; - VMA_MUTEX m_FileMutex; - std::chrono::time_point m_RecordingStartTime; +private: + VmaRawList m_RawList; +}; - void GetBasicParams(CallParams& outParams); +#ifndef _VMA_LIST_FUNCTIONS +template +typename VmaList::iterator& VmaList::iterator::operator--() +{ + if (m_pItem != VMA_NULL) + { + m_pItem = m_pItem->pPrev; + } + else + { + VMA_HEAVY_ASSERT(!m_pList->IsEmpty()); + m_pItem = m_pList->Back(); + } + return *this; +} - // T must be a pointer type, e.g. VmaAllocation, VmaPool. - template - void PrintPointerList(uint64_t count, const T* pItems) +template +typename VmaList::reverse_iterator& VmaList::reverse_iterator::operator--() +{ + if (m_pItem != VMA_NULL) { - if(count) - { - fprintf(m_File, "%p", pItems[0]); - for(uint64_t i = 1; i < count; ++i) - { - fprintf(m_File, " %p", pItems[i]); - } - } + m_pItem = m_pItem->pNext; + } + else + { + VMA_HEAVY_ASSERT(!m_pList->IsEmpty()); + m_pItem = m_pList->Front(); } + return *this; +} - void PrintPointerList(uint64_t count, const VmaAllocation* pItems); - void Flush(); -}; +template +typename VmaList::const_iterator& VmaList::const_iterator::operator--() +{ + if (m_pItem != VMA_NULL) + { + m_pItem = m_pItem->pPrev; + } + else + { + VMA_HEAVY_ASSERT(!m_pList->IsEmpty()); + m_pItem = m_pList->Back(); + } + return *this; +} -#endif // #if VMA_RECORDING_ENABLED +template +typename VmaList::const_reverse_iterator& VmaList::const_reverse_iterator::operator--() +{ + if (m_pItem != VMA_NULL) + { + m_pItem = m_pItem->pNext; + } + else + { + VMA_HEAVY_ASSERT(!m_pList->IsEmpty()); + m_pItem = m_pList->Back(); + } + return *this; +} +#endif // _VMA_LIST_FUNCTIONS +#endif // _VMA_LIST +#ifndef _VMA_INTRUSIVE_LINKED_LIST /* -Thread-safe wrapper over VmaPoolAllocator free list, for allocation of VmaAllocation_T objects. +Expected interface of ItemTypeTraits: +struct MyItemTypeTraits +{ + typedef MyItem ItemType; + static ItemType* GetPrev(const ItemType* item) { return item->myPrevPtr; } + static ItemType* GetNext(const ItemType* item) { return item->myNextPtr; } + static ItemType*& AccessPrev(ItemType* item) { return item->myPrevPtr; } + static ItemType*& AccessNext(ItemType* item) { return item->myNextPtr; } +}; */ -class VmaAllocationObjectAllocator +template +class VmaIntrusiveLinkedList { - VMA_CLASS_NO_COPY(VmaAllocationObjectAllocator) public: - VmaAllocationObjectAllocator(const VkAllocationCallbacks* pAllocationCallbacks); + typedef typename ItemTypeTraits::ItemType ItemType; + static ItemType* GetPrev(const ItemType* item) { return ItemTypeTraits::GetPrev(item); } + static ItemType* GetNext(const ItemType* item) { return ItemTypeTraits::GetNext(item); } - template VmaAllocation Allocate(Types&&... args); - void Free(VmaAllocation hAlloc); + // Movable, not copyable. + VmaIntrusiveLinkedList() = default; + VmaIntrusiveLinkedList(VmaIntrusiveLinkedList && src); + VmaIntrusiveLinkedList(const VmaIntrusiveLinkedList&) = delete; + VmaIntrusiveLinkedList& operator=(VmaIntrusiveLinkedList&& src); + VmaIntrusiveLinkedList& operator=(const VmaIntrusiveLinkedList&) = delete; + ~VmaIntrusiveLinkedList() { VMA_HEAVY_ASSERT(IsEmpty()); } + + size_t GetCount() const { return m_Count; } + bool IsEmpty() const { return m_Count == 0; } + ItemType* Front() { return m_Front; } + ItemType* Back() { return m_Back; } + const ItemType* Front() const { return m_Front; } + const ItemType* Back() const { return m_Back; } + + void PushBack(ItemType* item); + void PushFront(ItemType* item); + ItemType* PopBack(); + ItemType* PopFront(); + + // MyItem can be null - it means PushBack. + void InsertBefore(ItemType* existingItem, ItemType* newItem); + // MyItem can be null - it means PushFront. + void InsertAfter(ItemType* existingItem, ItemType* newItem); + void Remove(ItemType* item); + void RemoveAll(); private: - VMA_MUTEX m_Mutex; - VmaPoolAllocator m_Allocator; + ItemType* m_Front = VMA_NULL; + ItemType* m_Back = VMA_NULL; + size_t m_Count = 0; }; -struct VmaCurrentBudgetData +#ifndef _VMA_INTRUSIVE_LINKED_LIST_FUNCTIONS +template +VmaIntrusiveLinkedList::VmaIntrusiveLinkedList(VmaIntrusiveLinkedList&& src) + : m_Front(src.m_Front), m_Back(src.m_Back), m_Count(src.m_Count) { - VMA_ATOMIC_UINT64 m_BlockBytes[VK_MAX_MEMORY_HEAPS]; - VMA_ATOMIC_UINT64 m_AllocationBytes[VK_MAX_MEMORY_HEAPS]; + src.m_Front = src.m_Back = VMA_NULL; + src.m_Count = 0; +} -#if VMA_MEMORY_BUDGET - VMA_ATOMIC_UINT32 m_OperationsSinceBudgetFetch; - VMA_RW_MUTEX m_BudgetMutex; - uint64_t m_VulkanUsage[VK_MAX_MEMORY_HEAPS]; - uint64_t m_VulkanBudget[VK_MAX_MEMORY_HEAPS]; - uint64_t m_BlockBytesAtBudgetFetch[VK_MAX_MEMORY_HEAPS]; -#endif // #if VMA_MEMORY_BUDGET +template +VmaIntrusiveLinkedList& VmaIntrusiveLinkedList::operator=(VmaIntrusiveLinkedList&& src) +{ + if (&src != this) + { + VMA_HEAVY_ASSERT(IsEmpty()); + m_Front = src.m_Front; + m_Back = src.m_Back; + m_Count = src.m_Count; + src.m_Front = src.m_Back = VMA_NULL; + src.m_Count = 0; + } + return *this; +} + +template +void VmaIntrusiveLinkedList::PushBack(ItemType* item) +{ + VMA_HEAVY_ASSERT(ItemTypeTraits::GetPrev(item) == VMA_NULL && ItemTypeTraits::GetNext(item) == VMA_NULL); + if (IsEmpty()) + { + m_Front = item; + m_Back = item; + m_Count = 1; + } + else + { + ItemTypeTraits::AccessPrev(item) = m_Back; + ItemTypeTraits::AccessNext(m_Back) = item; + m_Back = item; + ++m_Count; + } +} + +template +void VmaIntrusiveLinkedList::PushFront(ItemType* item) +{ + VMA_HEAVY_ASSERT(ItemTypeTraits::GetPrev(item) == VMA_NULL && ItemTypeTraits::GetNext(item) == VMA_NULL); + if (IsEmpty()) + { + m_Front = item; + m_Back = item; + m_Count = 1; + } + else + { + ItemTypeTraits::AccessNext(item) = m_Front; + ItemTypeTraits::AccessPrev(m_Front) = item; + m_Front = item; + ++m_Count; + } +} + +template +typename VmaIntrusiveLinkedList::ItemType* VmaIntrusiveLinkedList::PopBack() +{ + VMA_HEAVY_ASSERT(m_Count > 0); + ItemType* const backItem = m_Back; + ItemType* const prevItem = ItemTypeTraits::GetPrev(backItem); + if (prevItem != VMA_NULL) + { + ItemTypeTraits::AccessNext(prevItem) = VMA_NULL; + } + m_Back = prevItem; + --m_Count; + ItemTypeTraits::AccessPrev(backItem) = VMA_NULL; + ItemTypeTraits::AccessNext(backItem) = VMA_NULL; + return backItem; +} + +template +typename VmaIntrusiveLinkedList::ItemType* VmaIntrusiveLinkedList::PopFront() +{ + VMA_HEAVY_ASSERT(m_Count > 0); + ItemType* const frontItem = m_Front; + ItemType* const nextItem = ItemTypeTraits::GetNext(frontItem); + if (nextItem != VMA_NULL) + { + ItemTypeTraits::AccessPrev(nextItem) = VMA_NULL; + } + m_Front = nextItem; + --m_Count; + ItemTypeTraits::AccessPrev(frontItem) = VMA_NULL; + ItemTypeTraits::AccessNext(frontItem) = VMA_NULL; + return frontItem; +} - VmaCurrentBudgetData() +template +void VmaIntrusiveLinkedList::InsertBefore(ItemType* existingItem, ItemType* newItem) +{ + VMA_HEAVY_ASSERT(newItem != VMA_NULL && ItemTypeTraits::GetPrev(newItem) == VMA_NULL && ItemTypeTraits::GetNext(newItem) == VMA_NULL); + if (existingItem != VMA_NULL) { - for(uint32_t heapIndex = 0; heapIndex < VK_MAX_MEMORY_HEAPS; ++heapIndex) + ItemType* const prevItem = ItemTypeTraits::GetPrev(existingItem); + ItemTypeTraits::AccessPrev(newItem) = prevItem; + ItemTypeTraits::AccessNext(newItem) = existingItem; + ItemTypeTraits::AccessPrev(existingItem) = newItem; + if (prevItem != VMA_NULL) { - m_BlockBytes[heapIndex] = 0; - m_AllocationBytes[heapIndex] = 0; -#if VMA_MEMORY_BUDGET - m_VulkanUsage[heapIndex] = 0; - m_VulkanBudget[heapIndex] = 0; - m_BlockBytesAtBudgetFetch[heapIndex] = 0; -#endif + ItemTypeTraits::AccessNext(prevItem) = newItem; + } + else + { + VMA_HEAVY_ASSERT(m_Front == existingItem); + m_Front = newItem; } + ++m_Count; + } + else + PushBack(newItem); +} -#if VMA_MEMORY_BUDGET - m_OperationsSinceBudgetFetch = 0; -#endif +template +void VmaIntrusiveLinkedList::InsertAfter(ItemType* existingItem, ItemType* newItem) +{ + VMA_HEAVY_ASSERT(newItem != VMA_NULL && ItemTypeTraits::GetPrev(newItem) == VMA_NULL && ItemTypeTraits::GetNext(newItem) == VMA_NULL); + if (existingItem != VMA_NULL) + { + ItemType* const nextItem = ItemTypeTraits::GetNext(existingItem); + ItemTypeTraits::AccessNext(newItem) = nextItem; + ItemTypeTraits::AccessPrev(newItem) = existingItem; + ItemTypeTraits::AccessNext(existingItem) = newItem; + if (nextItem != VMA_NULL) + { + ItemTypeTraits::AccessPrev(nextItem) = newItem; + } + else + { + VMA_HEAVY_ASSERT(m_Back == existingItem); + m_Back = newItem; + } + ++m_Count; + } + else + return PushFront(newItem); +} + +template +void VmaIntrusiveLinkedList::Remove(ItemType* item) +{ + VMA_HEAVY_ASSERT(item != VMA_NULL && m_Count > 0); + if (ItemTypeTraits::GetPrev(item) != VMA_NULL) + { + ItemTypeTraits::AccessNext(ItemTypeTraits::AccessPrev(item)) = ItemTypeTraits::GetNext(item); + } + else + { + VMA_HEAVY_ASSERT(m_Front == item); + m_Front = ItemTypeTraits::GetNext(item); } - void AddAllocation(uint32_t heapIndex, VkDeviceSize allocationSize) + if (ItemTypeTraits::GetNext(item) != VMA_NULL) { - m_AllocationBytes[heapIndex] += allocationSize; -#if VMA_MEMORY_BUDGET - ++m_OperationsSinceBudgetFetch; -#endif + ItemTypeTraits::AccessPrev(ItemTypeTraits::AccessNext(item)) = ItemTypeTraits::GetPrev(item); } - - void RemoveAllocation(uint32_t heapIndex, VkDeviceSize allocationSize) + else { - VMA_ASSERT(m_AllocationBytes[heapIndex] >= allocationSize); // DELME - m_AllocationBytes[heapIndex] -= allocationSize; -#if VMA_MEMORY_BUDGET - ++m_OperationsSinceBudgetFetch; -#endif + VMA_HEAVY_ASSERT(m_Back == item); + m_Back = ItemTypeTraits::GetPrev(item); } -}; + ItemTypeTraits::AccessPrev(item) = VMA_NULL; + ItemTypeTraits::AccessNext(item) = VMA_NULL; + --m_Count; +} -// Main allocator object. -struct VmaAllocator_T +template +void VmaIntrusiveLinkedList::RemoveAll() { - VMA_CLASS_NO_COPY(VmaAllocator_T) -public: - bool m_UseMutex; - uint32_t m_VulkanApiVersion; - bool m_UseKhrDedicatedAllocation; // Can be set only if m_VulkanApiVersion < VK_MAKE_VERSION(1, 1, 0). - bool m_UseKhrBindMemory2; // Can be set only if m_VulkanApiVersion < VK_MAKE_VERSION(1, 1, 0). - bool m_UseExtMemoryBudget; - bool m_UseAmdDeviceCoherentMemory; - bool m_UseKhrBufferDeviceAddress; - bool m_UseExtMemoryPriority; - VkDevice m_hDevice; - VkInstance m_hInstance; - bool m_AllocationCallbacksSpecified; - VkAllocationCallbacks m_AllocationCallbacks; - VmaDeviceMemoryCallbacks m_DeviceMemoryCallbacks; - VmaAllocationObjectAllocator m_AllocationObjectAllocator; - - // Each bit (1 << i) is set if HeapSizeLimit is enabled for that heap, so cannot allocate more than the heap size. - uint32_t m_HeapSizeLimitMask; - - VkPhysicalDeviceProperties m_PhysicalDeviceProperties; - VkPhysicalDeviceMemoryProperties m_MemProps; - - // Default pools. - VmaBlockVector* m_pBlockVectors[VK_MAX_MEMORY_TYPES]; + if (!IsEmpty()) + { + ItemType* item = m_Back; + while (item != VMA_NULL) + { + ItemType* const prevItem = ItemTypeTraits::AccessPrev(item); + ItemTypeTraits::AccessPrev(item) = VMA_NULL; + ItemTypeTraits::AccessNext(item) = VMA_NULL; + item = prevItem; + } + m_Front = VMA_NULL; + m_Back = VMA_NULL; + m_Count = 0; + } +} +#endif // _VMA_INTRUSIVE_LINKED_LIST_FUNCTIONS +#endif // _VMA_INTRUSIVE_LINKED_LIST - typedef VmaIntrusiveLinkedList DedicatedAllocationLinkedList; - DedicatedAllocationLinkedList m_DedicatedAllocations[VK_MAX_MEMORY_TYPES]; - VMA_RW_MUTEX m_DedicatedAllocationsMutex[VK_MAX_MEMORY_TYPES]; +// Unused in this version. +#if 0 - VmaCurrentBudgetData m_Budget; - VMA_ATOMIC_UINT32 m_DeviceMemoryCount; // Total number of VkDeviceMemory objects. +#ifndef _VMA_PAIR +template +struct VmaPair +{ + T1 first; + T2 second; - VmaAllocator_T(const VmaAllocatorCreateInfo* pCreateInfo); - VkResult Init(const VmaAllocatorCreateInfo* pCreateInfo); - ~VmaAllocator_T(); + VmaPair() : first(), second() {} + VmaPair(const T1& firstSrc, const T2& secondSrc) : first(firstSrc), second(secondSrc) {} +}; - const VkAllocationCallbacks* GetAllocationCallbacks() const +template +struct VmaPairFirstLess +{ + bool operator()(const VmaPair& lhs, const VmaPair& rhs) const { - return m_AllocationCallbacksSpecified ? &m_AllocationCallbacks : 0; + return lhs.first < rhs.first; } - const VmaVulkanFunctions& GetVulkanFunctions() const + bool operator()(const VmaPair& lhs, const FirstT& rhsFirst) const { - return m_VulkanFunctions; + return lhs.first < rhsFirst; } +}; +#endif // _VMA_PAIR - VkPhysicalDevice GetPhysicalDevice() const { return m_PhysicalDevice; } +#ifndef _VMA_MAP +/* Class compatible with subset of interface of std::unordered_map. +KeyT, ValueT must be POD because they will be stored in VmaVector. +*/ +template +class VmaMap +{ +public: + typedef VmaPair PairType; + typedef PairType* iterator; - VkDeviceSize GetBufferImageGranularity() const - { - return VMA_MAX( - static_cast(VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY), - m_PhysicalDeviceProperties.limits.bufferImageGranularity); - } + VmaMap(const VmaStlAllocator& allocator) : m_Vector(allocator) {} - uint32_t GetMemoryHeapCount() const { return m_MemProps.memoryHeapCount; } - uint32_t GetMemoryTypeCount() const { return m_MemProps.memoryTypeCount; } + iterator begin() { return m_Vector.begin(); } + iterator end() { return m_Vector.end(); } + size_t size() { return m_Vector.size(); } - uint32_t MemoryTypeIndexToHeapIndex(uint32_t memTypeIndex) const - { - VMA_ASSERT(memTypeIndex < m_MemProps.memoryTypeCount); - return m_MemProps.memoryTypes[memTypeIndex].heapIndex; - } - // True when specific memory type is HOST_VISIBLE but not HOST_COHERENT. - bool IsMemoryTypeNonCoherent(uint32_t memTypeIndex) const - { - return (m_MemProps.memoryTypes[memTypeIndex].propertyFlags & (VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT)) == - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; - } - // Minimum alignment for all allocations in specific memory type. - VkDeviceSize GetMemoryTypeMinAlignment(uint32_t memTypeIndex) const + void insert(const PairType& pair); + iterator find(const KeyT& key); + void erase(iterator it); + +private: + VmaVector< PairType, VmaStlAllocator> m_Vector; +}; + +#ifndef _VMA_MAP_FUNCTIONS +template +void VmaMap::insert(const PairType& pair) +{ + const size_t indexToInsert = VmaBinaryFindFirstNotLess( + m_Vector.data(), + m_Vector.data() + m_Vector.size(), + pair, + VmaPairFirstLess()) - m_Vector.data(); + VmaVectorInsert(m_Vector, indexToInsert, pair); +} + +template +VmaPair* VmaMap::find(const KeyT& key) +{ + PairType* it = VmaBinaryFindFirstNotLess( + m_Vector.data(), + m_Vector.data() + m_Vector.size(), + key, + VmaPairFirstLess()); + if ((it != m_Vector.end()) && (it->first == key)) { - return IsMemoryTypeNonCoherent(memTypeIndex) ? - VMA_MAX((VkDeviceSize)VMA_MIN_ALIGNMENT, m_PhysicalDeviceProperties.limits.nonCoherentAtomSize) : - (VkDeviceSize)VMA_MIN_ALIGNMENT; + return it; } - - bool IsIntegratedGpu() const + else { - return m_PhysicalDeviceProperties.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU; + return m_Vector.end(); } +} - uint32_t GetGlobalMemoryTypeBits() const { return m_GlobalMemoryTypeBits; } - -#if VMA_RECORDING_ENABLED - VmaRecorder* GetRecorder() const { return m_pRecorder; } -#endif +template +void VmaMap::erase(iterator it) +{ + VmaVectorRemove(m_Vector, it - m_Vector.begin()); +} +#endif // _VMA_MAP_FUNCTIONS +#endif // _VMA_MAP - void GetBufferMemoryRequirements( - VkBuffer hBuffer, - VkMemoryRequirements& memReq, - bool& requiresDedicatedAllocation, - bool& prefersDedicatedAllocation) const; - void GetImageMemoryRequirements( - VkImage hImage, - VkMemoryRequirements& memReq, - bool& requiresDedicatedAllocation, - bool& prefersDedicatedAllocation) const; +#endif // #if 0 - // Main allocation function. - VkResult AllocateMemory( - const VkMemoryRequirements& vkMemReq, - bool requiresDedicatedAllocation, - bool prefersDedicatedAllocation, - VkBuffer dedicatedBuffer, - VkBufferUsageFlags dedicatedBufferUsage, // UINT32_MAX when unknown. - VkImage dedicatedImage, - const VmaAllocationCreateInfo& createInfo, - VmaSuballocationType suballocType, - size_t allocationCount, - VmaAllocation* pAllocations); +#if !defined(_VMA_STRING_BUILDER) && VMA_STATS_STRING_ENABLED +class VmaStringBuilder +{ +public: + VmaStringBuilder(const VkAllocationCallbacks* allocationCallbacks) : m_Data(VmaStlAllocator(allocationCallbacks)) {} + ~VmaStringBuilder() = default; - // Main deallocation function. - void FreeMemory( - size_t allocationCount, - const VmaAllocation* pAllocations); + size_t GetLength() const { return m_Data.size(); } + const char* GetData() const { return m_Data.data(); } + void AddNewLine() { Add('\n'); } + void Add(char ch) { m_Data.push_back(ch); } - void CalculateStats(VmaStats* pStats); + void Add(const char* pStr); + void AddNumber(uint32_t num); + void AddNumber(uint64_t num); + void AddPointer(const void* ptr); - void GetBudget( - VmaBudget* outBudget, uint32_t firstHeap, uint32_t heapCount); +private: + VmaVector> m_Data; +}; -#if VMA_STATS_STRING_ENABLED - void PrintDetailedMap(class VmaJsonWriter& json); -#endif +#ifndef _VMA_STRING_BUILDER_FUNCTIONS +void VmaStringBuilder::Add(const char* pStr) +{ + const size_t strLen = strlen(pStr); + if (strLen > 0) + { + const size_t oldCount = m_Data.size(); + m_Data.resize(oldCount + strLen); + memcpy(m_Data.data() + oldCount, pStr, strLen); + } +} - VkResult DefragmentationBegin( - const VmaDefragmentationInfo2& info, - VmaDefragmentationStats* pStats, - VmaDefragmentationContext* pContext); - VkResult DefragmentationEnd( - VmaDefragmentationContext context); +void VmaStringBuilder::AddNumber(uint32_t num) +{ + char buf[11]; + buf[10] = '\0'; + char* p = &buf[10]; + do + { + *--p = '0' + (char)(num % 10); + num /= 10; + } while (num); + Add(p); +} - VkResult DefragmentationPassBegin( - VmaDefragmentationPassInfo* pInfo, - VmaDefragmentationContext context); - VkResult DefragmentationPassEnd( - VmaDefragmentationContext context); +void VmaStringBuilder::AddNumber(uint64_t num) +{ + char buf[21]; + buf[20] = '\0'; + char* p = &buf[20]; + do + { + *--p = '0' + (char)(num % 10); + num /= 10; + } while (num); + Add(p); +} - void GetAllocationInfo(VmaAllocation hAllocation, VmaAllocationInfo* pAllocationInfo); - bool TouchAllocation(VmaAllocation hAllocation); +void VmaStringBuilder::AddPointer(const void* ptr) +{ + char buf[21]; + VmaPtrToStr(buf, sizeof(buf), ptr); + Add(buf); +} +#endif //_VMA_STRING_BUILDER_FUNCTIONS +#endif // _VMA_STRING_BUILDER - VkResult CreatePool(const VmaPoolCreateInfo* pCreateInfo, VmaPool* pPool); - void DestroyPool(VmaPool pool); - void GetPoolStats(VmaPool pool, VmaPoolStats* pPoolStats); +#if !defined(_VMA_JSON_WRITER) && VMA_STATS_STRING_ENABLED +/* +Allows to conveniently build a correct JSON document to be written to the +VmaStringBuilder passed to the constructor. +*/ +class VmaJsonWriter +{ + VMA_CLASS_NO_COPY_NO_MOVE(VmaJsonWriter) +public: + // sb - string builder to write the document to. Must remain alive for the whole lifetime of this object. + VmaJsonWriter(const VkAllocationCallbacks* pAllocationCallbacks, VmaStringBuilder& sb); + ~VmaJsonWriter(); - void SetCurrentFrameIndex(uint32_t frameIndex); - uint32_t GetCurrentFrameIndex() const { return m_CurrentFrameIndex.load(); } + // Begins object by writing "{". + // Inside an object, you must call pairs of WriteString and a value, e.g.: + // j.BeginObject(true); j.WriteString("A"); j.WriteNumber(1); j.WriteString("B"); j.WriteNumber(2); j.EndObject(); + // Will write: { "A": 1, "B": 2 } + void BeginObject(bool singleLine = false); + // Ends object by writing "}". + void EndObject(); - void MakePoolAllocationsLost( - VmaPool hPool, - size_t* pLostAllocationCount); - VkResult CheckPoolCorruption(VmaPool hPool); - VkResult CheckCorruption(uint32_t memoryTypeBits); + // Begins array by writing "[". + // Inside an array, you can write a sequence of any values. + void BeginArray(bool singleLine = false); + // Ends array by writing "[". + void EndArray(); - void CreateLostAllocation(VmaAllocation* pAllocation); + // Writes a string value inside "". + // pStr can contain any ANSI characters, including '"', new line etc. - they will be properly escaped. + void WriteString(const char* pStr); - // Call to Vulkan function vkAllocateMemory with accompanying bookkeeping. - VkResult AllocateVulkanMemory(const VkMemoryAllocateInfo* pAllocateInfo, VkDeviceMemory* pMemory); - // Call to Vulkan function vkFreeMemory with accompanying bookkeeping. - void FreeVulkanMemory(uint32_t memoryType, VkDeviceSize size, VkDeviceMemory hMemory); - // Call to Vulkan function vkBindBufferMemory or vkBindBufferMemory2KHR. - VkResult BindVulkanBuffer( - VkDeviceMemory memory, - VkDeviceSize memoryOffset, - VkBuffer buffer, - const void* pNext); - // Call to Vulkan function vkBindImageMemory or vkBindImageMemory2KHR. - VkResult BindVulkanImage( - VkDeviceMemory memory, - VkDeviceSize memoryOffset, - VkImage image, - const void* pNext); + // Begins writing a string value. + // Call BeginString, ContinueString, ContinueString, ..., EndString instead of + // WriteString to conveniently build the string content incrementally, made of + // parts including numbers. + void BeginString(const char* pStr = VMA_NULL); + // Posts next part of an open string. + void ContinueString(const char* pStr); + // Posts next part of an open string. The number is converted to decimal characters. + void ContinueString(uint32_t n); + void ContinueString(uint64_t n); + // Posts next part of an open string. Pointer value is converted to characters + // using "%p" formatting - shown as hexadecimal number, e.g.: 000000081276Ad00 + void ContinueString_Pointer(const void* ptr); + // Ends writing a string value by writing '"'. + void EndString(const char* pStr = VMA_NULL); - VkResult Map(VmaAllocation hAllocation, void** ppData); - void Unmap(VmaAllocation hAllocation); + // Writes a number value. + void WriteNumber(uint32_t n); + void WriteNumber(uint64_t n); + // Writes a boolean value - false or true. + void WriteBool(bool b); + // Writes a null value. + void WriteNull(); - VkResult BindBufferMemory( - VmaAllocation hAllocation, - VkDeviceSize allocationLocalOffset, - VkBuffer hBuffer, - const void* pNext); - VkResult BindImageMemory( - VmaAllocation hAllocation, - VkDeviceSize allocationLocalOffset, - VkImage hImage, - const void* pNext); +private: + enum COLLECTION_TYPE + { + COLLECTION_TYPE_OBJECT, + COLLECTION_TYPE_ARRAY, + }; + struct StackItem + { + COLLECTION_TYPE type; + uint32_t valueCount; + bool singleLineMode; + }; - VkResult FlushOrInvalidateAllocation( - VmaAllocation hAllocation, - VkDeviceSize offset, VkDeviceSize size, - VMA_CACHE_OPERATION op); - VkResult FlushOrInvalidateAllocations( - uint32_t allocationCount, - const VmaAllocation* allocations, - const VkDeviceSize* offsets, const VkDeviceSize* sizes, - VMA_CACHE_OPERATION op); + static const char* const INDENT; - void FillAllocation(const VmaAllocation hAllocation, uint8_t pattern); + VmaStringBuilder& m_SB; + VmaVector< StackItem, VmaStlAllocator > m_Stack; + bool m_InsideString; - /* - Returns bit mask of memory types that can support defragmentation on GPU as - they support creation of required buffer for copy operations. - */ - uint32_t GetGpuDefragmentationMemoryTypeBits(); + void BeginValue(bool isString); + void WriteIndent(bool oneLess = false); +}; +const char* const VmaJsonWriter::INDENT = " "; -#if VMA_EXTERNAL_MEMORY - VkExternalMemoryHandleTypeFlagsKHR GetExternalMemoryHandleTypeFlags(uint32_t memTypeIndex) const - { - return m_TypeExternalMemoryHandleTypes[memTypeIndex]; - } -#endif // #if VMA_EXTERNAL_MEMORY +#ifndef _VMA_JSON_WRITER_FUNCTIONS +VmaJsonWriter::VmaJsonWriter(const VkAllocationCallbacks* pAllocationCallbacks, VmaStringBuilder& sb) + : m_SB(sb), + m_Stack(VmaStlAllocator(pAllocationCallbacks)), + m_InsideString(false) {} -private: - VkDeviceSize m_PreferredLargeHeapBlockSize; +VmaJsonWriter::~VmaJsonWriter() +{ + VMA_ASSERT(!m_InsideString); + VMA_ASSERT(m_Stack.empty()); +} - VkPhysicalDevice m_PhysicalDevice; - VMA_ATOMIC_UINT32 m_CurrentFrameIndex; - VMA_ATOMIC_UINT32 m_GpuDefragmentationMemoryTypeBits; // UINT32_MAX means uninitialized. -#if VMA_EXTERNAL_MEMORY - VkExternalMemoryHandleTypeFlagsKHR m_TypeExternalMemoryHandleTypes[VK_MAX_MEMORY_TYPES]; -#endif // #if VMA_EXTERNAL_MEMORY +void VmaJsonWriter::BeginObject(bool singleLine) +{ + VMA_ASSERT(!m_InsideString); - VMA_RW_MUTEX m_PoolsMutex; - typedef VmaIntrusiveLinkedList PoolList; - // Protected by m_PoolsMutex. - PoolList m_Pools; - uint32_t m_NextPoolId; + BeginValue(false); + m_SB.Add('{'); - VmaVulkanFunctions m_VulkanFunctions; + StackItem item; + item.type = COLLECTION_TYPE_OBJECT; + item.valueCount = 0; + item.singleLineMode = singleLine; + m_Stack.push_back(item); +} - // Global bit mask AND-ed with any memoryTypeBits to disallow certain memory types. - uint32_t m_GlobalMemoryTypeBits; +void VmaJsonWriter::EndObject() +{ + VMA_ASSERT(!m_InsideString); -#if VMA_RECORDING_ENABLED - VmaRecorder* m_pRecorder; -#endif + WriteIndent(true); + m_SB.Add('}'); - void ImportVulkanFunctions(const VmaVulkanFunctions* pVulkanFunctions); + VMA_ASSERT(!m_Stack.empty() && m_Stack.back().type == COLLECTION_TYPE_OBJECT); + m_Stack.pop_back(); +} -#if VMA_STATIC_VULKAN_FUNCTIONS == 1 - void ImportVulkanFunctions_Static(); -#endif +void VmaJsonWriter::BeginArray(bool singleLine) +{ + VMA_ASSERT(!m_InsideString); - void ImportVulkanFunctions_Custom(const VmaVulkanFunctions* pVulkanFunctions); + BeginValue(false); + m_SB.Add('['); -#if VMA_DYNAMIC_VULKAN_FUNCTIONS == 1 - void ImportVulkanFunctions_Dynamic(); -#endif + StackItem item; + item.type = COLLECTION_TYPE_ARRAY; + item.valueCount = 0; + item.singleLineMode = singleLine; + m_Stack.push_back(item); +} - void ValidateVulkanFunctions(); +void VmaJsonWriter::EndArray() +{ + VMA_ASSERT(!m_InsideString); - VkDeviceSize CalcPreferredBlockSize(uint32_t memTypeIndex); + WriteIndent(true); + m_SB.Add(']'); - VkResult AllocateMemoryOfType( - VkDeviceSize size, - VkDeviceSize alignment, - bool dedicatedAllocation, - VkBuffer dedicatedBuffer, - VkBufferUsageFlags dedicatedBufferUsage, - VkImage dedicatedImage, - const VmaAllocationCreateInfo& createInfo, - uint32_t memTypeIndex, - VmaSuballocationType suballocType, - size_t allocationCount, - VmaAllocation* pAllocations); + VMA_ASSERT(!m_Stack.empty() && m_Stack.back().type == COLLECTION_TYPE_ARRAY); + m_Stack.pop_back(); +} - // Helper function only to be used inside AllocateDedicatedMemory. - VkResult AllocateDedicatedMemoryPage( - VkDeviceSize size, - VmaSuballocationType suballocType, - uint32_t memTypeIndex, - const VkMemoryAllocateInfo& allocInfo, - bool map, - bool isUserDataString, - void* pUserData, - VmaAllocation* pAllocation); +void VmaJsonWriter::WriteString(const char* pStr) +{ + BeginString(pStr); + EndString(); +} - // Allocates and registers new VkDeviceMemory specifically for dedicated allocations. - VkResult AllocateDedicatedMemory( - VkDeviceSize size, - VmaSuballocationType suballocType, - uint32_t memTypeIndex, - bool withinBudget, - bool map, - bool isUserDataString, - void* pUserData, - float priority, - VkBuffer dedicatedBuffer, - VkBufferUsageFlags dedicatedBufferUsage, - VkImage dedicatedImage, - size_t allocationCount, - VmaAllocation* pAllocations); +void VmaJsonWriter::BeginString(const char* pStr) +{ + VMA_ASSERT(!m_InsideString); - void FreeDedicatedMemory(const VmaAllocation allocation); + BeginValue(true); + m_SB.Add('"'); + m_InsideString = true; + if (pStr != VMA_NULL && pStr[0] != '\0') + { + ContinueString(pStr); + } +} - /* - Calculates and returns bit mask of memory types that can support defragmentation - on GPU as they support creation of required buffer for copy operations. - */ - uint32_t CalculateGpuDefragmentationMemoryTypeBits() const; +void VmaJsonWriter::ContinueString(const char* pStr) +{ + VMA_ASSERT(m_InsideString); - uint32_t CalculateGlobalMemoryTypeBits() const; + const size_t strLen = strlen(pStr); + for (size_t i = 0; i < strLen; ++i) + { + char ch = pStr[i]; + if (ch == '\\') + { + m_SB.Add("\\\\"); + } + else if (ch == '"') + { + m_SB.Add("\\\""); + } + else if ((uint8_t)ch >= 32) + { + m_SB.Add(ch); + } + else switch (ch) + { + case '\b': + m_SB.Add("\\b"); + break; + case '\f': + m_SB.Add("\\f"); + break; + case '\n': + m_SB.Add("\\n"); + break; + case '\r': + m_SB.Add("\\r"); + break; + case '\t': + m_SB.Add("\\t"); + break; + default: + VMA_ASSERT(0 && "Character not currently supported."); + } + } +} - bool GetFlushOrInvalidateRange( - VmaAllocation allocation, - VkDeviceSize offset, VkDeviceSize size, - VkMappedMemoryRange& outRange) const; +void VmaJsonWriter::ContinueString(uint32_t n) +{ + VMA_ASSERT(m_InsideString); + m_SB.AddNumber(n); +} -#if VMA_MEMORY_BUDGET - void UpdateVulkanBudget(); -#endif // #if VMA_MEMORY_BUDGET -}; +void VmaJsonWriter::ContinueString(uint64_t n) +{ + VMA_ASSERT(m_InsideString); + m_SB.AddNumber(n); +} -//////////////////////////////////////////////////////////////////////////////// -// Memory allocation #2 after VmaAllocator_T definition +void VmaJsonWriter::ContinueString_Pointer(const void* ptr) +{ + VMA_ASSERT(m_InsideString); + m_SB.AddPointer(ptr); +} + +void VmaJsonWriter::EndString(const char* pStr) +{ + VMA_ASSERT(m_InsideString); + if (pStr != VMA_NULL && pStr[0] != '\0') + { + ContinueString(pStr); + } + m_SB.Add('"'); + m_InsideString = false; +} -static void* VmaMalloc(VmaAllocator hAllocator, size_t size, size_t alignment) +void VmaJsonWriter::WriteNumber(uint32_t n) { - return VmaMalloc(&hAllocator->m_AllocationCallbacks, size, alignment); + VMA_ASSERT(!m_InsideString); + BeginValue(false); + m_SB.AddNumber(n); } -static void VmaFree(VmaAllocator hAllocator, void* ptr) +void VmaJsonWriter::WriteNumber(uint64_t n) { - VmaFree(&hAllocator->m_AllocationCallbacks, ptr); + VMA_ASSERT(!m_InsideString); + BeginValue(false); + m_SB.AddNumber(n); } -template -static T* VmaAllocate(VmaAllocator hAllocator) +void VmaJsonWriter::WriteBool(bool b) { - return (T*)VmaMalloc(hAllocator, sizeof(T), VMA_ALIGN_OF(T)); + VMA_ASSERT(!m_InsideString); + BeginValue(false); + m_SB.Add(b ? "true" : "false"); } -template -static T* VmaAllocateArray(VmaAllocator hAllocator, size_t count) +void VmaJsonWriter::WriteNull() { - return (T*)VmaMalloc(hAllocator, sizeof(T) * count, VMA_ALIGN_OF(T)); + VMA_ASSERT(!m_InsideString); + BeginValue(false); + m_SB.Add("null"); } -template -static void vma_delete(VmaAllocator hAllocator, T* ptr) +void VmaJsonWriter::BeginValue(bool isString) { - if(ptr != VMA_NULL) + if (!m_Stack.empty()) { - ptr->~T(); - VmaFree(hAllocator, ptr); + StackItem& currItem = m_Stack.back(); + if (currItem.type == COLLECTION_TYPE_OBJECT && + currItem.valueCount % 2 == 0) + { + VMA_ASSERT(isString); + } + + if (currItem.type == COLLECTION_TYPE_OBJECT && + currItem.valueCount % 2 != 0) + { + m_SB.Add(": "); + } + else if (currItem.valueCount > 0) + { + m_SB.Add(", "); + WriteIndent(); + } + else + { + WriteIndent(); + } + ++currItem.valueCount; } } -template -static void vma_delete_array(VmaAllocator hAllocator, T* ptr, size_t count) +void VmaJsonWriter::WriteIndent(bool oneLess) { - if(ptr != VMA_NULL) + if (!m_Stack.empty() && !m_Stack.back().singleLineMode) { - for(size_t i = count; i--; ) - ptr[i].~T(); - VmaFree(hAllocator, ptr); + m_SB.AddNewLine(); + + size_t count = m_Stack.size(); + if (count > 0 && oneLess) + { + --count; + } + for (size_t i = 0; i < count; ++i) + { + m_SB.Add(INDENT); + } } } +#endif // _VMA_JSON_WRITER_FUNCTIONS -//////////////////////////////////////////////////////////////////////////////// -// VmaStringBuilder +static void VmaPrintDetailedStatistics(VmaJsonWriter& json, const VmaDetailedStatistics& stat) +{ + json.BeginObject(); -#if VMA_STATS_STRING_ENABLED + json.WriteString("BlockCount"); + json.WriteNumber(stat.statistics.blockCount); + json.WriteString("BlockBytes"); + json.WriteNumber(stat.statistics.blockBytes); + json.WriteString("AllocationCount"); + json.WriteNumber(stat.statistics.allocationCount); + json.WriteString("AllocationBytes"); + json.WriteNumber(stat.statistics.allocationBytes); + json.WriteString("UnusedRangeCount"); + json.WriteNumber(stat.unusedRangeCount); -class VmaStringBuilder + if (stat.statistics.allocationCount > 1) + { + json.WriteString("AllocationSizeMin"); + json.WriteNumber(stat.allocationSizeMin); + json.WriteString("AllocationSizeMax"); + json.WriteNumber(stat.allocationSizeMax); + } + if (stat.unusedRangeCount > 1) + { + json.WriteString("UnusedRangeSizeMin"); + json.WriteNumber(stat.unusedRangeSizeMin); + json.WriteString("UnusedRangeSizeMax"); + json.WriteNumber(stat.unusedRangeSizeMax); + } + json.EndObject(); +} +#endif // _VMA_JSON_WRITER + +#ifndef _VMA_MAPPING_HYSTERESIS + +class VmaMappingHysteresis { + VMA_CLASS_NO_COPY_NO_MOVE(VmaMappingHysteresis) public: - VmaStringBuilder(VmaAllocator alloc) : m_Data(VmaStlAllocator(alloc->GetAllocationCallbacks())) { } - size_t GetLength() const { return m_Data.size(); } - const char* GetData() const { return m_Data.data(); } + VmaMappingHysteresis() = default; - void Add(char ch) { m_Data.push_back(ch); } - void Add(const char* pStr); - void AddNewLine() { Add('\n'); } - void AddNumber(uint32_t num); - void AddNumber(uint64_t num); - void AddPointer(const void* ptr); + uint32_t GetExtraMapping() const { return m_ExtraMapping; } -private: - VmaVector< char, VmaStlAllocator > m_Data; -}; + // Call when Map was called. + // Returns true if switched to extra +1 mapping reference count. + bool PostMap() + { +#if VMA_MAPPING_HYSTERESIS_ENABLED + if(m_ExtraMapping == 0) + { + ++m_MajorCounter; + if(m_MajorCounter >= COUNTER_MIN_EXTRA_MAPPING) + { + m_ExtraMapping = 1; + m_MajorCounter = 0; + m_MinorCounter = 0; + return true; + } + } + else // m_ExtraMapping == 1 + PostMinorCounter(); +#endif // #if VMA_MAPPING_HYSTERESIS_ENABLED + return false; + } -void VmaStringBuilder::Add(const char* pStr) -{ - const size_t strLen = strlen(pStr); - if(strLen > 0) + // Call when Unmap was called. + void PostUnmap() { - const size_t oldCount = m_Data.size(); - m_Data.resize(oldCount + strLen); - memcpy(m_Data.data() + oldCount, pStr, strLen); +#if VMA_MAPPING_HYSTERESIS_ENABLED + if(m_ExtraMapping == 0) + ++m_MajorCounter; + else // m_ExtraMapping == 1 + PostMinorCounter(); +#endif // #if VMA_MAPPING_HYSTERESIS_ENABLED } -} -void VmaStringBuilder::AddNumber(uint32_t num) -{ - char buf[11]; - buf[10] = '\0'; - char *p = &buf[10]; - do + // Call when allocation was made from the memory block. + void PostAlloc() { - *--p = '0' + (num % 10); - num /= 10; +#if VMA_MAPPING_HYSTERESIS_ENABLED + if(m_ExtraMapping == 1) + ++m_MajorCounter; + else // m_ExtraMapping == 0 + PostMinorCounter(); +#endif // #if VMA_MAPPING_HYSTERESIS_ENABLED } - while(num); - Add(p); -} -void VmaStringBuilder::AddNumber(uint64_t num) -{ - char buf[21]; - buf[20] = '\0'; - char *p = &buf[20]; - do + // Call when allocation was freed from the memory block. + // Returns true if switched to extra -1 mapping reference count. + bool PostFree() { - *--p = '0' + (num % 10); - num /= 10; +#if VMA_MAPPING_HYSTERESIS_ENABLED + if(m_ExtraMapping == 1) + { + ++m_MajorCounter; + if(m_MajorCounter >= COUNTER_MIN_EXTRA_MAPPING && + m_MajorCounter > m_MinorCounter + 1) + { + m_ExtraMapping = 0; + m_MajorCounter = 0; + m_MinorCounter = 0; + return true; + } + } + else // m_ExtraMapping == 0 + PostMinorCounter(); +#endif // #if VMA_MAPPING_HYSTERESIS_ENABLED + return false; } - while(num); - Add(p); -} -void VmaStringBuilder::AddPointer(const void* ptr) -{ - char buf[21]; - VmaPtrToStr(buf, sizeof(buf), ptr); - Add(buf); -} +private: + static const int32_t COUNTER_MIN_EXTRA_MAPPING = 7; -#endif // #if VMA_STATS_STRING_ENABLED + uint32_t m_MinorCounter = 0; + uint32_t m_MajorCounter = 0; + uint32_t m_ExtraMapping = 0; // 0 or 1. -//////////////////////////////////////////////////////////////////////////////// -// VmaJsonWriter + void PostMinorCounter() + { + if(m_MinorCounter < m_MajorCounter) + { + ++m_MinorCounter; + } + else if(m_MajorCounter > 0) + { + --m_MajorCounter; + --m_MinorCounter; + } + } +}; -#if VMA_STATS_STRING_ENABLED +#endif // _VMA_MAPPING_HYSTERESIS -class VmaJsonWriter +#ifndef _VMA_DEVICE_MEMORY_BLOCK +/* +Represents a single block of device memory (`VkDeviceMemory`) with all the +data about its regions (aka suballocations, #VmaAllocation), assigned and free. + +Thread-safety: +- Access to m_pMetadata must be externally synchronized. +- Map, Unmap, Bind* are synchronized internally. +*/ +class VmaDeviceMemoryBlock { - VMA_CLASS_NO_COPY(VmaJsonWriter) + VMA_CLASS_NO_COPY_NO_MOVE(VmaDeviceMemoryBlock) public: - VmaJsonWriter(const VkAllocationCallbacks* pAllocationCallbacks, VmaStringBuilder& sb); - ~VmaJsonWriter(); - - void BeginObject(bool singleLine = false); - void EndObject(); - - void BeginArray(bool singleLine = false); - void EndArray(); + VmaBlockMetadata* m_pMetadata; - void WriteString(const char* pStr); - void BeginString(const char* pStr = VMA_NULL); - void ContinueString(const char* pStr); - void ContinueString(uint32_t n); - void ContinueString(uint64_t n); - void ContinueString_Pointer(const void* ptr); - void EndString(const char* pStr = VMA_NULL); + VmaDeviceMemoryBlock(VmaAllocator hAllocator); + ~VmaDeviceMemoryBlock(); - void WriteNumber(uint32_t n); - void WriteNumber(uint64_t n); - void WriteBool(bool b); - void WriteNull(); + // Always call after construction. + void Init( + VmaAllocator hAllocator, + VmaPool hParentPool, + uint32_t newMemoryTypeIndex, + VkDeviceMemory newMemory, + VkDeviceSize newSize, + uint32_t id, + uint32_t algorithm, + VkDeviceSize bufferImageGranularity); + // Always call before destruction. + void Destroy(VmaAllocator allocator); -private: - static const char* const INDENT; + VmaPool GetParentPool() const { return m_hParentPool; } + VkDeviceMemory GetDeviceMemory() const { return m_hMemory; } + uint32_t GetMemoryTypeIndex() const { return m_MemoryTypeIndex; } + uint32_t GetId() const { return m_Id; } + void* GetMappedData() const { return m_pMappedData; } + uint32_t GetMapRefCount() const { return m_MapCount; } - enum COLLECTION_TYPE - { - COLLECTION_TYPE_OBJECT, - COLLECTION_TYPE_ARRAY, - }; - struct StackItem - { - COLLECTION_TYPE type; - uint32_t valueCount; - bool singleLineMode; - }; + // Call when allocation/free was made from m_pMetadata. + // Used for m_MappingHysteresis. + void PostAlloc(VmaAllocator hAllocator); + void PostFree(VmaAllocator hAllocator); - VmaStringBuilder& m_SB; - VmaVector< StackItem, VmaStlAllocator > m_Stack; - bool m_InsideString; + // Validates all data structures inside this object. If not valid, returns false. + bool Validate() const; + VkResult CheckCorruption(VmaAllocator hAllocator); - void BeginValue(bool isString); - void WriteIndent(bool oneLess = false); -}; + // ppData can be null. + VkResult Map(VmaAllocator hAllocator, uint32_t count, void** ppData); + void Unmap(VmaAllocator hAllocator, uint32_t count); -const char* const VmaJsonWriter::INDENT = " "; + VkResult WriteMagicValueAfterAllocation(VmaAllocator hAllocator, VkDeviceSize allocOffset, VkDeviceSize allocSize); + VkResult ValidateMagicValueAfterAllocation(VmaAllocator hAllocator, VkDeviceSize allocOffset, VkDeviceSize allocSize); -VmaJsonWriter::VmaJsonWriter(const VkAllocationCallbacks* pAllocationCallbacks, VmaStringBuilder& sb) : - m_SB(sb), - m_Stack(VmaStlAllocator(pAllocationCallbacks)), - m_InsideString(false) -{ -} + VkResult BindBufferMemory( + const VmaAllocator hAllocator, + const VmaAllocation hAllocation, + VkDeviceSize allocationLocalOffset, + VkBuffer hBuffer, + const void* pNext); + VkResult BindImageMemory( + const VmaAllocator hAllocator, + const VmaAllocation hAllocation, + VkDeviceSize allocationLocalOffset, + VkImage hImage, + const void* pNext); -VmaJsonWriter::~VmaJsonWriter() -{ - VMA_ASSERT(!m_InsideString); - VMA_ASSERT(m_Stack.empty()); -} +private: + VmaPool m_hParentPool; // VK_NULL_HANDLE if not belongs to custom pool. + uint32_t m_MemoryTypeIndex; + uint32_t m_Id; + VkDeviceMemory m_hMemory; -void VmaJsonWriter::BeginObject(bool singleLine) -{ - VMA_ASSERT(!m_InsideString); + /* + Protects access to m_hMemory so it is not used by multiple threads simultaneously, e.g. vkMapMemory, vkBindBufferMemory. + Also protects m_MapCount, m_pMappedData. + Allocations, deallocations, any change in m_pMetadata is protected by parent's VmaBlockVector::m_Mutex. + */ + VMA_MUTEX m_MapAndBindMutex; + VmaMappingHysteresis m_MappingHysteresis; + uint32_t m_MapCount; + void* m_pMappedData; +}; +#endif // _VMA_DEVICE_MEMORY_BLOCK - BeginValue(false); - m_SB.Add('{'); +#ifndef _VMA_ALLOCATION_T +struct VmaAllocation_T +{ + friend struct VmaDedicatedAllocationListItemTraits; - StackItem item; - item.type = COLLECTION_TYPE_OBJECT; - item.valueCount = 0; - item.singleLineMode = singleLine; - m_Stack.push_back(item); -} + enum FLAGS + { + FLAG_PERSISTENT_MAP = 0x01, + FLAG_MAPPING_ALLOWED = 0x02, + }; -void VmaJsonWriter::EndObject() -{ - VMA_ASSERT(!m_InsideString); +public: + enum ALLOCATION_TYPE + { + ALLOCATION_TYPE_NONE, + ALLOCATION_TYPE_BLOCK, + ALLOCATION_TYPE_DEDICATED, + }; - WriteIndent(true); - m_SB.Add('}'); + // This struct is allocated using VmaPoolAllocator. + VmaAllocation_T(bool mappingAllowed); + ~VmaAllocation_T(); - VMA_ASSERT(!m_Stack.empty() && m_Stack.back().type == COLLECTION_TYPE_OBJECT); - m_Stack.pop_back(); -} + void InitBlockAllocation( + VmaDeviceMemoryBlock* block, + VmaAllocHandle allocHandle, + VkDeviceSize alignment, + VkDeviceSize size, + uint32_t memoryTypeIndex, + VmaSuballocationType suballocationType, + bool mapped); + // pMappedData not null means allocation is created with MAPPED flag. + void InitDedicatedAllocation( + VmaPool hParentPool, + uint32_t memoryTypeIndex, + VkDeviceMemory hMemory, + VmaSuballocationType suballocationType, + void* pMappedData, + VkDeviceSize size); -void VmaJsonWriter::BeginArray(bool singleLine) -{ - VMA_ASSERT(!m_InsideString); + ALLOCATION_TYPE GetType() const { return (ALLOCATION_TYPE)m_Type; } + VkDeviceSize GetAlignment() const { return m_Alignment; } + VkDeviceSize GetSize() const { return m_Size; } + void* GetUserData() const { return m_pUserData; } + const char* GetName() const { return m_pName; } + VmaSuballocationType GetSuballocationType() const { return (VmaSuballocationType)m_SuballocationType; } - BeginValue(false); - m_SB.Add('['); + VmaDeviceMemoryBlock* GetBlock() const { VMA_ASSERT(m_Type == ALLOCATION_TYPE_BLOCK); return m_BlockAllocation.m_Block; } + uint32_t GetMemoryTypeIndex() const { return m_MemoryTypeIndex; } + bool IsPersistentMap() const { return (m_Flags & FLAG_PERSISTENT_MAP) != 0; } + bool IsMappingAllowed() const { return (m_Flags & FLAG_MAPPING_ALLOWED) != 0; } + + void SetUserData(VmaAllocator hAllocator, void* pUserData) { m_pUserData = pUserData; } + void SetName(VmaAllocator hAllocator, const char* pName); + void FreeName(VmaAllocator hAllocator); + uint8_t SwapBlockAllocation(VmaAllocator hAllocator, VmaAllocation allocation); + VmaAllocHandle GetAllocHandle() const; + VkDeviceSize GetOffset() const; + VmaPool GetParentPool() const; + VkDeviceMemory GetMemory() const; + void* GetMappedData() const; - StackItem item; - item.type = COLLECTION_TYPE_ARRAY; - item.valueCount = 0; - item.singleLineMode = singleLine; - m_Stack.push_back(item); -} + void BlockAllocMap(); + void BlockAllocUnmap(); + VkResult DedicatedAllocMap(VmaAllocator hAllocator, void** ppData); + void DedicatedAllocUnmap(VmaAllocator hAllocator); -void VmaJsonWriter::EndArray() -{ - VMA_ASSERT(!m_InsideString); +#if VMA_STATS_STRING_ENABLED + uint32_t GetBufferImageUsage() const { return m_BufferImageUsage; } - WriteIndent(true); - m_SB.Add(']'); + void InitBufferImageUsage(uint32_t bufferImageUsage); + void PrintParameters(class VmaJsonWriter& json) const; +#endif - VMA_ASSERT(!m_Stack.empty() && m_Stack.back().type == COLLECTION_TYPE_ARRAY); - m_Stack.pop_back(); -} +private: + // Allocation out of VmaDeviceMemoryBlock. + struct BlockAllocation + { + VmaDeviceMemoryBlock* m_Block; + VmaAllocHandle m_AllocHandle; + }; + // Allocation for an object that has its own private VkDeviceMemory. + struct DedicatedAllocation + { + VmaPool m_hParentPool; // VK_NULL_HANDLE if not belongs to custom pool. + VkDeviceMemory m_hMemory; + void* m_pMappedData; // Not null means memory is mapped. + VmaAllocation_T* m_Prev; + VmaAllocation_T* m_Next; + }; + union + { + // Allocation out of VmaDeviceMemoryBlock. + BlockAllocation m_BlockAllocation; + // Allocation for an object that has its own private VkDeviceMemory. + DedicatedAllocation m_DedicatedAllocation; + }; -void VmaJsonWriter::WriteString(const char* pStr) -{ - BeginString(pStr); - EndString(); -} + VkDeviceSize m_Alignment; + VkDeviceSize m_Size; + void* m_pUserData; + char* m_pName; + uint32_t m_MemoryTypeIndex; + uint8_t m_Type; // ALLOCATION_TYPE + uint8_t m_SuballocationType; // VmaSuballocationType + // Reference counter for vmaMapMemory()/vmaUnmapMemory(). + uint8_t m_MapCount; + uint8_t m_Flags; // enum FLAGS +#if VMA_STATS_STRING_ENABLED + uint32_t m_BufferImageUsage; // 0 if unknown. +#endif +}; +#endif // _VMA_ALLOCATION_T -void VmaJsonWriter::BeginString(const char* pStr) +#ifndef _VMA_DEDICATED_ALLOCATION_LIST_ITEM_TRAITS +struct VmaDedicatedAllocationListItemTraits { - VMA_ASSERT(!m_InsideString); + typedef VmaAllocation_T ItemType; - BeginValue(true); - m_SB.Add('"'); - m_InsideString = true; - if(pStr != VMA_NULL && pStr[0] != '\0') + static ItemType* GetPrev(const ItemType* item) { - ContinueString(pStr); + VMA_HEAVY_ASSERT(item->GetType() == VmaAllocation_T::ALLOCATION_TYPE_DEDICATED); + return item->m_DedicatedAllocation.m_Prev; } -} - -void VmaJsonWriter::ContinueString(const char* pStr) -{ - VMA_ASSERT(m_InsideString); - - const size_t strLen = strlen(pStr); - for(size_t i = 0; i < strLen; ++i) + static ItemType* GetNext(const ItemType* item) { - char ch = pStr[i]; - if(ch == '\\') - { - m_SB.Add("\\\\"); - } - else if(ch == '"') - { - m_SB.Add("\\\""); - } - else if(ch >= 32) - { - m_SB.Add(ch); - } - else switch(ch) - { - case '\b': - m_SB.Add("\\b"); - break; - case '\f': - m_SB.Add("\\f"); - break; - case '\n': - m_SB.Add("\\n"); - break; - case '\r': - m_SB.Add("\\r"); - break; - case '\t': - m_SB.Add("\\t"); - break; - default: - VMA_ASSERT(0 && "Character not currently supported."); - break; - } + VMA_HEAVY_ASSERT(item->GetType() == VmaAllocation_T::ALLOCATION_TYPE_DEDICATED); + return item->m_DedicatedAllocation.m_Next; } -} - -void VmaJsonWriter::ContinueString(uint32_t n) -{ - VMA_ASSERT(m_InsideString); - m_SB.AddNumber(n); -} - -void VmaJsonWriter::ContinueString(uint64_t n) -{ - VMA_ASSERT(m_InsideString); - m_SB.AddNumber(n); -} - -void VmaJsonWriter::ContinueString_Pointer(const void* ptr) -{ - VMA_ASSERT(m_InsideString); - m_SB.AddPointer(ptr); -} - -void VmaJsonWriter::EndString(const char* pStr) -{ - VMA_ASSERT(m_InsideString); - if(pStr != VMA_NULL && pStr[0] != '\0') + static ItemType*& AccessPrev(ItemType* item) { - ContinueString(pStr); + VMA_HEAVY_ASSERT(item->GetType() == VmaAllocation_T::ALLOCATION_TYPE_DEDICATED); + return item->m_DedicatedAllocation.m_Prev; } - m_SB.Add('"'); - m_InsideString = false; -} - -void VmaJsonWriter::WriteNumber(uint32_t n) -{ - VMA_ASSERT(!m_InsideString); - BeginValue(false); - m_SB.AddNumber(n); -} - -void VmaJsonWriter::WriteNumber(uint64_t n) -{ - VMA_ASSERT(!m_InsideString); - BeginValue(false); - m_SB.AddNumber(n); -} + static ItemType*& AccessNext(ItemType* item) + { + VMA_HEAVY_ASSERT(item->GetType() == VmaAllocation_T::ALLOCATION_TYPE_DEDICATED); + return item->m_DedicatedAllocation.m_Next; + } +}; +#endif // _VMA_DEDICATED_ALLOCATION_LIST_ITEM_TRAITS -void VmaJsonWriter::WriteBool(bool b) +#ifndef _VMA_DEDICATED_ALLOCATION_LIST +/* +Stores linked list of VmaAllocation_T objects. +Thread-safe, synchronized internally. +*/ +class VmaDedicatedAllocationList { - VMA_ASSERT(!m_InsideString); - BeginValue(false); - m_SB.Add(b ? "true" : "false"); -} + VMA_CLASS_NO_COPY_NO_MOVE(VmaDedicatedAllocationList) +public: + VmaDedicatedAllocationList() {} + ~VmaDedicatedAllocationList(); -void VmaJsonWriter::WriteNull() -{ - VMA_ASSERT(!m_InsideString); - BeginValue(false); - m_SB.Add("null"); -} + void Init(bool useMutex) { m_UseMutex = useMutex; } + bool Validate(); -void VmaJsonWriter::BeginValue(bool isString) -{ - if(!m_Stack.empty()) - { - StackItem& currItem = m_Stack.back(); - if(currItem.type == COLLECTION_TYPE_OBJECT && - currItem.valueCount % 2 == 0) - { - VMA_ASSERT(isString); - } + void AddDetailedStatistics(VmaDetailedStatistics& inoutStats); + void AddStatistics(VmaStatistics& inoutStats); +#if VMA_STATS_STRING_ENABLED + // Writes JSON array with the list of allocations. + void BuildStatsString(VmaJsonWriter& json); +#endif - if(currItem.type == COLLECTION_TYPE_OBJECT && - currItem.valueCount % 2 != 0) - { - m_SB.Add(": "); - } - else if(currItem.valueCount > 0) - { - m_SB.Add(", "); - WriteIndent(); - } - else - { - WriteIndent(); - } - ++currItem.valueCount; - } -} + bool IsEmpty(); + void Register(VmaAllocation alloc); + void Unregister(VmaAllocation alloc); -void VmaJsonWriter::WriteIndent(bool oneLess) +private: + typedef VmaIntrusiveLinkedList DedicatedAllocationLinkedList; + + bool m_UseMutex = true; + VMA_RW_MUTEX m_Mutex; + DedicatedAllocationLinkedList m_AllocationList; +}; + +#ifndef _VMA_DEDICATED_ALLOCATION_LIST_FUNCTIONS + +VmaDedicatedAllocationList::~VmaDedicatedAllocationList() { - if(!m_Stack.empty() && !m_Stack.back().singleLineMode) - { - m_SB.AddNewLine(); + VMA_HEAVY_ASSERT(Validate()); - size_t count = m_Stack.size(); - if(count > 0 && oneLess) - { - --count; - } - for(size_t i = 0; i < count; ++i) - { - m_SB.Add(INDENT); - } + if (!m_AllocationList.IsEmpty()) + { + VMA_ASSERT_LEAK(false && "Unfreed dedicated allocations found!"); } } -#endif // #if VMA_STATS_STRING_ENABLED +bool VmaDedicatedAllocationList::Validate() +{ + const size_t declaredCount = m_AllocationList.GetCount(); + size_t actualCount = 0; + VmaMutexLockRead lock(m_Mutex, m_UseMutex); + for (VmaAllocation alloc = m_AllocationList.Front(); + alloc != VMA_NULL; alloc = m_AllocationList.GetNext(alloc)) + { + ++actualCount; + } + VMA_VALIDATE(actualCount == declaredCount); -//////////////////////////////////////////////////////////////////////////////// + return true; +} -void VmaAllocation_T::SetUserData(VmaAllocator hAllocator, void* pUserData) +void VmaDedicatedAllocationList::AddDetailedStatistics(VmaDetailedStatistics& inoutStats) { - if(IsUserDataString()) + for(auto* item = m_AllocationList.Front(); item != nullptr; item = DedicatedAllocationLinkedList::GetNext(item)) { - VMA_ASSERT(pUserData == VMA_NULL || pUserData != m_pUserData); + const VkDeviceSize size = item->GetSize(); + inoutStats.statistics.blockCount++; + inoutStats.statistics.blockBytes += size; + VmaAddDetailedStatisticsAllocation(inoutStats, item->GetSize()); + } +} - FreeUserDataString(hAllocator); +void VmaDedicatedAllocationList::AddStatistics(VmaStatistics& inoutStats) +{ + VmaMutexLockRead lock(m_Mutex, m_UseMutex); - if(pUserData != VMA_NULL) - { - m_pUserData = VmaCreateStringCopy(hAllocator->GetAllocationCallbacks(), (const char*)pUserData); - } - } - else + const uint32_t allocCount = (uint32_t)m_AllocationList.GetCount(); + inoutStats.blockCount += allocCount; + inoutStats.allocationCount += allocCount; + + for(auto* item = m_AllocationList.Front(); item != nullptr; item = DedicatedAllocationLinkedList::GetNext(item)) { - m_pUserData = pUserData; + const VkDeviceSize size = item->GetSize(); + inoutStats.blockBytes += size; + inoutStats.allocationBytes += size; } } -void VmaAllocation_T::ChangeBlockAllocation( - VmaAllocator hAllocator, - VmaDeviceMemoryBlock* block, - VkDeviceSize offset) +#if VMA_STATS_STRING_ENABLED +void VmaDedicatedAllocationList::BuildStatsString(VmaJsonWriter& json) { - VMA_ASSERT(block != VMA_NULL); - VMA_ASSERT(m_Type == ALLOCATION_TYPE_BLOCK); - - // Move mapping reference counter from old block to new block. - if(block != m_BlockAllocation.m_Block) + VmaMutexLockRead lock(m_Mutex, m_UseMutex); + json.BeginArray(); + for (VmaAllocation alloc = m_AllocationList.Front(); + alloc != VMA_NULL; alloc = m_AllocationList.GetNext(alloc)) { - uint32_t mapRefCount = m_MapCount & ~MAP_COUNT_FLAG_PERSISTENT_MAP; - if(IsPersistentMap()) - ++mapRefCount; - m_BlockAllocation.m_Block->Unmap(hAllocator, mapRefCount); - block->Map(hAllocator, mapRefCount, VMA_NULL); + json.BeginObject(true); + alloc->PrintParameters(json); + json.EndObject(); } + json.EndArray(); +} +#endif // VMA_STATS_STRING_ENABLED - m_BlockAllocation.m_Block = block; - m_BlockAllocation.m_Offset = offset; +bool VmaDedicatedAllocationList::IsEmpty() +{ + VmaMutexLockRead lock(m_Mutex, m_UseMutex); + return m_AllocationList.IsEmpty(); } -void VmaAllocation_T::ChangeOffset(VkDeviceSize newOffset) +void VmaDedicatedAllocationList::Register(VmaAllocation alloc) { - VMA_ASSERT(m_Type == ALLOCATION_TYPE_BLOCK); - m_BlockAllocation.m_Offset = newOffset; + VmaMutexLockWrite lock(m_Mutex, m_UseMutex); + m_AllocationList.PushBack(alloc); } -VkDeviceSize VmaAllocation_T::GetOffset() const +void VmaDedicatedAllocationList::Unregister(VmaAllocation alloc) { - switch(m_Type) - { - case ALLOCATION_TYPE_BLOCK: - return m_BlockAllocation.m_Offset; - case ALLOCATION_TYPE_DEDICATED: - return 0; - default: - VMA_ASSERT(0); - return 0; - } + VmaMutexLockWrite lock(m_Mutex, m_UseMutex); + m_AllocationList.Remove(alloc); } +#endif // _VMA_DEDICATED_ALLOCATION_LIST_FUNCTIONS +#endif // _VMA_DEDICATED_ALLOCATION_LIST -VkDeviceMemory VmaAllocation_T::GetMemory() const +#ifndef _VMA_SUBALLOCATION +/* +Represents a region of VmaDeviceMemoryBlock that is either assigned and returned as +allocated memory block or free. +*/ +struct VmaSuballocation +{ + VkDeviceSize offset; + VkDeviceSize size; + void* userData; + VmaSuballocationType type; +}; + +// Comparator for offsets. +struct VmaSuballocationOffsetLess { - switch(m_Type) + bool operator()(const VmaSuballocation& lhs, const VmaSuballocation& rhs) const { - case ALLOCATION_TYPE_BLOCK: - return m_BlockAllocation.m_Block->GetDeviceMemory(); - case ALLOCATION_TYPE_DEDICATED: - return m_DedicatedAllocation.m_hMemory; - default: - VMA_ASSERT(0); - return VK_NULL_HANDLE; + return lhs.offset < rhs.offset; } -} +}; -void* VmaAllocation_T::GetMappedData() const +struct VmaSuballocationOffsetGreater { - switch(m_Type) + bool operator()(const VmaSuballocation& lhs, const VmaSuballocation& rhs) const { - case ALLOCATION_TYPE_BLOCK: - if(m_MapCount != 0) - { - void* pBlockData = m_BlockAllocation.m_Block->GetMappedData(); - VMA_ASSERT(pBlockData != VMA_NULL); - return (char*)pBlockData + m_BlockAllocation.m_Offset; - } - else - { - return VMA_NULL; - } - break; - case ALLOCATION_TYPE_DEDICATED: - VMA_ASSERT((m_DedicatedAllocation.m_pMappedData != VMA_NULL) == (m_MapCount != 0)); - return m_DedicatedAllocation.m_pMappedData; - default: - VMA_ASSERT(0); - return VMA_NULL; + return lhs.offset > rhs.offset; } -} +}; -bool VmaAllocation_T::CanBecomeLost() const +struct VmaSuballocationItemSizeLess { - switch(m_Type) + bool operator()(const VmaSuballocationList::iterator lhs, + const VmaSuballocationList::iterator rhs) const { - case ALLOCATION_TYPE_BLOCK: - return m_BlockAllocation.m_CanBecomeLost; - case ALLOCATION_TYPE_DEDICATED: - return false; - default: - VMA_ASSERT(0); - return false; + return lhs->size < rhs->size; } -} -bool VmaAllocation_T::MakeLost(uint32_t currentFrameIndex, uint32_t frameInUseCount) + bool operator()(const VmaSuballocationList::iterator lhs, + VkDeviceSize rhsSize) const + { + return lhs->size < rhsSize; + } +}; +#endif // _VMA_SUBALLOCATION + +#ifndef _VMA_ALLOCATION_REQUEST +/* +Parameters of planned allocation inside a VmaDeviceMemoryBlock. +item points to a FREE suballocation. +*/ +struct VmaAllocationRequest { - VMA_ASSERT(CanBecomeLost()); + VmaAllocHandle allocHandle; + VkDeviceSize size; + VmaSuballocationList::iterator item; + void* customData; + uint64_t algorithmData; + VmaAllocationRequestType type; +}; +#endif // _VMA_ALLOCATION_REQUEST - /* - Warning: This is a carefully designed algorithm. - Do not modify unless you really know what you're doing :) - */ - uint32_t localLastUseFrameIndex = GetLastUseFrameIndex(); - for(;;) +#ifndef _VMA_BLOCK_METADATA +/* +Data structure used for bookkeeping of allocations and unused ranges of memory +in a single VkDeviceMemory block. +*/ +class VmaBlockMetadata +{ + VMA_CLASS_NO_COPY_NO_MOVE(VmaBlockMetadata) +public: + // pAllocationCallbacks, if not null, must be owned externally - alive and unchanged for the whole lifetime of this object. + VmaBlockMetadata(const VkAllocationCallbacks* pAllocationCallbacks, + VkDeviceSize bufferImageGranularity, bool isVirtual); + virtual ~VmaBlockMetadata() = default; + + virtual void Init(VkDeviceSize size) { m_Size = size; } + bool IsVirtual() const { return m_IsVirtual; } + VkDeviceSize GetSize() const { return m_Size; } + + // Validates all data structures inside this object. If not valid, returns false. + virtual bool Validate() const = 0; + virtual size_t GetAllocationCount() const = 0; + virtual size_t GetFreeRegionsCount() const = 0; + virtual VkDeviceSize GetSumFreeSize() const = 0; + // Returns true if this block is empty - contains only single free suballocation. + virtual bool IsEmpty() const = 0; + virtual void GetAllocationInfo(VmaAllocHandle allocHandle, VmaVirtualAllocationInfo& outInfo) = 0; + virtual VkDeviceSize GetAllocationOffset(VmaAllocHandle allocHandle) const = 0; + virtual void* GetAllocationUserData(VmaAllocHandle allocHandle) const = 0; + + virtual VmaAllocHandle GetAllocationListBegin() const = 0; + virtual VmaAllocHandle GetNextAllocation(VmaAllocHandle prevAlloc) const = 0; + virtual VkDeviceSize GetNextFreeRegionSize(VmaAllocHandle alloc) const = 0; + + // Shouldn't modify blockCount. + virtual void AddDetailedStatistics(VmaDetailedStatistics& inoutStats) const = 0; + virtual void AddStatistics(VmaStatistics& inoutStats) const = 0; + +#if VMA_STATS_STRING_ENABLED + virtual void PrintDetailedMap(class VmaJsonWriter& json) const = 0; +#endif + + // Tries to find a place for suballocation with given parameters inside this block. + // If succeeded, fills pAllocationRequest and returns true. + // If failed, returns false. + virtual bool CreateAllocationRequest( + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + bool upperAddress, + VmaSuballocationType allocType, + // Always one of VMA_ALLOCATION_CREATE_STRATEGY_* or VMA_ALLOCATION_INTERNAL_STRATEGY_* flags. + uint32_t strategy, + VmaAllocationRequest* pAllocationRequest) = 0; + + virtual VkResult CheckCorruption(const void* pBlockData) = 0; + + // Makes actual allocation based on request. Request must already be checked and valid. + virtual void Alloc( + const VmaAllocationRequest& request, + VmaSuballocationType type, + void* userData) = 0; + + // Frees suballocation assigned to given memory region. + virtual void Free(VmaAllocHandle allocHandle) = 0; + + // Frees all allocations. + // Careful! Don't call it if there are VmaAllocation objects owned by userData of cleared allocations! + virtual void Clear() = 0; + + virtual void SetAllocationUserData(VmaAllocHandle allocHandle, void* userData) = 0; + virtual void DebugLogAllAllocations() const = 0; + +protected: + const VkAllocationCallbacks* GetAllocationCallbacks() const { return m_pAllocationCallbacks; } + VkDeviceSize GetBufferImageGranularity() const { return m_BufferImageGranularity; } + VkDeviceSize GetDebugMargin() const { return VkDeviceSize(IsVirtual() ? 0 : VMA_DEBUG_MARGIN); } + + void DebugLogAllocation(VkDeviceSize offset, VkDeviceSize size, void* userData) const; +#if VMA_STATS_STRING_ENABLED + // mapRefCount == UINT32_MAX means unspecified. + void PrintDetailedMap_Begin(class VmaJsonWriter& json, + VkDeviceSize unusedBytes, + size_t allocationCount, + size_t unusedRangeCount) const; + void PrintDetailedMap_Allocation(class VmaJsonWriter& json, + VkDeviceSize offset, VkDeviceSize size, void* userData) const; + void PrintDetailedMap_UnusedRange(class VmaJsonWriter& json, + VkDeviceSize offset, + VkDeviceSize size) const; + void PrintDetailedMap_End(class VmaJsonWriter& json) const; +#endif + +private: + VkDeviceSize m_Size; + const VkAllocationCallbacks* m_pAllocationCallbacks; + const VkDeviceSize m_BufferImageGranularity; + const bool m_IsVirtual; +}; + +#ifndef _VMA_BLOCK_METADATA_FUNCTIONS +VmaBlockMetadata::VmaBlockMetadata(const VkAllocationCallbacks* pAllocationCallbacks, + VkDeviceSize bufferImageGranularity, bool isVirtual) + : m_Size(0), + m_pAllocationCallbacks(pAllocationCallbacks), + m_BufferImageGranularity(bufferImageGranularity), + m_IsVirtual(isVirtual) {} + +void VmaBlockMetadata::DebugLogAllocation(VkDeviceSize offset, VkDeviceSize size, void* userData) const +{ + if (IsVirtual()) { - if(localLastUseFrameIndex == VMA_FRAME_INDEX_LOST) - { - VMA_ASSERT(0); - return false; - } - else if(localLastUseFrameIndex + frameInUseCount >= currentFrameIndex) - { - return false; - } - else // Last use time earlier than current time. - { - if(CompareExchangeLastUseFrameIndex(localLastUseFrameIndex, VMA_FRAME_INDEX_LOST)) - { - // Setting hAllocation.LastUseFrameIndex atomic to VMA_FRAME_INDEX_LOST is enough to mark it as LOST. - // Calling code just needs to unregister this allocation in owning VmaDeviceMemoryBlock. - return true; - } - } + VMA_DEBUG_LOG_FORMAT("UNFREED VIRTUAL ALLOCATION; Offset: %llu; Size: %llu; UserData: %p", offset, size, userData); + } + else + { + VMA_ASSERT(userData != VMA_NULL); + VmaAllocation allocation = reinterpret_cast(userData); + + userData = allocation->GetUserData(); + const char* name = allocation->GetName(); + +#if VMA_STATS_STRING_ENABLED + VMA_DEBUG_LOG_FORMAT("UNFREED ALLOCATION; Offset: %llu; Size: %llu; UserData: %p; Name: %s; Type: %s; Usage: %u", + offset, size, userData, name ? name : "vma_empty", + VMA_SUBALLOCATION_TYPE_NAMES[allocation->GetSuballocationType()], + allocation->GetBufferImageUsage()); +#else + VMA_DEBUG_LOG_FORMAT("UNFREED ALLOCATION; Offset: %llu; Size: %llu; UserData: %p; Name: %s; Type: %u", + offset, size, userData, name ? name : "vma_empty", + (uint32_t)allocation->GetSuballocationType()); +#endif // VMA_STATS_STRING_ENABLED } + } #if VMA_STATS_STRING_ENABLED +void VmaBlockMetadata::PrintDetailedMap_Begin(class VmaJsonWriter& json, + VkDeviceSize unusedBytes, size_t allocationCount, size_t unusedRangeCount) const +{ + json.WriteString("TotalBytes"); + json.WriteNumber(GetSize()); -// Correspond to values of enum VmaSuballocationType. -static const char* VMA_SUBALLOCATION_TYPE_NAMES[] = { - "FREE", - "UNKNOWN", - "BUFFER", - "IMAGE_UNKNOWN", - "IMAGE_LINEAR", - "IMAGE_OPTIMAL", -}; + json.WriteString("UnusedBytes"); + json.WriteNumber(unusedBytes); -void VmaAllocation_T::PrintParameters(class VmaJsonWriter& json) const + json.WriteString("Allocations"); + json.WriteNumber((uint64_t)allocationCount); + + json.WriteString("UnusedRanges"); + json.WriteNumber((uint64_t)unusedRangeCount); + + json.WriteString("Suballocations"); + json.BeginArray(); +} + +void VmaBlockMetadata::PrintDetailedMap_Allocation(class VmaJsonWriter& json, + VkDeviceSize offset, VkDeviceSize size, void* userData) const { - json.WriteString("Type"); - json.WriteString(VMA_SUBALLOCATION_TYPE_NAMES[m_SuballocationType]); + json.BeginObject(true); - json.WriteString("Size"); - json.WriteNumber(m_Size); + json.WriteString("Offset"); + json.WriteNumber(offset); - if(m_pUserData != VMA_NULL) + if (IsVirtual()) { - json.WriteString("UserData"); - if(IsUserDataString()) - { - json.WriteString((const char*)m_pUserData); - } - else + json.WriteString("Size"); + json.WriteNumber(size); + if (userData) { + json.WriteString("CustomData"); json.BeginString(); - json.ContinueString_Pointer(m_pUserData); + json.ContinueString_Pointer(userData); json.EndString(); } } - - json.WriteString("CreationFrameIndex"); - json.WriteNumber(m_CreationFrameIndex); - - json.WriteString("LastUseFrameIndex"); - json.WriteNumber(GetLastUseFrameIndex()); - - if(m_BufferImageUsage != 0) + else { - json.WriteString("Usage"); - json.WriteNumber(m_BufferImageUsage); + ((VmaAllocation)userData)->PrintParameters(json); } + + json.EndObject(); } -#endif +void VmaBlockMetadata::PrintDetailedMap_UnusedRange(class VmaJsonWriter& json, + VkDeviceSize offset, VkDeviceSize size) const +{ + json.BeginObject(true); + + json.WriteString("Offset"); + json.WriteNumber(offset); -void VmaAllocation_T::FreeUserDataString(VmaAllocator hAllocator) + json.WriteString("Type"); + json.WriteString(VMA_SUBALLOCATION_TYPE_NAMES[VMA_SUBALLOCATION_TYPE_FREE]); + + json.WriteString("Size"); + json.WriteNumber(size); + + json.EndObject(); +} + +void VmaBlockMetadata::PrintDetailedMap_End(class VmaJsonWriter& json) const { - VMA_ASSERT(IsUserDataString()); - VmaFreeString(hAllocator->GetAllocationCallbacks(), (char*)m_pUserData); - m_pUserData = VMA_NULL; + json.EndArray(); } +#endif // VMA_STATS_STRING_ENABLED +#endif // _VMA_BLOCK_METADATA_FUNCTIONS +#endif // _VMA_BLOCK_METADATA -void VmaAllocation_T::BlockAllocMap() +#ifndef _VMA_BLOCK_BUFFER_IMAGE_GRANULARITY +// Before deleting object of this class remember to call 'Destroy()' +class VmaBlockBufferImageGranularity final { - VMA_ASSERT(GetType() == ALLOCATION_TYPE_BLOCK); +public: + struct ValidationContext + { + const VkAllocationCallbacks* allocCallbacks; + uint16_t* pageAllocs; + }; + + VmaBlockBufferImageGranularity(VkDeviceSize bufferImageGranularity); + ~VmaBlockBufferImageGranularity(); + + bool IsEnabled() const { return m_BufferImageGranularity > MAX_LOW_BUFFER_IMAGE_GRANULARITY; } + + void Init(const VkAllocationCallbacks* pAllocationCallbacks, VkDeviceSize size); + // Before destroying object you must call free it's memory + void Destroy(const VkAllocationCallbacks* pAllocationCallbacks); + + void RoundupAllocRequest(VmaSuballocationType allocType, + VkDeviceSize& inOutAllocSize, + VkDeviceSize& inOutAllocAlignment) const; + + bool CheckConflictAndAlignUp(VkDeviceSize& inOutAllocOffset, + VkDeviceSize allocSize, + VkDeviceSize blockOffset, + VkDeviceSize blockSize, + VmaSuballocationType allocType) const; + + void AllocPages(uint8_t allocType, VkDeviceSize offset, VkDeviceSize size); + void FreePages(VkDeviceSize offset, VkDeviceSize size); + void Clear(); + + ValidationContext StartValidation(const VkAllocationCallbacks* pAllocationCallbacks, + bool isVirutal) const; + bool Validate(ValidationContext& ctx, VkDeviceSize offset, VkDeviceSize size) const; + bool FinishValidation(ValidationContext& ctx) const; + +private: + static const uint16_t MAX_LOW_BUFFER_IMAGE_GRANULARITY = 256; - if((m_MapCount & ~MAP_COUNT_FLAG_PERSISTENT_MAP) < 0x7F) + struct RegionInfo { - ++m_MapCount; - } - else + uint8_t allocType; + uint16_t allocCount; + }; + + VkDeviceSize m_BufferImageGranularity; + uint32_t m_RegionCount; + RegionInfo* m_RegionInfo; + + uint32_t GetStartPage(VkDeviceSize offset) const { return OffsetToPageIndex(offset & ~(m_BufferImageGranularity - 1)); } + uint32_t GetEndPage(VkDeviceSize offset, VkDeviceSize size) const { return OffsetToPageIndex((offset + size - 1) & ~(m_BufferImageGranularity - 1)); } + + uint32_t OffsetToPageIndex(VkDeviceSize offset) const; + void AllocPage(RegionInfo& page, uint8_t allocType); +}; + +#ifndef _VMA_BLOCK_BUFFER_IMAGE_GRANULARITY_FUNCTIONS +VmaBlockBufferImageGranularity::VmaBlockBufferImageGranularity(VkDeviceSize bufferImageGranularity) + : m_BufferImageGranularity(bufferImageGranularity), + m_RegionCount(0), + m_RegionInfo(VMA_NULL) {} + +VmaBlockBufferImageGranularity::~VmaBlockBufferImageGranularity() +{ + VMA_ASSERT(m_RegionInfo == VMA_NULL && "Free not called before destroying object!"); +} + +void VmaBlockBufferImageGranularity::Init(const VkAllocationCallbacks* pAllocationCallbacks, VkDeviceSize size) +{ + if (IsEnabled()) { - VMA_ASSERT(0 && "Allocation mapped too many times simultaneously."); + m_RegionCount = static_cast(VmaDivideRoundingUp(size, m_BufferImageGranularity)); + m_RegionInfo = vma_new_array(pAllocationCallbacks, RegionInfo, m_RegionCount); + memset(m_RegionInfo, 0, m_RegionCount * sizeof(RegionInfo)); } } -void VmaAllocation_T::BlockAllocUnmap() +void VmaBlockBufferImageGranularity::Destroy(const VkAllocationCallbacks* pAllocationCallbacks) { - VMA_ASSERT(GetType() == ALLOCATION_TYPE_BLOCK); - - if((m_MapCount & ~MAP_COUNT_FLAG_PERSISTENT_MAP) != 0) + if (m_RegionInfo) { - --m_MapCount; + vma_delete_array(pAllocationCallbacks, m_RegionInfo, m_RegionCount); + m_RegionInfo = VMA_NULL; } - else +} + +void VmaBlockBufferImageGranularity::RoundupAllocRequest(VmaSuballocationType allocType, + VkDeviceSize& inOutAllocSize, + VkDeviceSize& inOutAllocAlignment) const +{ + if (m_BufferImageGranularity > 1 && + m_BufferImageGranularity <= MAX_LOW_BUFFER_IMAGE_GRANULARITY) { - VMA_ASSERT(0 && "Unmapping allocation not previously mapped."); + if (allocType == VMA_SUBALLOCATION_TYPE_UNKNOWN || + allocType == VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN || + allocType == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL) + { + inOutAllocAlignment = VMA_MAX(inOutAllocAlignment, m_BufferImageGranularity); + inOutAllocSize = VmaAlignUp(inOutAllocSize, m_BufferImageGranularity); + } } } -VkResult VmaAllocation_T::DedicatedAllocMap(VmaAllocator hAllocator, void** ppData) +bool VmaBlockBufferImageGranularity::CheckConflictAndAlignUp(VkDeviceSize& inOutAllocOffset, + VkDeviceSize allocSize, + VkDeviceSize blockOffset, + VkDeviceSize blockSize, + VmaSuballocationType allocType) const { - VMA_ASSERT(GetType() == ALLOCATION_TYPE_DEDICATED); - - if(m_MapCount != 0) + if (IsEnabled()) { - if((m_MapCount & ~MAP_COUNT_FLAG_PERSISTENT_MAP) < 0x7F) + uint32_t startPage = GetStartPage(inOutAllocOffset); + if (m_RegionInfo[startPage].allocCount > 0 && + VmaIsBufferImageGranularityConflict(static_cast(m_RegionInfo[startPage].allocType), allocType)) { - VMA_ASSERT(m_DedicatedAllocation.m_pMappedData != VMA_NULL); - *ppData = m_DedicatedAllocation.m_pMappedData; - ++m_MapCount; - return VK_SUCCESS; + inOutAllocOffset = VmaAlignUp(inOutAllocOffset, m_BufferImageGranularity); + if (blockSize < allocSize + inOutAllocOffset - blockOffset) + return true; + ++startPage; } - else + uint32_t endPage = GetEndPage(inOutAllocOffset, allocSize); + if (endPage != startPage && + m_RegionInfo[endPage].allocCount > 0 && + VmaIsBufferImageGranularityConflict(static_cast(m_RegionInfo[endPage].allocType), allocType)) { - VMA_ASSERT(0 && "Dedicated allocation mapped too many times simultaneously."); - return VK_ERROR_MEMORY_MAP_FAILED; + return true; } } - else + return false; +} + +void VmaBlockBufferImageGranularity::AllocPages(uint8_t allocType, VkDeviceSize offset, VkDeviceSize size) +{ + if (IsEnabled()) { - VkResult result = (*hAllocator->GetVulkanFunctions().vkMapMemory)( - hAllocator->m_hDevice, - m_DedicatedAllocation.m_hMemory, - 0, // offset - VK_WHOLE_SIZE, - 0, // flags - ppData); - if(result == VK_SUCCESS) - { - m_DedicatedAllocation.m_pMappedData = *ppData; - m_MapCount = 1; - } - return result; + uint32_t startPage = GetStartPage(offset); + AllocPage(m_RegionInfo[startPage], allocType); + + uint32_t endPage = GetEndPage(offset, size); + if (startPage != endPage) + AllocPage(m_RegionInfo[endPage], allocType); } } -void VmaAllocation_T::DedicatedAllocUnmap(VmaAllocator hAllocator) +void VmaBlockBufferImageGranularity::FreePages(VkDeviceSize offset, VkDeviceSize size) { - VMA_ASSERT(GetType() == ALLOCATION_TYPE_DEDICATED); - - if((m_MapCount & ~MAP_COUNT_FLAG_PERSISTENT_MAP) != 0) + if (IsEnabled()) { - --m_MapCount; - if(m_MapCount == 0) + uint32_t startPage = GetStartPage(offset); + --m_RegionInfo[startPage].allocCount; + if (m_RegionInfo[startPage].allocCount == 0) + m_RegionInfo[startPage].allocType = VMA_SUBALLOCATION_TYPE_FREE; + uint32_t endPage = GetEndPage(offset, size); + if (startPage != endPage) { - m_DedicatedAllocation.m_pMappedData = VMA_NULL; - (*hAllocator->GetVulkanFunctions().vkUnmapMemory)( - hAllocator->m_hDevice, - m_DedicatedAllocation.m_hMemory); + --m_RegionInfo[endPage].allocCount; + if (m_RegionInfo[endPage].allocCount == 0) + m_RegionInfo[endPage].allocType = VMA_SUBALLOCATION_TYPE_FREE; } } - else - { - VMA_ASSERT(0 && "Unmapping dedicated allocation not previously mapped."); - } } -#if VMA_STATS_STRING_ENABLED - -static void VmaPrintStatInfo(VmaJsonWriter& json, const VmaStatInfo& stat) +void VmaBlockBufferImageGranularity::Clear() { - json.BeginObject(); - - json.WriteString("Blocks"); - json.WriteNumber(stat.blockCount); - - json.WriteString("Allocations"); - json.WriteNumber(stat.allocationCount); - - json.WriteString("UnusedRanges"); - json.WriteNumber(stat.unusedRangeCount); - - json.WriteString("UsedBytes"); - json.WriteNumber(stat.usedBytes); - - json.WriteString("UnusedBytes"); - json.WriteNumber(stat.unusedBytes); + if (m_RegionInfo) + memset(m_RegionInfo, 0, m_RegionCount * sizeof(RegionInfo)); +} - if(stat.allocationCount > 1) +VmaBlockBufferImageGranularity::ValidationContext VmaBlockBufferImageGranularity::StartValidation( + const VkAllocationCallbacks* pAllocationCallbacks, bool isVirutal) const +{ + ValidationContext ctx{ pAllocationCallbacks, VMA_NULL }; + if (!isVirutal && IsEnabled()) { - json.WriteString("AllocationSize"); - json.BeginObject(true); - json.WriteString("Min"); - json.WriteNumber(stat.allocationSizeMin); - json.WriteString("Avg"); - json.WriteNumber(stat.allocationSizeAvg); - json.WriteString("Max"); - json.WriteNumber(stat.allocationSizeMax); - json.EndObject(); + ctx.pageAllocs = vma_new_array(pAllocationCallbacks, uint16_t, m_RegionCount); + memset(ctx.pageAllocs, 0, m_RegionCount * sizeof(uint16_t)); } + return ctx; +} - if(stat.unusedRangeCount > 1) +bool VmaBlockBufferImageGranularity::Validate(ValidationContext& ctx, + VkDeviceSize offset, VkDeviceSize size) const +{ + if (IsEnabled()) { - json.WriteString("UnusedRangeSize"); - json.BeginObject(true); - json.WriteString("Min"); - json.WriteNumber(stat.unusedRangeSizeMin); - json.WriteString("Avg"); - json.WriteNumber(stat.unusedRangeSizeAvg); - json.WriteString("Max"); - json.WriteNumber(stat.unusedRangeSizeMax); - json.EndObject(); - } + uint32_t start = GetStartPage(offset); + ++ctx.pageAllocs[start]; + VMA_VALIDATE(m_RegionInfo[start].allocCount > 0); - json.EndObject(); + uint32_t end = GetEndPage(offset, size); + if (start != end) + { + ++ctx.pageAllocs[end]; + VMA_VALIDATE(m_RegionInfo[end].allocCount > 0); + } + } + return true; } -#endif // #if VMA_STATS_STRING_ENABLED - -struct VmaSuballocationItemSizeLess +bool VmaBlockBufferImageGranularity::FinishValidation(ValidationContext& ctx) const { - bool operator()( - const VmaSuballocationList::iterator lhs, - const VmaSuballocationList::iterator rhs) const - { - return lhs->size < rhs->size; - } - bool operator()( - const VmaSuballocationList::iterator lhs, - VkDeviceSize rhsSize) const + // Check proper page structure + if (IsEnabled()) { - return lhs->size < rhsSize; - } -}; - + VMA_ASSERT(ctx.pageAllocs != VMA_NULL && "Validation context not initialized!"); -//////////////////////////////////////////////////////////////////////////////// -// class VmaBlockMetadata + for (uint32_t page = 0; page < m_RegionCount; ++page) + { + VMA_VALIDATE(ctx.pageAllocs[page] == m_RegionInfo[page].allocCount); + } + vma_delete_array(ctx.allocCallbacks, ctx.pageAllocs, m_RegionCount); + ctx.pageAllocs = VMA_NULL; + } + return true; +} -VmaBlockMetadata::VmaBlockMetadata(VmaAllocator hAllocator) : - m_Size(0), - m_pAllocationCallbacks(hAllocator->GetAllocationCallbacks()) +uint32_t VmaBlockBufferImageGranularity::OffsetToPageIndex(VkDeviceSize offset) const { + return static_cast(offset >> VMA_BITSCAN_MSB(m_BufferImageGranularity)); } -#if VMA_STATS_STRING_ENABLED - -void VmaBlockMetadata::PrintDetailedMap_Begin(class VmaJsonWriter& json, - VkDeviceSize unusedBytes, - size_t allocationCount, - size_t unusedRangeCount) const +void VmaBlockBufferImageGranularity::AllocPage(RegionInfo& page, uint8_t allocType) { - json.BeginObject(); - - json.WriteString("TotalBytes"); - json.WriteNumber(GetSize()); - - json.WriteString("UnusedBytes"); - json.WriteNumber(unusedBytes); - - json.WriteString("Allocations"); - json.WriteNumber((uint64_t)allocationCount); - - json.WriteString("UnusedRanges"); - json.WriteNumber((uint64_t)unusedRangeCount); + // When current alloc type is free then it can be overridden by new type + if (page.allocCount == 0 || (page.allocCount > 0 && page.allocType == VMA_SUBALLOCATION_TYPE_FREE)) + page.allocType = allocType; - json.WriteString("Suballocations"); - json.BeginArray(); + ++page.allocCount; } +#endif // _VMA_BLOCK_BUFFER_IMAGE_GRANULARITY_FUNCTIONS +#endif // _VMA_BLOCK_BUFFER_IMAGE_GRANULARITY -void VmaBlockMetadata::PrintDetailedMap_Allocation(class VmaJsonWriter& json, - VkDeviceSize offset, - VmaAllocation hAllocation) const +#if 0 +#ifndef _VMA_BLOCK_METADATA_GENERIC +class VmaBlockMetadata_Generic : public VmaBlockMetadata { - json.BeginObject(true); + friend class VmaDefragmentationAlgorithm_Generic; + friend class VmaDefragmentationAlgorithm_Fast; + VMA_CLASS_NO_COPY_NO_MOVE(VmaBlockMetadata_Generic) +public: + VmaBlockMetadata_Generic(const VkAllocationCallbacks* pAllocationCallbacks, + VkDeviceSize bufferImageGranularity, bool isVirtual); + virtual ~VmaBlockMetadata_Generic() = default; - json.WriteString("Offset"); - json.WriteNumber(offset); + size_t GetAllocationCount() const override { return m_Suballocations.size() - m_FreeCount; } + VkDeviceSize GetSumFreeSize() const override { return m_SumFreeSize; } + bool IsEmpty() const override { return (m_Suballocations.size() == 1) && (m_FreeCount == 1); } + void Free(VmaAllocHandle allocHandle) override { FreeSuballocation(FindAtOffset((VkDeviceSize)allocHandle - 1)); } + VkDeviceSize GetAllocationOffset(VmaAllocHandle allocHandle) const override { return (VkDeviceSize)allocHandle - 1; } - hAllocation->PrintParameters(json); + void Init(VkDeviceSize size) override; + bool Validate() const override; - json.EndObject(); -} + void AddDetailedStatistics(VmaDetailedStatistics& inoutStats) const override; + void AddStatistics(VmaStatistics& inoutStats) const override; -void VmaBlockMetadata::PrintDetailedMap_UnusedRange(class VmaJsonWriter& json, - VkDeviceSize offset, - VkDeviceSize size) const -{ - json.BeginObject(true); +#if VMA_STATS_STRING_ENABLED + void PrintDetailedMap(class VmaJsonWriter& json, uint32_t mapRefCount) const override; +#endif - json.WriteString("Offset"); - json.WriteNumber(offset); + bool CreateAllocationRequest( + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + bool upperAddress, + VmaSuballocationType allocType, + uint32_t strategy, + VmaAllocationRequest* pAllocationRequest) override; - json.WriteString("Type"); - json.WriteString(VMA_SUBALLOCATION_TYPE_NAMES[VMA_SUBALLOCATION_TYPE_FREE]); + VkResult CheckCorruption(const void* pBlockData) override; - json.WriteString("Size"); - json.WriteNumber(size); + void Alloc( + const VmaAllocationRequest& request, + VmaSuballocationType type, + void* userData) override; - json.EndObject(); -} + void GetAllocationInfo(VmaAllocHandle allocHandle, VmaVirtualAllocationInfo& outInfo) override; + void* GetAllocationUserData(VmaAllocHandle allocHandle) const override; + VmaAllocHandle GetAllocationListBegin() const override; + VmaAllocHandle GetNextAllocation(VmaAllocHandle prevAlloc) const override; + void Clear() override; + void SetAllocationUserData(VmaAllocHandle allocHandle, void* userData) override; + void DebugLogAllAllocations() const override; -void VmaBlockMetadata::PrintDetailedMap_End(class VmaJsonWriter& json) const -{ - json.EndArray(); - json.EndObject(); -} +private: + uint32_t m_FreeCount; + VkDeviceSize m_SumFreeSize; + VmaSuballocationList m_Suballocations; + // Suballocations that are free. Sorted by size, ascending. + VmaVector> m_FreeSuballocationsBySize; -#endif // #if VMA_STATS_STRING_ENABLED + VkDeviceSize AlignAllocationSize(VkDeviceSize size) const { return IsVirtual() ? size : VmaAlignUp(size, (VkDeviceSize)16); } -//////////////////////////////////////////////////////////////////////////////// -// class VmaBlockMetadata_Generic + VmaSuballocationList::iterator FindAtOffset(VkDeviceSize offset) const; + bool ValidateFreeSuballocationList() const; + + // Checks if requested suballocation with given parameters can be placed in given pFreeSuballocItem. + // If yes, fills pOffset and returns true. If no, returns false. + bool CheckAllocation( + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + VmaSuballocationType allocType, + VmaSuballocationList::const_iterator suballocItem, + VmaAllocHandle* pAllocHandle) const; + + // Given free suballocation, it merges it with following one, which must also be free. + void MergeFreeWithNext(VmaSuballocationList::iterator item); + // Releases given suballocation, making it free. + // Merges it with adjacent free suballocations if applicable. + // Returns iterator to new free suballocation at this place. + VmaSuballocationList::iterator FreeSuballocation(VmaSuballocationList::iterator suballocItem); + // Given free suballocation, it inserts it into sorted list of + // m_FreeSuballocationsBySize if it is suitable. + void RegisterFreeSuballocation(VmaSuballocationList::iterator item); + // Given free suballocation, it removes it from sorted list of + // m_FreeSuballocationsBySize if it is suitable. + void UnregisterFreeSuballocation(VmaSuballocationList::iterator item); +}; -VmaBlockMetadata_Generic::VmaBlockMetadata_Generic(VmaAllocator hAllocator) : - VmaBlockMetadata(hAllocator), +#ifndef _VMA_BLOCK_METADATA_GENERIC_FUNCTIONS +VmaBlockMetadata_Generic::VmaBlockMetadata_Generic(const VkAllocationCallbacks* pAllocationCallbacks, + VkDeviceSize bufferImageGranularity, bool isVirtual) + : VmaBlockMetadata(pAllocationCallbacks, bufferImageGranularity, isVirtual), m_FreeCount(0), m_SumFreeSize(0), - m_Suballocations(VmaStlAllocator(hAllocator->GetAllocationCallbacks())), - m_FreeSuballocationsBySize(VmaStlAllocator(hAllocator->GetAllocationCallbacks())) -{ -} - -VmaBlockMetadata_Generic::~VmaBlockMetadata_Generic() -{ -} + m_Suballocations(VmaStlAllocator(pAllocationCallbacks)), + m_FreeSuballocationsBySize(VmaStlAllocator(pAllocationCallbacks)) {} void VmaBlockMetadata_Generic::Init(VkDeviceSize size) { @@ -7509,13 +6945,9 @@ void VmaBlockMetadata_Generic::Init(VkDeviceSize size) suballoc.offset = 0; suballoc.size = size; suballoc.type = VMA_SUBALLOCATION_TYPE_FREE; - suballoc.hAllocation = VK_NULL_HANDLE; - VMA_ASSERT(size > VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER); m_Suballocations.push_back(suballoc); - VmaSuballocationList::iterator suballocItem = m_Suballocations.end(); - --suballocItem; - m_FreeSuballocationsBySize.push_back(suballocItem); + m_FreeSuballocationsBySize.push_back(m_Suballocations.begin()); } bool VmaBlockMetadata_Generic::Validate() const @@ -7534,7 +6966,9 @@ bool VmaBlockMetadata_Generic::Validate() const // True if previous visited suballocation was free. bool prevFree = false; - for(const auto& subAlloc : m_Suballocations) + const VkDeviceSize debugMargin = GetDebugMargin(); + + for (const auto& subAlloc : m_Suballocations) { // Actual offset of this suballocation doesn't match expected one. VMA_VALIDATE(subAlloc.offset == calculatedOffset); @@ -7543,27 +6977,31 @@ bool VmaBlockMetadata_Generic::Validate() const // Two adjacent free suballocations are invalid. They should be merged. VMA_VALIDATE(!prevFree || !currFree); - VMA_VALIDATE(currFree == (subAlloc.hAllocation == VK_NULL_HANDLE)); + VmaAllocation alloc = (VmaAllocation)subAlloc.userData; + if (!IsVirtual()) + { + VMA_VALIDATE(currFree == (alloc == VK_NULL_HANDLE)); + } - if(currFree) + if (currFree) { calculatedSumFreeSize += subAlloc.size; ++calculatedFreeCount; - if(subAlloc.size >= VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER) - { - ++freeSuballocationsToRegister; - } + ++freeSuballocationsToRegister; // Margin required between allocations - every free space must be at least that large. - VMA_VALIDATE(subAlloc.size >= VMA_DEBUG_MARGIN); + VMA_VALIDATE(subAlloc.size >= debugMargin); } else { - VMA_VALIDATE(subAlloc.hAllocation->GetOffset() == subAlloc.offset); - VMA_VALIDATE(subAlloc.hAllocation->GetSize() == subAlloc.size); + if (!IsVirtual()) + { + VMA_VALIDATE((VkDeviceSize)alloc->GetAllocHandle() == subAlloc.offset + 1); + VMA_VALIDATE(alloc->GetSize() == subAlloc.size); + } // Margin required between allocations - previous allocation must be free. - VMA_VALIDATE(VMA_DEBUG_MARGIN == 0 || prevFree); + VMA_VALIDATE(debugMargin == 0 || prevFree); } calculatedOffset += subAlloc.size; @@ -7575,7 +7013,7 @@ bool VmaBlockMetadata_Generic::Validate() const VMA_VALIDATE(m_FreeSuballocationsBySize.size() == freeSuballocationsToRegister); VkDeviceSize lastSize = 0; - for(size_t i = 0; i < m_FreeSuballocationsBySize.size(); ++i) + for (size_t i = 0; i < m_FreeSuballocationsBySize.size(); ++i) { VmaSuballocationList::iterator suballocItem = m_FreeSuballocationsBySize[i]; @@ -7596,100 +7034,59 @@ bool VmaBlockMetadata_Generic::Validate() const return true; } -VkDeviceSize VmaBlockMetadata_Generic::GetUnusedRangeSizeMax() const -{ - if(!m_FreeSuballocationsBySize.empty()) - { - return m_FreeSuballocationsBySize.back()->size; - } - else - { - return 0; - } -} - -bool VmaBlockMetadata_Generic::IsEmpty() const -{ - return (m_Suballocations.size() == 1) && (m_FreeCount == 1); -} - -void VmaBlockMetadata_Generic::CalcAllocationStatInfo(VmaStatInfo& outInfo) const +void VmaBlockMetadata_Generic::AddDetailedStatistics(VmaDetailedStatistics& inoutStats) const { - outInfo.blockCount = 1; - const uint32_t rangeCount = (uint32_t)m_Suballocations.size(); - outInfo.allocationCount = rangeCount - m_FreeCount; - outInfo.unusedRangeCount = m_FreeCount; - - outInfo.unusedBytes = m_SumFreeSize; - outInfo.usedBytes = GetSize() - outInfo.unusedBytes; - - outInfo.allocationSizeMin = UINT64_MAX; - outInfo.allocationSizeMax = 0; - outInfo.unusedRangeSizeMin = UINT64_MAX; - outInfo.unusedRangeSizeMax = 0; + inoutStats.statistics.blockCount++; + inoutStats.statistics.blockBytes += GetSize(); - for(const auto& suballoc : m_Suballocations) + for (const auto& suballoc : m_Suballocations) { - if(suballoc.type != VMA_SUBALLOCATION_TYPE_FREE) - { - outInfo.allocationSizeMin = VMA_MIN(outInfo.allocationSizeMin, suballoc.size); - outInfo.allocationSizeMax = VMA_MAX(outInfo.allocationSizeMax, suballoc.size); - } + if (suballoc.type != VMA_SUBALLOCATION_TYPE_FREE) + VmaAddDetailedStatisticsAllocation(inoutStats, suballoc.size); else - { - outInfo.unusedRangeSizeMin = VMA_MIN(outInfo.unusedRangeSizeMin, suballoc.size); - outInfo.unusedRangeSizeMax = VMA_MAX(outInfo.unusedRangeSizeMax, suballoc.size); - } + VmaAddDetailedStatisticsUnusedRange(inoutStats, suballoc.size); } } -void VmaBlockMetadata_Generic::AddPoolStats(VmaPoolStats& inoutStats) const +void VmaBlockMetadata_Generic::AddStatistics(VmaStatistics& inoutStats) const { - const uint32_t rangeCount = (uint32_t)m_Suballocations.size(); - - inoutStats.size += GetSize(); - inoutStats.unusedSize += m_SumFreeSize; - inoutStats.allocationCount += rangeCount - m_FreeCount; - inoutStats.unusedRangeCount += m_FreeCount; - inoutStats.unusedRangeSizeMax = VMA_MAX(inoutStats.unusedRangeSizeMax, GetUnusedRangeSizeMax()); + inoutStats.blockCount++; + inoutStats.allocationCount += (uint32_t)m_Suballocations.size() - m_FreeCount; + inoutStats.blockBytes += GetSize(); + inoutStats.allocationBytes += GetSize() - m_SumFreeSize; } #if VMA_STATS_STRING_ENABLED - -void VmaBlockMetadata_Generic::PrintDetailedMap(class VmaJsonWriter& json) const +void VmaBlockMetadata_Generic::PrintDetailedMap(class VmaJsonWriter& json, uint32_t mapRefCount) const { PrintDetailedMap_Begin(json, m_SumFreeSize, // unusedBytes m_Suballocations.size() - (size_t)m_FreeCount, // allocationCount - m_FreeCount); // unusedRangeCount + m_FreeCount, // unusedRangeCount + mapRefCount); - for(const auto& suballoc : m_Suballocations) + for (const auto& suballoc : m_Suballocations) { - if(suballoc.type == VMA_SUBALLOCATION_TYPE_FREE) + if (suballoc.type == VMA_SUBALLOCATION_TYPE_FREE) { PrintDetailedMap_UnusedRange(json, suballoc.offset, suballoc.size); } else { - PrintDetailedMap_Allocation(json, suballoc.offset, suballoc.hAllocation); + PrintDetailedMap_Allocation(json, suballoc.offset, suballoc.size, suballoc.userData); } } PrintDetailedMap_End(json); } - -#endif // #if VMA_STATS_STRING_ENABLED +#endif // VMA_STATS_STRING_ENABLED bool VmaBlockMetadata_Generic::CreateAllocationRequest( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, VkDeviceSize allocSize, VkDeviceSize allocAlignment, bool upperAddress, VmaSuballocationType allocType, - bool canMakeOtherLost, uint32_t strategy, VmaAllocationRequest* pAllocationRequest) { @@ -7699,92 +7096,77 @@ bool VmaBlockMetadata_Generic::CreateAllocationRequest( VMA_ASSERT(pAllocationRequest != VMA_NULL); VMA_HEAVY_ASSERT(Validate()); + allocSize = AlignAllocationSize(allocSize); + pAllocationRequest->type = VmaAllocationRequestType::Normal; + pAllocationRequest->size = allocSize; - // There is not enough total free space in this block to fullfill the request: Early return. - if(canMakeOtherLost == false && - m_SumFreeSize < allocSize + 2 * VMA_DEBUG_MARGIN) + const VkDeviceSize debugMargin = GetDebugMargin(); + + // There is not enough total free space in this block to fulfill the request: Early return. + if (m_SumFreeSize < allocSize + debugMargin) { return false; } // New algorithm, efficiently searching freeSuballocationsBySize. const size_t freeSuballocCount = m_FreeSuballocationsBySize.size(); - if(freeSuballocCount > 0) + if (freeSuballocCount > 0) { - if(strategy == VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT) + if (strategy == 0 || + strategy == VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT) { - // Find first free suballocation with size not less than allocSize + 2 * VMA_DEBUG_MARGIN. + // Find first free suballocation with size not less than allocSize + debugMargin. VmaSuballocationList::iterator* const it = VmaBinaryFindFirstNotLess( m_FreeSuballocationsBySize.data(), m_FreeSuballocationsBySize.data() + freeSuballocCount, - allocSize + 2 * VMA_DEBUG_MARGIN, + allocSize + debugMargin, VmaSuballocationItemSizeLess()); size_t index = it - m_FreeSuballocationsBySize.data(); - for(; index < freeSuballocCount; ++index) + for (; index < freeSuballocCount; ++index) { - if(CheckAllocation( - currentFrameIndex, - frameInUseCount, - bufferImageGranularity, + if (CheckAllocation( allocSize, allocAlignment, allocType, m_FreeSuballocationsBySize[index], - false, // canMakeOtherLost - &pAllocationRequest->offset, - &pAllocationRequest->itemsToMakeLostCount, - &pAllocationRequest->sumFreeSize, - &pAllocationRequest->sumItemSize)) + &pAllocationRequest->allocHandle)) { pAllocationRequest->item = m_FreeSuballocationsBySize[index]; return true; } } } - else if(strategy == VMA_ALLOCATION_INTERNAL_STRATEGY_MIN_OFFSET) + else if (strategy == VMA_ALLOCATION_INTERNAL_STRATEGY_MIN_OFFSET) { - for(VmaSuballocationList::iterator it = m_Suballocations.begin(); + for (VmaSuballocationList::iterator it = m_Suballocations.begin(); it != m_Suballocations.end(); ++it) { - if(it->type == VMA_SUBALLOCATION_TYPE_FREE && CheckAllocation( - currentFrameIndex, - frameInUseCount, - bufferImageGranularity, + if (it->type == VMA_SUBALLOCATION_TYPE_FREE && CheckAllocation( allocSize, allocAlignment, allocType, it, - false, // canMakeOtherLost - &pAllocationRequest->offset, - &pAllocationRequest->itemsToMakeLostCount, - &pAllocationRequest->sumFreeSize, - &pAllocationRequest->sumItemSize)) + &pAllocationRequest->allocHandle)) { pAllocationRequest->item = it; return true; } } } - else // WORST_FIT, FIRST_FIT + else { + VMA_ASSERT(strategy & (VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT | VMA_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT )); // Search staring from biggest suballocations. - for(size_t index = freeSuballocCount; index--; ) + for (size_t index = freeSuballocCount; index--; ) { - if(CheckAllocation( - currentFrameIndex, - frameInUseCount, - bufferImageGranularity, + if (CheckAllocation( allocSize, allocAlignment, allocType, m_FreeSuballocationsBySize[index], - false, // canMakeOtherLost - &pAllocationRequest->offset, - &pAllocationRequest->itemsToMakeLostCount, - &pAllocationRequest->sumFreeSize, - &pAllocationRequest->sumItemSize)) + &pAllocationRequest->allocHandle)) { pAllocationRequest->item = m_FreeSuballocationsBySize[index]; return true; @@ -7793,946 +7175,1278 @@ bool VmaBlockMetadata_Generic::CreateAllocationRequest( } } - if(canMakeOtherLost) - { - // Brute-force algorithm. TODO: Come up with something better. + return false; +} - bool found = false; - VmaAllocationRequest tmpAllocRequest = {}; - tmpAllocRequest.type = VmaAllocationRequestType::Normal; - for(VmaSuballocationList::iterator suballocIt = m_Suballocations.begin(); - suballocIt != m_Suballocations.end(); - ++suballocIt) +VkResult VmaBlockMetadata_Generic::CheckCorruption(const void* pBlockData) +{ + for (auto& suballoc : m_Suballocations) + { + if (suballoc.type != VMA_SUBALLOCATION_TYPE_FREE) { - if(suballocIt->type == VMA_SUBALLOCATION_TYPE_FREE || - suballocIt->hAllocation->CanBecomeLost()) + if (!VmaValidateMagicValue(pBlockData, suballoc.offset + suballoc.size)) { - if(CheckAllocation( - currentFrameIndex, - frameInUseCount, - bufferImageGranularity, - allocSize, - allocAlignment, - allocType, - suballocIt, - canMakeOtherLost, - &tmpAllocRequest.offset, - &tmpAllocRequest.itemsToMakeLostCount, - &tmpAllocRequest.sumFreeSize, - &tmpAllocRequest.sumItemSize)) - { - if(strategy == VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT) - { - *pAllocationRequest = tmpAllocRequest; - pAllocationRequest->item = suballocIt; - break; - } - if(!found || tmpAllocRequest.CalcCost() < pAllocationRequest->CalcCost()) - { - *pAllocationRequest = tmpAllocRequest; - pAllocationRequest->item = suballocIt; - found = true; - } - } + VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED AFTER VALIDATED ALLOCATION!"); + return VK_ERROR_UNKNOWN_COPY; } } + } + + return VK_SUCCESS; +} + +void VmaBlockMetadata_Generic::Alloc( + const VmaAllocationRequest& request, + VmaSuballocationType type, + void* userData) +{ + VMA_ASSERT(request.type == VmaAllocationRequestType::Normal); + VMA_ASSERT(request.item != m_Suballocations.end()); + VmaSuballocation& suballoc = *request.item; + // Given suballocation is a free block. + VMA_ASSERT(suballoc.type == VMA_SUBALLOCATION_TYPE_FREE); + + // Given offset is inside this suballocation. + VMA_ASSERT((VkDeviceSize)request.allocHandle - 1 >= suballoc.offset); + const VkDeviceSize paddingBegin = (VkDeviceSize)request.allocHandle - suballoc.offset - 1; + VMA_ASSERT(suballoc.size >= paddingBegin + request.size); + const VkDeviceSize paddingEnd = suballoc.size - paddingBegin - request.size; + + // Unregister this free suballocation from m_FreeSuballocationsBySize and update + // it to become used. + UnregisterFreeSuballocation(request.item); + + suballoc.offset = (VkDeviceSize)request.allocHandle - 1; + suballoc.size = request.size; + suballoc.type = type; + suballoc.userData = userData; - return found; + // If there are any free bytes remaining at the end, insert new free suballocation after current one. + if (paddingEnd) + { + VmaSuballocation paddingSuballoc = {}; + paddingSuballoc.offset = suballoc.offset + suballoc.size; + paddingSuballoc.size = paddingEnd; + paddingSuballoc.type = VMA_SUBALLOCATION_TYPE_FREE; + VmaSuballocationList::iterator next = request.item; + ++next; + const VmaSuballocationList::iterator paddingEndItem = + m_Suballocations.insert(next, paddingSuballoc); + RegisterFreeSuballocation(paddingEndItem); } - return false; + // If there are any free bytes remaining at the beginning, insert new free suballocation before current one. + if (paddingBegin) + { + VmaSuballocation paddingSuballoc = {}; + paddingSuballoc.offset = suballoc.offset - paddingBegin; + paddingSuballoc.size = paddingBegin; + paddingSuballoc.type = VMA_SUBALLOCATION_TYPE_FREE; + const VmaSuballocationList::iterator paddingBeginItem = + m_Suballocations.insert(request.item, paddingSuballoc); + RegisterFreeSuballocation(paddingBeginItem); + } + + // Update totals. + m_FreeCount = m_FreeCount - 1; + if (paddingBegin > 0) + { + ++m_FreeCount; + } + if (paddingEnd > 0) + { + ++m_FreeCount; + } + m_SumFreeSize -= request.size; } -bool VmaBlockMetadata_Generic::MakeRequestedAllocationsLost( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VmaAllocationRequest* pAllocationRequest) +void VmaBlockMetadata_Generic::GetAllocationInfo(VmaAllocHandle allocHandle, VmaVirtualAllocationInfo& outInfo) +{ + outInfo.offset = (VkDeviceSize)allocHandle - 1; + const VmaSuballocation& suballoc = *FindAtOffset(outInfo.offset); + outInfo.size = suballoc.size; + outInfo.pUserData = suballoc.userData; +} + +void* VmaBlockMetadata_Generic::GetAllocationUserData(VmaAllocHandle allocHandle) const +{ + return FindAtOffset((VkDeviceSize)allocHandle - 1)->userData; +} + +VmaAllocHandle VmaBlockMetadata_Generic::GetAllocationListBegin() const +{ + if (IsEmpty()) + return VK_NULL_HANDLE; + + for (const auto& suballoc : m_Suballocations) + { + if (suballoc.type != VMA_SUBALLOCATION_TYPE_FREE) + return (VmaAllocHandle)(suballoc.offset + 1); + } + VMA_ASSERT(false && "Should contain at least 1 allocation!"); + return VK_NULL_HANDLE; +} + +VmaAllocHandle VmaBlockMetadata_Generic::GetNextAllocation(VmaAllocHandle prevAlloc) const +{ + VmaSuballocationList::const_iterator prev = FindAtOffset((VkDeviceSize)prevAlloc - 1); + + for (VmaSuballocationList::const_iterator it = ++prev; it != m_Suballocations.end(); ++it) + { + if (it->type != VMA_SUBALLOCATION_TYPE_FREE) + return (VmaAllocHandle)(it->offset + 1); + } + return VK_NULL_HANDLE; +} + +void VmaBlockMetadata_Generic::Clear() +{ + const VkDeviceSize size = GetSize(); + + VMA_ASSERT(IsVirtual()); + m_FreeCount = 1; + m_SumFreeSize = size; + m_Suballocations.clear(); + m_FreeSuballocationsBySize.clear(); + + VmaSuballocation suballoc = {}; + suballoc.offset = 0; + suballoc.size = size; + suballoc.type = VMA_SUBALLOCATION_TYPE_FREE; + m_Suballocations.push_back(suballoc); + + m_FreeSuballocationsBySize.push_back(m_Suballocations.begin()); +} + +void VmaBlockMetadata_Generic::SetAllocationUserData(VmaAllocHandle allocHandle, void* userData) +{ + VmaSuballocation& suballoc = *FindAtOffset((VkDeviceSize)allocHandle - 1); + suballoc.userData = userData; +} + +void VmaBlockMetadata_Generic::DebugLogAllAllocations() const +{ + for (const auto& suballoc : m_Suballocations) + { + if (suballoc.type != VMA_SUBALLOCATION_TYPE_FREE) + DebugLogAllocation(suballoc.offset, suballoc.size, suballoc.userData); + } +} + +VmaSuballocationList::iterator VmaBlockMetadata_Generic::FindAtOffset(VkDeviceSize offset) const { - VMA_ASSERT(pAllocationRequest && pAllocationRequest->type == VmaAllocationRequestType::Normal); + VMA_HEAVY_ASSERT(!m_Suballocations.empty()); + const VkDeviceSize last = m_Suballocations.rbegin()->offset; + if (last == offset) + return m_Suballocations.rbegin().drop_const(); + const VkDeviceSize first = m_Suballocations.begin()->offset; + if (first == offset) + return m_Suballocations.begin().drop_const(); - while(pAllocationRequest->itemsToMakeLostCount > 0) + const size_t suballocCount = m_Suballocations.size(); + const VkDeviceSize step = (last - first + m_Suballocations.begin()->size) / suballocCount; + auto findSuballocation = [&](auto begin, auto end) -> VmaSuballocationList::iterator { - if(pAllocationRequest->item->type == VMA_SUBALLOCATION_TYPE_FREE) + for (auto suballocItem = begin; + suballocItem != end; + ++suballocItem) { - ++pAllocationRequest->item; + if (suballocItem->offset == offset) + return suballocItem.drop_const(); } - VMA_ASSERT(pAllocationRequest->item != m_Suballocations.end()); - VMA_ASSERT(pAllocationRequest->item->hAllocation != VK_NULL_HANDLE); - VMA_ASSERT(pAllocationRequest->item->hAllocation->CanBecomeLost()); - if(pAllocationRequest->item->hAllocation->MakeLost(currentFrameIndex, frameInUseCount)) + VMA_ASSERT(false && "Not found!"); + return m_Suballocations.end().drop_const(); + }; + // If requested offset is closer to the end of range, search from the end + if (offset - first > suballocCount * step / 2) + { + return findSuballocation(m_Suballocations.rbegin(), m_Suballocations.rend()); + } + return findSuballocation(m_Suballocations.begin(), m_Suballocations.end()); +} + +bool VmaBlockMetadata_Generic::ValidateFreeSuballocationList() const +{ + VkDeviceSize lastSize = 0; + for (size_t i = 0, count = m_FreeSuballocationsBySize.size(); i < count; ++i) + { + const VmaSuballocationList::iterator it = m_FreeSuballocationsBySize[i]; + + VMA_VALIDATE(it->type == VMA_SUBALLOCATION_TYPE_FREE); + VMA_VALIDATE(it->size >= lastSize); + lastSize = it->size; + } + return true; +} + +bool VmaBlockMetadata_Generic::CheckAllocation( + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + VmaSuballocationType allocType, + VmaSuballocationList::const_iterator suballocItem, + VmaAllocHandle* pAllocHandle) const +{ + VMA_ASSERT(allocSize > 0); + VMA_ASSERT(allocType != VMA_SUBALLOCATION_TYPE_FREE); + VMA_ASSERT(suballocItem != m_Suballocations.cend()); + VMA_ASSERT(pAllocHandle != VMA_NULL); + + const VkDeviceSize debugMargin = GetDebugMargin(); + const VkDeviceSize bufferImageGranularity = GetBufferImageGranularity(); + + const VmaSuballocation& suballoc = *suballocItem; + VMA_ASSERT(suballoc.type == VMA_SUBALLOCATION_TYPE_FREE); + + // Size of this suballocation is too small for this request: Early return. + if (suballoc.size < allocSize) + { + return false; + } + + // Start from offset equal to beginning of this suballocation. + VkDeviceSize offset = suballoc.offset + (suballocItem == m_Suballocations.cbegin() ? 0 : GetDebugMargin()); + + // Apply debugMargin from the end of previous alloc. + if (debugMargin > 0) + { + offset += debugMargin; + } + + // Apply alignment. + offset = VmaAlignUp(offset, allocAlignment); + + // Check previous suballocations for BufferImageGranularity conflicts. + // Make bigger alignment if necessary. + if (bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment) + { + bool bufferImageGranularityConflict = false; + VmaSuballocationList::const_iterator prevSuballocItem = suballocItem; + while (prevSuballocItem != m_Suballocations.cbegin()) { - pAllocationRequest->item = FreeSuballocation(pAllocationRequest->item); - --pAllocationRequest->itemsToMakeLostCount; + --prevSuballocItem; + const VmaSuballocation& prevSuballoc = *prevSuballocItem; + if (VmaBlocksOnSamePage(prevSuballoc.offset, prevSuballoc.size, offset, bufferImageGranularity)) + { + if (VmaIsBufferImageGranularityConflict(prevSuballoc.type, allocType)) + { + bufferImageGranularityConflict = true; + break; + } + } + else + // Already on previous page. + break; } - else + if (bufferImageGranularityConflict) + { + offset = VmaAlignUp(offset, bufferImageGranularity); + } + } + + // Calculate padding at the beginning based on current offset. + const VkDeviceSize paddingBegin = offset - suballoc.offset; + + // Fail if requested size plus margin after is bigger than size of this suballocation. + if (paddingBegin + allocSize + debugMargin > suballoc.size) + { + return false; + } + + // Check next suballocations for BufferImageGranularity conflicts. + // If conflict exists, allocation cannot be made here. + if (allocSize % bufferImageGranularity || offset % bufferImageGranularity) + { + VmaSuballocationList::const_iterator nextSuballocItem = suballocItem; + ++nextSuballocItem; + while (nextSuballocItem != m_Suballocations.cend()) + { + const VmaSuballocation& nextSuballoc = *nextSuballocItem; + if (VmaBlocksOnSamePage(offset, allocSize, nextSuballoc.offset, bufferImageGranularity)) + { + if (VmaIsBufferImageGranularityConflict(allocType, nextSuballoc.type)) + { + return false; + } + } + else + { + // Already on next page. + break; + } + ++nextSuballocItem; + } + } + + *pAllocHandle = (VmaAllocHandle)(offset + 1); + // All tests passed: Success. pAllocHandle is already filled. + return true; +} + +void VmaBlockMetadata_Generic::MergeFreeWithNext(VmaSuballocationList::iterator item) +{ + VMA_ASSERT(item != m_Suballocations.end()); + VMA_ASSERT(item->type == VMA_SUBALLOCATION_TYPE_FREE); + + VmaSuballocationList::iterator nextItem = item; + ++nextItem; + VMA_ASSERT(nextItem != m_Suballocations.end()); + VMA_ASSERT(nextItem->type == VMA_SUBALLOCATION_TYPE_FREE); + + item->size += nextItem->size; + --m_FreeCount; + m_Suballocations.erase(nextItem); +} + +VmaSuballocationList::iterator VmaBlockMetadata_Generic::FreeSuballocation(VmaSuballocationList::iterator suballocItem) +{ + // Change this suballocation to be marked as free. + VmaSuballocation& suballoc = *suballocItem; + suballoc.type = VMA_SUBALLOCATION_TYPE_FREE; + suballoc.userData = VMA_NULL; + + // Update totals. + ++m_FreeCount; + m_SumFreeSize += suballoc.size; + + // Merge with previous and/or next suballocation if it's also free. + bool mergeWithNext = false; + bool mergeWithPrev = false; + + VmaSuballocationList::iterator nextItem = suballocItem; + ++nextItem; + if ((nextItem != m_Suballocations.end()) && (nextItem->type == VMA_SUBALLOCATION_TYPE_FREE)) + { + mergeWithNext = true; + } + + VmaSuballocationList::iterator prevItem = suballocItem; + if (suballocItem != m_Suballocations.begin()) + { + --prevItem; + if (prevItem->type == VMA_SUBALLOCATION_TYPE_FREE) { - return false; + mergeWithPrev = true; } } - VMA_HEAVY_ASSERT(Validate()); - VMA_ASSERT(pAllocationRequest->item != m_Suballocations.end()); - VMA_ASSERT(pAllocationRequest->item->type == VMA_SUBALLOCATION_TYPE_FREE); + if (mergeWithNext) + { + UnregisterFreeSuballocation(nextItem); + MergeFreeWithNext(suballocItem); + } - return true; + if (mergeWithPrev) + { + UnregisterFreeSuballocation(prevItem); + MergeFreeWithNext(prevItem); + RegisterFreeSuballocation(prevItem); + return prevItem; + } + else + { + RegisterFreeSuballocation(suballocItem); + return suballocItem; + } } -uint32_t VmaBlockMetadata_Generic::MakeAllocationsLost(uint32_t currentFrameIndex, uint32_t frameInUseCount) +void VmaBlockMetadata_Generic::RegisterFreeSuballocation(VmaSuballocationList::iterator item) { - uint32_t lostAllocationCount = 0; - for(VmaSuballocationList::iterator it = m_Suballocations.begin(); - it != m_Suballocations.end(); - ++it) + VMA_ASSERT(item->type == VMA_SUBALLOCATION_TYPE_FREE); + VMA_ASSERT(item->size > 0); + + // You may want to enable this validation at the beginning or at the end of + // this function, depending on what do you want to check. + VMA_HEAVY_ASSERT(ValidateFreeSuballocationList()); + + if (m_FreeSuballocationsBySize.empty()) { - if(it->type != VMA_SUBALLOCATION_TYPE_FREE && - it->hAllocation->CanBecomeLost() && - it->hAllocation->MakeLost(currentFrameIndex, frameInUseCount)) - { - it = FreeSuballocation(it); - ++lostAllocationCount; - } + m_FreeSuballocationsBySize.push_back(item); + } + else + { + VmaVectorInsertSorted(m_FreeSuballocationsBySize, item); } - return lostAllocationCount; + + //VMA_HEAVY_ASSERT(ValidateFreeSuballocationList()); } -VkResult VmaBlockMetadata_Generic::CheckCorruption(const void* pBlockData) +void VmaBlockMetadata_Generic::UnregisterFreeSuballocation(VmaSuballocationList::iterator item) { - for(auto& suballoc : m_Suballocations) + VMA_ASSERT(item->type == VMA_SUBALLOCATION_TYPE_FREE); + VMA_ASSERT(item->size > 0); + + // You may want to enable this validation at the beginning or at the end of + // this function, depending on what do you want to check. + VMA_HEAVY_ASSERT(ValidateFreeSuballocationList()); + + VmaSuballocationList::iterator* const it = VmaBinaryFindFirstNotLess( + m_FreeSuballocationsBySize.data(), + m_FreeSuballocationsBySize.data() + m_FreeSuballocationsBySize.size(), + item, + VmaSuballocationItemSizeLess()); + for (size_t index = it - m_FreeSuballocationsBySize.data(); + index < m_FreeSuballocationsBySize.size(); + ++index) { - if(suballoc.type != VMA_SUBALLOCATION_TYPE_FREE) + if (m_FreeSuballocationsBySize[index] == item) { - if(!VmaValidateMagicValue(pBlockData, suballoc.offset - VMA_DEBUG_MARGIN)) - { - VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED BEFORE VALIDATED ALLOCATION!"); - return VK_ERROR_UNKNOWN; - } - if(!VmaValidateMagicValue(pBlockData, suballoc.offset + suballoc.size)) - { - VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED AFTER VALIDATED ALLOCATION!"); - return VK_ERROR_UNKNOWN; - } + VmaVectorRemove(m_FreeSuballocationsBySize, index); + return; } + VMA_ASSERT((m_FreeSuballocationsBySize[index]->size == item->size) && "Not found."); } + VMA_ASSERT(0 && "Not found."); - return VK_SUCCESS; + //VMA_HEAVY_ASSERT(ValidateFreeSuballocationList()); } +#endif // _VMA_BLOCK_METADATA_GENERIC_FUNCTIONS +#endif // _VMA_BLOCK_METADATA_GENERIC +#endif // #if 0 -void VmaBlockMetadata_Generic::Alloc( - const VmaAllocationRequest& request, - VmaSuballocationType type, - VkDeviceSize allocSize, - VmaAllocation hAllocation) +#ifndef _VMA_BLOCK_METADATA_LINEAR +/* +Allocations and their references in internal data structure look like this: + +if(m_2ndVectorMode == SECOND_VECTOR_EMPTY): + + 0 +-------+ + | | + | | + | | + +-------+ + | Alloc | 1st[m_1stNullItemsBeginCount] + +-------+ + | Alloc | 1st[m_1stNullItemsBeginCount + 1] + +-------+ + | ... | + +-------+ + | Alloc | 1st[1st.size() - 1] + +-------+ + | | + | | + | | +GetSize() +-------+ + +if(m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER): + + 0 +-------+ + | Alloc | 2nd[0] + +-------+ + | Alloc | 2nd[1] + +-------+ + | ... | + +-------+ + | Alloc | 2nd[2nd.size() - 1] + +-------+ + | | + | | + | | + +-------+ + | Alloc | 1st[m_1stNullItemsBeginCount] + +-------+ + | Alloc | 1st[m_1stNullItemsBeginCount + 1] + +-------+ + | ... | + +-------+ + | Alloc | 1st[1st.size() - 1] + +-------+ + | | +GetSize() +-------+ + +if(m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK): + + 0 +-------+ + | | + | | + | | + +-------+ + | Alloc | 1st[m_1stNullItemsBeginCount] + +-------+ + | Alloc | 1st[m_1stNullItemsBeginCount + 1] + +-------+ + | ... | + +-------+ + | Alloc | 1st[1st.size() - 1] + +-------+ + | | + | | + | | + +-------+ + | Alloc | 2nd[2nd.size() - 1] + +-------+ + | ... | + +-------+ + | Alloc | 2nd[1] + +-------+ + | Alloc | 2nd[0] +GetSize() +-------+ + +*/ +class VmaBlockMetadata_Linear : public VmaBlockMetadata { - VMA_ASSERT(request.type == VmaAllocationRequestType::Normal); - VMA_ASSERT(request.item != m_Suballocations.end()); - VmaSuballocation& suballoc = *request.item; - // Given suballocation is a free block. - VMA_ASSERT(suballoc.type == VMA_SUBALLOCATION_TYPE_FREE); - // Given offset is inside this suballocation. - VMA_ASSERT(request.offset >= suballoc.offset); - const VkDeviceSize paddingBegin = request.offset - suballoc.offset; - VMA_ASSERT(suballoc.size >= paddingBegin + allocSize); - const VkDeviceSize paddingEnd = suballoc.size - paddingBegin - allocSize; + VMA_CLASS_NO_COPY_NO_MOVE(VmaBlockMetadata_Linear) +public: + VmaBlockMetadata_Linear(const VkAllocationCallbacks* pAllocationCallbacks, + VkDeviceSize bufferImageGranularity, bool isVirtual); + virtual ~VmaBlockMetadata_Linear() = default; - // Unregister this free suballocation from m_FreeSuballocationsBySize and update - // it to become used. - UnregisterFreeSuballocation(request.item); + VkDeviceSize GetSumFreeSize() const override { return m_SumFreeSize; } + bool IsEmpty() const override { return GetAllocationCount() == 0; } + VkDeviceSize GetAllocationOffset(VmaAllocHandle allocHandle) const override { return (VkDeviceSize)allocHandle - 1; } - suballoc.offset = request.offset; - suballoc.size = allocSize; - suballoc.type = type; - suballoc.hAllocation = hAllocation; + void Init(VkDeviceSize size) override; + bool Validate() const override; + size_t GetAllocationCount() const override; + size_t GetFreeRegionsCount() const override; - // If there are any free bytes remaining at the end, insert new free suballocation after current one. - if(paddingEnd) - { - VmaSuballocation paddingSuballoc = {}; - paddingSuballoc.offset = request.offset + allocSize; - paddingSuballoc.size = paddingEnd; - paddingSuballoc.type = VMA_SUBALLOCATION_TYPE_FREE; - VmaSuballocationList::iterator next = request.item; - ++next; - const VmaSuballocationList::iterator paddingEndItem = - m_Suballocations.insert(next, paddingSuballoc); - RegisterFreeSuballocation(paddingEndItem); - } + void AddDetailedStatistics(VmaDetailedStatistics& inoutStats) const override; + void AddStatistics(VmaStatistics& inoutStats) const override; - // If there are any free bytes remaining at the beginning, insert new free suballocation before current one. - if(paddingBegin) +#if VMA_STATS_STRING_ENABLED + void PrintDetailedMap(class VmaJsonWriter& json) const override; +#endif + + bool CreateAllocationRequest( + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + bool upperAddress, + VmaSuballocationType allocType, + uint32_t strategy, + VmaAllocationRequest* pAllocationRequest) override; + + VkResult CheckCorruption(const void* pBlockData) override; + + void Alloc( + const VmaAllocationRequest& request, + VmaSuballocationType type, + void* userData) override; + + void Free(VmaAllocHandle allocHandle) override; + void GetAllocationInfo(VmaAllocHandle allocHandle, VmaVirtualAllocationInfo& outInfo) override; + void* GetAllocationUserData(VmaAllocHandle allocHandle) const override; + VmaAllocHandle GetAllocationListBegin() const override; + VmaAllocHandle GetNextAllocation(VmaAllocHandle prevAlloc) const override; + VkDeviceSize GetNextFreeRegionSize(VmaAllocHandle alloc) const override; + void Clear() override; + void SetAllocationUserData(VmaAllocHandle allocHandle, void* userData) override; + void DebugLogAllAllocations() const override; + +private: + /* + There are two suballocation vectors, used in ping-pong way. + The one with index m_1stVectorIndex is called 1st. + The one with index (m_1stVectorIndex ^ 1) is called 2nd. + 2nd can be non-empty only when 1st is not empty. + When 2nd is not empty, m_2ndVectorMode indicates its mode of operation. + */ + typedef VmaVector> SuballocationVectorType; + + enum SECOND_VECTOR_MODE { - VmaSuballocation paddingSuballoc = {}; - paddingSuballoc.offset = request.offset - paddingBegin; - paddingSuballoc.size = paddingBegin; - paddingSuballoc.type = VMA_SUBALLOCATION_TYPE_FREE; - const VmaSuballocationList::iterator paddingBeginItem = - m_Suballocations.insert(request.item, paddingSuballoc); - RegisterFreeSuballocation(paddingBeginItem); - } + SECOND_VECTOR_EMPTY, + /* + Suballocations in 2nd vector are created later than the ones in 1st, but they + all have smaller offset. + */ + SECOND_VECTOR_RING_BUFFER, + /* + Suballocations in 2nd vector are upper side of double stack. + They all have offsets higher than those in 1st vector. + Top of this stack means smaller offsets, but higher indices in this vector. + */ + SECOND_VECTOR_DOUBLE_STACK, + }; + + VkDeviceSize m_SumFreeSize; + SuballocationVectorType m_Suballocations0, m_Suballocations1; + uint32_t m_1stVectorIndex; + SECOND_VECTOR_MODE m_2ndVectorMode; + // Number of items in 1st vector with hAllocation = null at the beginning. + size_t m_1stNullItemsBeginCount; + // Number of other items in 1st vector with hAllocation = null somewhere in the middle. + size_t m_1stNullItemsMiddleCount; + // Number of items in 2nd vector with hAllocation = null. + size_t m_2ndNullItemsCount; + + SuballocationVectorType& AccessSuballocations1st() { return m_1stVectorIndex ? m_Suballocations1 : m_Suballocations0; } + SuballocationVectorType& AccessSuballocations2nd() { return m_1stVectorIndex ? m_Suballocations0 : m_Suballocations1; } + const SuballocationVectorType& AccessSuballocations1st() const { return m_1stVectorIndex ? m_Suballocations1 : m_Suballocations0; } + const SuballocationVectorType& AccessSuballocations2nd() const { return m_1stVectorIndex ? m_Suballocations0 : m_Suballocations1; } + + VmaSuballocation& FindSuballocation(VkDeviceSize offset) const; + bool ShouldCompact1st() const; + void CleanupAfterFree(); + + bool CreateAllocationRequest_LowerAddress( + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + VmaSuballocationType allocType, + uint32_t strategy, + VmaAllocationRequest* pAllocationRequest); + bool CreateAllocationRequest_UpperAddress( + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + VmaSuballocationType allocType, + uint32_t strategy, + VmaAllocationRequest* pAllocationRequest); +}; + +#ifndef _VMA_BLOCK_METADATA_LINEAR_FUNCTIONS +VmaBlockMetadata_Linear::VmaBlockMetadata_Linear(const VkAllocationCallbacks* pAllocationCallbacks, + VkDeviceSize bufferImageGranularity, bool isVirtual) + : VmaBlockMetadata(pAllocationCallbacks, bufferImageGranularity, isVirtual), + m_SumFreeSize(0), + m_Suballocations0(VmaStlAllocator(pAllocationCallbacks)), + m_Suballocations1(VmaStlAllocator(pAllocationCallbacks)), + m_1stVectorIndex(0), + m_2ndVectorMode(SECOND_VECTOR_EMPTY), + m_1stNullItemsBeginCount(0), + m_1stNullItemsMiddleCount(0), + m_2ndNullItemsCount(0) {} + +void VmaBlockMetadata_Linear::Init(VkDeviceSize size) +{ + VmaBlockMetadata::Init(size); + m_SumFreeSize = size; +} + +bool VmaBlockMetadata_Linear::Validate() const +{ + const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + + VMA_VALIDATE(suballocations2nd.empty() == (m_2ndVectorMode == SECOND_VECTOR_EMPTY)); + VMA_VALIDATE(!suballocations1st.empty() || + suballocations2nd.empty() || + m_2ndVectorMode != SECOND_VECTOR_RING_BUFFER); - // Update totals. - m_FreeCount = m_FreeCount - 1; - if(paddingBegin > 0) + if (!suballocations1st.empty()) { - ++m_FreeCount; + // Null item at the beginning should be accounted into m_1stNullItemsBeginCount. + VMA_VALIDATE(suballocations1st[m_1stNullItemsBeginCount].type != VMA_SUBALLOCATION_TYPE_FREE); + // Null item at the end should be just pop_back(). + VMA_VALIDATE(suballocations1st.back().type != VMA_SUBALLOCATION_TYPE_FREE); } - if(paddingEnd > 0) + if (!suballocations2nd.empty()) { - ++m_FreeCount; + // Null item at the end should be just pop_back(). + VMA_VALIDATE(suballocations2nd.back().type != VMA_SUBALLOCATION_TYPE_FREE); } - m_SumFreeSize -= allocSize; -} -void VmaBlockMetadata_Generic::Free(const VmaAllocation allocation) -{ - for(VmaSuballocationList::iterator suballocItem = m_Suballocations.begin(); - suballocItem != m_Suballocations.end(); - ++suballocItem) - { - VmaSuballocation& suballoc = *suballocItem; - if(suballoc.hAllocation == allocation) - { - FreeSuballocation(suballocItem); - VMA_HEAVY_ASSERT(Validate()); - return; - } - } - VMA_ASSERT(0 && "Not found!"); -} + VMA_VALIDATE(m_1stNullItemsBeginCount + m_1stNullItemsMiddleCount <= suballocations1st.size()); + VMA_VALIDATE(m_2ndNullItemsCount <= suballocations2nd.size()); -void VmaBlockMetadata_Generic::FreeAtOffset(VkDeviceSize offset) -{ - for(VmaSuballocationList::iterator suballocItem = m_Suballocations.begin(); - suballocItem != m_Suballocations.end(); - ++suballocItem) + VkDeviceSize sumUsedSize = 0; + const size_t suballoc1stCount = suballocations1st.size(); + const VkDeviceSize debugMargin = GetDebugMargin(); + VkDeviceSize offset = 0; + + if (m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) { - VmaSuballocation& suballoc = *suballocItem; - if(suballoc.offset == offset) + const size_t suballoc2ndCount = suballocations2nd.size(); + size_t nullItem2ndCount = 0; + for (size_t i = 0; i < suballoc2ndCount; ++i) { - FreeSuballocation(suballocItem); - return; + const VmaSuballocation& suballoc = suballocations2nd[i]; + const bool currFree = (suballoc.type == VMA_SUBALLOCATION_TYPE_FREE); + + VmaAllocation const alloc = (VmaAllocation)suballoc.userData; + if (!IsVirtual()) + { + VMA_VALIDATE(currFree == (alloc == VK_NULL_HANDLE)); + } + VMA_VALIDATE(suballoc.offset >= offset); + + if (!currFree) + { + if (!IsVirtual()) + { + VMA_VALIDATE((VkDeviceSize)alloc->GetAllocHandle() == suballoc.offset + 1); + VMA_VALIDATE(alloc->GetSize() == suballoc.size); + } + sumUsedSize += suballoc.size; + } + else + { + ++nullItem2ndCount; + } + + offset = suballoc.offset + suballoc.size + debugMargin; } + + VMA_VALIDATE(nullItem2ndCount == m_2ndNullItemsCount); } - VMA_ASSERT(0 && "Not found!"); -} -bool VmaBlockMetadata_Generic::ValidateFreeSuballocationList() const -{ - VkDeviceSize lastSize = 0; - for(size_t i = 0, count = m_FreeSuballocationsBySize.size(); i < count; ++i) + for (size_t i = 0; i < m_1stNullItemsBeginCount; ++i) { - const VmaSuballocationList::iterator it = m_FreeSuballocationsBySize[i]; - - VMA_VALIDATE(it->type == VMA_SUBALLOCATION_TYPE_FREE); - VMA_VALIDATE(it->size >= VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER); - VMA_VALIDATE(it->size >= lastSize); - lastSize = it->size; + const VmaSuballocation& suballoc = suballocations1st[i]; + VMA_VALIDATE(suballoc.type == VMA_SUBALLOCATION_TYPE_FREE && + suballoc.userData == VMA_NULL); } - return true; -} - -bool VmaBlockMetadata_Generic::CheckAllocation( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, - VkDeviceSize allocSize, - VkDeviceSize allocAlignment, - VmaSuballocationType allocType, - VmaSuballocationList::const_iterator suballocItem, - bool canMakeOtherLost, - VkDeviceSize* pOffset, - size_t* itemsToMakeLostCount, - VkDeviceSize* pSumFreeSize, - VkDeviceSize* pSumItemSize) const -{ - VMA_ASSERT(allocSize > 0); - VMA_ASSERT(allocType != VMA_SUBALLOCATION_TYPE_FREE); - VMA_ASSERT(suballocItem != m_Suballocations.cend()); - VMA_ASSERT(pOffset != VMA_NULL); - *itemsToMakeLostCount = 0; - *pSumFreeSize = 0; - *pSumItemSize = 0; + size_t nullItem1stCount = m_1stNullItemsBeginCount; - if(canMakeOtherLost) + for (size_t i = m_1stNullItemsBeginCount; i < suballoc1stCount; ++i) { - if(suballocItem->type == VMA_SUBALLOCATION_TYPE_FREE) + const VmaSuballocation& suballoc = suballocations1st[i]; + const bool currFree = (suballoc.type == VMA_SUBALLOCATION_TYPE_FREE); + + VmaAllocation const alloc = (VmaAllocation)suballoc.userData; + if (!IsVirtual()) { - *pSumFreeSize = suballocItem->size; + VMA_VALIDATE(currFree == (alloc == VK_NULL_HANDLE)); } - else + VMA_VALIDATE(suballoc.offset >= offset); + VMA_VALIDATE(i >= m_1stNullItemsBeginCount || currFree); + + if (!currFree) { - if(suballocItem->hAllocation->CanBecomeLost() && - suballocItem->hAllocation->GetLastUseFrameIndex() + frameInUseCount < currentFrameIndex) + if (!IsVirtual()) { - ++*itemsToMakeLostCount; - *pSumItemSize = suballocItem->size; - } - else - { - return false; + VMA_VALIDATE((VkDeviceSize)alloc->GetAllocHandle() == suballoc.offset + 1); + VMA_VALIDATE(alloc->GetSize() == suballoc.size); } + sumUsedSize += suballoc.size; } - - // Remaining size is too small for this request: Early return. - if(GetSize() - suballocItem->offset < allocSize) + else { - return false; + ++nullItem1stCount; } - // Start from offset equal to beginning of this suballocation. - *pOffset = suballocItem->offset; + offset = suballoc.offset + suballoc.size + debugMargin; + } + VMA_VALIDATE(nullItem1stCount == m_1stNullItemsBeginCount + m_1stNullItemsMiddleCount); - // Apply VMA_DEBUG_MARGIN at the beginning. - if(VMA_DEBUG_MARGIN > 0) + if (m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) + { + const size_t suballoc2ndCount = suballocations2nd.size(); + size_t nullItem2ndCount = 0; + for (size_t i = suballoc2ndCount; i--; ) { - *pOffset += VMA_DEBUG_MARGIN; - } + const VmaSuballocation& suballoc = suballocations2nd[i]; + const bool currFree = (suballoc.type == VMA_SUBALLOCATION_TYPE_FREE); - // Apply alignment. - *pOffset = VmaAlignUp(*pOffset, allocAlignment); + VmaAllocation const alloc = (VmaAllocation)suballoc.userData; + if (!IsVirtual()) + { + VMA_VALIDATE(currFree == (alloc == VK_NULL_HANDLE)); + } + VMA_VALIDATE(suballoc.offset >= offset); - // Check previous suballocations for BufferImageGranularity conflicts. - // Make bigger alignment if necessary. - if(bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment) - { - bool bufferImageGranularityConflict = false; - VmaSuballocationList::const_iterator prevSuballocItem = suballocItem; - while(prevSuballocItem != m_Suballocations.cbegin()) + if (!currFree) { - --prevSuballocItem; - const VmaSuballocation& prevSuballoc = *prevSuballocItem; - if(VmaBlocksOnSamePage(prevSuballoc.offset, prevSuballoc.size, *pOffset, bufferImageGranularity)) + if (!IsVirtual()) { - if(VmaIsBufferImageGranularityConflict(prevSuballoc.type, allocType)) - { - bufferImageGranularityConflict = true; - break; - } + VMA_VALIDATE((VkDeviceSize)alloc->GetAllocHandle() == suballoc.offset + 1); + VMA_VALIDATE(alloc->GetSize() == suballoc.size); } - else - // Already on previous page. - break; + sumUsedSize += suballoc.size; } - if(bufferImageGranularityConflict) + else { - *pOffset = VmaAlignUp(*pOffset, bufferImageGranularity); + ++nullItem2ndCount; } - } - // Now that we have final *pOffset, check if we are past suballocItem. - // If yes, return false - this function should be called for another suballocItem as starting point. - if(*pOffset >= suballocItem->offset + suballocItem->size) - { - return false; + offset = suballoc.offset + suballoc.size + debugMargin; } - // Calculate padding at the beginning based on current offset. - const VkDeviceSize paddingBegin = *pOffset - suballocItem->offset; + VMA_VALIDATE(nullItem2ndCount == m_2ndNullItemsCount); + } - // Calculate required margin at the end. - const VkDeviceSize requiredEndMargin = VMA_DEBUG_MARGIN; + VMA_VALIDATE(offset <= GetSize()); + VMA_VALIDATE(m_SumFreeSize == GetSize() - sumUsedSize); - const VkDeviceSize totalSize = paddingBegin + allocSize + requiredEndMargin; - // Another early return check. - if(suballocItem->offset + totalSize > GetSize()) - { - return false; - } + return true; +} + +size_t VmaBlockMetadata_Linear::GetAllocationCount() const +{ + return AccessSuballocations1st().size() - m_1stNullItemsBeginCount - m_1stNullItemsMiddleCount + + AccessSuballocations2nd().size() - m_2ndNullItemsCount; +} - // Advance lastSuballocItem until desired size is reached. - // Update itemsToMakeLostCount. - VmaSuballocationList::const_iterator lastSuballocItem = suballocItem; - if(totalSize > suballocItem->size) +size_t VmaBlockMetadata_Linear::GetFreeRegionsCount() const +{ + // Function only used for defragmentation, which is disabled for this algorithm + VMA_ASSERT(0); + return SIZE_MAX; +} + +void VmaBlockMetadata_Linear::AddDetailedStatistics(VmaDetailedStatistics& inoutStats) const +{ + const VkDeviceSize size = GetSize(); + const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + const size_t suballoc1stCount = suballocations1st.size(); + const size_t suballoc2ndCount = suballocations2nd.size(); + + inoutStats.statistics.blockCount++; + inoutStats.statistics.blockBytes += size; + + VkDeviceSize lastOffset = 0; + + if (m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) + { + const VkDeviceSize freeSpace2ndTo1stEnd = suballocations1st[m_1stNullItemsBeginCount].offset; + size_t nextAlloc2ndIndex = 0; + while (lastOffset < freeSpace2ndTo1stEnd) { - VkDeviceSize remainingSize = totalSize - suballocItem->size; - while(remainingSize > 0) + // Find next non-null allocation or move nextAllocIndex to the end. + while (nextAlloc2ndIndex < suballoc2ndCount && + suballocations2nd[nextAlloc2ndIndex].userData == VMA_NULL) { - ++lastSuballocItem; - if(lastSuballocItem == m_Suballocations.cend()) - { - return false; - } - if(lastSuballocItem->type == VMA_SUBALLOCATION_TYPE_FREE) - { - *pSumFreeSize += lastSuballocItem->size; - } - else - { - VMA_ASSERT(lastSuballocItem->hAllocation != VK_NULL_HANDLE); - if(lastSuballocItem->hAllocation->CanBecomeLost() && - lastSuballocItem->hAllocation->GetLastUseFrameIndex() + frameInUseCount < currentFrameIndex) - { - ++*itemsToMakeLostCount; - *pSumItemSize += lastSuballocItem->size; - } - else - { - return false; - } - } - remainingSize = (lastSuballocItem->size < remainingSize) ? - remainingSize - lastSuballocItem->size : 0; + ++nextAlloc2ndIndex; } - } - // Check next suballocations for BufferImageGranularity conflicts. - // If conflict exists, we must mark more allocations lost or fail. - if(allocSize % bufferImageGranularity || *pOffset % bufferImageGranularity) - { - VmaSuballocationList::const_iterator nextSuballocItem = lastSuballocItem; - ++nextSuballocItem; - while(nextSuballocItem != m_Suballocations.cend()) + // Found non-null allocation. + if (nextAlloc2ndIndex < suballoc2ndCount) { - const VmaSuballocation& nextSuballoc = *nextSuballocItem; - if(VmaBlocksOnSamePage(*pOffset, allocSize, nextSuballoc.offset, bufferImageGranularity)) + const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; + + // 1. Process free space before this allocation. + if (lastOffset < suballoc.offset) { - if(VmaIsBufferImageGranularityConflict(allocType, nextSuballoc.type)) - { - VMA_ASSERT(nextSuballoc.hAllocation != VK_NULL_HANDLE); - if(nextSuballoc.hAllocation->CanBecomeLost() && - nextSuballoc.hAllocation->GetLastUseFrameIndex() + frameInUseCount < currentFrameIndex) - { - ++*itemsToMakeLostCount; - } - else - { - return false; - } - } + // There is free space from lastOffset to suballoc.offset. + const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; + VmaAddDetailedStatisticsUnusedRange(inoutStats, unusedRangeSize); } - else + + // 2. Process this allocation. + // There is allocation with suballoc.offset, suballoc.size. + VmaAddDetailedStatisticsAllocation(inoutStats, suballoc.size); + + // 3. Prepare for next iteration. + lastOffset = suballoc.offset + suballoc.size; + ++nextAlloc2ndIndex; + } + // We are at the end. + else + { + // There is free space from lastOffset to freeSpace2ndTo1stEnd. + if (lastOffset < freeSpace2ndTo1stEnd) { - // Already on next page. - break; + const VkDeviceSize unusedRangeSize = freeSpace2ndTo1stEnd - lastOffset; + VmaAddDetailedStatisticsUnusedRange(inoutStats, unusedRangeSize); } - ++nextSuballocItem; + + // End of loop. + lastOffset = freeSpace2ndTo1stEnd; } } } - else - { - const VmaSuballocation& suballoc = *suballocItem; - VMA_ASSERT(suballoc.type == VMA_SUBALLOCATION_TYPE_FREE); - *pSumFreeSize = suballoc.size; - - // Size of this suballocation is too small for this request: Early return. - if(suballoc.size < allocSize) + size_t nextAlloc1stIndex = m_1stNullItemsBeginCount; + const VkDeviceSize freeSpace1stTo2ndEnd = + m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK ? suballocations2nd.back().offset : size; + while (lastOffset < freeSpace1stTo2ndEnd) + { + // Find next non-null allocation or move nextAllocIndex to the end. + while (nextAlloc1stIndex < suballoc1stCount && + suballocations1st[nextAlloc1stIndex].userData == VMA_NULL) { - return false; + ++nextAlloc1stIndex; } - // Start from offset equal to beginning of this suballocation. - *pOffset = suballoc.offset; - - // Apply VMA_DEBUG_MARGIN at the beginning. - if(VMA_DEBUG_MARGIN > 0) + // Found non-null allocation. + if (nextAlloc1stIndex < suballoc1stCount) { - *pOffset += VMA_DEBUG_MARGIN; - } - - // Apply alignment. - *pOffset = VmaAlignUp(*pOffset, allocAlignment); + const VmaSuballocation& suballoc = suballocations1st[nextAlloc1stIndex]; - // Check previous suballocations for BufferImageGranularity conflicts. - // Make bigger alignment if necessary. - if(bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment) - { - bool bufferImageGranularityConflict = false; - VmaSuballocationList::const_iterator prevSuballocItem = suballocItem; - while(prevSuballocItem != m_Suballocations.cbegin()) - { - --prevSuballocItem; - const VmaSuballocation& prevSuballoc = *prevSuballocItem; - if(VmaBlocksOnSamePage(prevSuballoc.offset, prevSuballoc.size, *pOffset, bufferImageGranularity)) - { - if(VmaIsBufferImageGranularityConflict(prevSuballoc.type, allocType)) - { - bufferImageGranularityConflict = true; - break; - } - } - else - // Already on previous page. - break; - } - if(bufferImageGranularityConflict) + // 1. Process free space before this allocation. + if (lastOffset < suballoc.offset) { - *pOffset = VmaAlignUp(*pOffset, bufferImageGranularity); + // There is free space from lastOffset to suballoc.offset. + const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; + VmaAddDetailedStatisticsUnusedRange(inoutStats, unusedRangeSize); } - } - - // Calculate padding at the beginning based on current offset. - const VkDeviceSize paddingBegin = *pOffset - suballoc.offset; - // Calculate required margin at the end. - const VkDeviceSize requiredEndMargin = VMA_DEBUG_MARGIN; + // 2. Process this allocation. + // There is allocation with suballoc.offset, suballoc.size. + VmaAddDetailedStatisticsAllocation(inoutStats, suballoc.size); - // Fail if requested size plus margin before and after is bigger than size of this suballocation. - if(paddingBegin + allocSize + requiredEndMargin > suballoc.size) + // 3. Prepare for next iteration. + lastOffset = suballoc.offset + suballoc.size; + ++nextAlloc1stIndex; + } + // We are at the end. + else { - return false; + // There is free space from lastOffset to freeSpace1stTo2ndEnd. + if (lastOffset < freeSpace1stTo2ndEnd) + { + const VkDeviceSize unusedRangeSize = freeSpace1stTo2ndEnd - lastOffset; + VmaAddDetailedStatisticsUnusedRange(inoutStats, unusedRangeSize); + } + + // End of loop. + lastOffset = freeSpace1stTo2ndEnd; } + } - // Check next suballocations for BufferImageGranularity conflicts. - // If conflict exists, allocation cannot be made here. - if(allocSize % bufferImageGranularity || *pOffset % bufferImageGranularity) + if (m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) + { + size_t nextAlloc2ndIndex = suballocations2nd.size() - 1; + while (lastOffset < size) { - VmaSuballocationList::const_iterator nextSuballocItem = suballocItem; - ++nextSuballocItem; - while(nextSuballocItem != m_Suballocations.cend()) + // Find next non-null allocation or move nextAllocIndex to the end. + while (nextAlloc2ndIndex != SIZE_MAX && + suballocations2nd[nextAlloc2ndIndex].userData == VMA_NULL) + { + --nextAlloc2ndIndex; + } + + // Found non-null allocation. + if (nextAlloc2ndIndex != SIZE_MAX) { - const VmaSuballocation& nextSuballoc = *nextSuballocItem; - if(VmaBlocksOnSamePage(*pOffset, allocSize, nextSuballoc.offset, bufferImageGranularity)) + const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; + + // 1. Process free space before this allocation. + if (lastOffset < suballoc.offset) { - if(VmaIsBufferImageGranularityConflict(allocType, nextSuballoc.type)) - { - return false; - } + // There is free space from lastOffset to suballoc.offset. + const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; + VmaAddDetailedStatisticsUnusedRange(inoutStats, unusedRangeSize); } - else + + // 2. Process this allocation. + // There is allocation with suballoc.offset, suballoc.size. + VmaAddDetailedStatisticsAllocation(inoutStats, suballoc.size); + + // 3. Prepare for next iteration. + lastOffset = suballoc.offset + suballoc.size; + --nextAlloc2ndIndex; + } + // We are at the end. + else + { + // There is free space from lastOffset to size. + if (lastOffset < size) { - // Already on next page. - break; + const VkDeviceSize unusedRangeSize = size - lastOffset; + VmaAddDetailedStatisticsUnusedRange(inoutStats, unusedRangeSize); } - ++nextSuballocItem; + + // End of loop. + lastOffset = size; } } } - - // All tests passed: Success. pOffset is already filled. - return true; } -void VmaBlockMetadata_Generic::MergeFreeWithNext(VmaSuballocationList::iterator item) +void VmaBlockMetadata_Linear::AddStatistics(VmaStatistics& inoutStats) const { - VMA_ASSERT(item != m_Suballocations.end()); - VMA_ASSERT(item->type == VMA_SUBALLOCATION_TYPE_FREE); + const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + const VkDeviceSize size = GetSize(); + const size_t suballoc1stCount = suballocations1st.size(); + const size_t suballoc2ndCount = suballocations2nd.size(); - VmaSuballocationList::iterator nextItem = item; - ++nextItem; - VMA_ASSERT(nextItem != m_Suballocations.end()); - VMA_ASSERT(nextItem->type == VMA_SUBALLOCATION_TYPE_FREE); + inoutStats.blockCount++; + inoutStats.blockBytes += size; + inoutStats.allocationBytes += size - m_SumFreeSize; - item->size += nextItem->size; - --m_FreeCount; - m_Suballocations.erase(nextItem); -} + VkDeviceSize lastOffset = 0; -VmaSuballocationList::iterator VmaBlockMetadata_Generic::FreeSuballocation(VmaSuballocationList::iterator suballocItem) -{ - // Change this suballocation to be marked as free. - VmaSuballocation& suballoc = *suballocItem; - suballoc.type = VMA_SUBALLOCATION_TYPE_FREE; - suballoc.hAllocation = VK_NULL_HANDLE; + if (m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) + { + const VkDeviceSize freeSpace2ndTo1stEnd = suballocations1st[m_1stNullItemsBeginCount].offset; + size_t nextAlloc2ndIndex = m_1stNullItemsBeginCount; + while (lastOffset < freeSpace2ndTo1stEnd) + { + // Find next non-null allocation or move nextAlloc2ndIndex to the end. + while (nextAlloc2ndIndex < suballoc2ndCount && + suballocations2nd[nextAlloc2ndIndex].userData == VMA_NULL) + { + ++nextAlloc2ndIndex; + } - // Update totals. - ++m_FreeCount; - m_SumFreeSize += suballoc.size; + // Found non-null allocation. + if (nextAlloc2ndIndex < suballoc2ndCount) + { + const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; - // Merge with previous and/or next suballocation if it's also free. - bool mergeWithNext = false; - bool mergeWithPrev = false; + // Process this allocation. + // There is allocation with suballoc.offset, suballoc.size. + ++inoutStats.allocationCount; - VmaSuballocationList::iterator nextItem = suballocItem; - ++nextItem; - if((nextItem != m_Suballocations.end()) && (nextItem->type == VMA_SUBALLOCATION_TYPE_FREE)) - { - mergeWithNext = true; + // Prepare for next iteration. + lastOffset = suballoc.offset + suballoc.size; + ++nextAlloc2ndIndex; + } + // We are at the end. + else + { + // End of loop. + lastOffset = freeSpace2ndTo1stEnd; + } + } } - VmaSuballocationList::iterator prevItem = suballocItem; - if(suballocItem != m_Suballocations.begin()) + size_t nextAlloc1stIndex = m_1stNullItemsBeginCount; + const VkDeviceSize freeSpace1stTo2ndEnd = + m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK ? suballocations2nd.back().offset : size; + while (lastOffset < freeSpace1stTo2ndEnd) { - --prevItem; - if(prevItem->type == VMA_SUBALLOCATION_TYPE_FREE) + // Find next non-null allocation or move nextAllocIndex to the end. + while (nextAlloc1stIndex < suballoc1stCount && + suballocations1st[nextAlloc1stIndex].userData == VMA_NULL) { - mergeWithPrev = true; + ++nextAlloc1stIndex; } - } - if(mergeWithNext) - { - UnregisterFreeSuballocation(nextItem); - MergeFreeWithNext(suballocItem); - } - - if(mergeWithPrev) - { - UnregisterFreeSuballocation(prevItem); - MergeFreeWithNext(prevItem); - RegisterFreeSuballocation(prevItem); - return prevItem; - } - else - { - RegisterFreeSuballocation(suballocItem); - return suballocItem; - } -} - -void VmaBlockMetadata_Generic::RegisterFreeSuballocation(VmaSuballocationList::iterator item) -{ - VMA_ASSERT(item->type == VMA_SUBALLOCATION_TYPE_FREE); - VMA_ASSERT(item->size > 0); + // Found non-null allocation. + if (nextAlloc1stIndex < suballoc1stCount) + { + const VmaSuballocation& suballoc = suballocations1st[nextAlloc1stIndex]; - // You may want to enable this validation at the beginning or at the end of - // this function, depending on what do you want to check. - VMA_HEAVY_ASSERT(ValidateFreeSuballocationList()); + // Process this allocation. + // There is allocation with suballoc.offset, suballoc.size. + ++inoutStats.allocationCount; - if(item->size >= VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER) - { - if(m_FreeSuballocationsBySize.empty()) - { - m_FreeSuballocationsBySize.push_back(item); + // Prepare for next iteration. + lastOffset = suballoc.offset + suballoc.size; + ++nextAlloc1stIndex; } + // We are at the end. else { - VmaVectorInsertSorted(m_FreeSuballocationsBySize, item); + // End of loop. + lastOffset = freeSpace1stTo2ndEnd; } } - //VMA_HEAVY_ASSERT(ValidateFreeSuballocationList()); -} - - -void VmaBlockMetadata_Generic::UnregisterFreeSuballocation(VmaSuballocationList::iterator item) -{ - VMA_ASSERT(item->type == VMA_SUBALLOCATION_TYPE_FREE); - VMA_ASSERT(item->size > 0); - - // You may want to enable this validation at the beginning or at the end of - // this function, depending on what do you want to check. - VMA_HEAVY_ASSERT(ValidateFreeSuballocationList()); - - if(item->size >= VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER) + if (m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) { - VmaSuballocationList::iterator* const it = VmaBinaryFindFirstNotLess( - m_FreeSuballocationsBySize.data(), - m_FreeSuballocationsBySize.data() + m_FreeSuballocationsBySize.size(), - item, - VmaSuballocationItemSizeLess()); - for(size_t index = it - m_FreeSuballocationsBySize.data(); - index < m_FreeSuballocationsBySize.size(); - ++index) + size_t nextAlloc2ndIndex = suballocations2nd.size() - 1; + while (lastOffset < size) { - if(m_FreeSuballocationsBySize[index] == item) + // Find next non-null allocation or move nextAlloc2ndIndex to the end. + while (nextAlloc2ndIndex != SIZE_MAX && + suballocations2nd[nextAlloc2ndIndex].userData == VMA_NULL) { - VmaVectorRemove(m_FreeSuballocationsBySize, index); - return; + --nextAlloc2ndIndex; } - VMA_ASSERT((m_FreeSuballocationsBySize[index]->size == item->size) && "Not found."); - } - VMA_ASSERT(0 && "Not found."); - } - //VMA_HEAVY_ASSERT(ValidateFreeSuballocationList()); -} + // Found non-null allocation. + if (nextAlloc2ndIndex != SIZE_MAX) + { + const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; -bool VmaBlockMetadata_Generic::IsBufferImageGranularityConflictPossible( - VkDeviceSize bufferImageGranularity, - VmaSuballocationType& inOutPrevSuballocType) const -{ - if(bufferImageGranularity == 1 || IsEmpty()) - { - return false; - } + // Process this allocation. + // There is allocation with suballoc.offset, suballoc.size. + ++inoutStats.allocationCount; - VkDeviceSize minAlignment = VK_WHOLE_SIZE; - bool typeConflictFound = false; - for(const auto& suballoc : m_Suballocations) - { - const VmaSuballocationType suballocType = suballoc.type; - if(suballocType != VMA_SUBALLOCATION_TYPE_FREE) - { - minAlignment = VMA_MIN(minAlignment, suballoc.hAllocation->GetAlignment()); - if(VmaIsBufferImageGranularityConflict(inOutPrevSuballocType, suballocType)) + // Prepare for next iteration. + lastOffset = suballoc.offset + suballoc.size; + --nextAlloc2ndIndex; + } + // We are at the end. + else { - typeConflictFound = true; + // End of loop. + lastOffset = size; } - inOutPrevSuballocType = suballocType; } } - - return typeConflictFound || minAlignment >= bufferImageGranularity; -} - -//////////////////////////////////////////////////////////////////////////////// -// class VmaBlockMetadata_Linear - -VmaBlockMetadata_Linear::VmaBlockMetadata_Linear(VmaAllocator hAllocator) : - VmaBlockMetadata(hAllocator), - m_SumFreeSize(0), - m_Suballocations0(VmaStlAllocator(hAllocator->GetAllocationCallbacks())), - m_Suballocations1(VmaStlAllocator(hAllocator->GetAllocationCallbacks())), - m_1stVectorIndex(0), - m_2ndVectorMode(SECOND_VECTOR_EMPTY), - m_1stNullItemsBeginCount(0), - m_1stNullItemsMiddleCount(0), - m_2ndNullItemsCount(0) -{ -} - -VmaBlockMetadata_Linear::~VmaBlockMetadata_Linear() -{ -} - -void VmaBlockMetadata_Linear::Init(VkDeviceSize size) -{ - VmaBlockMetadata::Init(size); - m_SumFreeSize = size; } -bool VmaBlockMetadata_Linear::Validate() const +#if VMA_STATS_STRING_ENABLED +void VmaBlockMetadata_Linear::PrintDetailedMap(class VmaJsonWriter& json) const { + const VkDeviceSize size = GetSize(); const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + const size_t suballoc1stCount = suballocations1st.size(); + const size_t suballoc2ndCount = suballocations2nd.size(); - VMA_VALIDATE(suballocations2nd.empty() == (m_2ndVectorMode == SECOND_VECTOR_EMPTY)); - VMA_VALIDATE(!suballocations1st.empty() || - suballocations2nd.empty() || - m_2ndVectorMode != SECOND_VECTOR_RING_BUFFER); - - if(!suballocations1st.empty()) - { - // Null item at the beginning should be accounted into m_1stNullItemsBeginCount. - VMA_VALIDATE(suballocations1st[m_1stNullItemsBeginCount].hAllocation != VK_NULL_HANDLE); - // Null item at the end should be just pop_back(). - VMA_VALIDATE(suballocations1st.back().hAllocation != VK_NULL_HANDLE); - } - if(!suballocations2nd.empty()) - { - // Null item at the end should be just pop_back(). - VMA_VALIDATE(suballocations2nd.back().hAllocation != VK_NULL_HANDLE); - } + // FIRST PASS - VMA_VALIDATE(m_1stNullItemsBeginCount + m_1stNullItemsMiddleCount <= suballocations1st.size()); - VMA_VALIDATE(m_2ndNullItemsCount <= suballocations2nd.size()); + size_t unusedRangeCount = 0; + VkDeviceSize usedBytes = 0; - VkDeviceSize sumUsedSize = 0; - const size_t suballoc1stCount = suballocations1st.size(); - VkDeviceSize offset = VMA_DEBUG_MARGIN; + VkDeviceSize lastOffset = 0; - if(m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) + size_t alloc2ndCount = 0; + if (m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) { - const size_t suballoc2ndCount = suballocations2nd.size(); - size_t nullItem2ndCount = 0; - for(size_t i = 0; i < suballoc2ndCount; ++i) + const VkDeviceSize freeSpace2ndTo1stEnd = suballocations1st[m_1stNullItemsBeginCount].offset; + size_t nextAlloc2ndIndex = 0; + while (lastOffset < freeSpace2ndTo1stEnd) { - const VmaSuballocation& suballoc = suballocations2nd[i]; - const bool currFree = (suballoc.type == VMA_SUBALLOCATION_TYPE_FREE); - - VMA_VALIDATE(currFree == (suballoc.hAllocation == VK_NULL_HANDLE)); - VMA_VALIDATE(suballoc.offset >= offset); + // Find next non-null allocation or move nextAlloc2ndIndex to the end. + while (nextAlloc2ndIndex < suballoc2ndCount && + suballocations2nd[nextAlloc2ndIndex].userData == VMA_NULL) + { + ++nextAlloc2ndIndex; + } - if(!currFree) + // Found non-null allocation. + if (nextAlloc2ndIndex < suballoc2ndCount) { - VMA_VALIDATE(suballoc.hAllocation->GetOffset() == suballoc.offset); - VMA_VALIDATE(suballoc.hAllocation->GetSize() == suballoc.size); - sumUsedSize += suballoc.size; + const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; + + // 1. Process free space before this allocation. + if (lastOffset < suballoc.offset) + { + // There is free space from lastOffset to suballoc.offset. + ++unusedRangeCount; + } + + // 2. Process this allocation. + // There is allocation with suballoc.offset, suballoc.size. + ++alloc2ndCount; + usedBytes += suballoc.size; + + // 3. Prepare for next iteration. + lastOffset = suballoc.offset + suballoc.size; + ++nextAlloc2ndIndex; } + // We are at the end. else { - ++nullItem2ndCount; - } + if (lastOffset < freeSpace2ndTo1stEnd) + { + // There is free space from lastOffset to freeSpace2ndTo1stEnd. + ++unusedRangeCount; + } - offset = suballoc.offset + suballoc.size + VMA_DEBUG_MARGIN; + // End of loop. + lastOffset = freeSpace2ndTo1stEnd; + } } - - VMA_VALIDATE(nullItem2ndCount == m_2ndNullItemsCount); } - for(size_t i = 0; i < m_1stNullItemsBeginCount; ++i) + size_t nextAlloc1stIndex = m_1stNullItemsBeginCount; + size_t alloc1stCount = 0; + const VkDeviceSize freeSpace1stTo2ndEnd = + m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK ? suballocations2nd.back().offset : size; + while (lastOffset < freeSpace1stTo2ndEnd) { - const VmaSuballocation& suballoc = suballocations1st[i]; - VMA_VALIDATE(suballoc.type == VMA_SUBALLOCATION_TYPE_FREE && - suballoc.hAllocation == VK_NULL_HANDLE); - } + // Find next non-null allocation or move nextAllocIndex to the end. + while (nextAlloc1stIndex < suballoc1stCount && + suballocations1st[nextAlloc1stIndex].userData == VMA_NULL) + { + ++nextAlloc1stIndex; + } - size_t nullItem1stCount = m_1stNullItemsBeginCount; + // Found non-null allocation. + if (nextAlloc1stIndex < suballoc1stCount) + { + const VmaSuballocation& suballoc = suballocations1st[nextAlloc1stIndex]; - for(size_t i = m_1stNullItemsBeginCount; i < suballoc1stCount; ++i) - { - const VmaSuballocation& suballoc = suballocations1st[i]; - const bool currFree = (suballoc.type == VMA_SUBALLOCATION_TYPE_FREE); + // 1. Process free space before this allocation. + if (lastOffset < suballoc.offset) + { + // There is free space from lastOffset to suballoc.offset. + ++unusedRangeCount; + } - VMA_VALIDATE(currFree == (suballoc.hAllocation == VK_NULL_HANDLE)); - VMA_VALIDATE(suballoc.offset >= offset); - VMA_VALIDATE(i >= m_1stNullItemsBeginCount || currFree); + // 2. Process this allocation. + // There is allocation with suballoc.offset, suballoc.size. + ++alloc1stCount; + usedBytes += suballoc.size; - if(!currFree) - { - VMA_VALIDATE(suballoc.hAllocation->GetOffset() == suballoc.offset); - VMA_VALIDATE(suballoc.hAllocation->GetSize() == suballoc.size); - sumUsedSize += suballoc.size; + // 3. Prepare for next iteration. + lastOffset = suballoc.offset + suballoc.size; + ++nextAlloc1stIndex; } + // We are at the end. else { - ++nullItem1stCount; - } + if (lastOffset < size) + { + // There is free space from lastOffset to freeSpace1stTo2ndEnd. + ++unusedRangeCount; + } - offset = suballoc.offset + suballoc.size + VMA_DEBUG_MARGIN; + // End of loop. + lastOffset = freeSpace1stTo2ndEnd; + } } - VMA_VALIDATE(nullItem1stCount == m_1stNullItemsBeginCount + m_1stNullItemsMiddleCount); - if(m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) + if (m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) { - const size_t suballoc2ndCount = suballocations2nd.size(); - size_t nullItem2ndCount = 0; - for(size_t i = suballoc2ndCount; i--; ) + size_t nextAlloc2ndIndex = suballocations2nd.size() - 1; + while (lastOffset < size) { - const VmaSuballocation& suballoc = suballocations2nd[i]; - const bool currFree = (suballoc.type == VMA_SUBALLOCATION_TYPE_FREE); - - VMA_VALIDATE(currFree == (suballoc.hAllocation == VK_NULL_HANDLE)); - VMA_VALIDATE(suballoc.offset >= offset); - - if(!currFree) - { - VMA_VALIDATE(suballoc.hAllocation->GetOffset() == suballoc.offset); - VMA_VALIDATE(suballoc.hAllocation->GetSize() == suballoc.size); - sumUsedSize += suballoc.size; - } - else + // Find next non-null allocation or move nextAlloc2ndIndex to the end. + while (nextAlloc2ndIndex != SIZE_MAX && + suballocations2nd[nextAlloc2ndIndex].userData == VMA_NULL) { - ++nullItem2ndCount; + --nextAlloc2ndIndex; } - offset = suballoc.offset + suballoc.size + VMA_DEBUG_MARGIN; - } - - VMA_VALIDATE(nullItem2ndCount == m_2ndNullItemsCount); - } - - VMA_VALIDATE(offset <= GetSize()); - VMA_VALIDATE(m_SumFreeSize == GetSize() - sumUsedSize); - - return true; -} - -size_t VmaBlockMetadata_Linear::GetAllocationCount() const -{ - return AccessSuballocations1st().size() - (m_1stNullItemsBeginCount + m_1stNullItemsMiddleCount) + - AccessSuballocations2nd().size() - m_2ndNullItemsCount; -} - -VkDeviceSize VmaBlockMetadata_Linear::GetUnusedRangeSizeMax() const -{ - const VkDeviceSize size = GetSize(); - - /* - We don't consider gaps inside allocation vectors with freed allocations because - they are not suitable for reuse in linear allocator. We consider only space that - is available for new allocations. - */ - if(IsEmpty()) - { - return size; - } + // Found non-null allocation. + if (nextAlloc2ndIndex != SIZE_MAX) + { + const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; - const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + // 1. Process free space before this allocation. + if (lastOffset < suballoc.offset) + { + // There is free space from lastOffset to suballoc.offset. + ++unusedRangeCount; + } - switch(m_2ndVectorMode) - { - case SECOND_VECTOR_EMPTY: - /* - Available space is after end of 1st, as well as before beginning of 1st (which - would make it a ring buffer). - */ - { - const size_t suballocations1stCount = suballocations1st.size(); - VMA_ASSERT(suballocations1stCount > m_1stNullItemsBeginCount); - const VmaSuballocation& firstSuballoc = suballocations1st[m_1stNullItemsBeginCount]; - const VmaSuballocation& lastSuballoc = suballocations1st[suballocations1stCount - 1]; - return VMA_MAX( - firstSuballoc.offset, - size - (lastSuballoc.offset + lastSuballoc.size)); - } - break; + // 2. Process this allocation. + // There is allocation with suballoc.offset, suballoc.size. + ++alloc2ndCount; + usedBytes += suballoc.size; - case SECOND_VECTOR_RING_BUFFER: - /* - Available space is only between end of 2nd and beginning of 1st. - */ - { - const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - const VmaSuballocation& lastSuballoc2nd = suballocations2nd.back(); - const VmaSuballocation& firstSuballoc1st = suballocations1st[m_1stNullItemsBeginCount]; - return firstSuballoc1st.offset - (lastSuballoc2nd.offset + lastSuballoc2nd.size); - } - break; + // 3. Prepare for next iteration. + lastOffset = suballoc.offset + suballoc.size; + --nextAlloc2ndIndex; + } + // We are at the end. + else + { + if (lastOffset < size) + { + // There is free space from lastOffset to size. + ++unusedRangeCount; + } - case SECOND_VECTOR_DOUBLE_STACK: - /* - Available space is only between end of 1st and top of 2nd. - */ - { - const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - const VmaSuballocation& topSuballoc2nd = suballocations2nd.back(); - const VmaSuballocation& lastSuballoc1st = suballocations1st.back(); - return topSuballoc2nd.offset - (lastSuballoc1st.offset + lastSuballoc1st.size); + // End of loop. + lastOffset = size; + } } - break; - - default: - VMA_ASSERT(0); - return 0; } -} - -void VmaBlockMetadata_Linear::CalcAllocationStatInfo(VmaStatInfo& outInfo) const -{ - const VkDeviceSize size = GetSize(); - const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); - const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - const size_t suballoc1stCount = suballocations1st.size(); - const size_t suballoc2ndCount = suballocations2nd.size(); - outInfo.blockCount = 1; - outInfo.allocationCount = (uint32_t)GetAllocationCount(); - outInfo.unusedRangeCount = 0; - outInfo.usedBytes = 0; - outInfo.allocationSizeMin = UINT64_MAX; - outInfo.allocationSizeMax = 0; - outInfo.unusedRangeSizeMin = UINT64_MAX; - outInfo.unusedRangeSizeMax = 0; + const VkDeviceSize unusedBytes = size - usedBytes; + PrintDetailedMap_Begin(json, unusedBytes, alloc1stCount + alloc2ndCount, unusedRangeCount); - VkDeviceSize lastOffset = 0; + // SECOND PASS + lastOffset = 0; - if(m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) + if (m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) { const VkDeviceSize freeSpace2ndTo1stEnd = suballocations1st[m_1stNullItemsBeginCount].offset; size_t nextAlloc2ndIndex = 0; - while(lastOffset < freeSpace2ndTo1stEnd) + while (lastOffset < freeSpace2ndTo1stEnd) { - // Find next non-null allocation or move nextAllocIndex to the end. - while(nextAlloc2ndIndex < suballoc2ndCount && - suballocations2nd[nextAlloc2ndIndex].hAllocation == VK_NULL_HANDLE) + // Find next non-null allocation or move nextAlloc2ndIndex to the end. + while (nextAlloc2ndIndex < suballoc2ndCount && + suballocations2nd[nextAlloc2ndIndex].userData == VMA_NULL) { ++nextAlloc2ndIndex; } // Found non-null allocation. - if(nextAlloc2ndIndex < suballoc2ndCount) + if (nextAlloc2ndIndex < suballoc2ndCount) { const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) + if (lastOffset < suballoc.offset) { // There is free space from lastOffset to suballoc.offset. const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; - ++outInfo.unusedRangeCount; - outInfo.unusedBytes += unusedRangeSize; - outInfo.unusedRangeSizeMin = VMA_MIN(outInfo.unusedRangeSizeMin, unusedRangeSize); - outInfo.unusedRangeSizeMax = VMA_MIN(outInfo.unusedRangeSizeMax, unusedRangeSize); + PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); } // 2. Process this allocation. // There is allocation with suballoc.offset, suballoc.size. - outInfo.usedBytes += suballoc.size; - outInfo.allocationSizeMin = VMA_MIN(outInfo.allocationSizeMin, suballoc.size); - outInfo.allocationSizeMax = VMA_MIN(outInfo.allocationSizeMax, suballoc.size); + PrintDetailedMap_Allocation(json, suballoc.offset, suballoc.size, suballoc.userData); // 3. Prepare for next iteration. lastOffset = suballoc.offset + suballoc.size; @@ -8741,15 +8455,12 @@ void VmaBlockMetadata_Linear::CalcAllocationStatInfo(VmaStatInfo& outInfo) const // We are at the end. else { - // There is free space from lastOffset to freeSpace2ndTo1stEnd. - if(lastOffset < freeSpace2ndTo1stEnd) + if (lastOffset < freeSpace2ndTo1stEnd) { + // There is free space from lastOffset to freeSpace2ndTo1stEnd. const VkDeviceSize unusedRangeSize = freeSpace2ndTo1stEnd - lastOffset; - ++outInfo.unusedRangeCount; - outInfo.unusedBytes += unusedRangeSize; - outInfo.unusedRangeSizeMin = VMA_MIN(outInfo.unusedRangeSizeMin, unusedRangeSize); - outInfo.unusedRangeSizeMax = VMA_MIN(outInfo.unusedRangeSizeMax, unusedRangeSize); - } + PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); + } // End of loop. lastOffset = freeSpace2ndTo1stEnd; @@ -8757,39 +8468,32 @@ void VmaBlockMetadata_Linear::CalcAllocationStatInfo(VmaStatInfo& outInfo) const } } - size_t nextAlloc1stIndex = m_1stNullItemsBeginCount; - const VkDeviceSize freeSpace1stTo2ndEnd = - m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK ? suballocations2nd.back().offset : size; - while(lastOffset < freeSpace1stTo2ndEnd) + nextAlloc1stIndex = m_1stNullItemsBeginCount; + while (lastOffset < freeSpace1stTo2ndEnd) { // Find next non-null allocation or move nextAllocIndex to the end. - while(nextAlloc1stIndex < suballoc1stCount && - suballocations1st[nextAlloc1stIndex].hAllocation == VK_NULL_HANDLE) + while (nextAlloc1stIndex < suballoc1stCount && + suballocations1st[nextAlloc1stIndex].userData == VMA_NULL) { ++nextAlloc1stIndex; } // Found non-null allocation. - if(nextAlloc1stIndex < suballoc1stCount) + if (nextAlloc1stIndex < suballoc1stCount) { const VmaSuballocation& suballoc = suballocations1st[nextAlloc1stIndex]; // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) + if (lastOffset < suballoc.offset) { // There is free space from lastOffset to suballoc.offset. const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; - ++outInfo.unusedRangeCount; - outInfo.unusedBytes += unusedRangeSize; - outInfo.unusedRangeSizeMin = VMA_MIN(outInfo.unusedRangeSizeMin, unusedRangeSize); - outInfo.unusedRangeSizeMax = VMA_MIN(outInfo.unusedRangeSizeMax, unusedRangeSize); + PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); } // 2. Process this allocation. // There is allocation with suballoc.offset, suballoc.size. - outInfo.usedBytes += suballoc.size; - outInfo.allocationSizeMin = VMA_MIN(outInfo.allocationSizeMin, suballoc.size); - outInfo.allocationSizeMax = VMA_MIN(outInfo.allocationSizeMax, suballoc.size); + PrintDetailedMap_Allocation(json, suballoc.offset, suballoc.size, suballoc.userData); // 3. Prepare for next iteration. lastOffset = suballoc.offset + suballoc.size; @@ -8798,54 +8502,46 @@ void VmaBlockMetadata_Linear::CalcAllocationStatInfo(VmaStatInfo& outInfo) const // We are at the end. else { - // There is free space from lastOffset to freeSpace1stTo2ndEnd. - if(lastOffset < freeSpace1stTo2ndEnd) + if (lastOffset < freeSpace1stTo2ndEnd) { + // There is free space from lastOffset to freeSpace1stTo2ndEnd. const VkDeviceSize unusedRangeSize = freeSpace1stTo2ndEnd - lastOffset; - ++outInfo.unusedRangeCount; - outInfo.unusedBytes += unusedRangeSize; - outInfo.unusedRangeSizeMin = VMA_MIN(outInfo.unusedRangeSizeMin, unusedRangeSize); - outInfo.unusedRangeSizeMax = VMA_MIN(outInfo.unusedRangeSizeMax, unusedRangeSize); - } + PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); + } // End of loop. lastOffset = freeSpace1stTo2ndEnd; } } - if(m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) + if (m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) { size_t nextAlloc2ndIndex = suballocations2nd.size() - 1; - while(lastOffset < size) + while (lastOffset < size) { - // Find next non-null allocation or move nextAllocIndex to the end. - while(nextAlloc2ndIndex != SIZE_MAX && - suballocations2nd[nextAlloc2ndIndex].hAllocation == VK_NULL_HANDLE) + // Find next non-null allocation or move nextAlloc2ndIndex to the end. + while (nextAlloc2ndIndex != SIZE_MAX && + suballocations2nd[nextAlloc2ndIndex].userData == VMA_NULL) { --nextAlloc2ndIndex; } // Found non-null allocation. - if(nextAlloc2ndIndex != SIZE_MAX) + if (nextAlloc2ndIndex != SIZE_MAX) { const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) + if (lastOffset < suballoc.offset) { // There is free space from lastOffset to suballoc.offset. const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; - ++outInfo.unusedRangeCount; - outInfo.unusedBytes += unusedRangeSize; - outInfo.unusedRangeSizeMin = VMA_MIN(outInfo.unusedRangeSizeMin, unusedRangeSize); - outInfo.unusedRangeSizeMax = VMA_MIN(outInfo.unusedRangeSizeMax, unusedRangeSize); + PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); } // 2. Process this allocation. // There is allocation with suballoc.offset, suballoc.size. - outInfo.usedBytes += suballoc.size; - outInfo.allocationSizeMin = VMA_MIN(outInfo.allocationSizeMin, suballoc.size); - outInfo.allocationSizeMax = VMA_MIN(outInfo.allocationSizeMax, suballoc.size); + PrintDetailedMap_Allocation(json, suballoc.offset, suballoc.size, suballoc.userData); // 3. Prepare for next iteration. lastOffset = suballoc.offset + suballoc.size; @@ -8854,15 +8550,12 @@ void VmaBlockMetadata_Linear::CalcAllocationStatInfo(VmaStatInfo& outInfo) const // We are at the end. else { - // There is free space from lastOffset to size. - if(lastOffset < size) + if (lastOffset < size) { + // There is free space from lastOffset to size. const VkDeviceSize unusedRangeSize = size - lastOffset; - ++outInfo.unusedRangeCount; - outInfo.unusedBytes += unusedRangeSize; - outInfo.unusedRangeSizeMin = VMA_MIN(outInfo.unusedRangeSizeMin, unusedRangeSize); - outInfo.unusedRangeSizeMax = VMA_MIN(outInfo.unusedRangeSizeMax, unusedRangeSize); - } + PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); + } // End of loop. lastOffset = size; @@ -8870,555 +8563,642 @@ void VmaBlockMetadata_Linear::CalcAllocationStatInfo(VmaStatInfo& outInfo) const } } - outInfo.unusedBytes = size - outInfo.usedBytes; + PrintDetailedMap_End(json); } +#endif // VMA_STATS_STRING_ENABLED -void VmaBlockMetadata_Linear::AddPoolStats(VmaPoolStats& inoutStats) const +bool VmaBlockMetadata_Linear::CreateAllocationRequest( + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + bool upperAddress, + VmaSuballocationType allocType, + uint32_t strategy, + VmaAllocationRequest* pAllocationRequest) { - const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); - const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - const VkDeviceSize size = GetSize(); - const size_t suballoc1stCount = suballocations1st.size(); - const size_t suballoc2ndCount = suballocations2nd.size(); - - inoutStats.size += size; - - VkDeviceSize lastOffset = 0; + VMA_ASSERT(allocSize > 0); + VMA_ASSERT(allocType != VMA_SUBALLOCATION_TYPE_FREE); + VMA_ASSERT(pAllocationRequest != VMA_NULL); + VMA_HEAVY_ASSERT(Validate()); + pAllocationRequest->size = allocSize; + return upperAddress ? + CreateAllocationRequest_UpperAddress( + allocSize, allocAlignment, allocType, strategy, pAllocationRequest) : + CreateAllocationRequest_LowerAddress( + allocSize, allocAlignment, allocType, strategy, pAllocationRequest); +} - if(m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) +VkResult VmaBlockMetadata_Linear::CheckCorruption(const void* pBlockData) +{ + VMA_ASSERT(!IsVirtual()); + SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + for (size_t i = m_1stNullItemsBeginCount, count = suballocations1st.size(); i < count; ++i) { - const VkDeviceSize freeSpace2ndTo1stEnd = suballocations1st[m_1stNullItemsBeginCount].offset; - size_t nextAlloc2ndIndex = m_1stNullItemsBeginCount; - while(lastOffset < freeSpace2ndTo1stEnd) + const VmaSuballocation& suballoc = suballocations1st[i]; + if (suballoc.type != VMA_SUBALLOCATION_TYPE_FREE) { - // Find next non-null allocation or move nextAlloc2ndIndex to the end. - while(nextAlloc2ndIndex < suballoc2ndCount && - suballocations2nd[nextAlloc2ndIndex].hAllocation == VK_NULL_HANDLE) + if (!VmaValidateMagicValue(pBlockData, suballoc.offset + suballoc.size)) { - ++nextAlloc2ndIndex; + VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED AFTER VALIDATED ALLOCATION!"); + return VK_ERROR_UNKNOWN_COPY; } + } + } - // Found non-null allocation. - if(nextAlloc2ndIndex < suballoc2ndCount) + SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + for (size_t i = 0, count = suballocations2nd.size(); i < count; ++i) + { + const VmaSuballocation& suballoc = suballocations2nd[i]; + if (suballoc.type != VMA_SUBALLOCATION_TYPE_FREE) + { + if (!VmaValidateMagicValue(pBlockData, suballoc.offset + suballoc.size)) { - const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; + VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED AFTER VALIDATED ALLOCATION!"); + return VK_ERROR_UNKNOWN_COPY; + } + } + } - // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) - { - // There is free space from lastOffset to suballoc.offset. - const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; - inoutStats.unusedSize += unusedRangeSize; - ++inoutStats.unusedRangeCount; - inoutStats.unusedRangeSizeMax = VMA_MAX(inoutStats.unusedRangeSizeMax, unusedRangeSize); - } + return VK_SUCCESS; +} - // 2. Process this allocation. - // There is allocation with suballoc.offset, suballoc.size. - ++inoutStats.allocationCount; +void VmaBlockMetadata_Linear::Alloc( + const VmaAllocationRequest& request, + VmaSuballocationType type, + void* userData) +{ + const VkDeviceSize offset = (VkDeviceSize)request.allocHandle - 1; + const VmaSuballocation newSuballoc = { offset, request.size, userData, type }; + + switch (request.type) + { + case VmaAllocationRequestType::UpperAddress: + { + VMA_ASSERT(m_2ndVectorMode != SECOND_VECTOR_RING_BUFFER && + "CRITICAL ERROR: Trying to use linear allocator as double stack while it was already used as ring buffer."); + SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + suballocations2nd.push_back(newSuballoc); + m_2ndVectorMode = SECOND_VECTOR_DOUBLE_STACK; + } + break; + case VmaAllocationRequestType::EndOf1st: + { + SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + + VMA_ASSERT(suballocations1st.empty() || + offset >= suballocations1st.back().offset + suballocations1st.back().size); + // Check if it fits before the end of the block. + VMA_ASSERT(offset + request.size <= GetSize()); + + suballocations1st.push_back(newSuballoc); + } + break; + case VmaAllocationRequestType::EndOf2nd: + { + SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + // New allocation at the end of 2-part ring buffer, so before first allocation from 1st vector. + VMA_ASSERT(!suballocations1st.empty() && + offset + request.size <= suballocations1st[m_1stNullItemsBeginCount].offset); + SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + + switch (m_2ndVectorMode) + { + case SECOND_VECTOR_EMPTY: + // First allocation from second part ring buffer. + VMA_ASSERT(suballocations2nd.empty()); + m_2ndVectorMode = SECOND_VECTOR_RING_BUFFER; + break; + case SECOND_VECTOR_RING_BUFFER: + // 2-part ring buffer is already started. + VMA_ASSERT(!suballocations2nd.empty()); + break; + case SECOND_VECTOR_DOUBLE_STACK: + VMA_ASSERT(0 && "CRITICAL ERROR: Trying to use linear allocator as ring buffer while it was already used as double stack."); + break; + default: + VMA_ASSERT(0); + } + + suballocations2nd.push_back(newSuballoc); + } + break; + default: + VMA_ASSERT(0 && "CRITICAL INTERNAL ERROR."); + } - // 3. Prepare for next iteration. - lastOffset = suballoc.offset + suballoc.size; - ++nextAlloc2ndIndex; - } - // We are at the end. - else - { - if(lastOffset < freeSpace2ndTo1stEnd) - { - // There is free space from lastOffset to freeSpace2ndTo1stEnd. - const VkDeviceSize unusedRangeSize = freeSpace2ndTo1stEnd - lastOffset; - inoutStats.unusedSize += unusedRangeSize; - ++inoutStats.unusedRangeCount; - inoutStats.unusedRangeSizeMax = VMA_MAX(inoutStats.unusedRangeSizeMax, unusedRangeSize); - } + m_SumFreeSize -= newSuballoc.size; +} - // End of loop. - lastOffset = freeSpace2ndTo1stEnd; - } +void VmaBlockMetadata_Linear::Free(VmaAllocHandle allocHandle) +{ + SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + VkDeviceSize offset = (VkDeviceSize)allocHandle - 1; + + if (!suballocations1st.empty()) + { + // First allocation: Mark it as next empty at the beginning. + VmaSuballocation& firstSuballoc = suballocations1st[m_1stNullItemsBeginCount]; + if (firstSuballoc.offset == offset) + { + firstSuballoc.type = VMA_SUBALLOCATION_TYPE_FREE; + firstSuballoc.userData = VMA_NULL; + m_SumFreeSize += firstSuballoc.size; + ++m_1stNullItemsBeginCount; + CleanupAfterFree(); + return; } } - size_t nextAlloc1stIndex = m_1stNullItemsBeginCount; - const VkDeviceSize freeSpace1stTo2ndEnd = - m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK ? suballocations2nd.back().offset : size; - while(lastOffset < freeSpace1stTo2ndEnd) + // Last allocation in 2-part ring buffer or top of upper stack (same logic). + if (m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER || + m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) { - // Find next non-null allocation or move nextAllocIndex to the end. - while(nextAlloc1stIndex < suballoc1stCount && - suballocations1st[nextAlloc1stIndex].hAllocation == VK_NULL_HANDLE) + VmaSuballocation& lastSuballoc = suballocations2nd.back(); + if (lastSuballoc.offset == offset) { - ++nextAlloc1stIndex; + m_SumFreeSize += lastSuballoc.size; + suballocations2nd.pop_back(); + CleanupAfterFree(); + return; } - - // Found non-null allocation. - if(nextAlloc1stIndex < suballoc1stCount) + } + // Last allocation in 1st vector. + else if (m_2ndVectorMode == SECOND_VECTOR_EMPTY) + { + VmaSuballocation& lastSuballoc = suballocations1st.back(); + if (lastSuballoc.offset == offset) { - const VmaSuballocation& suballoc = suballocations1st[nextAlloc1stIndex]; - - // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) - { - // There is free space from lastOffset to suballoc.offset. - const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; - inoutStats.unusedSize += unusedRangeSize; - ++inoutStats.unusedRangeCount; - inoutStats.unusedRangeSizeMax = VMA_MAX(inoutStats.unusedRangeSizeMax, unusedRangeSize); - } + m_SumFreeSize += lastSuballoc.size; + suballocations1st.pop_back(); + CleanupAfterFree(); + return; + } + } - // 2. Process this allocation. - // There is allocation with suballoc.offset, suballoc.size. - ++inoutStats.allocationCount; + VmaSuballocation refSuballoc; + refSuballoc.offset = offset; + // Rest of members stays uninitialized intentionally for better performance. - // 3. Prepare for next iteration. - lastOffset = suballoc.offset + suballoc.size; - ++nextAlloc1stIndex; - } - // We are at the end. - else + // Item from the middle of 1st vector. + { + const SuballocationVectorType::iterator it = VmaBinaryFindSorted( + suballocations1st.begin() + m_1stNullItemsBeginCount, + suballocations1st.end(), + refSuballoc, + VmaSuballocationOffsetLess()); + if (it != suballocations1st.end()) { - if(lastOffset < freeSpace1stTo2ndEnd) - { - // There is free space from lastOffset to freeSpace1stTo2ndEnd. - const VkDeviceSize unusedRangeSize = freeSpace1stTo2ndEnd - lastOffset; - inoutStats.unusedSize += unusedRangeSize; - ++inoutStats.unusedRangeCount; - inoutStats.unusedRangeSizeMax = VMA_MAX(inoutStats.unusedRangeSizeMax, unusedRangeSize); - } - - // End of loop. - lastOffset = freeSpace1stTo2ndEnd; + it->type = VMA_SUBALLOCATION_TYPE_FREE; + it->userData = VMA_NULL; + ++m_1stNullItemsMiddleCount; + m_SumFreeSize += it->size; + CleanupAfterFree(); + return; } } - if(m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) + if (m_2ndVectorMode != SECOND_VECTOR_EMPTY) { - size_t nextAlloc2ndIndex = suballocations2nd.size() - 1; - while(lastOffset < size) + // Item from the middle of 2nd vector. + const SuballocationVectorType::iterator it = m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER ? + VmaBinaryFindSorted(suballocations2nd.begin(), suballocations2nd.end(), refSuballoc, VmaSuballocationOffsetLess()) : + VmaBinaryFindSorted(suballocations2nd.begin(), suballocations2nd.end(), refSuballoc, VmaSuballocationOffsetGreater()); + if (it != suballocations2nd.end()) { - // Find next non-null allocation or move nextAlloc2ndIndex to the end. - while(nextAlloc2ndIndex != SIZE_MAX && - suballocations2nd[nextAlloc2ndIndex].hAllocation == VK_NULL_HANDLE) - { - --nextAlloc2ndIndex; - } - - // Found non-null allocation. - if(nextAlloc2ndIndex != SIZE_MAX) - { - const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; - - // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) - { - // There is free space from lastOffset to suballoc.offset. - const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; - inoutStats.unusedSize += unusedRangeSize; - ++inoutStats.unusedRangeCount; - inoutStats.unusedRangeSizeMax = VMA_MAX(inoutStats.unusedRangeSizeMax, unusedRangeSize); - } + it->type = VMA_SUBALLOCATION_TYPE_FREE; + it->userData = VMA_NULL; + ++m_2ndNullItemsCount; + m_SumFreeSize += it->size; + CleanupAfterFree(); + return; + } + } - // 2. Process this allocation. - // There is allocation with suballoc.offset, suballoc.size. - ++inoutStats.allocationCount; + VMA_ASSERT(0 && "Allocation to free not found in linear allocator!"); +} - // 3. Prepare for next iteration. - lastOffset = suballoc.offset + suballoc.size; - --nextAlloc2ndIndex; - } - // We are at the end. - else - { - if(lastOffset < size) - { - // There is free space from lastOffset to size. - const VkDeviceSize unusedRangeSize = size - lastOffset; - inoutStats.unusedSize += unusedRangeSize; - ++inoutStats.unusedRangeCount; - inoutStats.unusedRangeSizeMax = VMA_MAX(inoutStats.unusedRangeSizeMax, unusedRangeSize); - } +void VmaBlockMetadata_Linear::GetAllocationInfo(VmaAllocHandle allocHandle, VmaVirtualAllocationInfo& outInfo) +{ + outInfo.offset = (VkDeviceSize)allocHandle - 1; + VmaSuballocation& suballoc = FindSuballocation(outInfo.offset); + outInfo.size = suballoc.size; + outInfo.pUserData = suballoc.userData; +} - // End of loop. - lastOffset = size; - } - } - } +void* VmaBlockMetadata_Linear::GetAllocationUserData(VmaAllocHandle allocHandle) const +{ + return FindSuballocation((VkDeviceSize)allocHandle - 1).userData; } -#if VMA_STATS_STRING_ENABLED -void VmaBlockMetadata_Linear::PrintDetailedMap(class VmaJsonWriter& json) const +VmaAllocHandle VmaBlockMetadata_Linear::GetAllocationListBegin() const { - const VkDeviceSize size = GetSize(); - const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); - const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - const size_t suballoc1stCount = suballocations1st.size(); - const size_t suballoc2ndCount = suballocations2nd.size(); + // Function only used for defragmentation, which is disabled for this algorithm + VMA_ASSERT(0); + return VK_NULL_HANDLE; +} - // FIRST PASS +VmaAllocHandle VmaBlockMetadata_Linear::GetNextAllocation(VmaAllocHandle prevAlloc) const +{ + // Function only used for defragmentation, which is disabled for this algorithm + VMA_ASSERT(0); + return VK_NULL_HANDLE; +} - size_t unusedRangeCount = 0; - VkDeviceSize usedBytes = 0; +VkDeviceSize VmaBlockMetadata_Linear::GetNextFreeRegionSize(VmaAllocHandle alloc) const +{ + // Function only used for defragmentation, which is disabled for this algorithm + VMA_ASSERT(0); + return 0; +} - VkDeviceSize lastOffset = 0; +void VmaBlockMetadata_Linear::Clear() +{ + m_SumFreeSize = GetSize(); + m_Suballocations0.clear(); + m_Suballocations1.clear(); + // Leaving m_1stVectorIndex unchanged - it doesn't matter. + m_2ndVectorMode = SECOND_VECTOR_EMPTY; + m_1stNullItemsBeginCount = 0; + m_1stNullItemsMiddleCount = 0; + m_2ndNullItemsCount = 0; +} - size_t alloc2ndCount = 0; - if(m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) - { - const VkDeviceSize freeSpace2ndTo1stEnd = suballocations1st[m_1stNullItemsBeginCount].offset; - size_t nextAlloc2ndIndex = 0; - while(lastOffset < freeSpace2ndTo1stEnd) - { - // Find next non-null allocation or move nextAlloc2ndIndex to the end. - while(nextAlloc2ndIndex < suballoc2ndCount && - suballocations2nd[nextAlloc2ndIndex].hAllocation == VK_NULL_HANDLE) - { - ++nextAlloc2ndIndex; - } +void VmaBlockMetadata_Linear::SetAllocationUserData(VmaAllocHandle allocHandle, void* userData) +{ + VmaSuballocation& suballoc = FindSuballocation((VkDeviceSize)allocHandle - 1); + suballoc.userData = userData; +} - // Found non-null allocation. - if(nextAlloc2ndIndex < suballoc2ndCount) - { - const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; +void VmaBlockMetadata_Linear::DebugLogAllAllocations() const +{ + const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + for (auto it = suballocations1st.begin() + m_1stNullItemsBeginCount; it != suballocations1st.end(); ++it) + if (it->type != VMA_SUBALLOCATION_TYPE_FREE) + DebugLogAllocation(it->offset, it->size, it->userData); - // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) - { - // There is free space from lastOffset to suballoc.offset. - ++unusedRangeCount; - } + const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + for (auto it = suballocations2nd.begin(); it != suballocations2nd.end(); ++it) + if (it->type != VMA_SUBALLOCATION_TYPE_FREE) + DebugLogAllocation(it->offset, it->size, it->userData); +} - // 2. Process this allocation. - // There is allocation with suballoc.offset, suballoc.size. - ++alloc2ndCount; - usedBytes += suballoc.size; +VmaSuballocation& VmaBlockMetadata_Linear::FindSuballocation(VkDeviceSize offset) const +{ + const SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + const SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - // 3. Prepare for next iteration. - lastOffset = suballoc.offset + suballoc.size; - ++nextAlloc2ndIndex; - } - // We are at the end. - else - { - if(lastOffset < freeSpace2ndTo1stEnd) - { - // There is free space from lastOffset to freeSpace2ndTo1stEnd. - ++unusedRangeCount; - } + VmaSuballocation refSuballoc; + refSuballoc.offset = offset; + // Rest of members stays uninitialized intentionally for better performance. - // End of loop. - lastOffset = freeSpace2ndTo1stEnd; - } + // Item from the 1st vector. + { + SuballocationVectorType::const_iterator it = VmaBinaryFindSorted( + suballocations1st.begin() + m_1stNullItemsBeginCount, + suballocations1st.end(), + refSuballoc, + VmaSuballocationOffsetLess()); + if (it != suballocations1st.end()) + { + return const_cast(*it); } } - size_t nextAlloc1stIndex = m_1stNullItemsBeginCount; - size_t alloc1stCount = 0; - const VkDeviceSize freeSpace1stTo2ndEnd = - m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK ? suballocations2nd.back().offset : size; - while(lastOffset < freeSpace1stTo2ndEnd) + if (m_2ndVectorMode != SECOND_VECTOR_EMPTY) { - // Find next non-null allocation or move nextAllocIndex to the end. - while(nextAlloc1stIndex < suballoc1stCount && - suballocations1st[nextAlloc1stIndex].hAllocation == VK_NULL_HANDLE) + // Rest of members stays uninitialized intentionally for better performance. + SuballocationVectorType::const_iterator it = m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER ? + VmaBinaryFindSorted(suballocations2nd.begin(), suballocations2nd.end(), refSuballoc, VmaSuballocationOffsetLess()) : + VmaBinaryFindSorted(suballocations2nd.begin(), suballocations2nd.end(), refSuballoc, VmaSuballocationOffsetGreater()); + if (it != suballocations2nd.end()) { - ++nextAlloc1stIndex; + return const_cast(*it); } + } - // Found non-null allocation. - if(nextAlloc1stIndex < suballoc1stCount) - { - const VmaSuballocation& suballoc = suballocations1st[nextAlloc1stIndex]; + VMA_ASSERT(0 && "Allocation not found in linear allocator!"); + return const_cast(suballocations1st.back()); // Should never occur. +} - // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) - { - // There is free space from lastOffset to suballoc.offset. - ++unusedRangeCount; - } +bool VmaBlockMetadata_Linear::ShouldCompact1st() const +{ + const size_t nullItemCount = m_1stNullItemsBeginCount + m_1stNullItemsMiddleCount; + const size_t suballocCount = AccessSuballocations1st().size(); + return suballocCount > 32 && nullItemCount * 2 >= (suballocCount - nullItemCount) * 3; +} - // 2. Process this allocation. - // There is allocation with suballoc.offset, suballoc.size. - ++alloc1stCount; - usedBytes += suballoc.size; +void VmaBlockMetadata_Linear::CleanupAfterFree() +{ + SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - // 3. Prepare for next iteration. - lastOffset = suballoc.offset + suballoc.size; - ++nextAlloc1stIndex; + if (IsEmpty()) + { + suballocations1st.clear(); + suballocations2nd.clear(); + m_1stNullItemsBeginCount = 0; + m_1stNullItemsMiddleCount = 0; + m_2ndNullItemsCount = 0; + m_2ndVectorMode = SECOND_VECTOR_EMPTY; + } + else + { + const size_t suballoc1stCount = suballocations1st.size(); + const size_t nullItem1stCount = m_1stNullItemsBeginCount + m_1stNullItemsMiddleCount; + VMA_ASSERT(nullItem1stCount <= suballoc1stCount); + + // Find more null items at the beginning of 1st vector. + while (m_1stNullItemsBeginCount < suballoc1stCount && + suballocations1st[m_1stNullItemsBeginCount].type == VMA_SUBALLOCATION_TYPE_FREE) + { + ++m_1stNullItemsBeginCount; + --m_1stNullItemsMiddleCount; } - // We are at the end. - else + + // Find more null items at the end of 1st vector. + while (m_1stNullItemsMiddleCount > 0 && + suballocations1st.back().type == VMA_SUBALLOCATION_TYPE_FREE) { - if(lastOffset < size) - { - // There is free space from lastOffset to freeSpace1stTo2ndEnd. - ++unusedRangeCount; - } + --m_1stNullItemsMiddleCount; + suballocations1st.pop_back(); + } - // End of loop. - lastOffset = freeSpace1stTo2ndEnd; + // Find more null items at the end of 2nd vector. + while (m_2ndNullItemsCount > 0 && + suballocations2nd.back().type == VMA_SUBALLOCATION_TYPE_FREE) + { + --m_2ndNullItemsCount; + suballocations2nd.pop_back(); } - } - if(m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) - { - size_t nextAlloc2ndIndex = suballocations2nd.size() - 1; - while(lastOffset < size) + // Find more null items at the beginning of 2nd vector. + while (m_2ndNullItemsCount > 0 && + suballocations2nd[0].type == VMA_SUBALLOCATION_TYPE_FREE) { - // Find next non-null allocation or move nextAlloc2ndIndex to the end. - while(nextAlloc2ndIndex != SIZE_MAX && - suballocations2nd[nextAlloc2ndIndex].hAllocation == VK_NULL_HANDLE) - { - --nextAlloc2ndIndex; - } + --m_2ndNullItemsCount; + VmaVectorRemove(suballocations2nd, 0); + } - // Found non-null allocation. - if(nextAlloc2ndIndex != SIZE_MAX) + if (ShouldCompact1st()) + { + const size_t nonNullItemCount = suballoc1stCount - nullItem1stCount; + size_t srcIndex = m_1stNullItemsBeginCount; + for (size_t dstIndex = 0; dstIndex < nonNullItemCount; ++dstIndex) { - const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; - - // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) + while (suballocations1st[srcIndex].type == VMA_SUBALLOCATION_TYPE_FREE) { - // There is free space from lastOffset to suballoc.offset. - ++unusedRangeCount; + ++srcIndex; } - - // 2. Process this allocation. - // There is allocation with suballoc.offset, suballoc.size. - ++alloc2ndCount; - usedBytes += suballoc.size; - - // 3. Prepare for next iteration. - lastOffset = suballoc.offset + suballoc.size; - --nextAlloc2ndIndex; - } - // We are at the end. - else - { - if(lastOffset < size) + if (dstIndex != srcIndex) { - // There is free space from lastOffset to size. - ++unusedRangeCount; + suballocations1st[dstIndex] = suballocations1st[srcIndex]; } - - // End of loop. - lastOffset = size; + ++srcIndex; } + suballocations1st.resize(nonNullItemCount); + m_1stNullItemsBeginCount = 0; + m_1stNullItemsMiddleCount = 0; } - } - - const VkDeviceSize unusedBytes = size - usedBytes; - PrintDetailedMap_Begin(json, unusedBytes, alloc1stCount + alloc2ndCount, unusedRangeCount); - - // SECOND PASS - lastOffset = 0; - if(m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) - { - const VkDeviceSize freeSpace2ndTo1stEnd = suballocations1st[m_1stNullItemsBeginCount].offset; - size_t nextAlloc2ndIndex = 0; - while(lastOffset < freeSpace2ndTo1stEnd) + // 2nd vector became empty. + if (suballocations2nd.empty()) { - // Find next non-null allocation or move nextAlloc2ndIndex to the end. - while(nextAlloc2ndIndex < suballoc2ndCount && - suballocations2nd[nextAlloc2ndIndex].hAllocation == VK_NULL_HANDLE) - { - ++nextAlloc2ndIndex; - } - - // Found non-null allocation. - if(nextAlloc2ndIndex < suballoc2ndCount) - { - const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; - - // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) - { - // There is free space from lastOffset to suballoc.offset. - const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; - PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); - } + m_2ndVectorMode = SECOND_VECTOR_EMPTY; + } - // 2. Process this allocation. - // There is allocation with suballoc.offset, suballoc.size. - PrintDetailedMap_Allocation(json, suballoc.offset, suballoc.hAllocation); + // 1st vector became empty. + if (suballocations1st.size() - m_1stNullItemsBeginCount == 0) + { + suballocations1st.clear(); + m_1stNullItemsBeginCount = 0; - // 3. Prepare for next iteration. - lastOffset = suballoc.offset + suballoc.size; - ++nextAlloc2ndIndex; - } - // We are at the end. - else + if (!suballocations2nd.empty() && m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) { - if(lastOffset < freeSpace2ndTo1stEnd) + // Swap 1st with 2nd. Now 2nd is empty. + m_2ndVectorMode = SECOND_VECTOR_EMPTY; + m_1stNullItemsMiddleCount = m_2ndNullItemsCount; + while (m_1stNullItemsBeginCount < suballocations2nd.size() && + suballocations2nd[m_1stNullItemsBeginCount].type == VMA_SUBALLOCATION_TYPE_FREE) { - // There is free space from lastOffset to freeSpace2ndTo1stEnd. - const VkDeviceSize unusedRangeSize = freeSpace2ndTo1stEnd - lastOffset; - PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); + ++m_1stNullItemsBeginCount; + --m_1stNullItemsMiddleCount; } - - // End of loop. - lastOffset = freeSpace2ndTo1stEnd; + m_2ndNullItemsCount = 0; + m_1stVectorIndex ^= 1; } } } - nextAlloc1stIndex = m_1stNullItemsBeginCount; - while(lastOffset < freeSpace1stTo2ndEnd) + VMA_HEAVY_ASSERT(Validate()); +} + +bool VmaBlockMetadata_Linear::CreateAllocationRequest_LowerAddress( + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + VmaSuballocationType allocType, + uint32_t strategy, + VmaAllocationRequest* pAllocationRequest) +{ + const VkDeviceSize blockSize = GetSize(); + const VkDeviceSize debugMargin = GetDebugMargin(); + const VkDeviceSize bufferImageGranularity = GetBufferImageGranularity(); + SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + + if (m_2ndVectorMode == SECOND_VECTOR_EMPTY || m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) { - // Find next non-null allocation or move nextAllocIndex to the end. - while(nextAlloc1stIndex < suballoc1stCount && - suballocations1st[nextAlloc1stIndex].hAllocation == VK_NULL_HANDLE) + // Try to allocate at the end of 1st vector. + + VkDeviceSize resultBaseOffset = 0; + if (!suballocations1st.empty()) { - ++nextAlloc1stIndex; + const VmaSuballocation& lastSuballoc = suballocations1st.back(); + resultBaseOffset = lastSuballoc.offset + lastSuballoc.size + debugMargin; } - // Found non-null allocation. - if(nextAlloc1stIndex < suballoc1stCount) - { - const VmaSuballocation& suballoc = suballocations1st[nextAlloc1stIndex]; + // Start from offset equal to beginning of free space. + VkDeviceSize resultOffset = resultBaseOffset; - // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) + // Apply alignment. + resultOffset = VmaAlignUp(resultOffset, allocAlignment); + + // Check previous suballocations for BufferImageGranularity conflicts. + // Make bigger alignment if necessary. + if (bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment && !suballocations1st.empty()) + { + bool bufferImageGranularityConflict = false; + for (size_t prevSuballocIndex = suballocations1st.size(); prevSuballocIndex--; ) { - // There is free space from lastOffset to suballoc.offset. - const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; - PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); + const VmaSuballocation& prevSuballoc = suballocations1st[prevSuballocIndex]; + if (VmaBlocksOnSamePage(prevSuballoc.offset, prevSuballoc.size, resultOffset, bufferImageGranularity)) + { + if (VmaIsBufferImageGranularityConflict(prevSuballoc.type, allocType)) + { + bufferImageGranularityConflict = true; + break; + } + } + else + // Already on previous page. + break; + } + if (bufferImageGranularityConflict) + { + resultOffset = VmaAlignUp(resultOffset, bufferImageGranularity); } + } - // 2. Process this allocation. - // There is allocation with suballoc.offset, suballoc.size. - PrintDetailedMap_Allocation(json, suballoc.offset, suballoc.hAllocation); + const VkDeviceSize freeSpaceEnd = m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK ? + suballocations2nd.back().offset : blockSize; - // 3. Prepare for next iteration. - lastOffset = suballoc.offset + suballoc.size; - ++nextAlloc1stIndex; - } - // We are at the end. - else + // There is enough free space at the end after alignment. + if (resultOffset + allocSize + debugMargin <= freeSpaceEnd) { - if(lastOffset < freeSpace1stTo2ndEnd) + // Check next suballocations for BufferImageGranularity conflicts. + // If conflict exists, allocation cannot be made here. + if ((allocSize % bufferImageGranularity || resultOffset % bufferImageGranularity) && m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) { - // There is free space from lastOffset to freeSpace1stTo2ndEnd. - const VkDeviceSize unusedRangeSize = freeSpace1stTo2ndEnd - lastOffset; - PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); + for (size_t nextSuballocIndex = suballocations2nd.size(); nextSuballocIndex--; ) + { + const VmaSuballocation& nextSuballoc = suballocations2nd[nextSuballocIndex]; + if (VmaBlocksOnSamePage(resultOffset, allocSize, nextSuballoc.offset, bufferImageGranularity)) + { + if (VmaIsBufferImageGranularityConflict(allocType, nextSuballoc.type)) + { + return false; + } + } + else + { + // Already on previous page. + break; + } + } } - // End of loop. - lastOffset = freeSpace1stTo2ndEnd; + // All tests passed: Success. + pAllocationRequest->allocHandle = (VmaAllocHandle)(resultOffset + 1); + // pAllocationRequest->item, customData unused. + pAllocationRequest->type = VmaAllocationRequestType::EndOf1st; + return true; } } - if(m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) + // Wrap-around to end of 2nd vector. Try to allocate there, watching for the + // beginning of 1st vector as the end of free space. + if (m_2ndVectorMode == SECOND_VECTOR_EMPTY || m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) { - size_t nextAlloc2ndIndex = suballocations2nd.size() - 1; - while(lastOffset < size) + VMA_ASSERT(!suballocations1st.empty()); + + VkDeviceSize resultBaseOffset = 0; + if (!suballocations2nd.empty()) { - // Find next non-null allocation or move nextAlloc2ndIndex to the end. - while(nextAlloc2ndIndex != SIZE_MAX && - suballocations2nd[nextAlloc2ndIndex].hAllocation == VK_NULL_HANDLE) - { - --nextAlloc2ndIndex; - } + const VmaSuballocation& lastSuballoc = suballocations2nd.back(); + resultBaseOffset = lastSuballoc.offset + lastSuballoc.size + debugMargin; + } - // Found non-null allocation. - if(nextAlloc2ndIndex != SIZE_MAX) - { - const VmaSuballocation& suballoc = suballocations2nd[nextAlloc2ndIndex]; + // Start from offset equal to beginning of free space. + VkDeviceSize resultOffset = resultBaseOffset; - // 1. Process free space before this allocation. - if(lastOffset < suballoc.offset) + // Apply alignment. + resultOffset = VmaAlignUp(resultOffset, allocAlignment); + + // Check previous suballocations for BufferImageGranularity conflicts. + // Make bigger alignment if necessary. + if (bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment && !suballocations2nd.empty()) + { + bool bufferImageGranularityConflict = false; + for (size_t prevSuballocIndex = suballocations2nd.size(); prevSuballocIndex--; ) + { + const VmaSuballocation& prevSuballoc = suballocations2nd[prevSuballocIndex]; + if (VmaBlocksOnSamePage(prevSuballoc.offset, prevSuballoc.size, resultOffset, bufferImageGranularity)) { - // There is free space from lastOffset to suballoc.offset. - const VkDeviceSize unusedRangeSize = suballoc.offset - lastOffset; - PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); + if (VmaIsBufferImageGranularityConflict(prevSuballoc.type, allocType)) + { + bufferImageGranularityConflict = true; + break; + } } + else + // Already on previous page. + break; + } + if (bufferImageGranularityConflict) + { + resultOffset = VmaAlignUp(resultOffset, bufferImageGranularity); + } + } - // 2. Process this allocation. - // There is allocation with suballoc.offset, suballoc.size. - PrintDetailedMap_Allocation(json, suballoc.offset, suballoc.hAllocation); + size_t index1st = m_1stNullItemsBeginCount; - // 3. Prepare for next iteration. - lastOffset = suballoc.offset + suballoc.size; - --nextAlloc2ndIndex; - } - // We are at the end. - else + // There is enough free space at the end after alignment. + if ((index1st == suballocations1st.size() && resultOffset + allocSize + debugMargin <= blockSize) || + (index1st < suballocations1st.size() && resultOffset + allocSize + debugMargin <= suballocations1st[index1st].offset)) + { + // Check next suballocations for BufferImageGranularity conflicts. + // If conflict exists, allocation cannot be made here. + if (allocSize % bufferImageGranularity || resultOffset % bufferImageGranularity) { - if(lastOffset < size) + for (size_t nextSuballocIndex = index1st; + nextSuballocIndex < suballocations1st.size(); + nextSuballocIndex++) { - // There is free space from lastOffset to size. - const VkDeviceSize unusedRangeSize = size - lastOffset; - PrintDetailedMap_UnusedRange(json, lastOffset, unusedRangeSize); + const VmaSuballocation& nextSuballoc = suballocations1st[nextSuballocIndex]; + if (VmaBlocksOnSamePage(resultOffset, allocSize, nextSuballoc.offset, bufferImageGranularity)) + { + if (VmaIsBufferImageGranularityConflict(allocType, nextSuballoc.type)) + { + return false; + } + } + else + { + // Already on next page. + break; + } } - - // End of loop. - lastOffset = size; } + + // All tests passed: Success. + pAllocationRequest->allocHandle = (VmaAllocHandle)(resultOffset + 1); + pAllocationRequest->type = VmaAllocationRequestType::EndOf2nd; + // pAllocationRequest->item, customData unused. + return true; } } - PrintDetailedMap_End(json); -} -#endif // #if VMA_STATS_STRING_ENABLED - -bool VmaBlockMetadata_Linear::CreateAllocationRequest( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, - VkDeviceSize allocSize, - VkDeviceSize allocAlignment, - bool upperAddress, - VmaSuballocationType allocType, - bool canMakeOtherLost, - uint32_t strategy, - VmaAllocationRequest* pAllocationRequest) -{ - VMA_ASSERT(allocSize > 0); - VMA_ASSERT(allocType != VMA_SUBALLOCATION_TYPE_FREE); - VMA_ASSERT(pAllocationRequest != VMA_NULL); - VMA_HEAVY_ASSERT(Validate()); - return upperAddress ? - CreateAllocationRequest_UpperAddress( - currentFrameIndex, frameInUseCount, bufferImageGranularity, - allocSize, allocAlignment, allocType, canMakeOtherLost, strategy, pAllocationRequest) : - CreateAllocationRequest_LowerAddress( - currentFrameIndex, frameInUseCount, bufferImageGranularity, - allocSize, allocAlignment, allocType, canMakeOtherLost, strategy, pAllocationRequest); + return false; } bool VmaBlockMetadata_Linear::CreateAllocationRequest_UpperAddress( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, VkDeviceSize allocSize, VkDeviceSize allocAlignment, VmaSuballocationType allocType, - bool canMakeOtherLost, uint32_t strategy, VmaAllocationRequest* pAllocationRequest) { - const VkDeviceSize size = GetSize(); + const VkDeviceSize blockSize = GetSize(); + const VkDeviceSize bufferImageGranularity = GetBufferImageGranularity(); SuballocationVectorType& suballocations1st = AccessSuballocations1st(); SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - if(m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) + if (m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) { VMA_ASSERT(0 && "Trying to use pool with linear algorithm as double stack, while it is already being used as ring buffer."); return false; } // Try to allocate before 2nd.back(), or end of block if 2nd.empty(). - if(allocSize > size) + if (allocSize > blockSize) { return false; } - VkDeviceSize resultBaseOffset = size - allocSize; - if(!suballocations2nd.empty()) + VkDeviceSize resultBaseOffset = blockSize - allocSize; + if (!suballocations2nd.empty()) { const VmaSuballocation& lastSuballoc = suballocations2nd.back(); resultBaseOffset = lastSuballoc.offset - allocSize; - if(allocSize > lastSuballoc.offset) + if (allocSize > lastSuballoc.offset) { return false; } @@ -9427,14 +9207,16 @@ bool VmaBlockMetadata_Linear::CreateAllocationRequest_UpperAddress( // Start from offset equal to end of free space. VkDeviceSize resultOffset = resultBaseOffset; - // Apply VMA_DEBUG_MARGIN at the end. - if(VMA_DEBUG_MARGIN > 0) + const VkDeviceSize debugMargin = GetDebugMargin(); + + // Apply debugMargin at the end. + if (debugMargin > 0) { - if(resultOffset < VMA_DEBUG_MARGIN) + if (resultOffset < debugMargin) { return false; } - resultOffset -= VMA_DEBUG_MARGIN; + resultOffset -= debugMargin; } // Apply alignment. @@ -9442,15 +9224,15 @@ bool VmaBlockMetadata_Linear::CreateAllocationRequest_UpperAddress( // Check next suballocations from 2nd for BufferImageGranularity conflicts. // Make bigger alignment if necessary. - if(bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment && !suballocations2nd.empty()) + if (bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment && !suballocations2nd.empty()) { bool bufferImageGranularityConflict = false; - for(size_t nextSuballocIndex = suballocations2nd.size(); nextSuballocIndex--; ) + for (size_t nextSuballocIndex = suballocations2nd.size(); nextSuballocIndex--; ) { const VmaSuballocation& nextSuballoc = suballocations2nd[nextSuballocIndex]; - if(VmaBlocksOnSamePage(resultOffset, allocSize, nextSuballoc.offset, bufferImageGranularity)) + if (VmaBlocksOnSamePage(resultOffset, allocSize, nextSuballoc.offset, bufferImageGranularity)) { - if(VmaIsBufferImageGranularityConflict(nextSuballoc.type, allocType)) + if (VmaIsBufferImageGranularityConflict(nextSuballoc.type, allocType)) { bufferImageGranularityConflict = true; break; @@ -9460,7 +9242,7 @@ bool VmaBlockMetadata_Linear::CreateAllocationRequest_UpperAddress( // Already on previous page. break; } - if(bufferImageGranularityConflict) + if (bufferImageGranularityConflict) { resultOffset = VmaAlignDown(resultOffset, bufferImageGranularity); } @@ -9470,18 +9252,18 @@ bool VmaBlockMetadata_Linear::CreateAllocationRequest_UpperAddress( const VkDeviceSize endOf1st = !suballocations1st.empty() ? suballocations1st.back().offset + suballocations1st.back().size : 0; - if(endOf1st + VMA_DEBUG_MARGIN <= resultOffset) + if (endOf1st + debugMargin <= resultOffset) { // Check previous suballocations for BufferImageGranularity conflicts. // If conflict exists, allocation cannot be made here. - if(bufferImageGranularity > 1) + if (bufferImageGranularity > 1) { - for(size_t prevSuballocIndex = suballocations1st.size(); prevSuballocIndex--; ) + for (size_t prevSuballocIndex = suballocations1st.size(); prevSuballocIndex--; ) { const VmaSuballocation& prevSuballoc = suballocations1st[prevSuballocIndex]; - if(VmaBlocksOnSamePage(prevSuballoc.offset, prevSuballoc.size, resultOffset, bufferImageGranularity)) + if (VmaBlocksOnSamePage(prevSuballoc.offset, prevSuballoc.size, resultOffset, bufferImageGranularity)) { - if(VmaIsBufferImageGranularityConflict(allocType, prevSuballoc.type)) + if (VmaIsBufferImageGranularityConflict(allocType, prevSuballoc.type)) { return false; } @@ -9495,4684 +9277,4792 @@ bool VmaBlockMetadata_Linear::CreateAllocationRequest_UpperAddress( } // All tests passed: Success. - pAllocationRequest->offset = resultOffset; - pAllocationRequest->sumFreeSize = resultBaseOffset + allocSize - endOf1st; - pAllocationRequest->sumItemSize = 0; + pAllocationRequest->allocHandle = (VmaAllocHandle)(resultOffset + 1); // pAllocationRequest->item unused. - pAllocationRequest->itemsToMakeLostCount = 0; pAllocationRequest->type = VmaAllocationRequestType::UpperAddress; return true; } return false; } +#endif // _VMA_BLOCK_METADATA_LINEAR_FUNCTIONS +#endif // _VMA_BLOCK_METADATA_LINEAR -bool VmaBlockMetadata_Linear::CreateAllocationRequest_LowerAddress( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, +#if 0 +#ifndef _VMA_BLOCK_METADATA_BUDDY +/* +- GetSize() is the original size of allocated memory block. +- m_UsableSize is this size aligned down to a power of two. + All allocations and calculations happen relative to m_UsableSize. +- GetUnusableSize() is the difference between them. + It is reported as separate, unused range, not available for allocations. + +Node at level 0 has size = m_UsableSize. +Each next level contains nodes with size 2 times smaller than current level. +m_LevelCount is the maximum number of levels to use in the current object. +*/ +class VmaBlockMetadata_Buddy : public VmaBlockMetadata +{ + VMA_CLASS_NO_COPY_NO_MOVE(VmaBlockMetadata_Buddy) +public: + VmaBlockMetadata_Buddy(const VkAllocationCallbacks* pAllocationCallbacks, + VkDeviceSize bufferImageGranularity, bool isVirtual); + virtual ~VmaBlockMetadata_Buddy(); + + size_t GetAllocationCount() const override { return m_AllocationCount; } + VkDeviceSize GetSumFreeSize() const override { return m_SumFreeSize + GetUnusableSize(); } + bool IsEmpty() const override { return m_Root->type == Node::TYPE_FREE; } + VkResult CheckCorruption(const void* pBlockData) override { return VK_ERROR_FEATURE_NOT_PRESENT; } + VkDeviceSize GetAllocationOffset(VmaAllocHandle allocHandle) const override { return (VkDeviceSize)allocHandle - 1; } + void DebugLogAllAllocations() const override { DebugLogAllAllocationNode(m_Root, 0); } + + void Init(VkDeviceSize size) override; + bool Validate() const override; + + void AddDetailedStatistics(VmaDetailedStatistics& inoutStats) const override; + void AddStatistics(VmaStatistics& inoutStats) const override; + +#if VMA_STATS_STRING_ENABLED + void PrintDetailedMap(class VmaJsonWriter& json, uint32_t mapRefCount) const override; +#endif + + bool CreateAllocationRequest( + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + bool upperAddress, + VmaSuballocationType allocType, + uint32_t strategy, + VmaAllocationRequest* pAllocationRequest) override; + + void Alloc( + const VmaAllocationRequest& request, + VmaSuballocationType type, + void* userData) override; + + void Free(VmaAllocHandle allocHandle) override; + void GetAllocationInfo(VmaAllocHandle allocHandle, VmaVirtualAllocationInfo& outInfo) override; + void* GetAllocationUserData(VmaAllocHandle allocHandle) const override; + VmaAllocHandle GetAllocationListBegin() const override; + VmaAllocHandle GetNextAllocation(VmaAllocHandle prevAlloc) const override; + void Clear() override; + void SetAllocationUserData(VmaAllocHandle allocHandle, void* userData) override; + +private: + static const size_t MAX_LEVELS = 48; + + struct ValidationContext + { + size_t calculatedAllocationCount = 0; + size_t calculatedFreeCount = 0; + VkDeviceSize calculatedSumFreeSize = 0; + }; + struct Node + { + VkDeviceSize offset; + enum TYPE + { + TYPE_FREE, + TYPE_ALLOCATION, + TYPE_SPLIT, + TYPE_COUNT + } type; + Node* parent; + Node* buddy; + + union + { + struct + { + Node* prev; + Node* next; + } free; + struct + { + void* userData; + } allocation; + struct + { + Node* leftChild; + } split; + }; + }; + + // Size of the memory block aligned down to a power of two. + VkDeviceSize m_UsableSize; + uint32_t m_LevelCount; + VmaPoolAllocator m_NodeAllocator; + Node* m_Root; + struct + { + Node* front; + Node* back; + } m_FreeList[MAX_LEVELS]; + + // Number of nodes in the tree with type == TYPE_ALLOCATION. + size_t m_AllocationCount; + // Number of nodes in the tree with type == TYPE_FREE. + size_t m_FreeCount; + // Doesn't include space wasted due to internal fragmentation - allocation sizes are just aligned up to node sizes. + // Doesn't include unusable size. + VkDeviceSize m_SumFreeSize; + + VkDeviceSize GetUnusableSize() const { return GetSize() - m_UsableSize; } + VkDeviceSize LevelToNodeSize(uint32_t level) const { return m_UsableSize >> level; } + + VkDeviceSize AlignAllocationSize(VkDeviceSize size) const + { + if (!IsVirtual()) + { + size = VmaAlignUp(size, (VkDeviceSize)16); + } + return VmaNextPow2(size); + } + Node* FindAllocationNode(VkDeviceSize offset, uint32_t& outLevel) const; + void DeleteNodeChildren(Node* node); + bool ValidateNode(ValidationContext& ctx, const Node* parent, const Node* curr, uint32_t level, VkDeviceSize levelNodeSize) const; + uint32_t AllocSizeToLevel(VkDeviceSize allocSize) const; + void AddNodeToDetailedStatistics(VmaDetailedStatistics& inoutStats, const Node* node, VkDeviceSize levelNodeSize) const; + // Adds node to the front of FreeList at given level. + // node->type must be FREE. + // node->free.prev, next can be undefined. + void AddToFreeListFront(uint32_t level, Node* node); + // Removes node from FreeList at given level. + // node->type must be FREE. + // node->free.prev, next stay untouched. + void RemoveFromFreeList(uint32_t level, Node* node); + void DebugLogAllAllocationNode(Node* node, uint32_t level) const; + +#if VMA_STATS_STRING_ENABLED + void PrintDetailedMapNode(class VmaJsonWriter& json, const Node* node, VkDeviceSize levelNodeSize) const; +#endif +}; + +#ifndef _VMA_BLOCK_METADATA_BUDDY_FUNCTIONS +VmaBlockMetadata_Buddy::VmaBlockMetadata_Buddy(const VkAllocationCallbacks* pAllocationCallbacks, + VkDeviceSize bufferImageGranularity, bool isVirtual) + : VmaBlockMetadata(pAllocationCallbacks, bufferImageGranularity, isVirtual), + m_NodeAllocator(pAllocationCallbacks, 32), // firstBlockCapacity + m_Root(VMA_NULL), + m_AllocationCount(0), + m_FreeCount(1), + m_SumFreeSize(0) +{ + memset(m_FreeList, 0, sizeof(m_FreeList)); +} + +VmaBlockMetadata_Buddy::~VmaBlockMetadata_Buddy() +{ + DeleteNodeChildren(m_Root); + m_NodeAllocator.Free(m_Root); +} + +void VmaBlockMetadata_Buddy::Init(VkDeviceSize size) +{ + VmaBlockMetadata::Init(size); + + m_UsableSize = VmaPrevPow2(size); + m_SumFreeSize = m_UsableSize; + + // Calculate m_LevelCount. + const VkDeviceSize minNodeSize = IsVirtual() ? 1 : 16; + m_LevelCount = 1; + while (m_LevelCount < MAX_LEVELS && + LevelToNodeSize(m_LevelCount) >= minNodeSize) + { + ++m_LevelCount; + } + + Node* rootNode = m_NodeAllocator.Alloc(); + rootNode->offset = 0; + rootNode->type = Node::TYPE_FREE; + rootNode->parent = VMA_NULL; + rootNode->buddy = VMA_NULL; + + m_Root = rootNode; + AddToFreeListFront(0, rootNode); +} + +bool VmaBlockMetadata_Buddy::Validate() const +{ + // Validate tree. + ValidationContext ctx; + if (!ValidateNode(ctx, VMA_NULL, m_Root, 0, LevelToNodeSize(0))) + { + VMA_VALIDATE(false && "ValidateNode failed."); + } + VMA_VALIDATE(m_AllocationCount == ctx.calculatedAllocationCount); + VMA_VALIDATE(m_SumFreeSize == ctx.calculatedSumFreeSize); + + // Validate free node lists. + for (uint32_t level = 0; level < m_LevelCount; ++level) + { + VMA_VALIDATE(m_FreeList[level].front == VMA_NULL || + m_FreeList[level].front->free.prev == VMA_NULL); + + for (Node* node = m_FreeList[level].front; + node != VMA_NULL; + node = node->free.next) + { + VMA_VALIDATE(node->type == Node::TYPE_FREE); + + if (node->free.next == VMA_NULL) + { + VMA_VALIDATE(m_FreeList[level].back == node); + } + else + { + VMA_VALIDATE(node->free.next->free.prev == node); + } + } + } + + // Validate that free lists ar higher levels are empty. + for (uint32_t level = m_LevelCount; level < MAX_LEVELS; ++level) + { + VMA_VALIDATE(m_FreeList[level].front == VMA_NULL && m_FreeList[level].back == VMA_NULL); + } + + return true; +} + +void VmaBlockMetadata_Buddy::AddDetailedStatistics(VmaDetailedStatistics& inoutStats) const +{ + inoutStats.statistics.blockCount++; + inoutStats.statistics.blockBytes += GetSize(); + + AddNodeToDetailedStatistics(inoutStats, m_Root, LevelToNodeSize(0)); + + const VkDeviceSize unusableSize = GetUnusableSize(); + if (unusableSize > 0) + VmaAddDetailedStatisticsUnusedRange(inoutStats, unusableSize); +} + +void VmaBlockMetadata_Buddy::AddStatistics(VmaStatistics& inoutStats) const +{ + inoutStats.blockCount++; + inoutStats.allocationCount += (uint32_t)m_AllocationCount; + inoutStats.blockBytes += GetSize(); + inoutStats.allocationBytes += GetSize() - m_SumFreeSize; +} + +#if VMA_STATS_STRING_ENABLED +void VmaBlockMetadata_Buddy::PrintDetailedMap(class VmaJsonWriter& json, uint32_t mapRefCount) const +{ + VmaDetailedStatistics stats; + VmaClearDetailedStatistics(stats); + AddDetailedStatistics(stats); + + PrintDetailedMap_Begin( + json, + stats.statistics.blockBytes - stats.statistics.allocationBytes, + stats.statistics.allocationCount, + stats.unusedRangeCount, + mapRefCount); + + PrintDetailedMapNode(json, m_Root, LevelToNodeSize(0)); + + const VkDeviceSize unusableSize = GetUnusableSize(); + if (unusableSize > 0) + { + PrintDetailedMap_UnusedRange(json, + m_UsableSize, // offset + unusableSize); // size + } + + PrintDetailedMap_End(json); +} +#endif // VMA_STATS_STRING_ENABLED + +bool VmaBlockMetadata_Buddy::CreateAllocationRequest( VkDeviceSize allocSize, VkDeviceSize allocAlignment, + bool upperAddress, VmaSuballocationType allocType, - bool canMakeOtherLost, uint32_t strategy, VmaAllocationRequest* pAllocationRequest) { - const VkDeviceSize size = GetSize(); - SuballocationVectorType& suballocations1st = AccessSuballocations1st(); - SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - - if(m_2ndVectorMode == SECOND_VECTOR_EMPTY || m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) - { - // Try to allocate at the end of 1st vector. - - VkDeviceSize resultBaseOffset = 0; - if(!suballocations1st.empty()) - { - const VmaSuballocation& lastSuballoc = suballocations1st.back(); - resultBaseOffset = lastSuballoc.offset + lastSuballoc.size; - } + VMA_ASSERT(!upperAddress && "VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT can be used only with linear algorithm."); - // Start from offset equal to beginning of free space. - VkDeviceSize resultOffset = resultBaseOffset; + allocSize = AlignAllocationSize(allocSize); - // Apply VMA_DEBUG_MARGIN at the beginning. - if(VMA_DEBUG_MARGIN > 0) - { - resultOffset += VMA_DEBUG_MARGIN; - } + // Simple way to respect bufferImageGranularity. May be optimized some day. + // Whenever it might be an OPTIMAL image... + if (allocType == VMA_SUBALLOCATION_TYPE_UNKNOWN || + allocType == VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN || + allocType == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL) + { + allocAlignment = VMA_MAX(allocAlignment, GetBufferImageGranularity()); + allocSize = VmaAlignUp(allocSize, GetBufferImageGranularity()); + } - // Apply alignment. - resultOffset = VmaAlignUp(resultOffset, allocAlignment); + if (allocSize > m_UsableSize) + { + return false; + } - // Check previous suballocations for BufferImageGranularity conflicts. - // Make bigger alignment if necessary. - if(bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment && !suballocations1st.empty()) + const uint32_t targetLevel = AllocSizeToLevel(allocSize); + for (uint32_t level = targetLevel; level--; ) + { + for (Node* freeNode = m_FreeList[level].front; + freeNode != VMA_NULL; + freeNode = freeNode->free.next) { - bool bufferImageGranularityConflict = false; - for(size_t prevSuballocIndex = suballocations1st.size(); prevSuballocIndex--; ) - { - const VmaSuballocation& prevSuballoc = suballocations1st[prevSuballocIndex]; - if(VmaBlocksOnSamePage(prevSuballoc.offset, prevSuballoc.size, resultOffset, bufferImageGranularity)) - { - if(VmaIsBufferImageGranularityConflict(prevSuballoc.type, allocType)) - { - bufferImageGranularityConflict = true; - break; - } - } - else - // Already on previous page. - break; - } - if(bufferImageGranularityConflict) + if (freeNode->offset % allocAlignment == 0) { - resultOffset = VmaAlignUp(resultOffset, bufferImageGranularity); + pAllocationRequest->type = VmaAllocationRequestType::Normal; + pAllocationRequest->allocHandle = (VmaAllocHandle)(freeNode->offset + 1); + pAllocationRequest->size = allocSize; + pAllocationRequest->customData = (void*)(uintptr_t)level; + return true; } } + } - const VkDeviceSize freeSpaceEnd = m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK ? - suballocations2nd.back().offset : size; + return false; +} - // There is enough free space at the end after alignment. - if(resultOffset + allocSize + VMA_DEBUG_MARGIN <= freeSpaceEnd) - { - // Check next suballocations for BufferImageGranularity conflicts. - // If conflict exists, allocation cannot be made here. - if((allocSize % bufferImageGranularity || resultOffset % bufferImageGranularity) && m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) - { - for(size_t nextSuballocIndex = suballocations2nd.size(); nextSuballocIndex--; ) - { - const VmaSuballocation& nextSuballoc = suballocations2nd[nextSuballocIndex]; - if(VmaBlocksOnSamePage(resultOffset, allocSize, nextSuballoc.offset, bufferImageGranularity)) - { - if(VmaIsBufferImageGranularityConflict(allocType, nextSuballoc.type)) - { - return false; - } - } - else - { - // Already on previous page. - break; - } - } - } +void VmaBlockMetadata_Buddy::Alloc( + const VmaAllocationRequest& request, + VmaSuballocationType type, + void* userData) +{ + VMA_ASSERT(request.type == VmaAllocationRequestType::Normal); - // All tests passed: Success. - pAllocationRequest->offset = resultOffset; - pAllocationRequest->sumFreeSize = freeSpaceEnd - resultBaseOffset; - pAllocationRequest->sumItemSize = 0; - // pAllocationRequest->item, customData unused. - pAllocationRequest->type = VmaAllocationRequestType::EndOf1st; - pAllocationRequest->itemsToMakeLostCount = 0; - return true; - } + const uint32_t targetLevel = AllocSizeToLevel(request.size); + uint32_t currLevel = (uint32_t)(uintptr_t)request.customData; + + Node* currNode = m_FreeList[currLevel].front; + VMA_ASSERT(currNode != VMA_NULL && currNode->type == Node::TYPE_FREE); + const VkDeviceSize offset = (VkDeviceSize)request.allocHandle - 1; + while (currNode->offset != offset) + { + currNode = currNode->free.next; + VMA_ASSERT(currNode != VMA_NULL && currNode->type == Node::TYPE_FREE); } - // Wrap-around to end of 2nd vector. Try to allocate there, watching for the - // beginning of 1st vector as the end of free space. - if(m_2ndVectorMode == SECOND_VECTOR_EMPTY || m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) + // Go down, splitting free nodes. + while (currLevel < targetLevel) { - VMA_ASSERT(!suballocations1st.empty()); + // currNode is already first free node at currLevel. + // Remove it from list of free nodes at this currLevel. + RemoveFromFreeList(currLevel, currNode); - VkDeviceSize resultBaseOffset = 0; - if(!suballocations2nd.empty()) - { - const VmaSuballocation& lastSuballoc = suballocations2nd.back(); - resultBaseOffset = lastSuballoc.offset + lastSuballoc.size; - } + const uint32_t childrenLevel = currLevel + 1; - // Start from offset equal to beginning of free space. - VkDeviceSize resultOffset = resultBaseOffset; + // Create two free sub-nodes. + Node* leftChild = m_NodeAllocator.Alloc(); + Node* rightChild = m_NodeAllocator.Alloc(); - // Apply VMA_DEBUG_MARGIN at the beginning. - if(VMA_DEBUG_MARGIN > 0) - { - resultOffset += VMA_DEBUG_MARGIN; - } + leftChild->offset = currNode->offset; + leftChild->type = Node::TYPE_FREE; + leftChild->parent = currNode; + leftChild->buddy = rightChild; - // Apply alignment. - resultOffset = VmaAlignUp(resultOffset, allocAlignment); + rightChild->offset = currNode->offset + LevelToNodeSize(childrenLevel); + rightChild->type = Node::TYPE_FREE; + rightChild->parent = currNode; + rightChild->buddy = leftChild; - // Check previous suballocations for BufferImageGranularity conflicts. - // Make bigger alignment if necessary. - if(bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment && !suballocations2nd.empty()) - { - bool bufferImageGranularityConflict = false; - for(size_t prevSuballocIndex = suballocations2nd.size(); prevSuballocIndex--; ) - { - const VmaSuballocation& prevSuballoc = suballocations2nd[prevSuballocIndex]; - if(VmaBlocksOnSamePage(prevSuballoc.offset, prevSuballoc.size, resultOffset, bufferImageGranularity)) - { - if(VmaIsBufferImageGranularityConflict(prevSuballoc.type, allocType)) - { - bufferImageGranularityConflict = true; - break; - } - } - else - // Already on previous page. - break; - } - if(bufferImageGranularityConflict) - { - resultOffset = VmaAlignUp(resultOffset, bufferImageGranularity); - } - } + // Convert current currNode to split type. + currNode->type = Node::TYPE_SPLIT; + currNode->split.leftChild = leftChild; - pAllocationRequest->itemsToMakeLostCount = 0; - pAllocationRequest->sumItemSize = 0; - size_t index1st = m_1stNullItemsBeginCount; + // Add child nodes to free list. Order is important! + AddToFreeListFront(childrenLevel, rightChild); + AddToFreeListFront(childrenLevel, leftChild); - if(canMakeOtherLost) - { - while(index1st < suballocations1st.size() && - resultOffset + allocSize + VMA_DEBUG_MARGIN > suballocations1st[index1st].offset) - { - // Next colliding allocation at the beginning of 1st vector found. Try to make it lost. - const VmaSuballocation& suballoc = suballocations1st[index1st]; - if(suballoc.type == VMA_SUBALLOCATION_TYPE_FREE) - { - // No problem. - } - else - { - VMA_ASSERT(suballoc.hAllocation != VK_NULL_HANDLE); - if(suballoc.hAllocation->CanBecomeLost() && - suballoc.hAllocation->GetLastUseFrameIndex() + frameInUseCount < currentFrameIndex) - { - ++pAllocationRequest->itemsToMakeLostCount; - pAllocationRequest->sumItemSize += suballoc.size; - } - else - { - return false; - } - } - ++index1st; - } + ++m_FreeCount; + ++currLevel; + currNode = m_FreeList[currLevel].front; - // Check next suballocations for BufferImageGranularity conflicts. - // If conflict exists, we must mark more allocations lost or fail. - if(allocSize % bufferImageGranularity || resultOffset % bufferImageGranularity) - { - while(index1st < suballocations1st.size()) - { - const VmaSuballocation& suballoc = suballocations1st[index1st]; - if(VmaBlocksOnSamePage(resultOffset, allocSize, suballoc.offset, bufferImageGranularity)) - { - if(suballoc.hAllocation != VK_NULL_HANDLE) - { - // Not checking actual VmaIsBufferImageGranularityConflict(allocType, suballoc.type). - if(suballoc.hAllocation->CanBecomeLost() && - suballoc.hAllocation->GetLastUseFrameIndex() + frameInUseCount < currentFrameIndex) - { - ++pAllocationRequest->itemsToMakeLostCount; - pAllocationRequest->sumItemSize += suballoc.size; - } - else - { - return false; - } - } - } - else - { - // Already on next page. - break; - } - ++index1st; - } - } + /* + We can be sure that currNode, as left child of node previously split, + also fulfills the alignment requirement. + */ + } - // Special case: There is not enough room at the end for this allocation, even after making all from the 1st lost. - if(index1st == suballocations1st.size() && - resultOffset + allocSize + VMA_DEBUG_MARGIN > size) - { - // TODO: This is a known bug that it's not yet implemented and the allocation is failing. - VMA_DEBUG_LOG("Unsupported special case in custom pool with linear allocation algorithm used as ring buffer with allocations that can be lost."); - } - } + // Remove from free list. + VMA_ASSERT(currLevel == targetLevel && + currNode != VMA_NULL && + currNode->type == Node::TYPE_FREE); + RemoveFromFreeList(currLevel, currNode); - // There is enough free space at the end after alignment. - if((index1st == suballocations1st.size() && resultOffset + allocSize + VMA_DEBUG_MARGIN <= size) || - (index1st < suballocations1st.size() && resultOffset + allocSize + VMA_DEBUG_MARGIN <= suballocations1st[index1st].offset)) - { - // Check next suballocations for BufferImageGranularity conflicts. - // If conflict exists, allocation cannot be made here. - if(allocSize % bufferImageGranularity || resultOffset % bufferImageGranularity) - { - for(size_t nextSuballocIndex = index1st; - nextSuballocIndex < suballocations1st.size(); - nextSuballocIndex++) - { - const VmaSuballocation& nextSuballoc = suballocations1st[nextSuballocIndex]; - if(VmaBlocksOnSamePage(resultOffset, allocSize, nextSuballoc.offset, bufferImageGranularity)) - { - if(VmaIsBufferImageGranularityConflict(allocType, nextSuballoc.type)) - { - return false; - } - } - else - { - // Already on next page. - break; - } - } - } + // Convert to allocation node. + currNode->type = Node::TYPE_ALLOCATION; + currNode->allocation.userData = userData; - // All tests passed: Success. - pAllocationRequest->offset = resultOffset; - pAllocationRequest->sumFreeSize = - (index1st < suballocations1st.size() ? suballocations1st[index1st].offset : size) - - resultBaseOffset - - pAllocationRequest->sumItemSize; - pAllocationRequest->type = VmaAllocationRequestType::EndOf2nd; - // pAllocationRequest->item, customData unused. - return true; - } - } + ++m_AllocationCount; + --m_FreeCount; + m_SumFreeSize -= request.size; +} - return false; +void VmaBlockMetadata_Buddy::GetAllocationInfo(VmaAllocHandle allocHandle, VmaVirtualAllocationInfo& outInfo) +{ + uint32_t level = 0; + outInfo.offset = (VkDeviceSize)allocHandle - 1; + const Node* const node = FindAllocationNode(outInfo.offset, level); + outInfo.size = LevelToNodeSize(level); + outInfo.pUserData = node->allocation.userData; } -bool VmaBlockMetadata_Linear::MakeRequestedAllocationsLost( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VmaAllocationRequest* pAllocationRequest) +void* VmaBlockMetadata_Buddy::GetAllocationUserData(VmaAllocHandle allocHandle) const { - if(pAllocationRequest->itemsToMakeLostCount == 0) - { - return true; - } + uint32_t level = 0; + const Node* const node = FindAllocationNode((VkDeviceSize)allocHandle - 1, level); + return node->allocation.userData; +} - VMA_ASSERT(m_2ndVectorMode == SECOND_VECTOR_EMPTY || m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER); +VmaAllocHandle VmaBlockMetadata_Buddy::GetAllocationListBegin() const +{ + // Function only used for defragmentation, which is disabled for this algorithm + return VK_NULL_HANDLE; +} - // We always start from 1st. - SuballocationVectorType* suballocations = &AccessSuballocations1st(); - size_t index = m_1stNullItemsBeginCount; - size_t madeLostCount = 0; - while(madeLostCount < pAllocationRequest->itemsToMakeLostCount) - { - if(index == suballocations->size()) - { - index = 0; - // If we get to the end of 1st, we wrap around to beginning of 2nd of 1st. - if(m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) - { - suballocations = &AccessSuballocations2nd(); - } - // else: m_2ndVectorMode == SECOND_VECTOR_EMPTY: - // suballocations continues pointing at AccessSuballocations1st(). - VMA_ASSERT(!suballocations->empty()); - } - VmaSuballocation& suballoc = (*suballocations)[index]; - if(suballoc.type != VMA_SUBALLOCATION_TYPE_FREE) - { - VMA_ASSERT(suballoc.hAllocation != VK_NULL_HANDLE); - VMA_ASSERT(suballoc.hAllocation->CanBecomeLost()); - if(suballoc.hAllocation->MakeLost(currentFrameIndex, frameInUseCount)) - { - suballoc.type = VMA_SUBALLOCATION_TYPE_FREE; - suballoc.hAllocation = VK_NULL_HANDLE; - m_SumFreeSize += suballoc.size; - if(suballocations == &AccessSuballocations1st()) - { - ++m_1stNullItemsMiddleCount; - } - else - { - ++m_2ndNullItemsCount; - } - ++madeLostCount; - } - else - { - return false; - } - } - ++index; - } +VmaAllocHandle VmaBlockMetadata_Buddy::GetNextAllocation(VmaAllocHandle prevAlloc) const +{ + // Function only used for defragmentation, which is disabled for this algorithm + return VK_NULL_HANDLE; +} - CleanupAfterFree(); - //VMA_HEAVY_ASSERT(Validate()); // Already called by CleanupAfterFree(). +void VmaBlockMetadata_Buddy::DeleteNodeChildren(Node* node) +{ + if (node->type == Node::TYPE_SPLIT) + { + DeleteNodeChildren(node->split.leftChild->buddy); + DeleteNodeChildren(node->split.leftChild); + const VkAllocationCallbacks* allocationCallbacks = GetAllocationCallbacks(); + m_NodeAllocator.Free(node->split.leftChild->buddy); + m_NodeAllocator.Free(node->split.leftChild); + } +} - return true; +void VmaBlockMetadata_Buddy::Clear() +{ + DeleteNodeChildren(m_Root); + m_Root->type = Node::TYPE_FREE; + m_AllocationCount = 0; + m_FreeCount = 1; + m_SumFreeSize = m_UsableSize; } -uint32_t VmaBlockMetadata_Linear::MakeAllocationsLost(uint32_t currentFrameIndex, uint32_t frameInUseCount) +void VmaBlockMetadata_Buddy::SetAllocationUserData(VmaAllocHandle allocHandle, void* userData) { - uint32_t lostAllocationCount = 0; + uint32_t level = 0; + Node* const node = FindAllocationNode((VkDeviceSize)allocHandle - 1, level); + node->allocation.userData = userData; +} - SuballocationVectorType& suballocations1st = AccessSuballocations1st(); - for(size_t i = m_1stNullItemsBeginCount, count = suballocations1st.size(); i < count; ++i) +VmaBlockMetadata_Buddy::Node* VmaBlockMetadata_Buddy::FindAllocationNode(VkDeviceSize offset, uint32_t& outLevel) const +{ + Node* node = m_Root; + VkDeviceSize nodeOffset = 0; + outLevel = 0; + VkDeviceSize levelNodeSize = LevelToNodeSize(0); + while (node->type == Node::TYPE_SPLIT) { - VmaSuballocation& suballoc = suballocations1st[i]; - if(suballoc.type != VMA_SUBALLOCATION_TYPE_FREE && - suballoc.hAllocation->CanBecomeLost() && - suballoc.hAllocation->MakeLost(currentFrameIndex, frameInUseCount)) + const VkDeviceSize nextLevelNodeSize = levelNodeSize >> 1; + if (offset < nodeOffset + nextLevelNodeSize) { - suballoc.type = VMA_SUBALLOCATION_TYPE_FREE; - suballoc.hAllocation = VK_NULL_HANDLE; - ++m_1stNullItemsMiddleCount; - m_SumFreeSize += suballoc.size; - ++lostAllocationCount; + node = node->split.leftChild; } - } - - SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - for(size_t i = 0, count = suballocations2nd.size(); i < count; ++i) - { - VmaSuballocation& suballoc = suballocations2nd[i]; - if(suballoc.type != VMA_SUBALLOCATION_TYPE_FREE && - suballoc.hAllocation->CanBecomeLost() && - suballoc.hAllocation->MakeLost(currentFrameIndex, frameInUseCount)) + else { - suballoc.type = VMA_SUBALLOCATION_TYPE_FREE; - suballoc.hAllocation = VK_NULL_HANDLE; - ++m_2ndNullItemsCount; - m_SumFreeSize += suballoc.size; - ++lostAllocationCount; + node = node->split.leftChild->buddy; + nodeOffset += nextLevelNodeSize; } + ++outLevel; + levelNodeSize = nextLevelNodeSize; } - if(lostAllocationCount) - { - CleanupAfterFree(); - } - - return lostAllocationCount; + VMA_ASSERT(node != VMA_NULL && node->type == Node::TYPE_ALLOCATION); + return node; } -VkResult VmaBlockMetadata_Linear::CheckCorruption(const void* pBlockData) +bool VmaBlockMetadata_Buddy::ValidateNode(ValidationContext& ctx, const Node* parent, const Node* curr, uint32_t level, VkDeviceSize levelNodeSize) const { - SuballocationVectorType& suballocations1st = AccessSuballocations1st(); - for(size_t i = m_1stNullItemsBeginCount, count = suballocations1st.size(); i < count; ++i) + VMA_VALIDATE(level < m_LevelCount); + VMA_VALIDATE(curr->parent == parent); + VMA_VALIDATE((curr->buddy == VMA_NULL) == (parent == VMA_NULL)); + VMA_VALIDATE(curr->buddy == VMA_NULL || curr->buddy->buddy == curr); + switch (curr->type) { - const VmaSuballocation& suballoc = suballocations1st[i]; - if(suballoc.type != VMA_SUBALLOCATION_TYPE_FREE) + case Node::TYPE_FREE: + // curr->free.prev, next are validated separately. + ctx.calculatedSumFreeSize += levelNodeSize; + ++ctx.calculatedFreeCount; + break; + case Node::TYPE_ALLOCATION: + ++ctx.calculatedAllocationCount; + if (!IsVirtual()) { - if(!VmaValidateMagicValue(pBlockData, suballoc.offset - VMA_DEBUG_MARGIN)) - { - VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED BEFORE VALIDATED ALLOCATION!"); - return VK_ERROR_UNKNOWN; - } - if(!VmaValidateMagicValue(pBlockData, suballoc.offset + suballoc.size)) - { - VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED AFTER VALIDATED ALLOCATION!"); - return VK_ERROR_UNKNOWN; - } + VMA_VALIDATE(curr->allocation.userData != VMA_NULL); } - } - - SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - for(size_t i = 0, count = suballocations2nd.size(); i < count; ++i) + break; + case Node::TYPE_SPLIT: { - const VmaSuballocation& suballoc = suballocations2nd[i]; - if(suballoc.type != VMA_SUBALLOCATION_TYPE_FREE) + const uint32_t childrenLevel = level + 1; + const VkDeviceSize childrenLevelNodeSize = levelNodeSize >> 1; + const Node* const leftChild = curr->split.leftChild; + VMA_VALIDATE(leftChild != VMA_NULL); + VMA_VALIDATE(leftChild->offset == curr->offset); + if (!ValidateNode(ctx, curr, leftChild, childrenLevel, childrenLevelNodeSize)) { - if(!VmaValidateMagicValue(pBlockData, suballoc.offset - VMA_DEBUG_MARGIN)) - { - VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED BEFORE VALIDATED ALLOCATION!"); - return VK_ERROR_UNKNOWN; - } - if(!VmaValidateMagicValue(pBlockData, suballoc.offset + suballoc.size)) - { - VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED AFTER VALIDATED ALLOCATION!"); - return VK_ERROR_UNKNOWN; - } + VMA_VALIDATE(false && "ValidateNode for left child failed."); } + const Node* const rightChild = leftChild->buddy; + VMA_VALIDATE(rightChild->offset == curr->offset + childrenLevelNodeSize); + if (!ValidateNode(ctx, curr, rightChild, childrenLevel, childrenLevelNodeSize)) + { + VMA_VALIDATE(false && "ValidateNode for right child failed."); + } + } + break; + default: + return false; } - return VK_SUCCESS; + return true; } -void VmaBlockMetadata_Linear::Alloc( - const VmaAllocationRequest& request, - VmaSuballocationType type, - VkDeviceSize allocSize, - VmaAllocation hAllocation) +uint32_t VmaBlockMetadata_Buddy::AllocSizeToLevel(VkDeviceSize allocSize) const { - const VmaSuballocation newSuballoc = { request.offset, allocSize, hAllocation, type }; - - switch(request.type) + // I know this could be optimized somehow e.g. by using std::log2p1 from C++20. + uint32_t level = 0; + VkDeviceSize currLevelNodeSize = m_UsableSize; + VkDeviceSize nextLevelNodeSize = currLevelNodeSize >> 1; + while (allocSize <= nextLevelNodeSize && level + 1 < m_LevelCount) { - case VmaAllocationRequestType::UpperAddress: - { - VMA_ASSERT(m_2ndVectorMode != SECOND_VECTOR_RING_BUFFER && - "CRITICAL ERROR: Trying to use linear allocator as double stack while it was already used as ring buffer."); - SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - suballocations2nd.push_back(newSuballoc); - m_2ndVectorMode = SECOND_VECTOR_DOUBLE_STACK; - } - break; - case VmaAllocationRequestType::EndOf1st: - { - SuballocationVectorType& suballocations1st = AccessSuballocations1st(); + ++level; + currLevelNodeSize >>= 1; + nextLevelNodeSize >>= 1; + } + return level; +} - VMA_ASSERT(suballocations1st.empty() || - request.offset >= suballocations1st.back().offset + suballocations1st.back().size); - // Check if it fits before the end of the block. - VMA_ASSERT(request.offset + allocSize <= GetSize()); +void VmaBlockMetadata_Buddy::Free(VmaAllocHandle allocHandle) +{ + uint32_t level = 0; + Node* node = FindAllocationNode((VkDeviceSize)allocHandle - 1, level); - suballocations1st.push_back(newSuballoc); - } - break; - case VmaAllocationRequestType::EndOf2nd: - { - SuballocationVectorType& suballocations1st = AccessSuballocations1st(); - // New allocation at the end of 2-part ring buffer, so before first allocation from 1st vector. - VMA_ASSERT(!suballocations1st.empty() && - request.offset + allocSize <= suballocations1st[m_1stNullItemsBeginCount].offset); - SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + ++m_FreeCount; + --m_AllocationCount; + m_SumFreeSize += LevelToNodeSize(level); - switch(m_2ndVectorMode) - { - case SECOND_VECTOR_EMPTY: - // First allocation from second part ring buffer. - VMA_ASSERT(suballocations2nd.empty()); - m_2ndVectorMode = SECOND_VECTOR_RING_BUFFER; - break; - case SECOND_VECTOR_RING_BUFFER: - // 2-part ring buffer is already started. - VMA_ASSERT(!suballocations2nd.empty()); - break; - case SECOND_VECTOR_DOUBLE_STACK: - VMA_ASSERT(0 && "CRITICAL ERROR: Trying to use linear allocator as ring buffer while it was already used as double stack."); - break; - default: - VMA_ASSERT(0); - } + node->type = Node::TYPE_FREE; - suballocations2nd.push_back(newSuballoc); - } - break; - default: - VMA_ASSERT(0 && "CRITICAL INTERNAL ERROR."); + // Join free nodes if possible. + while (level > 0 && node->buddy->type == Node::TYPE_FREE) + { + RemoveFromFreeList(level, node->buddy); + Node* const parent = node->parent; + + m_NodeAllocator.Free(node->buddy); + m_NodeAllocator.Free(node); + parent->type = Node::TYPE_FREE; + + node = parent; + --level; + --m_FreeCount; } - m_SumFreeSize -= newSuballoc.size; + AddToFreeListFront(level, node); } -void VmaBlockMetadata_Linear::Free(const VmaAllocation allocation) +void VmaBlockMetadata_Buddy::AddNodeToDetailedStatistics(VmaDetailedStatistics& inoutStats, const Node* node, VkDeviceSize levelNodeSize) const { - FreeAtOffset(allocation->GetOffset()); + switch (node->type) + { + case Node::TYPE_FREE: + VmaAddDetailedStatisticsUnusedRange(inoutStats, levelNodeSize); + break; + case Node::TYPE_ALLOCATION: + VmaAddDetailedStatisticsAllocation(inoutStats, levelNodeSize); + break; + case Node::TYPE_SPLIT: + { + const VkDeviceSize childrenNodeSize = levelNodeSize / 2; + const Node* const leftChild = node->split.leftChild; + AddNodeToDetailedStatistics(inoutStats, leftChild, childrenNodeSize); + const Node* const rightChild = leftChild->buddy; + AddNodeToDetailedStatistics(inoutStats, rightChild, childrenNodeSize); + } + break; + default: + VMA_ASSERT(0); + } } -void VmaBlockMetadata_Linear::FreeAtOffset(VkDeviceSize offset) +void VmaBlockMetadata_Buddy::AddToFreeListFront(uint32_t level, Node* node) { - SuballocationVectorType& suballocations1st = AccessSuballocations1st(); - SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); + VMA_ASSERT(node->type == Node::TYPE_FREE); - if(!suballocations1st.empty()) + // List is empty. + Node* const frontNode = m_FreeList[level].front; + if (frontNode == VMA_NULL) { - // First allocation: Mark it as next empty at the beginning. - VmaSuballocation& firstSuballoc = suballocations1st[m_1stNullItemsBeginCount]; - if(firstSuballoc.offset == offset) - { - firstSuballoc.type = VMA_SUBALLOCATION_TYPE_FREE; - firstSuballoc.hAllocation = VK_NULL_HANDLE; - m_SumFreeSize += firstSuballoc.size; - ++m_1stNullItemsBeginCount; - CleanupAfterFree(); - return; - } + VMA_ASSERT(m_FreeList[level].back == VMA_NULL); + node->free.prev = node->free.next = VMA_NULL; + m_FreeList[level].front = m_FreeList[level].back = node; + } + else + { + VMA_ASSERT(frontNode->free.prev == VMA_NULL); + node->free.prev = VMA_NULL; + node->free.next = frontNode; + frontNode->free.prev = node; + m_FreeList[level].front = node; } +} - // Last allocation in 2-part ring buffer or top of upper stack (same logic). - if(m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER || - m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK) +void VmaBlockMetadata_Buddy::RemoveFromFreeList(uint32_t level, Node* node) +{ + VMA_ASSERT(m_FreeList[level].front != VMA_NULL); + + // It is at the front. + if (node->free.prev == VMA_NULL) { - VmaSuballocation& lastSuballoc = suballocations2nd.back(); - if(lastSuballoc.offset == offset) - { - m_SumFreeSize += lastSuballoc.size; - suballocations2nd.pop_back(); - CleanupAfterFree(); - return; - } + VMA_ASSERT(m_FreeList[level].front == node); + m_FreeList[level].front = node->free.next; } - // Last allocation in 1st vector. - else if(m_2ndVectorMode == SECOND_VECTOR_EMPTY) + else { - VmaSuballocation& lastSuballoc = suballocations1st.back(); - if(lastSuballoc.offset == offset) - { - m_SumFreeSize += lastSuballoc.size; - suballocations1st.pop_back(); - CleanupAfterFree(); - return; - } + Node* const prevFreeNode = node->free.prev; + VMA_ASSERT(prevFreeNode->free.next == node); + prevFreeNode->free.next = node->free.next; } - // Item from the middle of 1st vector. + // It is at the back. + if (node->free.next == VMA_NULL) { - VmaSuballocation refSuballoc; - refSuballoc.offset = offset; - // Rest of members stays uninitialized intentionally for better performance. - SuballocationVectorType::iterator it = VmaBinaryFindSorted( - suballocations1st.begin() + m_1stNullItemsBeginCount, - suballocations1st.end(), - refSuballoc, - VmaSuballocationOffsetLess()); - if(it != suballocations1st.end()) - { - it->type = VMA_SUBALLOCATION_TYPE_FREE; - it->hAllocation = VK_NULL_HANDLE; - ++m_1stNullItemsMiddleCount; - m_SumFreeSize += it->size; - CleanupAfterFree(); - return; - } + VMA_ASSERT(m_FreeList[level].back == node); + m_FreeList[level].back = node->free.prev; } - - if(m_2ndVectorMode != SECOND_VECTOR_EMPTY) + else { - // Item from the middle of 2nd vector. - VmaSuballocation refSuballoc; - refSuballoc.offset = offset; - // Rest of members stays uninitialized intentionally for better performance. - SuballocationVectorType::iterator it = m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER ? - VmaBinaryFindSorted(suballocations2nd.begin(), suballocations2nd.end(), refSuballoc, VmaSuballocationOffsetLess()) : - VmaBinaryFindSorted(suballocations2nd.begin(), suballocations2nd.end(), refSuballoc, VmaSuballocationOffsetGreater()); - if(it != suballocations2nd.end()) - { - it->type = VMA_SUBALLOCATION_TYPE_FREE; - it->hAllocation = VK_NULL_HANDLE; - ++m_2ndNullItemsCount; - m_SumFreeSize += it->size; - CleanupAfterFree(); - return; - } + Node* const nextFreeNode = node->free.next; + VMA_ASSERT(nextFreeNode->free.prev == node); + nextFreeNode->free.prev = node->free.prev; } - - VMA_ASSERT(0 && "Allocation to free not found in linear allocator!"); } -bool VmaBlockMetadata_Linear::ShouldCompact1st() const +void VmaBlockMetadata_Buddy::DebugLogAllAllocationNode(Node* node, uint32_t level) const { - const size_t nullItemCount = m_1stNullItemsBeginCount + m_1stNullItemsMiddleCount; - const size_t suballocCount = AccessSuballocations1st().size(); - return suballocCount > 32 && nullItemCount * 2 >= (suballocCount - nullItemCount) * 3; + switch (node->type) + { + case Node::TYPE_FREE: + break; + case Node::TYPE_ALLOCATION: + DebugLogAllocation(node->offset, LevelToNodeSize(level), node->allocation.userData); + break; + case Node::TYPE_SPLIT: + { + ++level; + DebugLogAllAllocationNode(node->split.leftChild, level); + DebugLogAllAllocationNode(node->split.leftChild->buddy, level); + } + break; + default: + VMA_ASSERT(0); + } } -void VmaBlockMetadata_Linear::CleanupAfterFree() +#if VMA_STATS_STRING_ENABLED +void VmaBlockMetadata_Buddy::PrintDetailedMapNode(class VmaJsonWriter& json, const Node* node, VkDeviceSize levelNodeSize) const { - SuballocationVectorType& suballocations1st = AccessSuballocations1st(); - SuballocationVectorType& suballocations2nd = AccessSuballocations2nd(); - - if(IsEmpty()) + switch (node->type) { - suballocations1st.clear(); - suballocations2nd.clear(); - m_1stNullItemsBeginCount = 0; - m_1stNullItemsMiddleCount = 0; - m_2ndNullItemsCount = 0; - m_2ndVectorMode = SECOND_VECTOR_EMPTY; - } - else + case Node::TYPE_FREE: + PrintDetailedMap_UnusedRange(json, node->offset, levelNodeSize); + break; + case Node::TYPE_ALLOCATION: + PrintDetailedMap_Allocation(json, node->offset, levelNodeSize, node->allocation.userData); + break; + case Node::TYPE_SPLIT: { - const size_t suballoc1stCount = suballocations1st.size(); - const size_t nullItem1stCount = m_1stNullItemsBeginCount + m_1stNullItemsMiddleCount; - VMA_ASSERT(nullItem1stCount <= suballoc1stCount); + const VkDeviceSize childrenNodeSize = levelNodeSize / 2; + const Node* const leftChild = node->split.leftChild; + PrintDetailedMapNode(json, leftChild, childrenNodeSize); + const Node* const rightChild = leftChild->buddy; + PrintDetailedMapNode(json, rightChild, childrenNodeSize); + } + break; + default: + VMA_ASSERT(0); + } +} +#endif // VMA_STATS_STRING_ENABLED +#endif // _VMA_BLOCK_METADATA_BUDDY_FUNCTIONS +#endif // _VMA_BLOCK_METADATA_BUDDY +#endif // #if 0 - // Find more null items at the beginning of 1st vector. - while(m_1stNullItemsBeginCount < suballoc1stCount && - suballocations1st[m_1stNullItemsBeginCount].hAllocation == VK_NULL_HANDLE) - { - ++m_1stNullItemsBeginCount; - --m_1stNullItemsMiddleCount; - } +#ifndef _VMA_BLOCK_METADATA_TLSF +// To not search current larger region if first allocation won't succeed and skip to smaller range +// use with VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT as strategy in CreateAllocationRequest(). +// When fragmentation and reusal of previous blocks doesn't matter then use with +// VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT for fastest alloc time possible. +class VmaBlockMetadata_TLSF : public VmaBlockMetadata +{ + VMA_CLASS_NO_COPY_NO_MOVE(VmaBlockMetadata_TLSF) +public: + VmaBlockMetadata_TLSF(const VkAllocationCallbacks* pAllocationCallbacks, + VkDeviceSize bufferImageGranularity, bool isVirtual); + virtual ~VmaBlockMetadata_TLSF(); - // Find more null items at the end of 1st vector. - while(m_1stNullItemsMiddleCount > 0 && - suballocations1st.back().hAllocation == VK_NULL_HANDLE) - { - --m_1stNullItemsMiddleCount; - suballocations1st.pop_back(); - } + size_t GetAllocationCount() const override { return m_AllocCount; } + size_t GetFreeRegionsCount() const override { return m_BlocksFreeCount + 1; } + VkDeviceSize GetSumFreeSize() const override { return m_BlocksFreeSize + m_NullBlock->size; } + bool IsEmpty() const override { return m_NullBlock->offset == 0; } + VkDeviceSize GetAllocationOffset(VmaAllocHandle allocHandle) const override { return ((Block*)allocHandle)->offset; } - // Find more null items at the end of 2nd vector. - while(m_2ndNullItemsCount > 0 && - suballocations2nd.back().hAllocation == VK_NULL_HANDLE) - { - --m_2ndNullItemsCount; - suballocations2nd.pop_back(); - } + void Init(VkDeviceSize size) override; + bool Validate() const override; - // Find more null items at the beginning of 2nd vector. - while(m_2ndNullItemsCount > 0 && - suballocations2nd[0].hAllocation == VK_NULL_HANDLE) - { - --m_2ndNullItemsCount; - VmaVectorRemove(suballocations2nd, 0); - } + void AddDetailedStatistics(VmaDetailedStatistics& inoutStats) const override; + void AddStatistics(VmaStatistics& inoutStats) const override; - if(ShouldCompact1st()) - { - const size_t nonNullItemCount = suballoc1stCount - nullItem1stCount; - size_t srcIndex = m_1stNullItemsBeginCount; - for(size_t dstIndex = 0; dstIndex < nonNullItemCount; ++dstIndex) - { - while(suballocations1st[srcIndex].hAllocation == VK_NULL_HANDLE) - { - ++srcIndex; - } - if(dstIndex != srcIndex) - { - suballocations1st[dstIndex] = suballocations1st[srcIndex]; - } - ++srcIndex; - } - suballocations1st.resize(nonNullItemCount); - m_1stNullItemsBeginCount = 0; - m_1stNullItemsMiddleCount = 0; - } +#if VMA_STATS_STRING_ENABLED + void PrintDetailedMap(class VmaJsonWriter& json) const override; +#endif - // 2nd vector became empty. - if(suballocations2nd.empty()) - { - m_2ndVectorMode = SECOND_VECTOR_EMPTY; - } + bool CreateAllocationRequest( + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + bool upperAddress, + VmaSuballocationType allocType, + uint32_t strategy, + VmaAllocationRequest* pAllocationRequest) override; - // 1st vector became empty. - if(suballocations1st.size() - m_1stNullItemsBeginCount == 0) - { - suballocations1st.clear(); - m_1stNullItemsBeginCount = 0; + VkResult CheckCorruption(const void* pBlockData) override; + void Alloc( + const VmaAllocationRequest& request, + VmaSuballocationType type, + void* userData) override; + + void Free(VmaAllocHandle allocHandle) override; + void GetAllocationInfo(VmaAllocHandle allocHandle, VmaVirtualAllocationInfo& outInfo) override; + void* GetAllocationUserData(VmaAllocHandle allocHandle) const override; + VmaAllocHandle GetAllocationListBegin() const override; + VmaAllocHandle GetNextAllocation(VmaAllocHandle prevAlloc) const override; + VkDeviceSize GetNextFreeRegionSize(VmaAllocHandle alloc) const override; + void Clear() override; + void SetAllocationUserData(VmaAllocHandle allocHandle, void* userData) override; + void DebugLogAllAllocations() const override; - if(!suballocations2nd.empty() && m_2ndVectorMode == SECOND_VECTOR_RING_BUFFER) - { - // Swap 1st with 2nd. Now 2nd is empty. - m_2ndVectorMode = SECOND_VECTOR_EMPTY; - m_1stNullItemsMiddleCount = m_2ndNullItemsCount; - while(m_1stNullItemsBeginCount < suballocations2nd.size() && - suballocations2nd[m_1stNullItemsBeginCount].hAllocation == VK_NULL_HANDLE) - { - ++m_1stNullItemsBeginCount; - --m_1stNullItemsMiddleCount; - } - m_2ndNullItemsCount = 0; - m_1stVectorIndex ^= 1; - } - } - } +private: + // According to original paper it should be preferable 4 or 5: + // M. Masmano, I. Ripoll, A. Crespo, and J. Real "TLSF: a New Dynamic Memory Allocator for Real-Time Systems" + // http://www.gii.upv.es/tlsf/files/ecrts04_tlsf.pdf + static const uint8_t SECOND_LEVEL_INDEX = 5; + static const uint16_t SMALL_BUFFER_SIZE = 256; + static const uint32_t INITIAL_BLOCK_ALLOC_COUNT = 16; + static const uint8_t MEMORY_CLASS_SHIFT = 7; + static const uint8_t MAX_MEMORY_CLASSES = 65 - MEMORY_CLASS_SHIFT; - VMA_HEAVY_ASSERT(Validate()); -} + class Block + { + public: + VkDeviceSize offset; + VkDeviceSize size; + Block* prevPhysical; + Block* nextPhysical; + void MarkFree() { prevFree = VMA_NULL; } + void MarkTaken() { prevFree = this; } + bool IsFree() const { return prevFree != this; } + void*& UserData() { VMA_HEAVY_ASSERT(!IsFree()); return userData; } + Block*& PrevFree() { return prevFree; } + Block*& NextFree() { VMA_HEAVY_ASSERT(IsFree()); return nextFree; } -//////////////////////////////////////////////////////////////////////////////// -// class VmaBlockMetadata_Buddy + private: + Block* prevFree; // Address of the same block here indicates that block is taken + union + { + Block* nextFree; + void* userData; + }; + }; -VmaBlockMetadata_Buddy::VmaBlockMetadata_Buddy(VmaAllocator hAllocator) : - VmaBlockMetadata(hAllocator), - m_Root(VMA_NULL), - m_AllocationCount(0), - m_FreeCount(1), - m_SumFreeSize(0) -{ - memset(m_FreeList, 0, sizeof(m_FreeList)); -} + size_t m_AllocCount; + // Total number of free blocks besides null block + size_t m_BlocksFreeCount; + // Total size of free blocks excluding null block + VkDeviceSize m_BlocksFreeSize; + uint32_t m_IsFreeBitmap; + uint8_t m_MemoryClasses; + uint32_t m_InnerIsFreeBitmap[MAX_MEMORY_CLASSES]; + uint32_t m_ListsCount; + /* + * 0: 0-3 lists for small buffers + * 1+: 0-(2^SLI-1) lists for normal buffers + */ + Block** m_FreeList; + VmaPoolAllocator m_BlockAllocator; + Block* m_NullBlock; + VmaBlockBufferImageGranularity m_GranularityHandler; + + uint8_t SizeToMemoryClass(VkDeviceSize size) const; + uint16_t SizeToSecondIndex(VkDeviceSize size, uint8_t memoryClass) const; + uint32_t GetListIndex(uint8_t memoryClass, uint16_t secondIndex) const; + uint32_t GetListIndex(VkDeviceSize size) const; + + void RemoveFreeBlock(Block* block); + void InsertFreeBlock(Block* block); + void MergeBlock(Block* block, Block* prev); + + Block* FindFreeBlock(VkDeviceSize size, uint32_t& listIndex) const; + bool CheckBlock( + Block& block, + uint32_t listIndex, + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + VmaSuballocationType allocType, + VmaAllocationRequest* pAllocationRequest); +}; -VmaBlockMetadata_Buddy::~VmaBlockMetadata_Buddy() +#ifndef _VMA_BLOCK_METADATA_TLSF_FUNCTIONS +VmaBlockMetadata_TLSF::VmaBlockMetadata_TLSF(const VkAllocationCallbacks* pAllocationCallbacks, + VkDeviceSize bufferImageGranularity, bool isVirtual) + : VmaBlockMetadata(pAllocationCallbacks, bufferImageGranularity, isVirtual), + m_AllocCount(0), + m_BlocksFreeCount(0), + m_BlocksFreeSize(0), + m_IsFreeBitmap(0), + m_MemoryClasses(0), + m_ListsCount(0), + m_FreeList(VMA_NULL), + m_BlockAllocator(pAllocationCallbacks, INITIAL_BLOCK_ALLOC_COUNT), + m_NullBlock(VMA_NULL), + m_GranularityHandler(bufferImageGranularity) {} + +VmaBlockMetadata_TLSF::~VmaBlockMetadata_TLSF() { - DeleteNode(m_Root); + if (m_FreeList) + vma_delete_array(GetAllocationCallbacks(), m_FreeList, m_ListsCount); + m_GranularityHandler.Destroy(GetAllocationCallbacks()); } -void VmaBlockMetadata_Buddy::Init(VkDeviceSize size) +void VmaBlockMetadata_TLSF::Init(VkDeviceSize size) { VmaBlockMetadata::Init(size); - m_UsableSize = VmaPrevPow2(size); - m_SumFreeSize = m_UsableSize; - - // Calculate m_LevelCount. - m_LevelCount = 1; - while(m_LevelCount < MAX_LEVELS && - LevelToNodeSize(m_LevelCount) >= MIN_NODE_SIZE) - { - ++m_LevelCount; - } + if (!IsVirtual()) + m_GranularityHandler.Init(GetAllocationCallbacks(), size); + + m_NullBlock = m_BlockAllocator.Alloc(); + m_NullBlock->size = size; + m_NullBlock->offset = 0; + m_NullBlock->prevPhysical = VMA_NULL; + m_NullBlock->nextPhysical = VMA_NULL; + m_NullBlock->MarkFree(); + m_NullBlock->NextFree() = VMA_NULL; + m_NullBlock->PrevFree() = VMA_NULL; + uint8_t memoryClass = SizeToMemoryClass(size); + uint16_t sli = SizeToSecondIndex(size, memoryClass); + m_ListsCount = (memoryClass == 0 ? 0 : (memoryClass - 1) * (1UL << SECOND_LEVEL_INDEX) + sli) + 1; + if (IsVirtual()) + m_ListsCount += 1UL << SECOND_LEVEL_INDEX; + else + m_ListsCount += 4; - Node* rootNode = vma_new(GetAllocationCallbacks(), Node)(); - rootNode->offset = 0; - rootNode->type = Node::TYPE_FREE; - rootNode->parent = VMA_NULL; - rootNode->buddy = VMA_NULL; + m_MemoryClasses = memoryClass + uint8_t(2); + memset(m_InnerIsFreeBitmap, 0, MAX_MEMORY_CLASSES * sizeof(uint32_t)); - m_Root = rootNode; - AddToFreeListFront(0, rootNode); + m_FreeList = vma_new_array(GetAllocationCallbacks(), Block*, m_ListsCount); + memset(m_FreeList, 0, m_ListsCount * sizeof(Block*)); } -bool VmaBlockMetadata_Buddy::Validate() const +bool VmaBlockMetadata_TLSF::Validate() const { - // Validate tree. - ValidationContext ctx; - if(!ValidateNode(ctx, VMA_NULL, m_Root, 0, LevelToNodeSize(0))) + VMA_VALIDATE(GetSumFreeSize() <= GetSize()); + + VkDeviceSize calculatedSize = m_NullBlock->size; + VkDeviceSize calculatedFreeSize = m_NullBlock->size; + size_t allocCount = 0; + size_t freeCount = 0; + + // Check integrity of free lists + for (uint32_t list = 0; list < m_ListsCount; ++list) { - VMA_VALIDATE(false && "ValidateNode failed."); + Block* block = m_FreeList[list]; + if (block != VMA_NULL) + { + VMA_VALIDATE(block->IsFree()); + VMA_VALIDATE(block->PrevFree() == VMA_NULL); + while (block->NextFree()) + { + VMA_VALIDATE(block->NextFree()->IsFree()); + VMA_VALIDATE(block->NextFree()->PrevFree() == block); + block = block->NextFree(); + } + } } - VMA_VALIDATE(m_AllocationCount == ctx.calculatedAllocationCount); - VMA_VALIDATE(m_SumFreeSize == ctx.calculatedSumFreeSize); - // Validate free node lists. - for(uint32_t level = 0; level < m_LevelCount; ++level) + VkDeviceSize nextOffset = m_NullBlock->offset; + auto validateCtx = m_GranularityHandler.StartValidation(GetAllocationCallbacks(), IsVirtual()); + + VMA_VALIDATE(m_NullBlock->nextPhysical == VMA_NULL); + if (m_NullBlock->prevPhysical) { - VMA_VALIDATE(m_FreeList[level].front == VMA_NULL || - m_FreeList[level].front->free.prev == VMA_NULL); + VMA_VALIDATE(m_NullBlock->prevPhysical->nextPhysical == m_NullBlock); + } + // Check all blocks + for (Block* prev = m_NullBlock->prevPhysical; prev != VMA_NULL; prev = prev->prevPhysical) + { + VMA_VALIDATE(prev->offset + prev->size == nextOffset); + nextOffset = prev->offset; + calculatedSize += prev->size; - for(Node* node = m_FreeList[level].front; - node != VMA_NULL; - node = node->free.next) + uint32_t listIndex = GetListIndex(prev->size); + if (prev->IsFree()) { - VMA_VALIDATE(node->type == Node::TYPE_FREE); + ++freeCount; + // Check if free block belongs to free list + Block* freeBlock = m_FreeList[listIndex]; + VMA_VALIDATE(freeBlock != VMA_NULL); - if(node->free.next == VMA_NULL) + bool found = false; + do { - VMA_VALIDATE(m_FreeList[level].back == node); + if (freeBlock == prev) + found = true; + + freeBlock = freeBlock->NextFree(); + } while (!found && freeBlock != VMA_NULL); + + VMA_VALIDATE(found); + calculatedFreeSize += prev->size; + } + else + { + ++allocCount; + // Check if taken block is not on a free list + Block* freeBlock = m_FreeList[listIndex]; + while (freeBlock) + { + VMA_VALIDATE(freeBlock != prev); + freeBlock = freeBlock->NextFree(); } - else + + if (!IsVirtual()) { - VMA_VALIDATE(node->free.next->free.prev == node); + VMA_VALIDATE(m_GranularityHandler.Validate(validateCtx, prev->offset, prev->size)); } } + + if (prev->prevPhysical) + { + VMA_VALIDATE(prev->prevPhysical->nextPhysical == prev); + } } - // Validate that free lists ar higher levels are empty. - for(uint32_t level = m_LevelCount; level < MAX_LEVELS; ++level) + if (!IsVirtual()) { - VMA_VALIDATE(m_FreeList[level].front == VMA_NULL && m_FreeList[level].back == VMA_NULL); + VMA_VALIDATE(m_GranularityHandler.FinishValidation(validateCtx)); } + VMA_VALIDATE(nextOffset == 0); + VMA_VALIDATE(calculatedSize == GetSize()); + VMA_VALIDATE(calculatedFreeSize == GetSumFreeSize()); + VMA_VALIDATE(allocCount == m_AllocCount); + VMA_VALIDATE(freeCount == m_BlocksFreeCount); + return true; } -VkDeviceSize VmaBlockMetadata_Buddy::GetUnusedRangeSizeMax() const +void VmaBlockMetadata_TLSF::AddDetailedStatistics(VmaDetailedStatistics& inoutStats) const { - for(uint32_t level = 0; level < m_LevelCount; ++level) + inoutStats.statistics.blockCount++; + inoutStats.statistics.blockBytes += GetSize(); + if (m_NullBlock->size > 0) + VmaAddDetailedStatisticsUnusedRange(inoutStats, m_NullBlock->size); + + for (Block* block = m_NullBlock->prevPhysical; block != VMA_NULL; block = block->prevPhysical) { - if(m_FreeList[level].front != VMA_NULL) - { - return LevelToNodeSize(level); - } + if (block->IsFree()) + VmaAddDetailedStatisticsUnusedRange(inoutStats, block->size); + else + VmaAddDetailedStatisticsAllocation(inoutStats, block->size); } - return 0; } -void VmaBlockMetadata_Buddy::CalcAllocationStatInfo(VmaStatInfo& outInfo) const +void VmaBlockMetadata_TLSF::AddStatistics(VmaStatistics& inoutStats) const { - const VkDeviceSize unusableSize = GetUnusableSize(); - - outInfo.blockCount = 1; - - outInfo.allocationCount = outInfo.unusedRangeCount = 0; - outInfo.usedBytes = outInfo.unusedBytes = 0; - - outInfo.allocationSizeMax = outInfo.unusedRangeSizeMax = 0; - outInfo.allocationSizeMin = outInfo.unusedRangeSizeMin = UINT64_MAX; - outInfo.allocationSizeAvg = outInfo.unusedRangeSizeAvg = 0; // Unused. - - CalcAllocationStatInfoNode(outInfo, m_Root, LevelToNodeSize(0)); - - if(unusableSize > 0) - { - ++outInfo.unusedRangeCount; - outInfo.unusedBytes += unusableSize; - outInfo.unusedRangeSizeMax = VMA_MAX(outInfo.unusedRangeSizeMax, unusableSize); - outInfo.unusedRangeSizeMin = VMA_MIN(outInfo.unusedRangeSizeMin, unusableSize); - } + inoutStats.blockCount++; + inoutStats.allocationCount += (uint32_t)m_AllocCount; + inoutStats.blockBytes += GetSize(); + inoutStats.allocationBytes += GetSize() - GetSumFreeSize(); } -void VmaBlockMetadata_Buddy::AddPoolStats(VmaPoolStats& inoutStats) const +#if VMA_STATS_STRING_ENABLED +void VmaBlockMetadata_TLSF::PrintDetailedMap(class VmaJsonWriter& json) const { - const VkDeviceSize unusableSize = GetUnusableSize(); - - inoutStats.size += GetSize(); - inoutStats.unusedSize += m_SumFreeSize + unusableSize; - inoutStats.allocationCount += m_AllocationCount; - inoutStats.unusedRangeCount += m_FreeCount; - inoutStats.unusedRangeSizeMax = VMA_MAX(inoutStats.unusedRangeSizeMax, GetUnusedRangeSizeMax()); + size_t blockCount = m_AllocCount + m_BlocksFreeCount; + VmaStlAllocator allocator(GetAllocationCallbacks()); + VmaVector> blockList(blockCount, allocator); - if(unusableSize > 0) + size_t i = blockCount; + for (Block* block = m_NullBlock->prevPhysical; block != VMA_NULL; block = block->prevPhysical) { - ++inoutStats.unusedRangeCount; - // Not updating inoutStats.unusedRangeSizeMax with unusableSize because this space is not available for allocations. + blockList[--i] = block; } -} - -#if VMA_STATS_STRING_ENABLED - -void VmaBlockMetadata_Buddy::PrintDetailedMap(class VmaJsonWriter& json) const -{ - // TODO optimize - VmaStatInfo stat; - CalcAllocationStatInfo(stat); + VMA_ASSERT(i == 0); - PrintDetailedMap_Begin( - json, - stat.unusedBytes, - stat.allocationCount, - stat.unusedRangeCount); + VmaDetailedStatistics stats; + VmaClearDetailedStatistics(stats); + AddDetailedStatistics(stats); - PrintDetailedMapNode(json, m_Root, LevelToNodeSize(0)); + PrintDetailedMap_Begin(json, + stats.statistics.blockBytes - stats.statistics.allocationBytes, + stats.statistics.allocationCount, + stats.unusedRangeCount); - const VkDeviceSize unusableSize = GetUnusableSize(); - if(unusableSize > 0) + for (; i < blockCount; ++i) { - PrintDetailedMap_UnusedRange(json, - m_UsableSize, // offset - unusableSize); // size + Block* block = blockList[i]; + if (block->IsFree()) + PrintDetailedMap_UnusedRange(json, block->offset, block->size); + else + PrintDetailedMap_Allocation(json, block->offset, block->size, block->UserData()); } + if (m_NullBlock->size > 0) + PrintDetailedMap_UnusedRange(json, m_NullBlock->offset, m_NullBlock->size); PrintDetailedMap_End(json); } +#endif -#endif // #if VMA_STATS_STRING_ENABLED - -bool VmaBlockMetadata_Buddy::CreateAllocationRequest( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VkDeviceSize bufferImageGranularity, +bool VmaBlockMetadata_TLSF::CreateAllocationRequest( VkDeviceSize allocSize, VkDeviceSize allocAlignment, bool upperAddress, VmaSuballocationType allocType, - bool canMakeOtherLost, uint32_t strategy, VmaAllocationRequest* pAllocationRequest) { + VMA_ASSERT(allocSize > 0 && "Cannot allocate empty block!"); VMA_ASSERT(!upperAddress && "VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT can be used only with linear algorithm."); - // Simple way to respect bufferImageGranularity. May be optimized some day. - // Whenever it might be an OPTIMAL image... - if(allocType == VMA_SUBALLOCATION_TYPE_UNKNOWN || - allocType == VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN || - allocType == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL) - { - allocAlignment = VMA_MAX(allocAlignment, bufferImageGranularity); - allocSize = VMA_MAX(allocSize, bufferImageGranularity); - } + // For small granularity round up + if (!IsVirtual()) + m_GranularityHandler.RoundupAllocRequest(allocType, allocSize, allocAlignment); - if(allocSize > m_UsableSize) - { + allocSize += GetDebugMargin(); + // Quick check for too small pool + if (allocSize > GetSumFreeSize()) return false; - } - const uint32_t targetLevel = AllocSizeToLevel(allocSize); - for(uint32_t level = targetLevel + 1; level--; ) + // If no free blocks in pool then check only null block + if (m_BlocksFreeCount == 0) + return CheckBlock(*m_NullBlock, m_ListsCount, allocSize, allocAlignment, allocType, pAllocationRequest); + + // Round up to the next block + VkDeviceSize sizeForNextList = allocSize; + VkDeviceSize smallSizeStep = VkDeviceSize(SMALL_BUFFER_SIZE / (IsVirtual() ? 1 << SECOND_LEVEL_INDEX : 4)); + if (allocSize > SMALL_BUFFER_SIZE) { - for(Node* freeNode = m_FreeList[level].front; - freeNode != VMA_NULL; - freeNode = freeNode->free.next) - { - if(freeNode->offset % allocAlignment == 0) - { - pAllocationRequest->type = VmaAllocationRequestType::Normal; - pAllocationRequest->offset = freeNode->offset; - pAllocationRequest->sumFreeSize = LevelToNodeSize(level); - pAllocationRequest->sumItemSize = 0; - pAllocationRequest->itemsToMakeLostCount = 0; - pAllocationRequest->customData = (void*)(uintptr_t)level; - return true; - } - } + sizeForNextList += (1ULL << (VMA_BITSCAN_MSB(allocSize) - SECOND_LEVEL_INDEX)); } + else if (allocSize > SMALL_BUFFER_SIZE - smallSizeStep) + sizeForNextList = SMALL_BUFFER_SIZE + 1; + else + sizeForNextList += smallSizeStep; - return false; -} - -bool VmaBlockMetadata_Buddy::MakeRequestedAllocationsLost( - uint32_t currentFrameIndex, - uint32_t frameInUseCount, - VmaAllocationRequest* pAllocationRequest) -{ - /* - Lost allocations are not supported in buddy allocator at the moment. - Support might be added in the future. - */ - return pAllocationRequest->itemsToMakeLostCount == 0; -} + uint32_t nextListIndex = m_ListsCount; + uint32_t prevListIndex = m_ListsCount; + Block* nextListBlock = VMA_NULL; + Block* prevListBlock = VMA_NULL; -uint32_t VmaBlockMetadata_Buddy::MakeAllocationsLost(uint32_t currentFrameIndex, uint32_t frameInUseCount) -{ - /* - Lost allocations are not supported in buddy allocator at the moment. - Support might be added in the future. - */ - return 0; -} + // Check blocks according to strategies + if (strategy & VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT) + { + // Quick check for larger block first + nextListBlock = FindFreeBlock(sizeForNextList, nextListIndex); + if (nextListBlock != VMA_NULL && CheckBlock(*nextListBlock, nextListIndex, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; -void VmaBlockMetadata_Buddy::Alloc( - const VmaAllocationRequest& request, - VmaSuballocationType type, - VkDeviceSize allocSize, - VmaAllocation hAllocation) -{ - VMA_ASSERT(request.type == VmaAllocationRequestType::Normal); + // If not fitted then null block + if (CheckBlock(*m_NullBlock, m_ListsCount, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; - const uint32_t targetLevel = AllocSizeToLevel(allocSize); - uint32_t currLevel = (uint32_t)(uintptr_t)request.customData; + // Null block failed, search larger bucket + while (nextListBlock) + { + if (CheckBlock(*nextListBlock, nextListIndex, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; + nextListBlock = nextListBlock->NextFree(); + } - Node* currNode = m_FreeList[currLevel].front; - VMA_ASSERT(currNode != VMA_NULL && currNode->type == Node::TYPE_FREE); - while(currNode->offset != request.offset) - { - currNode = currNode->free.next; - VMA_ASSERT(currNode != VMA_NULL && currNode->type == Node::TYPE_FREE); + // Failed again, check best fit bucket + prevListBlock = FindFreeBlock(allocSize, prevListIndex); + while (prevListBlock) + { + if (CheckBlock(*prevListBlock, prevListIndex, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; + prevListBlock = prevListBlock->NextFree(); + } } - - // Go down, splitting free nodes. - while(currLevel < targetLevel) + else if (strategy & VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT) { - // currNode is already first free node at currLevel. - // Remove it from list of free nodes at this currLevel. - RemoveFromFreeList(currLevel, currNode); - - const uint32_t childrenLevel = currLevel + 1; - - // Create two free sub-nodes. - Node* leftChild = vma_new(GetAllocationCallbacks(), Node)(); - Node* rightChild = vma_new(GetAllocationCallbacks(), Node)(); + // Check best fit bucket + prevListBlock = FindFreeBlock(allocSize, prevListIndex); + while (prevListBlock) + { + if (CheckBlock(*prevListBlock, prevListIndex, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; + prevListBlock = prevListBlock->NextFree(); + } - leftChild->offset = currNode->offset; - leftChild->type = Node::TYPE_FREE; - leftChild->parent = currNode; - leftChild->buddy = rightChild; + // If failed check null block + if (CheckBlock(*m_NullBlock, m_ListsCount, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; - rightChild->offset = currNode->offset + LevelToNodeSize(childrenLevel); - rightChild->type = Node::TYPE_FREE; - rightChild->parent = currNode; - rightChild->buddy = leftChild; + // Check larger bucket + nextListBlock = FindFreeBlock(sizeForNextList, nextListIndex); + while (nextListBlock) + { + if (CheckBlock(*nextListBlock, nextListIndex, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; + nextListBlock = nextListBlock->NextFree(); + } + } + else if (strategy & VMA_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT ) + { + // Perform search from the start + VmaStlAllocator allocator(GetAllocationCallbacks()); + VmaVector> blockList(m_BlocksFreeCount, allocator); - // Convert current currNode to split type. - currNode->type = Node::TYPE_SPLIT; - currNode->split.leftChild = leftChild; + size_t i = m_BlocksFreeCount; + for (Block* block = m_NullBlock->prevPhysical; block != VMA_NULL; block = block->prevPhysical) + { + if (block->IsFree() && block->size >= allocSize) + blockList[--i] = block; + } - // Add child nodes to free list. Order is important! - AddToFreeListFront(childrenLevel, rightChild); - AddToFreeListFront(childrenLevel, leftChild); + for (; i < m_BlocksFreeCount; ++i) + { + Block& block = *blockList[i]; + if (CheckBlock(block, GetListIndex(block.size), allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; + } - ++m_FreeCount; - //m_SumFreeSize -= LevelToNodeSize(currLevel) % 2; // Useful only when level node sizes can be non power of 2. - ++currLevel; - currNode = m_FreeList[currLevel].front; + // If failed check null block + if (CheckBlock(*m_NullBlock, m_ListsCount, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; - /* - We can be sure that currNode, as left child of node previously split, - also fullfills the alignment requirement. - */ + // Whole range searched, no more memory + return false; } + else + { + // Check larger bucket + nextListBlock = FindFreeBlock(sizeForNextList, nextListIndex); + while (nextListBlock) + { + if (CheckBlock(*nextListBlock, nextListIndex, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; + nextListBlock = nextListBlock->NextFree(); + } - // Remove from free list. - VMA_ASSERT(currLevel == targetLevel && - currNode != VMA_NULL && - currNode->type == Node::TYPE_FREE); - RemoveFromFreeList(currLevel, currNode); - - // Convert to allocation node. - currNode->type = Node::TYPE_ALLOCATION; - currNode->allocation.alloc = hAllocation; + // If failed check null block + if (CheckBlock(*m_NullBlock, m_ListsCount, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; - ++m_AllocationCount; - --m_FreeCount; - m_SumFreeSize -= allocSize; -} + // Check best fit bucket + prevListBlock = FindFreeBlock(allocSize, prevListIndex); + while (prevListBlock) + { + if (CheckBlock(*prevListBlock, prevListIndex, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; + prevListBlock = prevListBlock->NextFree(); + } + } -void VmaBlockMetadata_Buddy::DeleteNode(Node* node) -{ - if(node->type == Node::TYPE_SPLIT) + // Worst case, full search has to be done + while (++nextListIndex < m_ListsCount) { - DeleteNode(node->split.leftChild->buddy); - DeleteNode(node->split.leftChild); + nextListBlock = m_FreeList[nextListIndex]; + while (nextListBlock) + { + if (CheckBlock(*nextListBlock, nextListIndex, allocSize, allocAlignment, allocType, pAllocationRequest)) + return true; + nextListBlock = nextListBlock->NextFree(); + } } - vma_delete(GetAllocationCallbacks(), node); + // No more memory sadly + return false; } -bool VmaBlockMetadata_Buddy::ValidateNode(ValidationContext& ctx, const Node* parent, const Node* curr, uint32_t level, VkDeviceSize levelNodeSize) const +VkResult VmaBlockMetadata_TLSF::CheckCorruption(const void* pBlockData) { - VMA_VALIDATE(level < m_LevelCount); - VMA_VALIDATE(curr->parent == parent); - VMA_VALIDATE((curr->buddy == VMA_NULL) == (parent == VMA_NULL)); - VMA_VALIDATE(curr->buddy == VMA_NULL || curr->buddy->buddy == curr); - switch(curr->type) + for (Block* block = m_NullBlock->prevPhysical; block != VMA_NULL; block = block->prevPhysical) { - case Node::TYPE_FREE: - // curr->free.prev, next are validated separately. - ctx.calculatedSumFreeSize += levelNodeSize; - ++ctx.calculatedFreeCount; - break; - case Node::TYPE_ALLOCATION: - ++ctx.calculatedAllocationCount; - ctx.calculatedSumFreeSize += levelNodeSize - curr->allocation.alloc->GetSize(); - VMA_VALIDATE(curr->allocation.alloc != VK_NULL_HANDLE); - break; - case Node::TYPE_SPLIT: + if (!block->IsFree()) { - const uint32_t childrenLevel = level + 1; - const VkDeviceSize childrenLevelNodeSize = levelNodeSize / 2; - const Node* const leftChild = curr->split.leftChild; - VMA_VALIDATE(leftChild != VMA_NULL); - VMA_VALIDATE(leftChild->offset == curr->offset); - if(!ValidateNode(ctx, curr, leftChild, childrenLevel, childrenLevelNodeSize)) + if (!VmaValidateMagicValue(pBlockData, block->offset + block->size)) { - VMA_VALIDATE(false && "ValidateNode for left child failed."); - } - const Node* const rightChild = leftChild->buddy; - VMA_VALIDATE(rightChild->offset == curr->offset + childrenLevelNodeSize); - if(!ValidateNode(ctx, curr, rightChild, childrenLevel, childrenLevelNodeSize)) - { - VMA_VALIDATE(false && "ValidateNode for right child failed."); + VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED AFTER VALIDATED ALLOCATION!"); + return VK_ERROR_UNKNOWN_COPY; } } - break; - default: - return false; } - return true; + return VK_SUCCESS; } -uint32_t VmaBlockMetadata_Buddy::AllocSizeToLevel(VkDeviceSize allocSize) const +void VmaBlockMetadata_TLSF::Alloc( + const VmaAllocationRequest& request, + VmaSuballocationType type, + void* userData) { - // I know this could be optimized somehow e.g. by using std::log2p1 from C++20. - uint32_t level = 0; - VkDeviceSize currLevelNodeSize = m_UsableSize; - VkDeviceSize nextLevelNodeSize = currLevelNodeSize >> 1; - while(allocSize <= nextLevelNodeSize && level + 1 < m_LevelCount) - { - ++level; - currLevelNodeSize = nextLevelNodeSize; - nextLevelNodeSize = currLevelNodeSize >> 1; - } - return level; -} + VMA_ASSERT(request.type == VmaAllocationRequestType::TLSF); -void VmaBlockMetadata_Buddy::FreeAtOffset(VmaAllocation alloc, VkDeviceSize offset) -{ - // Find node and level. - Node* node = m_Root; - VkDeviceSize nodeOffset = 0; - uint32_t level = 0; - VkDeviceSize levelNodeSize = LevelToNodeSize(0); - while(node->type == Node::TYPE_SPLIT) + // Get block and pop it from the free list + Block* currentBlock = (Block*)request.allocHandle; + VkDeviceSize offset = request.algorithmData; + VMA_ASSERT(currentBlock != VMA_NULL); + VMA_ASSERT(currentBlock->offset <= offset); + + if (currentBlock != m_NullBlock) + RemoveFreeBlock(currentBlock); + + VkDeviceSize debugMargin = GetDebugMargin(); + VkDeviceSize misssingAlignment = offset - currentBlock->offset; + + // Append missing alignment to prev block or create new one + if (misssingAlignment) { - const VkDeviceSize nextLevelSize = levelNodeSize >> 1; - if(offset < nodeOffset + nextLevelSize) + Block* prevBlock = currentBlock->prevPhysical; + VMA_ASSERT(prevBlock != VMA_NULL && "There should be no missing alignment at offset 0!"); + + if (prevBlock->IsFree() && prevBlock->size != debugMargin) { - node = node->split.leftChild; + uint32_t oldList = GetListIndex(prevBlock->size); + prevBlock->size += misssingAlignment; + // Check if new size crosses list bucket + if (oldList != GetListIndex(prevBlock->size)) + { + prevBlock->size -= misssingAlignment; + RemoveFreeBlock(prevBlock); + prevBlock->size += misssingAlignment; + InsertFreeBlock(prevBlock); + } + else + m_BlocksFreeSize += misssingAlignment; } else { - node = node->split.leftChild->buddy; - nodeOffset += nextLevelSize; - } - ++level; - levelNodeSize = nextLevelSize; - } - - VMA_ASSERT(node != VMA_NULL && node->type == Node::TYPE_ALLOCATION); - VMA_ASSERT(alloc == VK_NULL_HANDLE || node->allocation.alloc == alloc); + Block* newBlock = m_BlockAllocator.Alloc(); + currentBlock->prevPhysical = newBlock; + prevBlock->nextPhysical = newBlock; + newBlock->prevPhysical = prevBlock; + newBlock->nextPhysical = currentBlock; + newBlock->size = misssingAlignment; + newBlock->offset = currentBlock->offset; + newBlock->MarkTaken(); - ++m_FreeCount; - --m_AllocationCount; - m_SumFreeSize += alloc->GetSize(); + InsertFreeBlock(newBlock); + } - node->type = Node::TYPE_FREE; + currentBlock->size -= misssingAlignment; + currentBlock->offset += misssingAlignment; + } - // Join free nodes if possible. - while(level > 0 && node->buddy->type == Node::TYPE_FREE) + VkDeviceSize size = request.size + debugMargin; + if (currentBlock->size == size) { - RemoveFromFreeList(level, node->buddy); - Node* const parent = node->parent; - - vma_delete(GetAllocationCallbacks(), node->buddy); - vma_delete(GetAllocationCallbacks(), node); - parent->type = Node::TYPE_FREE; - - node = parent; - --level; - //m_SumFreeSize += LevelToNodeSize(level) % 2; // Useful only when level node sizes can be non power of 2. - --m_FreeCount; + if (currentBlock == m_NullBlock) + { + // Setup new null block + m_NullBlock = m_BlockAllocator.Alloc(); + m_NullBlock->size = 0; + m_NullBlock->offset = currentBlock->offset + size; + m_NullBlock->prevPhysical = currentBlock; + m_NullBlock->nextPhysical = VMA_NULL; + m_NullBlock->MarkFree(); + m_NullBlock->PrevFree() = VMA_NULL; + m_NullBlock->NextFree() = VMA_NULL; + currentBlock->nextPhysical = m_NullBlock; + currentBlock->MarkTaken(); + } } + else + { + VMA_ASSERT(currentBlock->size > size && "Proper block already found, shouldn't find smaller one!"); - AddToFreeListFront(level, node); -} + // Create new free block + Block* newBlock = m_BlockAllocator.Alloc(); + newBlock->size = currentBlock->size - size; + newBlock->offset = currentBlock->offset + size; + newBlock->prevPhysical = currentBlock; + newBlock->nextPhysical = currentBlock->nextPhysical; + currentBlock->nextPhysical = newBlock; + currentBlock->size = size; -void VmaBlockMetadata_Buddy::CalcAllocationStatInfoNode(VmaStatInfo& outInfo, const Node* node, VkDeviceSize levelNodeSize) const -{ - switch(node->type) - { - case Node::TYPE_FREE: - ++outInfo.unusedRangeCount; - outInfo.unusedBytes += levelNodeSize; - outInfo.unusedRangeSizeMax = VMA_MAX(outInfo.unusedRangeSizeMax, levelNodeSize); - outInfo.unusedRangeSizeMin = VMA_MAX(outInfo.unusedRangeSizeMin, levelNodeSize); - break; - case Node::TYPE_ALLOCATION: + if (currentBlock == m_NullBlock) { - const VkDeviceSize allocSize = node->allocation.alloc->GetSize(); - ++outInfo.allocationCount; - outInfo.usedBytes += allocSize; - outInfo.allocationSizeMax = VMA_MAX(outInfo.allocationSizeMax, allocSize); - outInfo.allocationSizeMin = VMA_MAX(outInfo.allocationSizeMin, allocSize); - - const VkDeviceSize unusedRangeSize = levelNodeSize - allocSize; - if(unusedRangeSize > 0) - { - ++outInfo.unusedRangeCount; - outInfo.unusedBytes += unusedRangeSize; - outInfo.unusedRangeSizeMax = VMA_MAX(outInfo.unusedRangeSizeMax, unusedRangeSize); - outInfo.unusedRangeSizeMin = VMA_MAX(outInfo.unusedRangeSizeMin, unusedRangeSize); - } + m_NullBlock = newBlock; + m_NullBlock->MarkFree(); + m_NullBlock->NextFree() = VMA_NULL; + m_NullBlock->PrevFree() = VMA_NULL; + currentBlock->MarkTaken(); } - break; - case Node::TYPE_SPLIT: + else { - const VkDeviceSize childrenNodeSize = levelNodeSize / 2; - const Node* const leftChild = node->split.leftChild; - CalcAllocationStatInfoNode(outInfo, leftChild, childrenNodeSize); - const Node* const rightChild = leftChild->buddy; - CalcAllocationStatInfoNode(outInfo, rightChild, childrenNodeSize); + newBlock->nextPhysical->prevPhysical = newBlock; + newBlock->MarkTaken(); + InsertFreeBlock(newBlock); } - break; - default: - VMA_ASSERT(0); } -} - -void VmaBlockMetadata_Buddy::AddToFreeListFront(uint32_t level, Node* node) -{ - VMA_ASSERT(node->type == Node::TYPE_FREE); + currentBlock->UserData() = userData; - // List is empty. - Node* const frontNode = m_FreeList[level].front; - if(frontNode == VMA_NULL) - { - VMA_ASSERT(m_FreeList[level].back == VMA_NULL); - node->free.prev = node->free.next = VMA_NULL; - m_FreeList[level].front = m_FreeList[level].back = node; - } - else + if (debugMargin > 0) { - VMA_ASSERT(frontNode->free.prev == VMA_NULL); - node->free.prev = VMA_NULL; - node->free.next = frontNode; - frontNode->free.prev = node; - m_FreeList[level].front = node; + currentBlock->size -= debugMargin; + Block* newBlock = m_BlockAllocator.Alloc(); + newBlock->size = debugMargin; + newBlock->offset = currentBlock->offset + currentBlock->size; + newBlock->prevPhysical = currentBlock; + newBlock->nextPhysical = currentBlock->nextPhysical; + newBlock->MarkTaken(); + currentBlock->nextPhysical->prevPhysical = newBlock; + currentBlock->nextPhysical = newBlock; + InsertFreeBlock(newBlock); } + + if (!IsVirtual()) + m_GranularityHandler.AllocPages((uint8_t)(uintptr_t)request.customData, + currentBlock->offset, currentBlock->size); + ++m_AllocCount; } -void VmaBlockMetadata_Buddy::RemoveFromFreeList(uint32_t level, Node* node) +void VmaBlockMetadata_TLSF::Free(VmaAllocHandle allocHandle) { - VMA_ASSERT(m_FreeList[level].front != VMA_NULL); + Block* block = (Block*)allocHandle; + Block* next = block->nextPhysical; + VMA_ASSERT(!block->IsFree() && "Block is already free!"); - // It is at the front. - if(node->free.prev == VMA_NULL) - { - VMA_ASSERT(m_FreeList[level].front == node); - m_FreeList[level].front = node->free.next; - } - else + if (!IsVirtual()) + m_GranularityHandler.FreePages(block->offset, block->size); + --m_AllocCount; + + VkDeviceSize debugMargin = GetDebugMargin(); + if (debugMargin > 0) { - Node* const prevFreeNode = node->free.prev; - VMA_ASSERT(prevFreeNode->free.next == node); - prevFreeNode->free.next = node->free.next; + RemoveFreeBlock(next); + MergeBlock(next, block); + block = next; + next = next->nextPhysical; } - // It is at the back. - if(node->free.next == VMA_NULL) + // Try merging + Block* prev = block->prevPhysical; + if (prev != VMA_NULL && prev->IsFree() && prev->size != debugMargin) { - VMA_ASSERT(m_FreeList[level].back == node); - m_FreeList[level].back = node->free.prev; + RemoveFreeBlock(prev); + MergeBlock(block, prev); } + + if (!next->IsFree()) + InsertFreeBlock(block); + else if (next == m_NullBlock) + MergeBlock(m_NullBlock, block); else { - Node* const nextFreeNode = node->free.next; - VMA_ASSERT(nextFreeNode->free.prev == node); - nextFreeNode->free.prev = node->free.prev; + RemoveFreeBlock(next); + MergeBlock(next, block); + InsertFreeBlock(next); } } -#if VMA_STATS_STRING_ENABLED -void VmaBlockMetadata_Buddy::PrintDetailedMapNode(class VmaJsonWriter& json, const Node* node, VkDeviceSize levelNodeSize) const +void VmaBlockMetadata_TLSF::GetAllocationInfo(VmaAllocHandle allocHandle, VmaVirtualAllocationInfo& outInfo) { - switch(node->type) - { - case Node::TYPE_FREE: - PrintDetailedMap_UnusedRange(json, node->offset, levelNodeSize); - break; - case Node::TYPE_ALLOCATION: - { - PrintDetailedMap_Allocation(json, node->offset, node->allocation.alloc); - const VkDeviceSize allocSize = node->allocation.alloc->GetSize(); - if(allocSize < levelNodeSize) - { - PrintDetailedMap_UnusedRange(json, node->offset + allocSize, levelNodeSize - allocSize); - } - } - break; - case Node::TYPE_SPLIT: - { - const VkDeviceSize childrenNodeSize = levelNodeSize / 2; - const Node* const leftChild = node->split.leftChild; - PrintDetailedMapNode(json, leftChild, childrenNodeSize); - const Node* const rightChild = leftChild->buddy; - PrintDetailedMapNode(json, rightChild, childrenNodeSize); - } - break; - default: - VMA_ASSERT(0); - } + Block* block = (Block*)allocHandle; + VMA_ASSERT(!block->IsFree() && "Cannot get allocation info for free block!"); + outInfo.offset = block->offset; + outInfo.size = block->size; + outInfo.pUserData = block->UserData(); } -#endif // #if VMA_STATS_STRING_ENABLED - - -//////////////////////////////////////////////////////////////////////////////// -// class VmaDeviceMemoryBlock -VmaDeviceMemoryBlock::VmaDeviceMemoryBlock(VmaAllocator hAllocator) : - m_pMetadata(VMA_NULL), - m_MemoryTypeIndex(UINT32_MAX), - m_Id(0), - m_hMemory(VK_NULL_HANDLE), - m_MapCount(0), - m_pMappedData(VMA_NULL) +void* VmaBlockMetadata_TLSF::GetAllocationUserData(VmaAllocHandle allocHandle) const { + Block* block = (Block*)allocHandle; + VMA_ASSERT(!block->IsFree() && "Cannot get user data for free block!"); + return block->UserData(); } -void VmaDeviceMemoryBlock::Init( - VmaAllocator hAllocator, - VmaPool hParentPool, - uint32_t newMemoryTypeIndex, - VkDeviceMemory newMemory, - VkDeviceSize newSize, - uint32_t id, - uint32_t algorithm) +VmaAllocHandle VmaBlockMetadata_TLSF::GetAllocationListBegin() const { - VMA_ASSERT(m_hMemory == VK_NULL_HANDLE); + if (m_AllocCount == 0) + return VK_NULL_HANDLE; - m_hParentPool = hParentPool; - m_MemoryTypeIndex = newMemoryTypeIndex; - m_Id = id; - m_hMemory = newMemory; + for (Block* block = m_NullBlock->prevPhysical; block; block = block->prevPhysical) + { + if (!block->IsFree()) + return (VmaAllocHandle)block; + } + VMA_ASSERT(false && "If m_AllocCount > 0 then should find any allocation!"); + return VK_NULL_HANDLE; +} + +VmaAllocHandle VmaBlockMetadata_TLSF::GetNextAllocation(VmaAllocHandle prevAlloc) const +{ + Block* startBlock = (Block*)prevAlloc; + VMA_ASSERT(!startBlock->IsFree() && "Incorrect block!"); - switch(algorithm) + for (Block* block = startBlock->prevPhysical; block; block = block->prevPhysical) { - case VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT: - m_pMetadata = vma_new(hAllocator, VmaBlockMetadata_Linear)(hAllocator); - break; - case VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT: - m_pMetadata = vma_new(hAllocator, VmaBlockMetadata_Buddy)(hAllocator); - break; - default: - VMA_ASSERT(0); - // Fall-through. - case 0: - m_pMetadata = vma_new(hAllocator, VmaBlockMetadata_Generic)(hAllocator); + if (!block->IsFree()) + return (VmaAllocHandle)block; } - m_pMetadata->Init(newSize); + return VK_NULL_HANDLE; } -void VmaDeviceMemoryBlock::Destroy(VmaAllocator allocator) +VkDeviceSize VmaBlockMetadata_TLSF::GetNextFreeRegionSize(VmaAllocHandle alloc) const { - // This is the most important assert in the entire library. - // Hitting it means you have some memory leak - unreleased VmaAllocation objects. - VMA_ASSERT(m_pMetadata->IsEmpty() && "Some allocations were not freed before destruction of this memory block!"); + Block* block = (Block*)alloc; + VMA_ASSERT(!block->IsFree() && "Incorrect block!"); - VMA_ASSERT(m_hMemory != VK_NULL_HANDLE); - allocator->FreeVulkanMemory(m_MemoryTypeIndex, m_pMetadata->GetSize(), m_hMemory); - m_hMemory = VK_NULL_HANDLE; + if (block->prevPhysical) + return block->prevPhysical->IsFree() ? block->prevPhysical->size : 0; + return 0; +} - vma_delete(allocator, m_pMetadata); - m_pMetadata = VMA_NULL; +void VmaBlockMetadata_TLSF::Clear() +{ + m_AllocCount = 0; + m_BlocksFreeCount = 0; + m_BlocksFreeSize = 0; + m_IsFreeBitmap = 0; + m_NullBlock->offset = 0; + m_NullBlock->size = GetSize(); + Block* block = m_NullBlock->prevPhysical; + m_NullBlock->prevPhysical = VMA_NULL; + while (block) + { + Block* prev = block->prevPhysical; + m_BlockAllocator.Free(block); + block = prev; + } + memset(m_FreeList, 0, m_ListsCount * sizeof(Block*)); + memset(m_InnerIsFreeBitmap, 0, m_MemoryClasses * sizeof(uint32_t)); + m_GranularityHandler.Clear(); } -bool VmaDeviceMemoryBlock::Validate() const +void VmaBlockMetadata_TLSF::SetAllocationUserData(VmaAllocHandle allocHandle, void* userData) { - VMA_VALIDATE((m_hMemory != VK_NULL_HANDLE) && - (m_pMetadata->GetSize() != 0)); + Block* block = (Block*)allocHandle; + VMA_ASSERT(!block->IsFree() && "Trying to set user data for not allocated block!"); + block->UserData() = userData; +} + +void VmaBlockMetadata_TLSF::DebugLogAllAllocations() const +{ + for (Block* block = m_NullBlock->prevPhysical; block != VMA_NULL; block = block->prevPhysical) + if (!block->IsFree()) + DebugLogAllocation(block->offset, block->size, block->UserData()); +} - return m_pMetadata->Validate(); +uint8_t VmaBlockMetadata_TLSF::SizeToMemoryClass(VkDeviceSize size) const +{ + if (size > SMALL_BUFFER_SIZE) + return uint8_t(VMA_BITSCAN_MSB(size) - MEMORY_CLASS_SHIFT); + return 0; } -VkResult VmaDeviceMemoryBlock::CheckCorruption(VmaAllocator hAllocator) +uint16_t VmaBlockMetadata_TLSF::SizeToSecondIndex(VkDeviceSize size, uint8_t memoryClass) const { - void* pData = nullptr; - VkResult res = Map(hAllocator, 1, &pData); - if(res != VK_SUCCESS) + if (memoryClass == 0) { - return res; + if (IsVirtual()) + return static_cast((size - 1) / 8); + else + return static_cast((size - 1) / 64); } + return static_cast((size >> (memoryClass + MEMORY_CLASS_SHIFT - SECOND_LEVEL_INDEX)) ^ (1U << SECOND_LEVEL_INDEX)); +} - res = m_pMetadata->CheckCorruption(pData); +uint32_t VmaBlockMetadata_TLSF::GetListIndex(uint8_t memoryClass, uint16_t secondIndex) const +{ + if (memoryClass == 0) + return secondIndex; - Unmap(hAllocator, 1); + const uint32_t index = static_cast(memoryClass - 1) * (1 << SECOND_LEVEL_INDEX) + secondIndex; + if (IsVirtual()) + return index + (1 << SECOND_LEVEL_INDEX); + else + return index + 4; +} - return res; +uint32_t VmaBlockMetadata_TLSF::GetListIndex(VkDeviceSize size) const +{ + uint8_t memoryClass = SizeToMemoryClass(size); + return GetListIndex(memoryClass, SizeToSecondIndex(size, memoryClass)); } -VkResult VmaDeviceMemoryBlock::Map(VmaAllocator hAllocator, uint32_t count, void** ppData) +void VmaBlockMetadata_TLSF::RemoveFreeBlock(Block* block) { - if(count == 0) - { - return VK_SUCCESS; - } + VMA_ASSERT(block != m_NullBlock); + VMA_ASSERT(block->IsFree()); - VmaMutexLock lock(m_Mutex, hAllocator->m_UseMutex); - if(m_MapCount != 0) - { - m_MapCount += count; - VMA_ASSERT(m_pMappedData != VMA_NULL); - if(ppData != VMA_NULL) - { - *ppData = m_pMappedData; - } - return VK_SUCCESS; - } + if (block->NextFree() != VMA_NULL) + block->NextFree()->PrevFree() = block->PrevFree(); + if (block->PrevFree() != VMA_NULL) + block->PrevFree()->NextFree() = block->NextFree(); else { - VkResult result = (*hAllocator->GetVulkanFunctions().vkMapMemory)( - hAllocator->m_hDevice, - m_hMemory, - 0, // offset - VK_WHOLE_SIZE, - 0, // flags - &m_pMappedData); - if(result == VK_SUCCESS) + uint8_t memClass = SizeToMemoryClass(block->size); + uint16_t secondIndex = SizeToSecondIndex(block->size, memClass); + uint32_t index = GetListIndex(memClass, secondIndex); + VMA_ASSERT(m_FreeList[index] == block); + m_FreeList[index] = block->NextFree(); + if (block->NextFree() == VMA_NULL) { - if(ppData != VMA_NULL) - { - *ppData = m_pMappedData; - } - m_MapCount = count; + m_InnerIsFreeBitmap[memClass] &= ~(1U << secondIndex); + if (m_InnerIsFreeBitmap[memClass] == 0) + m_IsFreeBitmap &= ~(1UL << memClass); } - return result; } + block->MarkTaken(); + block->UserData() = VMA_NULL; + --m_BlocksFreeCount; + m_BlocksFreeSize -= block->size; } -void VmaDeviceMemoryBlock::Unmap(VmaAllocator hAllocator, uint32_t count) +void VmaBlockMetadata_TLSF::InsertFreeBlock(Block* block) { - if(count == 0) + VMA_ASSERT(block != m_NullBlock); + VMA_ASSERT(!block->IsFree() && "Cannot insert block twice!"); + + uint8_t memClass = SizeToMemoryClass(block->size); + uint16_t secondIndex = SizeToSecondIndex(block->size, memClass); + uint32_t index = GetListIndex(memClass, secondIndex); + VMA_ASSERT(index < m_ListsCount); + block->PrevFree() = VMA_NULL; + block->NextFree() = m_FreeList[index]; + m_FreeList[index] = block; + if (block->NextFree() != VMA_NULL) + block->NextFree()->PrevFree() = block; + else { - return; + m_InnerIsFreeBitmap[memClass] |= 1U << secondIndex; + m_IsFreeBitmap |= 1UL << memClass; } + ++m_BlocksFreeCount; + m_BlocksFreeSize += block->size; +} + +void VmaBlockMetadata_TLSF::MergeBlock(Block* block, Block* prev) +{ + VMA_ASSERT(block->prevPhysical == prev && "Cannot merge separate physical regions!"); + VMA_ASSERT(!prev->IsFree() && "Cannot merge block that belongs to free list!"); + + block->offset = prev->offset; + block->size += prev->size; + block->prevPhysical = prev->prevPhysical; + if (block->prevPhysical) + block->prevPhysical->nextPhysical = block; + m_BlockAllocator.Free(prev); +} - VmaMutexLock lock(m_Mutex, hAllocator->m_UseMutex); - if(m_MapCount >= count) +VmaBlockMetadata_TLSF::Block* VmaBlockMetadata_TLSF::FindFreeBlock(VkDeviceSize size, uint32_t& listIndex) const +{ + uint8_t memoryClass = SizeToMemoryClass(size); + uint32_t innerFreeMap = m_InnerIsFreeBitmap[memoryClass] & (~0U << SizeToSecondIndex(size, memoryClass)); + if (!innerFreeMap) { - m_MapCount -= count; - if(m_MapCount == 0) - { - m_pMappedData = VMA_NULL; - (*hAllocator->GetVulkanFunctions().vkUnmapMemory)(hAllocator->m_hDevice, m_hMemory); - } + // Check higher levels for available blocks + uint32_t freeMap = m_IsFreeBitmap & (~0UL << (memoryClass + 1)); + if (!freeMap) + return VMA_NULL; // No more memory available + + // Find lowest free region + memoryClass = VMA_BITSCAN_LSB(freeMap); + innerFreeMap = m_InnerIsFreeBitmap[memoryClass]; + VMA_ASSERT(innerFreeMap != 0); } - else + // Find lowest free subregion + listIndex = GetListIndex(memoryClass, VMA_BITSCAN_LSB(innerFreeMap)); + VMA_ASSERT(m_FreeList[listIndex]); + return m_FreeList[listIndex]; +} + +bool VmaBlockMetadata_TLSF::CheckBlock( + Block& block, + uint32_t listIndex, + VkDeviceSize allocSize, + VkDeviceSize allocAlignment, + VmaSuballocationType allocType, + VmaAllocationRequest* pAllocationRequest) +{ + VMA_ASSERT(block.IsFree() && "Block is already taken!"); + + VkDeviceSize alignedOffset = VmaAlignUp(block.offset, allocAlignment); + if (block.size < allocSize + alignedOffset - block.offset) + return false; + + // Check for granularity conflicts + if (!IsVirtual() && + m_GranularityHandler.CheckConflictAndAlignUp(alignedOffset, allocSize, block.offset, block.size, allocType)) + return false; + + // Alloc successful + pAllocationRequest->type = VmaAllocationRequestType::TLSF; + pAllocationRequest->allocHandle = (VmaAllocHandle)█ + pAllocationRequest->size = allocSize - GetDebugMargin(); + pAllocationRequest->customData = (void*)allocType; + pAllocationRequest->algorithmData = alignedOffset; + + // Place block at the start of list if it's normal block + if (listIndex != m_ListsCount && block.PrevFree()) { - VMA_ASSERT(0 && "VkDeviceMemory block is being unmapped while it was not previously mapped."); + block.PrevFree()->NextFree() = block.NextFree(); + if (block.NextFree()) + block.NextFree()->PrevFree() = block.PrevFree(); + block.PrevFree() = VMA_NULL; + block.NextFree() = m_FreeList[listIndex]; + m_FreeList[listIndex] = █ + if (block.NextFree()) + block.NextFree()->PrevFree() = █ } + + return true; } +#endif // _VMA_BLOCK_METADATA_TLSF_FUNCTIONS +#endif // _VMA_BLOCK_METADATA_TLSF + +#ifndef _VMA_BLOCK_VECTOR +/* +Sequence of VmaDeviceMemoryBlock. Represents memory blocks allocated for a specific +Vulkan memory type. -VkResult VmaDeviceMemoryBlock::WriteMagicValueAroundAllocation(VmaAllocator hAllocator, VkDeviceSize allocOffset, VkDeviceSize allocSize) +Synchronized internally with a mutex. +*/ +class VmaBlockVector { - VMA_ASSERT(VMA_DEBUG_MARGIN > 0 && VMA_DEBUG_MARGIN % 4 == 0 && VMA_DEBUG_DETECT_CORRUPTION); - VMA_ASSERT(allocOffset >= VMA_DEBUG_MARGIN); + friend struct VmaDefragmentationContext_T; + VMA_CLASS_NO_COPY_NO_MOVE(VmaBlockVector) +public: + VmaBlockVector( + VmaAllocator hAllocator, + VmaPool hParentPool, + uint32_t memoryTypeIndex, + VkDeviceSize preferredBlockSize, + size_t minBlockCount, + size_t maxBlockCount, + VkDeviceSize bufferImageGranularity, + bool explicitBlockSize, + uint32_t algorithm, + float priority, + VkDeviceSize minAllocationAlignment, + void* pMemoryAllocateNext); + ~VmaBlockVector(); - void* pData; - VkResult res = Map(hAllocator, 1, &pData); - if(res != VK_SUCCESS) + VmaAllocator GetAllocator() const { return m_hAllocator; } + VmaPool GetParentPool() const { return m_hParentPool; } + bool IsCustomPool() const { return m_hParentPool != VMA_NULL; } + uint32_t GetMemoryTypeIndex() const { return m_MemoryTypeIndex; } + VkDeviceSize GetPreferredBlockSize() const { return m_PreferredBlockSize; } + VkDeviceSize GetBufferImageGranularity() const { return m_BufferImageGranularity; } + uint32_t GetAlgorithm() const { return m_Algorithm; } + bool HasExplicitBlockSize() const { return m_ExplicitBlockSize; } + float GetPriority() const { return m_Priority; } + const void* GetAllocationNextPtr() const { return m_pMemoryAllocateNext; } + // To be used only while the m_Mutex is locked. Used during defragmentation. + size_t GetBlockCount() const { return m_Blocks.size(); } + // To be used only while the m_Mutex is locked. Used during defragmentation. + VmaDeviceMemoryBlock* GetBlock(size_t index) const { return m_Blocks[index]; } + VMA_RW_MUTEX &GetMutex() { return m_Mutex; } + + VkResult CreateMinBlocks(); + void AddStatistics(VmaStatistics& inoutStats); + void AddDetailedStatistics(VmaDetailedStatistics& inoutStats); + bool IsEmpty(); + bool IsCorruptionDetectionEnabled() const; + + VkResult Allocate( + VkDeviceSize size, + VkDeviceSize alignment, + const VmaAllocationCreateInfo& createInfo, + VmaSuballocationType suballocType, + size_t allocationCount, + VmaAllocation* pAllocations); + + void Free(const VmaAllocation hAllocation); + +#if VMA_STATS_STRING_ENABLED + void PrintDetailedMap(class VmaJsonWriter& json); +#endif + + VkResult CheckCorruption(); + +private: + const VmaAllocator m_hAllocator; + const VmaPool m_hParentPool; + const uint32_t m_MemoryTypeIndex; + const VkDeviceSize m_PreferredBlockSize; + const size_t m_MinBlockCount; + const size_t m_MaxBlockCount; + const VkDeviceSize m_BufferImageGranularity; + const bool m_ExplicitBlockSize; + const uint32_t m_Algorithm; + const float m_Priority; + const VkDeviceSize m_MinAllocationAlignment; + + void* const m_pMemoryAllocateNext; + VMA_RW_MUTEX m_Mutex; + // Incrementally sorted by sumFreeSize, ascending. + VmaVector> m_Blocks; + uint32_t m_NextBlockId; + bool m_IncrementalSort = true; + + void SetIncrementalSort(bool val) { m_IncrementalSort = val; } + + VkDeviceSize CalcMaxBlockSize() const; + // Finds and removes given block from vector. + void Remove(VmaDeviceMemoryBlock* pBlock); + // Performs single step in sorting m_Blocks. They may not be fully sorted + // after this call. + void IncrementallySortBlocks(); + void SortByFreeSize(); + + VkResult AllocatePage( + VkDeviceSize size, + VkDeviceSize alignment, + const VmaAllocationCreateInfo& createInfo, + VmaSuballocationType suballocType, + VmaAllocation* pAllocation); + + VkResult AllocateFromBlock( + VmaDeviceMemoryBlock* pBlock, + VkDeviceSize size, + VkDeviceSize alignment, + VmaAllocationCreateFlags allocFlags, + void* pUserData, + VmaSuballocationType suballocType, + uint32_t strategy, + VmaAllocation* pAllocation); + + VkResult CommitAllocationRequest( + VmaAllocationRequest& allocRequest, + VmaDeviceMemoryBlock* pBlock, + VkDeviceSize alignment, + VmaAllocationCreateFlags allocFlags, + void* pUserData, + VmaSuballocationType suballocType, + VmaAllocation* pAllocation); + + VkResult CreateBlock(VkDeviceSize blockSize, size_t* pNewBlockIndex); + bool HasEmptyBlock(); +}; +#endif // _VMA_BLOCK_VECTOR + +#ifndef _VMA_DEFRAGMENTATION_CONTEXT +struct VmaDefragmentationContext_T +{ + VMA_CLASS_NO_COPY_NO_MOVE(VmaDefragmentationContext_T) +public: + VmaDefragmentationContext_T( + VmaAllocator hAllocator, + const VmaDefragmentationInfo& info); + ~VmaDefragmentationContext_T(); + + void GetStats(VmaDefragmentationStats& outStats) { outStats = m_GlobalStats; } + + VkResult DefragmentPassBegin(VmaDefragmentationPassMoveInfo& moveInfo); + VkResult DefragmentPassEnd(VmaDefragmentationPassMoveInfo& moveInfo); + +private: + // Max number of allocations to ignore due to size constraints before ending single pass + static const uint8_t MAX_ALLOCS_TO_IGNORE = 16; + enum class CounterStatus { Pass, Ignore, End }; + + struct FragmentedBlock { - return res; - } + uint32_t data; + VmaDeviceMemoryBlock* block; + }; + struct StateBalanced + { + VkDeviceSize avgFreeSize = 0; + VkDeviceSize avgAllocSize = UINT64_MAX; + }; + struct StateExtensive + { + enum class Operation : uint8_t + { + FindFreeBlockBuffer, FindFreeBlockTexture, FindFreeBlockAll, + MoveBuffers, MoveTextures, MoveAll, + Cleanup, Done + }; + + Operation operation = Operation::FindFreeBlockTexture; + size_t firstFreeBlock = SIZE_MAX; + }; + struct MoveAllocationData + { + VkDeviceSize size; + VkDeviceSize alignment; + VmaSuballocationType type; + VmaAllocationCreateFlags flags; + VmaDefragmentationMove move = {}; + }; + + const VkDeviceSize m_MaxPassBytes; + const uint32_t m_MaxPassAllocations; + const PFN_vmaCheckDefragmentationBreakFunction m_BreakCallback; + void* m_BreakCallbackUserData; + + VmaStlAllocator m_MoveAllocator; + VmaVector> m_Moves; + + uint8_t m_IgnoredAllocs = 0; + uint32_t m_Algorithm; + uint32_t m_BlockVectorCount; + VmaBlockVector* m_PoolBlockVector; + VmaBlockVector** m_pBlockVectors; + size_t m_ImmovableBlockCount = 0; + VmaDefragmentationStats m_GlobalStats = { 0 }; + VmaDefragmentationStats m_PassStats = { 0 }; + void* m_AlgorithmState = VMA_NULL; + + static MoveAllocationData GetMoveData(VmaAllocHandle handle, VmaBlockMetadata* metadata); + CounterStatus CheckCounters(VkDeviceSize bytes); + bool IncrementCounters(VkDeviceSize bytes); + bool ReallocWithinBlock(VmaBlockVector& vector, VmaDeviceMemoryBlock* block); + bool AllocInOtherBlock(size_t start, size_t end, MoveAllocationData& data, VmaBlockVector& vector); + + bool ComputeDefragmentation(VmaBlockVector& vector, size_t index); + bool ComputeDefragmentation_Fast(VmaBlockVector& vector); + bool ComputeDefragmentation_Balanced(VmaBlockVector& vector, size_t index, bool update); + bool ComputeDefragmentation_Full(VmaBlockVector& vector); + bool ComputeDefragmentation_Extensive(VmaBlockVector& vector, size_t index); + + void UpdateVectorStatistics(VmaBlockVector& vector, StateBalanced& state); + bool MoveDataToFreeBlocks(VmaSuballocationType currentType, + VmaBlockVector& vector, size_t firstFreeBlock, + bool& texturePresent, bool& bufferPresent, bool& otherPresent); +}; +#endif // _VMA_DEFRAGMENTATION_CONTEXT + +#ifndef _VMA_POOL_T +struct VmaPool_T +{ + friend struct VmaPoolListItemTraits; + VMA_CLASS_NO_COPY_NO_MOVE(VmaPool_T) +public: + VmaBlockVector m_BlockVector; + VmaDedicatedAllocationList m_DedicatedAllocations; + + VmaPool_T( + VmaAllocator hAllocator, + const VmaPoolCreateInfo& createInfo, + VkDeviceSize preferredBlockSize); + ~VmaPool_T(); + + uint32_t GetId() const { return m_Id; } + void SetId(uint32_t id) { VMA_ASSERT(m_Id == 0); m_Id = id; } + + const char* GetName() const { return m_Name; } + void SetName(const char* pName); + +#if VMA_STATS_STRING_ENABLED + //void PrintDetailedMap(class VmaStringBuilder& sb); +#endif + +private: + uint32_t m_Id; + char* m_Name; + VmaPool_T* m_PrevPool = VMA_NULL; + VmaPool_T* m_NextPool = VMA_NULL; +}; + +struct VmaPoolListItemTraits +{ + typedef VmaPool_T ItemType; + + static ItemType* GetPrev(const ItemType* item) { return item->m_PrevPool; } + static ItemType* GetNext(const ItemType* item) { return item->m_NextPool; } + static ItemType*& AccessPrev(ItemType* item) { return item->m_PrevPool; } + static ItemType*& AccessNext(ItemType* item) { return item->m_NextPool; } +}; +#endif // _VMA_POOL_T + +#ifndef _VMA_CURRENT_BUDGET_DATA +struct VmaCurrentBudgetData +{ + VMA_CLASS_NO_COPY_NO_MOVE(VmaCurrentBudgetData) +public: + + VMA_ATOMIC_UINT32 m_BlockCount[VK_MAX_MEMORY_HEAPS]; + VMA_ATOMIC_UINT32 m_AllocationCount[VK_MAX_MEMORY_HEAPS]; + VMA_ATOMIC_UINT64 m_BlockBytes[VK_MAX_MEMORY_HEAPS]; + VMA_ATOMIC_UINT64 m_AllocationBytes[VK_MAX_MEMORY_HEAPS]; - VmaWriteMagicValue(pData, allocOffset - VMA_DEBUG_MARGIN); - VmaWriteMagicValue(pData, allocOffset + allocSize); +#if VMA_MEMORY_BUDGET + VMA_ATOMIC_UINT32 m_OperationsSinceBudgetFetch; + VMA_RW_MUTEX m_BudgetMutex; + uint64_t m_VulkanUsage[VK_MAX_MEMORY_HEAPS]; + uint64_t m_VulkanBudget[VK_MAX_MEMORY_HEAPS]; + uint64_t m_BlockBytesAtBudgetFetch[VK_MAX_MEMORY_HEAPS]; +#endif // VMA_MEMORY_BUDGET - Unmap(hAllocator, 1); + VmaCurrentBudgetData(); - return VK_SUCCESS; -} + void AddAllocation(uint32_t heapIndex, VkDeviceSize allocationSize); + void RemoveAllocation(uint32_t heapIndex, VkDeviceSize allocationSize); +}; -VkResult VmaDeviceMemoryBlock::ValidateMagicValueAroundAllocation(VmaAllocator hAllocator, VkDeviceSize allocOffset, VkDeviceSize allocSize) +#ifndef _VMA_CURRENT_BUDGET_DATA_FUNCTIONS +VmaCurrentBudgetData::VmaCurrentBudgetData() { - VMA_ASSERT(VMA_DEBUG_MARGIN > 0 && VMA_DEBUG_MARGIN % 4 == 0 && VMA_DEBUG_DETECT_CORRUPTION); - VMA_ASSERT(allocOffset >= VMA_DEBUG_MARGIN); - - void* pData; - VkResult res = Map(hAllocator, 1, &pData); - if(res != VK_SUCCESS) + for (uint32_t heapIndex = 0; heapIndex < VK_MAX_MEMORY_HEAPS; ++heapIndex) { - return res; - } - - if(!VmaValidateMagicValue(pData, allocOffset - VMA_DEBUG_MARGIN)) - { - VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED BEFORE FREED ALLOCATION!"); - } - else if(!VmaValidateMagicValue(pData, allocOffset + allocSize)) - { - VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED AFTER FREED ALLOCATION!"); + m_BlockCount[heapIndex] = 0; + m_AllocationCount[heapIndex] = 0; + m_BlockBytes[heapIndex] = 0; + m_AllocationBytes[heapIndex] = 0; +#if VMA_MEMORY_BUDGET + m_VulkanUsage[heapIndex] = 0; + m_VulkanBudget[heapIndex] = 0; + m_BlockBytesAtBudgetFetch[heapIndex] = 0; +#endif } - Unmap(hAllocator, 1); - - return VK_SUCCESS; +#if VMA_MEMORY_BUDGET + m_OperationsSinceBudgetFetch = 0; +#endif } -VkResult VmaDeviceMemoryBlock::BindBufferMemory( - const VmaAllocator hAllocator, - const VmaAllocation hAllocation, - VkDeviceSize allocationLocalOffset, - VkBuffer hBuffer, - const void* pNext) +void VmaCurrentBudgetData::AddAllocation(uint32_t heapIndex, VkDeviceSize allocationSize) { - VMA_ASSERT(hAllocation->GetType() == VmaAllocation_T::ALLOCATION_TYPE_BLOCK && - hAllocation->GetBlock() == this); - VMA_ASSERT(allocationLocalOffset < hAllocation->GetSize() && - "Invalid allocationLocalOffset. Did you forget that this offset is relative to the beginning of the allocation, not the whole memory block?"); - const VkDeviceSize memoryOffset = hAllocation->GetOffset() + allocationLocalOffset; - // This lock is important so that we don't call vkBind... and/or vkMap... simultaneously on the same VkDeviceMemory from multiple threads. - VmaMutexLock lock(m_Mutex, hAllocator->m_UseMutex); - return hAllocator->BindVulkanBuffer(m_hMemory, memoryOffset, hBuffer, pNext); + m_AllocationBytes[heapIndex] += allocationSize; + ++m_AllocationCount[heapIndex]; +#if VMA_MEMORY_BUDGET + ++m_OperationsSinceBudgetFetch; +#endif } -VkResult VmaDeviceMemoryBlock::BindImageMemory( - const VmaAllocator hAllocator, - const VmaAllocation hAllocation, - VkDeviceSize allocationLocalOffset, - VkImage hImage, - const void* pNext) +void VmaCurrentBudgetData::RemoveAllocation(uint32_t heapIndex, VkDeviceSize allocationSize) { - VMA_ASSERT(hAllocation->GetType() == VmaAllocation_T::ALLOCATION_TYPE_BLOCK && - hAllocation->GetBlock() == this); - VMA_ASSERT(allocationLocalOffset < hAllocation->GetSize() && - "Invalid allocationLocalOffset. Did you forget that this offset is relative to the beginning of the allocation, not the whole memory block?"); - const VkDeviceSize memoryOffset = hAllocation->GetOffset() + allocationLocalOffset; - // This lock is important so that we don't call vkBind... and/or vkMap... simultaneously on the same VkDeviceMemory from multiple threads. - VmaMutexLock lock(m_Mutex, hAllocator->m_UseMutex); - return hAllocator->BindVulkanImage(m_hMemory, memoryOffset, hImage, pNext); + VMA_ASSERT(m_AllocationBytes[heapIndex] >= allocationSize); + m_AllocationBytes[heapIndex] -= allocationSize; + VMA_ASSERT(m_AllocationCount[heapIndex] > 0); + --m_AllocationCount[heapIndex]; +#if VMA_MEMORY_BUDGET + ++m_OperationsSinceBudgetFetch; +#endif } +#endif // _VMA_CURRENT_BUDGET_DATA_FUNCTIONS +#endif // _VMA_CURRENT_BUDGET_DATA -static void InitStatInfo(VmaStatInfo& outInfo) +#ifndef _VMA_ALLOCATION_OBJECT_ALLOCATOR +/* +Thread-safe wrapper over VmaPoolAllocator free list, for allocation of VmaAllocation_T objects. +*/ +class VmaAllocationObjectAllocator { - memset(&outInfo, 0, sizeof(outInfo)); - outInfo.allocationSizeMin = UINT64_MAX; - outInfo.unusedRangeSizeMin = UINT64_MAX; -} + VMA_CLASS_NO_COPY_NO_MOVE(VmaAllocationObjectAllocator) +public: + VmaAllocationObjectAllocator(const VkAllocationCallbacks* pAllocationCallbacks) + : m_Allocator(pAllocationCallbacks, 1024) {} -// Adds statistics srcInfo into inoutInfo, like: inoutInfo += srcInfo. -static void VmaAddStatInfo(VmaStatInfo& inoutInfo, const VmaStatInfo& srcInfo) -{ - inoutInfo.blockCount += srcInfo.blockCount; - inoutInfo.allocationCount += srcInfo.allocationCount; - inoutInfo.unusedRangeCount += srcInfo.unusedRangeCount; - inoutInfo.usedBytes += srcInfo.usedBytes; - inoutInfo.unusedBytes += srcInfo.unusedBytes; - inoutInfo.allocationSizeMin = VMA_MIN(inoutInfo.allocationSizeMin, srcInfo.allocationSizeMin); - inoutInfo.allocationSizeMax = VMA_MAX(inoutInfo.allocationSizeMax, srcInfo.allocationSizeMax); - inoutInfo.unusedRangeSizeMin = VMA_MIN(inoutInfo.unusedRangeSizeMin, srcInfo.unusedRangeSizeMin); - inoutInfo.unusedRangeSizeMax = VMA_MAX(inoutInfo.unusedRangeSizeMax, srcInfo.unusedRangeSizeMax); -} + template VmaAllocation Allocate(Types&&... args); + void Free(VmaAllocation hAlloc); -static void VmaPostprocessCalcStatInfo(VmaStatInfo& inoutInfo) -{ - inoutInfo.allocationSizeAvg = (inoutInfo.allocationCount > 0) ? - VmaRoundDiv(inoutInfo.usedBytes, inoutInfo.allocationCount) : 0; - inoutInfo.unusedRangeSizeAvg = (inoutInfo.unusedRangeCount > 0) ? - VmaRoundDiv(inoutInfo.unusedBytes, inoutInfo.unusedRangeCount) : 0; -} +private: + VMA_MUTEX m_Mutex; + VmaPoolAllocator m_Allocator; +}; -VmaPool_T::VmaPool_T( - VmaAllocator hAllocator, - const VmaPoolCreateInfo& createInfo, - VkDeviceSize preferredBlockSize) : - m_BlockVector( - hAllocator, - this, // hParentPool - createInfo.memoryTypeIndex, - createInfo.blockSize != 0 ? createInfo.blockSize : preferredBlockSize, - createInfo.minBlockCount, - createInfo.maxBlockCount, - (createInfo.flags & VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT) != 0 ? 1 : hAllocator->GetBufferImageGranularity(), - createInfo.frameInUseCount, - createInfo.blockSize != 0, // explicitBlockSize - createInfo.flags & VMA_POOL_CREATE_ALGORITHM_MASK, // algorithm - createInfo.priority, - VMA_MAX(hAllocator->GetMemoryTypeMinAlignment(createInfo.memoryTypeIndex), createInfo.minAllocationAlignment), - createInfo.pMemoryAllocateNext), - m_Id(0), - m_Name(VMA_NULL) +template +VmaAllocation VmaAllocationObjectAllocator::Allocate(Types&&... args) { + VmaMutexLock mutexLock(m_Mutex); + return m_Allocator.Alloc(std::forward(args)...); } -VmaPool_T::~VmaPool_T() +void VmaAllocationObjectAllocator::Free(VmaAllocation hAlloc) { - VMA_ASSERT(m_PrevPool == VMA_NULL && m_NextPool == VMA_NULL); + VmaMutexLock mutexLock(m_Mutex); + m_Allocator.Free(hAlloc); } +#endif // _VMA_ALLOCATION_OBJECT_ALLOCATOR -void VmaPool_T::SetName(const char* pName) +#ifndef _VMA_VIRTUAL_BLOCK_T +struct VmaVirtualBlock_T { - const VkAllocationCallbacks* allocs = m_BlockVector.GetAllocator()->GetAllocationCallbacks(); - VmaFreeString(allocs, m_Name); + VMA_CLASS_NO_COPY_NO_MOVE(VmaVirtualBlock_T) +public: + const bool m_AllocationCallbacksSpecified; + const VkAllocationCallbacks m_AllocationCallbacks; + + VmaVirtualBlock_T(const VmaVirtualBlockCreateInfo& createInfo); + ~VmaVirtualBlock_T(); + + VkResult Init() { return VK_SUCCESS; } + bool IsEmpty() const { return m_Metadata->IsEmpty(); } + void Free(VmaVirtualAllocation allocation) { m_Metadata->Free((VmaAllocHandle)allocation); } + void SetAllocationUserData(VmaVirtualAllocation allocation, void* userData) { m_Metadata->SetAllocationUserData((VmaAllocHandle)allocation, userData); } + void Clear() { m_Metadata->Clear(); } + + const VkAllocationCallbacks* GetAllocationCallbacks() const; + void GetAllocationInfo(VmaVirtualAllocation allocation, VmaVirtualAllocationInfo& outInfo); + VkResult Allocate(const VmaVirtualAllocationCreateInfo& createInfo, VmaVirtualAllocation& outAllocation, + VkDeviceSize* outOffset); + void GetStatistics(VmaStatistics& outStats) const; + void CalculateDetailedStatistics(VmaDetailedStatistics& outStats) const; +#if VMA_STATS_STRING_ENABLED + void BuildStatsString(bool detailedMap, VmaStringBuilder& sb) const; +#endif - if(pName != VMA_NULL) - { - m_Name = VmaCreateStringCopy(allocs, pName); - } - else +private: + VmaBlockMetadata* m_Metadata; +}; + +#ifndef _VMA_VIRTUAL_BLOCK_T_FUNCTIONS +VmaVirtualBlock_T::VmaVirtualBlock_T(const VmaVirtualBlockCreateInfo& createInfo) + : m_AllocationCallbacksSpecified(createInfo.pAllocationCallbacks != VMA_NULL), + m_AllocationCallbacks(createInfo.pAllocationCallbacks != VMA_NULL ? *createInfo.pAllocationCallbacks : VmaEmptyAllocationCallbacks) +{ + const uint32_t algorithm = createInfo.flags & VMA_VIRTUAL_BLOCK_CREATE_ALGORITHM_MASK; + switch (algorithm) { - m_Name = VMA_NULL; + case 0: + m_Metadata = vma_new(GetAllocationCallbacks(), VmaBlockMetadata_TLSF)(VK_NULL_HANDLE, 1, true); + break; + case VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT: + m_Metadata = vma_new(GetAllocationCallbacks(), VmaBlockMetadata_Linear)(VK_NULL_HANDLE, 1, true); + break; + default: + VMA_ASSERT(0); + m_Metadata = vma_new(GetAllocationCallbacks(), VmaBlockMetadata_TLSF)(VK_NULL_HANDLE, 1, true); } -} - -#if VMA_STATS_STRING_ENABLED -#endif // #if VMA_STATS_STRING_ENABLED + m_Metadata->Init(createInfo.size); +} -VmaBlockVector::VmaBlockVector( - VmaAllocator hAllocator, - VmaPool hParentPool, - uint32_t memoryTypeIndex, - VkDeviceSize preferredBlockSize, - size_t minBlockCount, - size_t maxBlockCount, - VkDeviceSize bufferImageGranularity, - uint32_t frameInUseCount, - bool explicitBlockSize, - uint32_t algorithm, - float priority, - VkDeviceSize minAllocationAlignment, - void* pMemoryAllocateNext) : - m_hAllocator(hAllocator), - m_hParentPool(hParentPool), - m_MemoryTypeIndex(memoryTypeIndex), - m_PreferredBlockSize(preferredBlockSize), - m_MinBlockCount(minBlockCount), - m_MaxBlockCount(maxBlockCount), - m_BufferImageGranularity(bufferImageGranularity), - m_FrameInUseCount(frameInUseCount), - m_ExplicitBlockSize(explicitBlockSize), - m_Algorithm(algorithm), - m_Priority(priority), - m_MinAllocationAlignment(minAllocationAlignment), - m_pMemoryAllocateNext(pMemoryAllocateNext), - m_HasEmptyBlock(false), - m_Blocks(VmaStlAllocator(hAllocator->GetAllocationCallbacks())), - m_NextBlockId(0) +VmaVirtualBlock_T::~VmaVirtualBlock_T() { + // Define macro VMA_DEBUG_LOG_FORMAT to receive the list of the unfreed allocations + if (!m_Metadata->IsEmpty()) + m_Metadata->DebugLogAllAllocations(); + // This is the most important assert in the entire library. + // Hitting it means you have some memory leak - unreleased virtual allocations. + VMA_ASSERT_LEAK(m_Metadata->IsEmpty() && "Some virtual allocations were not freed before destruction of this virtual block!"); + + vma_delete(GetAllocationCallbacks(), m_Metadata); } -VmaBlockVector::~VmaBlockVector() +const VkAllocationCallbacks* VmaVirtualBlock_T::GetAllocationCallbacks() const { - for(size_t i = m_Blocks.size(); i--; ) - { - m_Blocks[i]->Destroy(m_hAllocator); - vma_delete(m_hAllocator, m_Blocks[i]); - } + return m_AllocationCallbacksSpecified ? &m_AllocationCallbacks : VMA_NULL; } -VkResult VmaBlockVector::CreateMinBlocks() +void VmaVirtualBlock_T::GetAllocationInfo(VmaVirtualAllocation allocation, VmaVirtualAllocationInfo& outInfo) { - for(size_t i = 0; i < m_MinBlockCount; ++i) - { - VkResult res = CreateBlock(m_PreferredBlockSize, VMA_NULL); - if(res != VK_SUCCESS) - { - return res; - } - } - return VK_SUCCESS; + m_Metadata->GetAllocationInfo((VmaAllocHandle)allocation, outInfo); } -void VmaBlockVector::GetPoolStats(VmaPoolStats* pStats) +VkResult VmaVirtualBlock_T::Allocate(const VmaVirtualAllocationCreateInfo& createInfo, VmaVirtualAllocation& outAllocation, + VkDeviceSize* outOffset) { - VmaMutexLockRead lock(m_Mutex, m_hAllocator->m_UseMutex); - - const size_t blockCount = m_Blocks.size(); - - pStats->size = 0; - pStats->unusedSize = 0; - pStats->allocationCount = 0; - pStats->unusedRangeCount = 0; - pStats->unusedRangeSizeMax = 0; - pStats->blockCount = blockCount; - - for(uint32_t blockIndex = 0; blockIndex < blockCount; ++blockIndex) + VmaAllocationRequest request = {}; + if (m_Metadata->CreateAllocationRequest( + createInfo.size, // allocSize + VMA_MAX(createInfo.alignment, (VkDeviceSize)1), // allocAlignment + (createInfo.flags & VMA_VIRTUAL_ALLOCATION_CREATE_UPPER_ADDRESS_BIT) != 0, // upperAddress + VMA_SUBALLOCATION_TYPE_UNKNOWN, // allocType - unimportant + createInfo.flags & VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MASK, // strategy + &request)) { - const VmaDeviceMemoryBlock* const pBlock = m_Blocks[blockIndex]; - VMA_ASSERT(pBlock); - VMA_HEAVY_ASSERT(pBlock->Validate()); - pBlock->m_pMetadata->AddPoolStats(*pStats); + m_Metadata->Alloc(request, + VMA_SUBALLOCATION_TYPE_UNKNOWN, // type - unimportant + createInfo.pUserData); + outAllocation = (VmaVirtualAllocation)request.allocHandle; + if(outOffset) + *outOffset = m_Metadata->GetAllocationOffset(request.allocHandle); + return VK_SUCCESS; } + outAllocation = (VmaVirtualAllocation)VK_NULL_HANDLE; + if (outOffset) + *outOffset = UINT64_MAX; + return VK_ERROR_OUT_OF_DEVICE_MEMORY; } -bool VmaBlockVector::IsEmpty() +void VmaVirtualBlock_T::GetStatistics(VmaStatistics& outStats) const { - VmaMutexLockRead lock(m_Mutex, m_hAllocator->m_UseMutex); - return m_Blocks.empty(); + VmaClearStatistics(outStats); + m_Metadata->AddStatistics(outStats); } -bool VmaBlockVector::IsCorruptionDetectionEnabled() const +void VmaVirtualBlock_T::CalculateDetailedStatistics(VmaDetailedStatistics& outStats) const { - const uint32_t requiredMemFlags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; - return (VMA_DEBUG_DETECT_CORRUPTION != 0) && - (VMA_DEBUG_MARGIN > 0) && - (m_Algorithm == 0 || m_Algorithm == VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT) && - (m_hAllocator->m_MemProps.memoryTypes[m_MemoryTypeIndex].propertyFlags & requiredMemFlags) == requiredMemFlags; + VmaClearDetailedStatistics(outStats); + m_Metadata->AddDetailedStatistics(outStats); } -static const uint32_t VMA_ALLOCATION_TRY_COUNT = 32; - -VkResult VmaBlockVector::Allocate( - uint32_t currentFrameIndex, - VkDeviceSize size, - VkDeviceSize alignment, - const VmaAllocationCreateInfo& createInfo, - VmaSuballocationType suballocType, - size_t allocationCount, - VmaAllocation* pAllocations) +#if VMA_STATS_STRING_ENABLED +void VmaVirtualBlock_T::BuildStatsString(bool detailedMap, VmaStringBuilder& sb) const { - size_t allocIndex; - VkResult res = VK_SUCCESS; - - alignment = VMA_MAX(alignment, m_MinAllocationAlignment); + VmaJsonWriter json(GetAllocationCallbacks(), sb); + json.BeginObject(); - if(IsCorruptionDetectionEnabled()) - { - size = VmaAlignUp(size, sizeof(VMA_CORRUPTION_DETECTION_MAGIC_VALUE)); - alignment = VmaAlignUp(alignment, sizeof(VMA_CORRUPTION_DETECTION_MAGIC_VALUE)); - } + VmaDetailedStatistics stats; + CalculateDetailedStatistics(stats); - { - VmaMutexLockWrite lock(m_Mutex, m_hAllocator->m_UseMutex); - for(allocIndex = 0; allocIndex < allocationCount; ++allocIndex) - { - res = AllocatePage( - currentFrameIndex, - size, - alignment, - createInfo, - suballocType, - pAllocations + allocIndex); - if(res != VK_SUCCESS) - { - break; - } - } - } + json.WriteString("Stats"); + VmaPrintDetailedStatistics(json, stats); - if(res != VK_SUCCESS) + if (detailedMap) { - // Free all already created allocations. - const uint32_t heapIndex = m_hAllocator->MemoryTypeIndexToHeapIndex(m_MemoryTypeIndex); - while(allocIndex--) - { - VmaAllocation_T* const alloc = pAllocations[allocIndex]; - const VkDeviceSize allocSize = alloc->GetSize(); - Free(alloc); - m_hAllocator->m_Budget.RemoveAllocation(heapIndex, allocSize); - } - memset(pAllocations, 0, sizeof(VmaAllocation) * allocationCount); + json.WriteString("Details"); + json.BeginObject(); + m_Metadata->PrintDetailedMap(json); + json.EndObject(); } - return res; + json.EndObject(); } +#endif // VMA_STATS_STRING_ENABLED +#endif // _VMA_VIRTUAL_BLOCK_T_FUNCTIONS +#endif // _VMA_VIRTUAL_BLOCK_T + + +// Main allocator object. +struct VmaAllocator_T +{ + VMA_CLASS_NO_COPY_NO_MOVE(VmaAllocator_T) +public: + bool m_UseMutex; + uint32_t m_VulkanApiVersion; + bool m_UseKhrDedicatedAllocation; // Can be set only if m_VulkanApiVersion < VK_MAKE_VERSION(1, 1, 0). + bool m_UseKhrBindMemory2; // Can be set only if m_VulkanApiVersion < VK_MAKE_VERSION(1, 1, 0). + bool m_UseExtMemoryBudget; + bool m_UseAmdDeviceCoherentMemory; + bool m_UseKhrBufferDeviceAddress; + bool m_UseExtMemoryPriority; + VkDevice m_hDevice; + VkInstance m_hInstance; + bool m_AllocationCallbacksSpecified; + VkAllocationCallbacks m_AllocationCallbacks; + VmaDeviceMemoryCallbacks m_DeviceMemoryCallbacks; + VmaAllocationObjectAllocator m_AllocationObjectAllocator; + + // Each bit (1 << i) is set if HeapSizeLimit is enabled for that heap, so cannot allocate more than the heap size. + uint32_t m_HeapSizeLimitMask; + + VkPhysicalDeviceProperties m_PhysicalDeviceProperties; + VkPhysicalDeviceMemoryProperties m_MemProps; + + // Default pools. + VmaBlockVector* m_pBlockVectors[VK_MAX_MEMORY_TYPES]; + VmaDedicatedAllocationList m_DedicatedAllocations[VK_MAX_MEMORY_TYPES]; + + VmaCurrentBudgetData m_Budget; + VMA_ATOMIC_UINT32 m_DeviceMemoryCount; // Total number of VkDeviceMemory objects. -VkResult VmaBlockVector::AllocatePage( - uint32_t currentFrameIndex, - VkDeviceSize size, - VkDeviceSize alignment, - const VmaAllocationCreateInfo& createInfo, - VmaSuballocationType suballocType, - VmaAllocation* pAllocation) -{ - const bool isUpperAddress = (createInfo.flags & VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT) != 0; - bool canMakeOtherLost = (createInfo.flags & VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT) != 0; - const bool mapped = (createInfo.flags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0; - const bool isUserDataString = (createInfo.flags & VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT) != 0; + VmaAllocator_T(const VmaAllocatorCreateInfo* pCreateInfo); + VkResult Init(const VmaAllocatorCreateInfo* pCreateInfo); + ~VmaAllocator_T(); - VkDeviceSize freeMemory; + const VkAllocationCallbacks* GetAllocationCallbacks() const { - const uint32_t heapIndex = m_hAllocator->MemoryTypeIndexToHeapIndex(m_MemoryTypeIndex); - VmaBudget heapBudget = {}; - m_hAllocator->GetBudget(&heapBudget, heapIndex, 1); - freeMemory = (heapBudget.usage < heapBudget.budget) ? (heapBudget.budget - heapBudget.usage) : 0; + return m_AllocationCallbacksSpecified ? &m_AllocationCallbacks : VMA_NULL; + } + const VmaVulkanFunctions& GetVulkanFunctions() const + { + return m_VulkanFunctions; } - const bool canFallbackToDedicated = !IsCustomPool(); - const bool canCreateNewBlock = - ((createInfo.flags & VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT) == 0) && - (m_Blocks.size() < m_MaxBlockCount) && - (freeMemory >= size || !canFallbackToDedicated); - uint32_t strategy = createInfo.flags & VMA_ALLOCATION_CREATE_STRATEGY_MASK; + VkPhysicalDevice GetPhysicalDevice() const { return m_PhysicalDevice; } - // If linearAlgorithm is used, canMakeOtherLost is available only when used as ring buffer. - // Which in turn is available only when maxBlockCount = 1. - if(m_Algorithm == VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT && m_MaxBlockCount > 1) + VkDeviceSize GetBufferImageGranularity() const { - canMakeOtherLost = false; + return VMA_MAX( + static_cast(VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY), + m_PhysicalDeviceProperties.limits.bufferImageGranularity); } - // Upper address can only be used with linear allocator and within single memory block. - if(isUpperAddress && - (m_Algorithm != VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT || m_MaxBlockCount > 1)) + uint32_t GetMemoryHeapCount() const { return m_MemProps.memoryHeapCount; } + uint32_t GetMemoryTypeCount() const { return m_MemProps.memoryTypeCount; } + + uint32_t MemoryTypeIndexToHeapIndex(uint32_t memTypeIndex) const { - return VK_ERROR_FEATURE_NOT_PRESENT; + VMA_ASSERT(memTypeIndex < m_MemProps.memoryTypeCount); + return m_MemProps.memoryTypes[memTypeIndex].heapIndex; } - - // Validate strategy. - switch(strategy) + // True when specific memory type is HOST_VISIBLE but not HOST_COHERENT. + bool IsMemoryTypeNonCoherent(uint32_t memTypeIndex) const { - case 0: - strategy = VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT; - break; - case VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT: - case VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT: - case VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT: - break; - default: - return VK_ERROR_FEATURE_NOT_PRESENT; + return (m_MemProps.memoryTypes[memTypeIndex].propertyFlags & (VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT)) == + VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; } - - // Early reject: requested allocation size is larger that maximum block size for this block vector. - if(size + 2 * VMA_DEBUG_MARGIN > m_PreferredBlockSize) + // Minimum alignment for all allocations in specific memory type. + VkDeviceSize GetMemoryTypeMinAlignment(uint32_t memTypeIndex) const { - return VK_ERROR_OUT_OF_DEVICE_MEMORY; + return IsMemoryTypeNonCoherent(memTypeIndex) ? + VMA_MAX((VkDeviceSize)VMA_MIN_ALIGNMENT, m_PhysicalDeviceProperties.limits.nonCoherentAtomSize) : + (VkDeviceSize)VMA_MIN_ALIGNMENT; } - /* - Under certain condition, this whole section can be skipped for optimization, so - we move on directly to trying to allocate with canMakeOtherLost. That is the case - e.g. for custom pools with linear algorithm. - */ - if(!canMakeOtherLost || canCreateNewBlock) + bool IsIntegratedGpu() const { - // 1. Search existing allocations. Try to allocate without making other allocations lost. - VmaAllocationCreateFlags allocFlagsCopy = createInfo.flags; - allocFlagsCopy &= ~VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT; - - if(m_Algorithm == VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT) - { - // Use only last block. - if(!m_Blocks.empty()) - { - VmaDeviceMemoryBlock* const pCurrBlock = m_Blocks.back(); - VMA_ASSERT(pCurrBlock); - VkResult res = AllocateFromBlock( - pCurrBlock, - currentFrameIndex, - size, - alignment, - allocFlagsCopy, - createInfo.pUserData, - suballocType, - strategy, - pAllocation); - if(res == VK_SUCCESS) - { - VMA_DEBUG_LOG(" Returned from last block #%u", pCurrBlock->GetId()); - return VK_SUCCESS; - } - } - } - else - { - if(strategy == VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT) - { - // Forward order in m_Blocks - prefer blocks with smallest amount of free space. - for(size_t blockIndex = 0; blockIndex < m_Blocks.size(); ++blockIndex ) - { - VmaDeviceMemoryBlock* const pCurrBlock = m_Blocks[blockIndex]; - VMA_ASSERT(pCurrBlock); - VkResult res = AllocateFromBlock( - pCurrBlock, - currentFrameIndex, - size, - alignment, - allocFlagsCopy, - createInfo.pUserData, - suballocType, - strategy, - pAllocation); - if(res == VK_SUCCESS) - { - VMA_DEBUG_LOG(" Returned from existing block #%u", pCurrBlock->GetId()); - return VK_SUCCESS; - } - } - } - else // WORST_FIT, FIRST_FIT - { - // Backward order in m_Blocks - prefer blocks with largest amount of free space. - for(size_t blockIndex = m_Blocks.size(); blockIndex--; ) - { - VmaDeviceMemoryBlock* const pCurrBlock = m_Blocks[blockIndex]; - VMA_ASSERT(pCurrBlock); - VkResult res = AllocateFromBlock( - pCurrBlock, - currentFrameIndex, - size, - alignment, - allocFlagsCopy, - createInfo.pUserData, - suballocType, - strategy, - pAllocation); - if(res == VK_SUCCESS) - { - VMA_DEBUG_LOG(" Returned from existing block #%u", pCurrBlock->GetId()); - return VK_SUCCESS; - } - } - } - } - - // 2. Try to create new block. - if(canCreateNewBlock) - { - // Calculate optimal size for new block. - VkDeviceSize newBlockSize = m_PreferredBlockSize; - uint32_t newBlockSizeShift = 0; - const uint32_t NEW_BLOCK_SIZE_SHIFT_MAX = 3; + return m_PhysicalDeviceProperties.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU; + } - if(!m_ExplicitBlockSize) - { - // Allocate 1/8, 1/4, 1/2 as first blocks. - const VkDeviceSize maxExistingBlockSize = CalcMaxBlockSize(); - for(uint32_t i = 0; i < NEW_BLOCK_SIZE_SHIFT_MAX; ++i) - { - const VkDeviceSize smallerNewBlockSize = newBlockSize / 2; - if(smallerNewBlockSize > maxExistingBlockSize && smallerNewBlockSize >= size * 2) - { - newBlockSize = smallerNewBlockSize; - ++newBlockSizeShift; - } - else - { - break; - } - } - } + uint32_t GetGlobalMemoryTypeBits() const { return m_GlobalMemoryTypeBits; } - size_t newBlockIndex = 0; - VkResult res = (newBlockSize <= freeMemory || !canFallbackToDedicated) ? - CreateBlock(newBlockSize, &newBlockIndex) : VK_ERROR_OUT_OF_DEVICE_MEMORY; - // Allocation of this size failed? Try 1/2, 1/4, 1/8 of m_PreferredBlockSize. - if(!m_ExplicitBlockSize) - { - while(res < 0 && newBlockSizeShift < NEW_BLOCK_SIZE_SHIFT_MAX) - { - const VkDeviceSize smallerNewBlockSize = newBlockSize / 2; - if(smallerNewBlockSize >= size) - { - newBlockSize = smallerNewBlockSize; - ++newBlockSizeShift; - res = (newBlockSize <= freeMemory || !canFallbackToDedicated) ? - CreateBlock(newBlockSize, &newBlockIndex) : VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - else - { - break; - } - } - } + void GetBufferMemoryRequirements( + VkBuffer hBuffer, + VkMemoryRequirements& memReq, + bool& requiresDedicatedAllocation, + bool& prefersDedicatedAllocation) const; + void GetImageMemoryRequirements( + VkImage hImage, + VkMemoryRequirements& memReq, + bool& requiresDedicatedAllocation, + bool& prefersDedicatedAllocation) const; + VkResult FindMemoryTypeIndex( + uint32_t memoryTypeBits, + const VmaAllocationCreateInfo* pAllocationCreateInfo, + VkFlags bufImgUsage, // VkBufferCreateInfo::usage or VkImageCreateInfo::usage. UINT32_MAX if unknown. + uint32_t* pMemoryTypeIndex) const; - if(res == VK_SUCCESS) - { - VmaDeviceMemoryBlock* const pBlock = m_Blocks[newBlockIndex]; - VMA_ASSERT(pBlock->m_pMetadata->GetSize() >= size); + // Main allocation function. + VkResult AllocateMemory( + const VkMemoryRequirements& vkMemReq, + bool requiresDedicatedAllocation, + bool prefersDedicatedAllocation, + VkBuffer dedicatedBuffer, + VkImage dedicatedImage, + VkFlags dedicatedBufferImageUsage, // UINT32_MAX if unknown. + const VmaAllocationCreateInfo& createInfo, + VmaSuballocationType suballocType, + size_t allocationCount, + VmaAllocation* pAllocations); - res = AllocateFromBlock( - pBlock, - currentFrameIndex, - size, - alignment, - allocFlagsCopy, - createInfo.pUserData, - suballocType, - strategy, - pAllocation); - if(res == VK_SUCCESS) - { - VMA_DEBUG_LOG(" Created new block #%u Size=%llu", pBlock->GetId(), newBlockSize); - return VK_SUCCESS; - } - else - { - // Allocation from new block failed, possibly due to VMA_DEBUG_MARGIN or alignment. - return VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - } - } - } + // Main deallocation function. + void FreeMemory( + size_t allocationCount, + const VmaAllocation* pAllocations); - // 3. Try to allocate from existing blocks with making other allocations lost. - if(canMakeOtherLost) - { - uint32_t tryIndex = 0; - for(; tryIndex < VMA_ALLOCATION_TRY_COUNT; ++tryIndex) - { - VmaDeviceMemoryBlock* pBestRequestBlock = VMA_NULL; - VmaAllocationRequest bestRequest = {}; - VkDeviceSize bestRequestCost = VK_WHOLE_SIZE; + void CalculateStatistics(VmaTotalStatistics* pStats); - // 1. Search existing allocations. - if(strategy == VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT) - { - // Forward order in m_Blocks - prefer blocks with smallest amount of free space. - for(size_t blockIndex = 0; blockIndex < m_Blocks.size(); ++blockIndex ) - { - VmaDeviceMemoryBlock* const pCurrBlock = m_Blocks[blockIndex]; - VMA_ASSERT(pCurrBlock); - VmaAllocationRequest currRequest = {}; - if(pCurrBlock->m_pMetadata->CreateAllocationRequest( - currentFrameIndex, - m_FrameInUseCount, - m_BufferImageGranularity, - size, - alignment, - (createInfo.flags & VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT) != 0, - suballocType, - canMakeOtherLost, - strategy, - &currRequest)) - { - const VkDeviceSize currRequestCost = currRequest.CalcCost(); - if(pBestRequestBlock == VMA_NULL || - currRequestCost < bestRequestCost) - { - pBestRequestBlock = pCurrBlock; - bestRequest = currRequest; - bestRequestCost = currRequestCost; + void GetHeapBudgets( + VmaBudget* outBudgets, uint32_t firstHeap, uint32_t heapCount); - if(bestRequestCost == 0) - { - break; - } - } - } - } - } - else // WORST_FIT, FIRST_FIT - { - // Backward order in m_Blocks - prefer blocks with largest amount of free space. - for(size_t blockIndex = m_Blocks.size(); blockIndex--; ) - { - VmaDeviceMemoryBlock* const pCurrBlock = m_Blocks[blockIndex]; - VMA_ASSERT(pCurrBlock); - VmaAllocationRequest currRequest = {}; - if(pCurrBlock->m_pMetadata->CreateAllocationRequest( - currentFrameIndex, - m_FrameInUseCount, - m_BufferImageGranularity, - size, - alignment, - (createInfo.flags & VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT) != 0, - suballocType, - canMakeOtherLost, - strategy, - &currRequest)) - { - const VkDeviceSize currRequestCost = currRequest.CalcCost(); - if(pBestRequestBlock == VMA_NULL || - currRequestCost < bestRequestCost || - strategy == VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT) - { - pBestRequestBlock = pCurrBlock; - bestRequest = currRequest; - bestRequestCost = currRequestCost; +#if VMA_STATS_STRING_ENABLED + void PrintDetailedMap(class VmaJsonWriter& json); +#endif - if(bestRequestCost == 0 || - strategy == VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT) - { - break; - } - } - } - } - } + void GetAllocationInfo(VmaAllocation hAllocation, VmaAllocationInfo* pAllocationInfo); + void GetAllocationInfo2(VmaAllocation hAllocation, VmaAllocationInfo2* pAllocationInfo); - if(pBestRequestBlock != VMA_NULL) - { - if(mapped) - { - VkResult res = pBestRequestBlock->Map(m_hAllocator, 1, VMA_NULL); - if(res != VK_SUCCESS) - { - return res; - } - } + VkResult CreatePool(const VmaPoolCreateInfo* pCreateInfo, VmaPool* pPool); + void DestroyPool(VmaPool pool); + void GetPoolStatistics(VmaPool pool, VmaStatistics* pPoolStats); + void CalculatePoolStatistics(VmaPool pool, VmaDetailedStatistics* pPoolStats); - if(pBestRequestBlock->m_pMetadata->MakeRequestedAllocationsLost( - currentFrameIndex, - m_FrameInUseCount, - &bestRequest)) - { - // Allocate from this pBlock. - *pAllocation = m_hAllocator->m_AllocationObjectAllocator.Allocate(currentFrameIndex, isUserDataString); - pBestRequestBlock->m_pMetadata->Alloc(bestRequest, suballocType, size, *pAllocation); - UpdateHasEmptyBlock(); - (*pAllocation)->InitBlockAllocation( - pBestRequestBlock, - bestRequest.offset, - alignment, - size, - m_MemoryTypeIndex, - suballocType, - mapped, - (createInfo.flags & VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT) != 0); - VMA_HEAVY_ASSERT(pBestRequestBlock->Validate()); - VMA_DEBUG_LOG(" Returned from existing block #%u", pBestRequestBlock->GetId()); - (*pAllocation)->SetUserData(m_hAllocator, createInfo.pUserData); - m_hAllocator->m_Budget.AddAllocation(m_hAllocator->MemoryTypeIndexToHeapIndex(m_MemoryTypeIndex), size); - if(VMA_DEBUG_INITIALIZE_ALLOCATIONS) - { - m_hAllocator->FillAllocation(*pAllocation, VMA_ALLOCATION_FILL_PATTERN_CREATED); - } - if(IsCorruptionDetectionEnabled()) - { - VkResult res = pBestRequestBlock->WriteMagicValueAroundAllocation(m_hAllocator, bestRequest.offset, size); - VMA_ASSERT(res == VK_SUCCESS && "Couldn't map block memory to write magic value."); - } - return VK_SUCCESS; - } - // else: Some allocations must have been touched while we are here. Next try. - } - else - { - // Could not find place in any of the blocks - break outer loop. - break; - } - } - /* Maximum number of tries exceeded - a very unlike event when many other - threads are simultaneously touching allocations making it impossible to make - lost at the same time as we try to allocate. */ - if(tryIndex == VMA_ALLOCATION_TRY_COUNT) - { - return VK_ERROR_TOO_MANY_OBJECTS; - } - } + void SetCurrentFrameIndex(uint32_t frameIndex); + uint32_t GetCurrentFrameIndex() const { return m_CurrentFrameIndex.load(); } - return VK_ERROR_OUT_OF_DEVICE_MEMORY; -} + VkResult CheckPoolCorruption(VmaPool hPool); + VkResult CheckCorruption(uint32_t memoryTypeBits); -void VmaBlockVector::Free( - const VmaAllocation hAllocation) -{ - VmaDeviceMemoryBlock* pBlockToDelete = VMA_NULL; + // Call to Vulkan function vkAllocateMemory with accompanying bookkeeping. + VkResult AllocateVulkanMemory(const VkMemoryAllocateInfo* pAllocateInfo, VkDeviceMemory* pMemory); + // Call to Vulkan function vkFreeMemory with accompanying bookkeeping. + void FreeVulkanMemory(uint32_t memoryType, VkDeviceSize size, VkDeviceMemory hMemory); + // Call to Vulkan function vkBindBufferMemory or vkBindBufferMemory2KHR. + VkResult BindVulkanBuffer( + VkDeviceMemory memory, + VkDeviceSize memoryOffset, + VkBuffer buffer, + const void* pNext); + // Call to Vulkan function vkBindImageMemory or vkBindImageMemory2KHR. + VkResult BindVulkanImage( + VkDeviceMemory memory, + VkDeviceSize memoryOffset, + VkImage image, + const void* pNext); - bool budgetExceeded = false; - { - const uint32_t heapIndex = m_hAllocator->MemoryTypeIndexToHeapIndex(m_MemoryTypeIndex); - VmaBudget heapBudget = {}; - m_hAllocator->GetBudget(&heapBudget, heapIndex, 1); - budgetExceeded = heapBudget.usage >= heapBudget.budget; - } + VkResult Map(VmaAllocation hAllocation, void** ppData); + void Unmap(VmaAllocation hAllocation); - // Scope for lock. - { - VmaMutexLockWrite lock(m_Mutex, m_hAllocator->m_UseMutex); + VkResult BindBufferMemory( + VmaAllocation hAllocation, + VkDeviceSize allocationLocalOffset, + VkBuffer hBuffer, + const void* pNext); + VkResult BindImageMemory( + VmaAllocation hAllocation, + VkDeviceSize allocationLocalOffset, + VkImage hImage, + const void* pNext); - VmaDeviceMemoryBlock* pBlock = hAllocation->GetBlock(); + VkResult FlushOrInvalidateAllocation( + VmaAllocation hAllocation, + VkDeviceSize offset, VkDeviceSize size, + VMA_CACHE_OPERATION op); + VkResult FlushOrInvalidateAllocations( + uint32_t allocationCount, + const VmaAllocation* allocations, + const VkDeviceSize* offsets, const VkDeviceSize* sizes, + VMA_CACHE_OPERATION op); - if(IsCorruptionDetectionEnabled()) - { - VkResult res = pBlock->ValidateMagicValueAroundAllocation(m_hAllocator, hAllocation->GetOffset(), hAllocation->GetSize()); - VMA_ASSERT(res == VK_SUCCESS && "Couldn't map block memory to validate magic value."); - } + void FillAllocation(const VmaAllocation hAllocation, uint8_t pattern); - if(hAllocation->IsPersistentMap()) - { - pBlock->Unmap(m_hAllocator, 1); - } + /* + Returns bit mask of memory types that can support defragmentation on GPU as + they support creation of required buffer for copy operations. + */ + uint32_t GetGpuDefragmentationMemoryTypeBits(); - pBlock->m_pMetadata->Free(hAllocation); - VMA_HEAVY_ASSERT(pBlock->Validate()); +#if VMA_EXTERNAL_MEMORY + VkExternalMemoryHandleTypeFlagsKHR GetExternalMemoryHandleTypeFlags(uint32_t memTypeIndex) const + { + return m_TypeExternalMemoryHandleTypes[memTypeIndex]; + } +#endif // #if VMA_EXTERNAL_MEMORY - VMA_DEBUG_LOG(" Freed from MemoryTypeIndex=%u", m_MemoryTypeIndex); +private: + VkDeviceSize m_PreferredLargeHeapBlockSize; - const bool canDeleteBlock = m_Blocks.size() > m_MinBlockCount; - // pBlock became empty after this deallocation. - if(pBlock->m_pMetadata->IsEmpty()) - { - // Already has empty block. We don't want to have two, so delete this one. - if((m_HasEmptyBlock || budgetExceeded) && canDeleteBlock) - { - pBlockToDelete = pBlock; - Remove(pBlock); - } - // else: We now have an empty block - leave it. - } - // pBlock didn't become empty, but we have another empty block - find and free that one. - // (This is optional, heuristics.) - else if(m_HasEmptyBlock && canDeleteBlock) - { - VmaDeviceMemoryBlock* pLastBlock = m_Blocks.back(); - if(pLastBlock->m_pMetadata->IsEmpty()) - { - pBlockToDelete = pLastBlock; - m_Blocks.pop_back(); - } - } + VkPhysicalDevice m_PhysicalDevice; + VMA_ATOMIC_UINT32 m_CurrentFrameIndex; + VMA_ATOMIC_UINT32 m_GpuDefragmentationMemoryTypeBits; // UINT32_MAX means uninitialized. +#if VMA_EXTERNAL_MEMORY + VkExternalMemoryHandleTypeFlagsKHR m_TypeExternalMemoryHandleTypes[VK_MAX_MEMORY_TYPES]; +#endif // #if VMA_EXTERNAL_MEMORY - UpdateHasEmptyBlock(); - IncrementallySortBlocks(); - } + VMA_RW_MUTEX m_PoolsMutex; + typedef VmaIntrusiveLinkedList PoolList; + // Protected by m_PoolsMutex. + PoolList m_Pools; + uint32_t m_NextPoolId; - // Destruction of a free block. Deferred until this point, outside of mutex - // lock, for performance reason. - if(pBlockToDelete != VMA_NULL) - { - VMA_DEBUG_LOG(" Deleted empty block #%u", pBlockToDelete->GetId()); - pBlockToDelete->Destroy(m_hAllocator); - vma_delete(m_hAllocator, pBlockToDelete); - } -} + VmaVulkanFunctions m_VulkanFunctions; -VkDeviceSize VmaBlockVector::CalcMaxBlockSize() const -{ - VkDeviceSize result = 0; - for(size_t i = m_Blocks.size(); i--; ) - { - result = VMA_MAX(result, m_Blocks[i]->m_pMetadata->GetSize()); - if(result >= m_PreferredBlockSize) - { - break; - } - } - return result; -} + // Global bit mask AND-ed with any memoryTypeBits to disallow certain memory types. + uint32_t m_GlobalMemoryTypeBits; -void VmaBlockVector::Remove(VmaDeviceMemoryBlock* pBlock) -{ - for(uint32_t blockIndex = 0; blockIndex < m_Blocks.size(); ++blockIndex) - { - if(m_Blocks[blockIndex] == pBlock) - { - VmaVectorRemove(m_Blocks, blockIndex); - return; - } - } - VMA_ASSERT(0); -} + void ImportVulkanFunctions(const VmaVulkanFunctions* pVulkanFunctions); -void VmaBlockVector::IncrementallySortBlocks() -{ - if(m_Algorithm != VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT) - { - // Bubble sort only until first swap. - for(size_t i = 1; i < m_Blocks.size(); ++i) - { - if(m_Blocks[i - 1]->m_pMetadata->GetSumFreeSize() > m_Blocks[i]->m_pMetadata->GetSumFreeSize()) - { - VMA_SWAP(m_Blocks[i - 1], m_Blocks[i]); - return; - } - } - } -} +#if VMA_STATIC_VULKAN_FUNCTIONS == 1 + void ImportVulkanFunctions_Static(); +#endif -VkResult VmaBlockVector::AllocateFromBlock( - VmaDeviceMemoryBlock* pBlock, - uint32_t currentFrameIndex, - VkDeviceSize size, - VkDeviceSize alignment, - VmaAllocationCreateFlags allocFlags, - void* pUserData, - VmaSuballocationType suballocType, - uint32_t strategy, - VmaAllocation* pAllocation) -{ - VMA_ASSERT((allocFlags & VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT) == 0); - const bool isUpperAddress = (allocFlags & VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT) != 0; - const bool mapped = (allocFlags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0; - const bool isUserDataString = (allocFlags & VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT) != 0; + void ImportVulkanFunctions_Custom(const VmaVulkanFunctions* pVulkanFunctions); - VmaAllocationRequest currRequest = {}; - if(pBlock->m_pMetadata->CreateAllocationRequest( - currentFrameIndex, - m_FrameInUseCount, - m_BufferImageGranularity, - size, - alignment, - isUpperAddress, - suballocType, - false, // canMakeOtherLost - strategy, - &currRequest)) - { - // Allocate from pCurrBlock. - VMA_ASSERT(currRequest.itemsToMakeLostCount == 0); +#if VMA_DYNAMIC_VULKAN_FUNCTIONS == 1 + void ImportVulkanFunctions_Dynamic(); +#endif - if(mapped) - { - VkResult res = pBlock->Map(m_hAllocator, 1, VMA_NULL); - if(res != VK_SUCCESS) - { - return res; - } - } + void ValidateVulkanFunctions(); - *pAllocation = m_hAllocator->m_AllocationObjectAllocator.Allocate(currentFrameIndex, isUserDataString); - pBlock->m_pMetadata->Alloc(currRequest, suballocType, size, *pAllocation); - UpdateHasEmptyBlock(); - (*pAllocation)->InitBlockAllocation( - pBlock, - currRequest.offset, - alignment, - size, - m_MemoryTypeIndex, - suballocType, - mapped, - (allocFlags & VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT) != 0); - VMA_HEAVY_ASSERT(pBlock->Validate()); - (*pAllocation)->SetUserData(m_hAllocator, pUserData); - m_hAllocator->m_Budget.AddAllocation(m_hAllocator->MemoryTypeIndexToHeapIndex(m_MemoryTypeIndex), size); - if(VMA_DEBUG_INITIALIZE_ALLOCATIONS) - { - m_hAllocator->FillAllocation(*pAllocation, VMA_ALLOCATION_FILL_PATTERN_CREATED); - } - if(IsCorruptionDetectionEnabled()) - { - VkResult res = pBlock->WriteMagicValueAroundAllocation(m_hAllocator, currRequest.offset, size); - VMA_ASSERT(res == VK_SUCCESS && "Couldn't map block memory to write magic value."); - } - return VK_SUCCESS; - } - return VK_ERROR_OUT_OF_DEVICE_MEMORY; -} + VkDeviceSize CalcPreferredBlockSize(uint32_t memTypeIndex); -VkResult VmaBlockVector::CreateBlock(VkDeviceSize blockSize, size_t* pNewBlockIndex) -{ - VkMemoryAllocateInfo allocInfo = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO }; - allocInfo.pNext = m_pMemoryAllocateNext; - allocInfo.memoryTypeIndex = m_MemoryTypeIndex; - allocInfo.allocationSize = blockSize; + VkResult AllocateMemoryOfType( + VmaPool pool, + VkDeviceSize size, + VkDeviceSize alignment, + bool dedicatedPreferred, + VkBuffer dedicatedBuffer, + VkImage dedicatedImage, + VkFlags dedicatedBufferImageUsage, + const VmaAllocationCreateInfo& createInfo, + uint32_t memTypeIndex, + VmaSuballocationType suballocType, + VmaDedicatedAllocationList& dedicatedAllocations, + VmaBlockVector& blockVector, + size_t allocationCount, + VmaAllocation* pAllocations); -#if VMA_BUFFER_DEVICE_ADDRESS - // Every standalone block can potentially contain a buffer with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT - always enable the feature. - VkMemoryAllocateFlagsInfoKHR allocFlagsInfo = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR }; - if(m_hAllocator->m_UseKhrBufferDeviceAddress) - { - allocFlagsInfo.flags = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR; - VmaPnextChainPushFront(&allocInfo, &allocFlagsInfo); - } -#endif // #if VMA_BUFFER_DEVICE_ADDRESS + // Helper function only to be used inside AllocateDedicatedMemory. + VkResult AllocateDedicatedMemoryPage( + VmaPool pool, + VkDeviceSize size, + VmaSuballocationType suballocType, + uint32_t memTypeIndex, + const VkMemoryAllocateInfo& allocInfo, + bool map, + bool isUserDataString, + bool isMappingAllowed, + void* pUserData, + VmaAllocation* pAllocation); -#if VMA_MEMORY_PRIORITY - VkMemoryPriorityAllocateInfoEXT priorityInfo = { VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT }; - if(m_hAllocator->m_UseExtMemoryPriority) - { - priorityInfo.priority = m_Priority; - VmaPnextChainPushFront(&allocInfo, &priorityInfo); - } -#endif // #if VMA_MEMORY_PRIORITY + // Allocates and registers new VkDeviceMemory specifically for dedicated allocations. + VkResult AllocateDedicatedMemory( + VmaPool pool, + VkDeviceSize size, + VmaSuballocationType suballocType, + VmaDedicatedAllocationList& dedicatedAllocations, + uint32_t memTypeIndex, + bool map, + bool isUserDataString, + bool isMappingAllowed, + bool canAliasMemory, + void* pUserData, + float priority, + VkBuffer dedicatedBuffer, + VkImage dedicatedImage, + VkFlags dedicatedBufferImageUsage, + size_t allocationCount, + VmaAllocation* pAllocations, + const void* pNextChain = nullptr); -#if VMA_EXTERNAL_MEMORY - // Attach VkExportMemoryAllocateInfoKHR if necessary. - VkExportMemoryAllocateInfoKHR exportMemoryAllocInfo = { VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR }; - exportMemoryAllocInfo.handleTypes = m_hAllocator->GetExternalMemoryHandleTypeFlags(m_MemoryTypeIndex); - if(exportMemoryAllocInfo.handleTypes != 0) - { - VmaPnextChainPushFront(&allocInfo, &exportMemoryAllocInfo); - } -#endif // #if VMA_EXTERNAL_MEMORY + void FreeDedicatedMemory(const VmaAllocation allocation); - VkDeviceMemory mem = VK_NULL_HANDLE; - VkResult res = m_hAllocator->AllocateVulkanMemory(&allocInfo, &mem); - if(res < 0) - { - return res; - } + VkResult CalcMemTypeParams( + VmaAllocationCreateInfo& outCreateInfo, + uint32_t memTypeIndex, + VkDeviceSize size, + size_t allocationCount); + VkResult CalcAllocationParams( + VmaAllocationCreateInfo& outCreateInfo, + bool dedicatedRequired, + bool dedicatedPreferred); - // New VkDeviceMemory successfully created. + /* + Calculates and returns bit mask of memory types that can support defragmentation + on GPU as they support creation of required buffer for copy operations. + */ + uint32_t CalculateGpuDefragmentationMemoryTypeBits() const; + uint32_t CalculateGlobalMemoryTypeBits() const; - // Create new Allocation for it. - VmaDeviceMemoryBlock* const pBlock = vma_new(m_hAllocator, VmaDeviceMemoryBlock)(m_hAllocator); - pBlock->Init( - m_hAllocator, - m_hParentPool, - m_MemoryTypeIndex, - mem, - allocInfo.allocationSize, - m_NextBlockId++, - m_Algorithm); + bool GetFlushOrInvalidateRange( + VmaAllocation allocation, + VkDeviceSize offset, VkDeviceSize size, + VkMappedMemoryRange& outRange) const; - m_Blocks.push_back(pBlock); - if(pNewBlockIndex != VMA_NULL) - { - *pNewBlockIndex = m_Blocks.size() - 1; - } +#if VMA_MEMORY_BUDGET + void UpdateVulkanBudget(); +#endif // #if VMA_MEMORY_BUDGET +}; - return VK_SUCCESS; + +#ifndef _VMA_MEMORY_FUNCTIONS +static void* VmaMalloc(VmaAllocator hAllocator, size_t size, size_t alignment) +{ + return VmaMalloc(&hAllocator->m_AllocationCallbacks, size, alignment); } -void VmaBlockVector::ApplyDefragmentationMovesCpu( - class VmaBlockVectorDefragmentationContext* pDefragCtx, - const VmaVector< VmaDefragmentationMove, VmaStlAllocator >& moves) +static void VmaFree(VmaAllocator hAllocator, void* ptr) { - const size_t blockCount = m_Blocks.size(); - const bool isNonCoherent = m_hAllocator->IsMemoryTypeNonCoherent(m_MemoryTypeIndex); + VmaFree(&hAllocator->m_AllocationCallbacks, ptr); +} - enum BLOCK_FLAG - { - BLOCK_FLAG_USED = 0x00000001, - BLOCK_FLAG_MAPPED_FOR_DEFRAGMENTATION = 0x00000002, - }; +template +static T* VmaAllocate(VmaAllocator hAllocator) +{ + return (T*)VmaMalloc(hAllocator, sizeof(T), VMA_ALIGN_OF(T)); +} - struct BlockInfo - { - uint32_t flags; - void* pMappedData; - }; - VmaVector< BlockInfo, VmaStlAllocator > - blockInfo(blockCount, BlockInfo(), VmaStlAllocator(m_hAllocator->GetAllocationCallbacks())); - memset(blockInfo.data(), 0, blockCount * sizeof(BlockInfo)); +template +static T* VmaAllocateArray(VmaAllocator hAllocator, size_t count) +{ + return (T*)VmaMalloc(hAllocator, sizeof(T) * count, VMA_ALIGN_OF(T)); +} - // Go over all moves. Mark blocks that are used with BLOCK_FLAG_USED. - const size_t moveCount = moves.size(); - for(size_t moveIndex = 0; moveIndex < moveCount; ++moveIndex) +template +static void vma_delete(VmaAllocator hAllocator, T* ptr) +{ + if(ptr != VMA_NULL) { - const VmaDefragmentationMove& move = moves[moveIndex]; - blockInfo[move.srcBlockIndex].flags |= BLOCK_FLAG_USED; - blockInfo[move.dstBlockIndex].flags |= BLOCK_FLAG_USED; + ptr->~T(); + VmaFree(hAllocator, ptr); } +} - VMA_ASSERT(pDefragCtx->res == VK_SUCCESS); - - // Go over all blocks. Get mapped pointer or map if necessary. - for(size_t blockIndex = 0; pDefragCtx->res == VK_SUCCESS && blockIndex < blockCount; ++blockIndex) +template +static void vma_delete_array(VmaAllocator hAllocator, T* ptr, size_t count) +{ + if(ptr != VMA_NULL) { - BlockInfo& currBlockInfo = blockInfo[blockIndex]; - VmaDeviceMemoryBlock* pBlock = m_Blocks[blockIndex]; - if((currBlockInfo.flags & BLOCK_FLAG_USED) != 0) - { - currBlockInfo.pMappedData = pBlock->GetMappedData(); - // It is not originally mapped - map it. - if(currBlockInfo.pMappedData == VMA_NULL) - { - pDefragCtx->res = pBlock->Map(m_hAllocator, 1, &currBlockInfo.pMappedData); - if(pDefragCtx->res == VK_SUCCESS) - { - currBlockInfo.flags |= BLOCK_FLAG_MAPPED_FOR_DEFRAGMENTATION; - } - } - } + for(size_t i = count; i--; ) + ptr[i].~T(); + VmaFree(hAllocator, ptr); } +} +#endif // _VMA_MEMORY_FUNCTIONS - // Go over all moves. Do actual data transfer. - if(pDefragCtx->res == VK_SUCCESS) - { - const VkDeviceSize nonCoherentAtomSize = m_hAllocator->m_PhysicalDeviceProperties.limits.nonCoherentAtomSize; - VkMappedMemoryRange memRange = { VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE }; +#ifndef _VMA_DEVICE_MEMORY_BLOCK_FUNCTIONS +VmaDeviceMemoryBlock::VmaDeviceMemoryBlock(VmaAllocator hAllocator) + : m_pMetadata(VMA_NULL), + m_MemoryTypeIndex(UINT32_MAX), + m_Id(0), + m_hMemory(VK_NULL_HANDLE), + m_MapCount(0), + m_pMappedData(VMA_NULL) {} - for(size_t moveIndex = 0; moveIndex < moveCount; ++moveIndex) - { - const VmaDefragmentationMove& move = moves[moveIndex]; +VmaDeviceMemoryBlock::~VmaDeviceMemoryBlock() +{ + VMA_ASSERT_LEAK(m_MapCount == 0 && "VkDeviceMemory block is being destroyed while it is still mapped."); + VMA_ASSERT_LEAK(m_hMemory == VK_NULL_HANDLE); +} + +void VmaDeviceMemoryBlock::Init( + VmaAllocator hAllocator, + VmaPool hParentPool, + uint32_t newMemoryTypeIndex, + VkDeviceMemory newMemory, + VkDeviceSize newSize, + uint32_t id, + uint32_t algorithm, + VkDeviceSize bufferImageGranularity) +{ + VMA_ASSERT(m_hMemory == VK_NULL_HANDLE); - const BlockInfo& srcBlockInfo = blockInfo[move.srcBlockIndex]; - const BlockInfo& dstBlockInfo = blockInfo[move.dstBlockIndex]; + m_hParentPool = hParentPool; + m_MemoryTypeIndex = newMemoryTypeIndex; + m_Id = id; + m_hMemory = newMemory; - VMA_ASSERT(srcBlockInfo.pMappedData && dstBlockInfo.pMappedData); + switch (algorithm) + { + case 0: + m_pMetadata = vma_new(hAllocator, VmaBlockMetadata_TLSF)(hAllocator->GetAllocationCallbacks(), + bufferImageGranularity, false); // isVirtual + break; + case VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT: + m_pMetadata = vma_new(hAllocator, VmaBlockMetadata_Linear)(hAllocator->GetAllocationCallbacks(), + bufferImageGranularity, false); // isVirtual + break; + default: + VMA_ASSERT(0); + m_pMetadata = vma_new(hAllocator, VmaBlockMetadata_TLSF)(hAllocator->GetAllocationCallbacks(), + bufferImageGranularity, false); // isVirtual + } + m_pMetadata->Init(newSize); +} - // Invalidate source. - if(isNonCoherent) - { - VmaDeviceMemoryBlock* const pSrcBlock = m_Blocks[move.srcBlockIndex]; - memRange.memory = pSrcBlock->GetDeviceMemory(); - memRange.offset = VmaAlignDown(move.srcOffset, nonCoherentAtomSize); - memRange.size = VMA_MIN( - VmaAlignUp(move.size + (move.srcOffset - memRange.offset), nonCoherentAtomSize), - pSrcBlock->m_pMetadata->GetSize() - memRange.offset); - (*m_hAllocator->GetVulkanFunctions().vkInvalidateMappedMemoryRanges)(m_hAllocator->m_hDevice, 1, &memRange); - } +void VmaDeviceMemoryBlock::Destroy(VmaAllocator allocator) +{ + // Define macro VMA_DEBUG_LOG_FORMAT to receive the list of the unfreed allocations + if (!m_pMetadata->IsEmpty()) + m_pMetadata->DebugLogAllAllocations(); + // This is the most important assert in the entire library. + // Hitting it means you have some memory leak - unreleased VmaAllocation objects. + VMA_ASSERT_LEAK(m_pMetadata->IsEmpty() && "Some allocations were not freed before destruction of this memory block!"); - // THE PLACE WHERE ACTUAL DATA COPY HAPPENS. - memmove( - reinterpret_cast(dstBlockInfo.pMappedData) + move.dstOffset, - reinterpret_cast(srcBlockInfo.pMappedData) + move.srcOffset, - static_cast(move.size)); + VMA_ASSERT_LEAK(m_hMemory != VK_NULL_HANDLE); + allocator->FreeVulkanMemory(m_MemoryTypeIndex, m_pMetadata->GetSize(), m_hMemory); + m_hMemory = VK_NULL_HANDLE; - if(IsCorruptionDetectionEnabled()) - { - VmaWriteMagicValue(dstBlockInfo.pMappedData, move.dstOffset - VMA_DEBUG_MARGIN); - VmaWriteMagicValue(dstBlockInfo.pMappedData, move.dstOffset + move.size); - } + vma_delete(allocator, m_pMetadata); + m_pMetadata = VMA_NULL; +} - // Flush destination. - if(isNonCoherent) - { - VmaDeviceMemoryBlock* const pDstBlock = m_Blocks[move.dstBlockIndex]; - memRange.memory = pDstBlock->GetDeviceMemory(); - memRange.offset = VmaAlignDown(move.dstOffset, nonCoherentAtomSize); - memRange.size = VMA_MIN( - VmaAlignUp(move.size + (move.dstOffset - memRange.offset), nonCoherentAtomSize), - pDstBlock->m_pMetadata->GetSize() - memRange.offset); - (*m_hAllocator->GetVulkanFunctions().vkFlushMappedMemoryRanges)(m_hAllocator->m_hDevice, 1, &memRange); - } - } - } +void VmaDeviceMemoryBlock::PostAlloc(VmaAllocator hAllocator) +{ + VmaMutexLock lock(m_MapAndBindMutex, hAllocator->m_UseMutex); + m_MappingHysteresis.PostAlloc(); +} - // Go over all blocks in reverse order. Unmap those that were mapped just for defragmentation. - // Regardless of pCtx->res == VK_SUCCESS. - for(size_t blockIndex = blockCount; blockIndex--; ) +void VmaDeviceMemoryBlock::PostFree(VmaAllocator hAllocator) +{ + VmaMutexLock lock(m_MapAndBindMutex, hAllocator->m_UseMutex); + if(m_MappingHysteresis.PostFree()) { - const BlockInfo& currBlockInfo = blockInfo[blockIndex]; - if((currBlockInfo.flags & BLOCK_FLAG_MAPPED_FOR_DEFRAGMENTATION) != 0) + VMA_ASSERT(m_MappingHysteresis.GetExtraMapping() == 0); + if (m_MapCount == 0) { - VmaDeviceMemoryBlock* pBlock = m_Blocks[blockIndex]; - pBlock->Unmap(m_hAllocator, 1); + m_pMappedData = VMA_NULL; + (*hAllocator->GetVulkanFunctions().vkUnmapMemory)(hAllocator->m_hDevice, m_hMemory); } } } -void VmaBlockVector::ApplyDefragmentationMovesGpu( - class VmaBlockVectorDefragmentationContext* pDefragCtx, - VmaVector< VmaDefragmentationMove, VmaStlAllocator >& moves, - VkCommandBuffer commandBuffer) +bool VmaDeviceMemoryBlock::Validate() const { - const size_t blockCount = m_Blocks.size(); + VMA_VALIDATE((m_hMemory != VK_NULL_HANDLE) && + (m_pMetadata->GetSize() != 0)); - pDefragCtx->blockContexts.resize(blockCount); - memset(pDefragCtx->blockContexts.data(), 0, blockCount * sizeof(VmaBlockDefragmentationContext)); + return m_pMetadata->Validate(); +} - // Go over all moves. Mark blocks that are used with BLOCK_FLAG_USED. - const size_t moveCount = moves.size(); - for(size_t moveIndex = 0; moveIndex < moveCount; ++moveIndex) +VkResult VmaDeviceMemoryBlock::CheckCorruption(VmaAllocator hAllocator) +{ + void* pData = nullptr; + VkResult res = Map(hAllocator, 1, &pData); + if (res != VK_SUCCESS) { - const VmaDefragmentationMove& move = moves[moveIndex]; - - //if(move.type == VMA_ALLOCATION_TYPE_UNKNOWN) - { - // Old school move still require us to map the whole block - pDefragCtx->blockContexts[move.srcBlockIndex].flags |= VmaBlockDefragmentationContext::BLOCK_FLAG_USED; - pDefragCtx->blockContexts[move.dstBlockIndex].flags |= VmaBlockDefragmentationContext::BLOCK_FLAG_USED; - } + return res; } - VMA_ASSERT(pDefragCtx->res == VK_SUCCESS); + res = m_pMetadata->CheckCorruption(pData); - // Go over all blocks. Create and bind buffer for whole block if necessary. - { - VkBufferCreateInfo bufCreateInfo; - VmaFillGpuDefragmentationBufferCreateInfo(bufCreateInfo); + Unmap(hAllocator, 1); - for(size_t blockIndex = 0; pDefragCtx->res == VK_SUCCESS && blockIndex < blockCount; ++blockIndex) - { - VmaBlockDefragmentationContext& currBlockCtx = pDefragCtx->blockContexts[blockIndex]; - VmaDeviceMemoryBlock* pBlock = m_Blocks[blockIndex]; - if((currBlockCtx.flags & VmaBlockDefragmentationContext::BLOCK_FLAG_USED) != 0) - { - bufCreateInfo.size = pBlock->m_pMetadata->GetSize(); - pDefragCtx->res = (*m_hAllocator->GetVulkanFunctions().vkCreateBuffer)( - m_hAllocator->m_hDevice, &bufCreateInfo, m_hAllocator->GetAllocationCallbacks(), &currBlockCtx.hBuffer); - if(pDefragCtx->res == VK_SUCCESS) - { - pDefragCtx->res = (*m_hAllocator->GetVulkanFunctions().vkBindBufferMemory)( - m_hAllocator->m_hDevice, currBlockCtx.hBuffer, pBlock->GetDeviceMemory(), 0); - } - } - } - } + return res; +} - // Go over all moves. Post data transfer commands to command buffer. - if(pDefragCtx->res == VK_SUCCESS) +VkResult VmaDeviceMemoryBlock::Map(VmaAllocator hAllocator, uint32_t count, void** ppData) +{ + if (count == 0) { - for(size_t moveIndex = 0; moveIndex < moveCount; ++moveIndex) - { - const VmaDefragmentationMove& move = moves[moveIndex]; - - const VmaBlockDefragmentationContext& srcBlockCtx = pDefragCtx->blockContexts[move.srcBlockIndex]; - const VmaBlockDefragmentationContext& dstBlockCtx = pDefragCtx->blockContexts[move.dstBlockIndex]; - - VMA_ASSERT(srcBlockCtx.hBuffer && dstBlockCtx.hBuffer); - - VkBufferCopy region = { - move.srcOffset, - move.dstOffset, - move.size }; - (*m_hAllocator->GetVulkanFunctions().vkCmdCopyBuffer)( - commandBuffer, srcBlockCtx.hBuffer, dstBlockCtx.hBuffer, 1, ®ion); - } + return VK_SUCCESS; } - // Save buffers to defrag context for later destruction. - if(pDefragCtx->res == VK_SUCCESS && moveCount > 0) + VmaMutexLock lock(m_MapAndBindMutex, hAllocator->m_UseMutex); + const uint32_t oldTotalMapCount = m_MapCount + m_MappingHysteresis.GetExtraMapping(); + m_MappingHysteresis.PostMap(); + if (oldTotalMapCount != 0) { - pDefragCtx->res = VK_NOT_READY; + m_MapCount += count; + VMA_ASSERT(m_pMappedData != VMA_NULL); + if (ppData != VMA_NULL) + { + *ppData = m_pMappedData; + } + return VK_SUCCESS; } -} - -void VmaBlockVector::FreeEmptyBlocks(VmaDefragmentationStats* pDefragmentationStats) -{ - for(size_t blockIndex = m_Blocks.size(); blockIndex--; ) + else { - VmaDeviceMemoryBlock* pBlock = m_Blocks[blockIndex]; - if(pBlock->m_pMetadata->IsEmpty()) + VkResult result = (*hAllocator->GetVulkanFunctions().vkMapMemory)( + hAllocator->m_hDevice, + m_hMemory, + 0, // offset + VK_WHOLE_SIZE, + 0, // flags + &m_pMappedData); + if (result == VK_SUCCESS) { - if(m_Blocks.size() > m_MinBlockCount) - { - if(pDefragmentationStats != VMA_NULL) - { - ++pDefragmentationStats->deviceMemoryBlocksFreed; - pDefragmentationStats->bytesFreed += pBlock->m_pMetadata->GetSize(); - } - - VmaVectorRemove(m_Blocks, blockIndex); - pBlock->Destroy(m_hAllocator); - vma_delete(m_hAllocator, pBlock); - } - else + if (ppData != VMA_NULL) { - break; + *ppData = m_pMappedData; } + m_MapCount = count; } + return result; } - UpdateHasEmptyBlock(); } -void VmaBlockVector::UpdateHasEmptyBlock() +void VmaDeviceMemoryBlock::Unmap(VmaAllocator hAllocator, uint32_t count) { - m_HasEmptyBlock = false; - for(size_t index = 0, count = m_Blocks.size(); index < count; ++index) + if (count == 0) { - VmaDeviceMemoryBlock* const pBlock = m_Blocks[index]; - if(pBlock->m_pMetadata->IsEmpty()) - { - m_HasEmptyBlock = true; - break; - } + return; } -} - -#if VMA_STATS_STRING_ENABLED - -void VmaBlockVector::PrintDetailedMap(class VmaJsonWriter& json) -{ - VmaMutexLockRead lock(m_Mutex, m_hAllocator->m_UseMutex); - - json.BeginObject(); - if(IsCustomPool()) + VmaMutexLock lock(m_MapAndBindMutex, hAllocator->m_UseMutex); + if (m_MapCount >= count) { - const char* poolName = m_hParentPool->GetName(); - if(poolName != VMA_NULL && poolName[0] != '\0') - { - json.WriteString("Name"); - json.WriteString(poolName); - } - - json.WriteString("MemoryTypeIndex"); - json.WriteNumber(m_MemoryTypeIndex); - - json.WriteString("BlockSize"); - json.WriteNumber(m_PreferredBlockSize); - - json.WriteString("BlockCount"); - json.BeginObject(true); - if(m_MinBlockCount > 0) - { - json.WriteString("Min"); - json.WriteNumber((uint64_t)m_MinBlockCount); - } - if(m_MaxBlockCount < SIZE_MAX) - { - json.WriteString("Max"); - json.WriteNumber((uint64_t)m_MaxBlockCount); - } - json.WriteString("Cur"); - json.WriteNumber((uint64_t)m_Blocks.size()); - json.EndObject(); - - if(m_FrameInUseCount > 0) - { - json.WriteString("FrameInUseCount"); - json.WriteNumber(m_FrameInUseCount); - } - - if(m_Algorithm != 0) + m_MapCount -= count; + const uint32_t totalMapCount = m_MapCount + m_MappingHysteresis.GetExtraMapping(); + if (totalMapCount == 0) { - json.WriteString("Algorithm"); - json.WriteString(VmaAlgorithmToStr(m_Algorithm)); + m_pMappedData = VMA_NULL; + (*hAllocator->GetVulkanFunctions().vkUnmapMemory)(hAllocator->m_hDevice, m_hMemory); } + m_MappingHysteresis.PostUnmap(); } else { - json.WriteString("PreferredBlockSize"); - json.WriteNumber(m_PreferredBlockSize); - } - - json.WriteString("Blocks"); - json.BeginObject(); - for(size_t i = 0; i < m_Blocks.size(); ++i) - { - json.BeginString(); - json.ContinueString(m_Blocks[i]->GetId()); - json.EndString(); - - m_Blocks[i]->m_pMetadata->PrintDetailedMap(json); + VMA_ASSERT(0 && "VkDeviceMemory block is being unmapped while it was not previously mapped."); } - json.EndObject(); - - json.EndObject(); } -#endif // #if VMA_STATS_STRING_ENABLED - -void VmaBlockVector::Defragment( - class VmaBlockVectorDefragmentationContext* pCtx, - VmaDefragmentationStats* pStats, VmaDefragmentationFlags flags, - VkDeviceSize& maxCpuBytesToMove, uint32_t& maxCpuAllocationsToMove, - VkDeviceSize& maxGpuBytesToMove, uint32_t& maxGpuAllocationsToMove, - VkCommandBuffer commandBuffer) +VkResult VmaDeviceMemoryBlock::WriteMagicValueAfterAllocation(VmaAllocator hAllocator, VkDeviceSize allocOffset, VkDeviceSize allocSize) { - pCtx->res = VK_SUCCESS; - - const VkMemoryPropertyFlags memPropFlags = - m_hAllocator->m_MemProps.memoryTypes[m_MemoryTypeIndex].propertyFlags; - const bool isHostVisible = (memPropFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) != 0; - - const bool canDefragmentOnCpu = maxCpuBytesToMove > 0 && maxCpuAllocationsToMove > 0 && - isHostVisible; - const bool canDefragmentOnGpu = maxGpuBytesToMove > 0 && maxGpuAllocationsToMove > 0 && - !IsCorruptionDetectionEnabled() && - ((1u << m_MemoryTypeIndex) & m_hAllocator->GetGpuDefragmentationMemoryTypeBits()) != 0; + VMA_ASSERT(VMA_DEBUG_MARGIN > 0 && VMA_DEBUG_MARGIN % 4 == 0 && VMA_DEBUG_DETECT_CORRUPTION); - // There are options to defragment this memory type. - if(canDefragmentOnCpu || canDefragmentOnGpu) + void* pData; + VkResult res = Map(hAllocator, 1, &pData); + if (res != VK_SUCCESS) { - bool defragmentOnGpu; - // There is only one option to defragment this memory type. - if(canDefragmentOnGpu != canDefragmentOnCpu) - { - defragmentOnGpu = canDefragmentOnGpu; - } - // Both options are available: Heuristics to choose the best one. - else - { - defragmentOnGpu = (memPropFlags & VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) != 0 || - m_hAllocator->IsIntegratedGpu(); - } + return res; + } - bool overlappingMoveSupported = !defragmentOnGpu; + VmaWriteMagicValue(pData, allocOffset + allocSize); - if(m_hAllocator->m_UseMutex) - { - if(flags & VMA_DEFRAGMENTATION_FLAG_INCREMENTAL) - { - if(!m_Mutex.TryLockWrite()) - { - pCtx->res = VK_ERROR_INITIALIZATION_FAILED; - return; - } - } - else - { - m_Mutex.LockWrite(); - pCtx->mutexLocked = true; - } - } + Unmap(hAllocator, 1); + return VK_SUCCESS; +} - pCtx->Begin(overlappingMoveSupported, flags); +VkResult VmaDeviceMemoryBlock::ValidateMagicValueAfterAllocation(VmaAllocator hAllocator, VkDeviceSize allocOffset, VkDeviceSize allocSize) +{ + VMA_ASSERT(VMA_DEBUG_MARGIN > 0 && VMA_DEBUG_MARGIN % 4 == 0 && VMA_DEBUG_DETECT_CORRUPTION); - // Defragment. + void* pData; + VkResult res = Map(hAllocator, 1, &pData); + if (res != VK_SUCCESS) + { + return res; + } - const VkDeviceSize maxBytesToMove = defragmentOnGpu ? maxGpuBytesToMove : maxCpuBytesToMove; - const uint32_t maxAllocationsToMove = defragmentOnGpu ? maxGpuAllocationsToMove : maxCpuAllocationsToMove; - VmaDefragmentationAlgorithm* algo = pCtx->GetAlgorithm(); - pCtx->res = algo->Defragment(pCtx->defragmentationMoves, maxBytesToMove, maxAllocationsToMove, flags); + if (!VmaValidateMagicValue(pData, allocOffset + allocSize)) + { + VMA_ASSERT(0 && "MEMORY CORRUPTION DETECTED AFTER FREED ALLOCATION!"); + } - // Accumulate statistics. - if(pStats != VMA_NULL) - { - const VkDeviceSize bytesMoved = algo->GetBytesMoved(); - const uint32_t allocationsMoved = algo->GetAllocationsMoved(); - pStats->bytesMoved += bytesMoved; - pStats->allocationsMoved += allocationsMoved; - VMA_ASSERT(bytesMoved <= maxBytesToMove); - VMA_ASSERT(allocationsMoved <= maxAllocationsToMove); - if(defragmentOnGpu) - { - maxGpuBytesToMove -= bytesMoved; - maxGpuAllocationsToMove -= allocationsMoved; - } - else - { - maxCpuBytesToMove -= bytesMoved; - maxCpuAllocationsToMove -= allocationsMoved; - } - } + Unmap(hAllocator, 1); + return VK_SUCCESS; +} - if(flags & VMA_DEFRAGMENTATION_FLAG_INCREMENTAL) - { - if(m_hAllocator->m_UseMutex) - m_Mutex.UnlockWrite(); +VkResult VmaDeviceMemoryBlock::BindBufferMemory( + const VmaAllocator hAllocator, + const VmaAllocation hAllocation, + VkDeviceSize allocationLocalOffset, + VkBuffer hBuffer, + const void* pNext) +{ + VMA_ASSERT(hAllocation->GetType() == VmaAllocation_T::ALLOCATION_TYPE_BLOCK && + hAllocation->GetBlock() == this); + VMA_ASSERT(allocationLocalOffset < hAllocation->GetSize() && + "Invalid allocationLocalOffset. Did you forget that this offset is relative to the beginning of the allocation, not the whole memory block?"); + const VkDeviceSize memoryOffset = hAllocation->GetOffset() + allocationLocalOffset; + // This lock is important so that we don't call vkBind... and/or vkMap... simultaneously on the same VkDeviceMemory from multiple threads. + VmaMutexLock lock(m_MapAndBindMutex, hAllocator->m_UseMutex); + return hAllocator->BindVulkanBuffer(m_hMemory, memoryOffset, hBuffer, pNext); +} - if(pCtx->res >= VK_SUCCESS && !pCtx->defragmentationMoves.empty()) - pCtx->res = VK_NOT_READY; +VkResult VmaDeviceMemoryBlock::BindImageMemory( + const VmaAllocator hAllocator, + const VmaAllocation hAllocation, + VkDeviceSize allocationLocalOffset, + VkImage hImage, + const void* pNext) +{ + VMA_ASSERT(hAllocation->GetType() == VmaAllocation_T::ALLOCATION_TYPE_BLOCK && + hAllocation->GetBlock() == this); + VMA_ASSERT(allocationLocalOffset < hAllocation->GetSize() && + "Invalid allocationLocalOffset. Did you forget that this offset is relative to the beginning of the allocation, not the whole memory block?"); + const VkDeviceSize memoryOffset = hAllocation->GetOffset() + allocationLocalOffset; + // This lock is important so that we don't call vkBind... and/or vkMap... simultaneously on the same VkDeviceMemory from multiple threads. + VmaMutexLock lock(m_MapAndBindMutex, hAllocator->m_UseMutex); + return hAllocator->BindVulkanImage(m_hMemory, memoryOffset, hImage, pNext); +} +#endif // _VMA_DEVICE_MEMORY_BLOCK_FUNCTIONS - return; - } +#ifndef _VMA_ALLOCATION_T_FUNCTIONS +VmaAllocation_T::VmaAllocation_T(bool mappingAllowed) + : m_Alignment{ 1 }, + m_Size{ 0 }, + m_pUserData{ VMA_NULL }, + m_pName{ VMA_NULL }, + m_MemoryTypeIndex{ 0 }, + m_Type{ (uint8_t)ALLOCATION_TYPE_NONE }, + m_SuballocationType{ (uint8_t)VMA_SUBALLOCATION_TYPE_UNKNOWN }, + m_MapCount{ 0 }, + m_Flags{ 0 } +{ + if(mappingAllowed) + m_Flags |= (uint8_t)FLAG_MAPPING_ALLOWED; - if(pCtx->res >= VK_SUCCESS) - { - if(defragmentOnGpu) - { - ApplyDefragmentationMovesGpu(pCtx, pCtx->defragmentationMoves, commandBuffer); - } - else - { - ApplyDefragmentationMovesCpu(pCtx, pCtx->defragmentationMoves); - } - } - } +#if VMA_STATS_STRING_ENABLED + m_BufferImageUsage = 0; +#endif } -void VmaBlockVector::DefragmentationEnd( - class VmaBlockVectorDefragmentationContext* pCtx, - uint32_t flags, - VmaDefragmentationStats* pStats) +VmaAllocation_T::~VmaAllocation_T() { - if(flags & VMA_DEFRAGMENTATION_FLAG_INCREMENTAL && m_hAllocator->m_UseMutex) - { - VMA_ASSERT(pCtx->mutexLocked == false); + VMA_ASSERT_LEAK(m_MapCount == 0 && "Allocation was not unmapped before destruction."); - // Incremental defragmentation doesn't hold the lock, so when we enter here we don't actually have any - // lock protecting us. Since we mutate state here, we have to take the lock out now - m_Mutex.LockWrite(); - pCtx->mutexLocked = true; - } + // Check if owned string was freed. + VMA_ASSERT(m_pName == VMA_NULL); +} - // If the mutex isn't locked we didn't do any work and there is nothing to delete. - if(pCtx->mutexLocked || !m_hAllocator->m_UseMutex) +void VmaAllocation_T::InitBlockAllocation( + VmaDeviceMemoryBlock* block, + VmaAllocHandle allocHandle, + VkDeviceSize alignment, + VkDeviceSize size, + uint32_t memoryTypeIndex, + VmaSuballocationType suballocationType, + bool mapped) +{ + VMA_ASSERT(m_Type == ALLOCATION_TYPE_NONE); + VMA_ASSERT(block != VMA_NULL); + m_Type = (uint8_t)ALLOCATION_TYPE_BLOCK; + m_Alignment = alignment; + m_Size = size; + m_MemoryTypeIndex = memoryTypeIndex; + if(mapped) { - // Destroy buffers. - for(size_t blockIndex = pCtx->blockContexts.size(); blockIndex--;) - { - VmaBlockDefragmentationContext &blockCtx = pCtx->blockContexts[blockIndex]; - if(blockCtx.hBuffer) - { - (*m_hAllocator->GetVulkanFunctions().vkDestroyBuffer)(m_hAllocator->m_hDevice, blockCtx.hBuffer, m_hAllocator->GetAllocationCallbacks()); - } - } - - if(pCtx->res >= VK_SUCCESS) - { - FreeEmptyBlocks(pStats); - } + VMA_ASSERT(IsMappingAllowed() && "Mapping is not allowed on this allocation! Please use one of the new VMA_ALLOCATION_CREATE_HOST_ACCESS_* flags when creating it."); + m_Flags |= (uint8_t)FLAG_PERSISTENT_MAP; } + m_SuballocationType = (uint8_t)suballocationType; + m_BlockAllocation.m_Block = block; + m_BlockAllocation.m_AllocHandle = allocHandle; +} - if(pCtx->mutexLocked) +void VmaAllocation_T::InitDedicatedAllocation( + VmaPool hParentPool, + uint32_t memoryTypeIndex, + VkDeviceMemory hMemory, + VmaSuballocationType suballocationType, + void* pMappedData, + VkDeviceSize size) +{ + VMA_ASSERT(m_Type == ALLOCATION_TYPE_NONE); + VMA_ASSERT(hMemory != VK_NULL_HANDLE); + m_Type = (uint8_t)ALLOCATION_TYPE_DEDICATED; + m_Alignment = 0; + m_Size = size; + m_MemoryTypeIndex = memoryTypeIndex; + m_SuballocationType = (uint8_t)suballocationType; + if(pMappedData != VMA_NULL) { - VMA_ASSERT(m_hAllocator->m_UseMutex); - m_Mutex.UnlockWrite(); + VMA_ASSERT(IsMappingAllowed() && "Mapping is not allowed on this allocation! Please use one of the new VMA_ALLOCATION_CREATE_HOST_ACCESS_* flags when creating it."); + m_Flags |= (uint8_t)FLAG_PERSISTENT_MAP; } + m_DedicatedAllocation.m_hParentPool = hParentPool; + m_DedicatedAllocation.m_hMemory = hMemory; + m_DedicatedAllocation.m_pMappedData = pMappedData; + m_DedicatedAllocation.m_Prev = VMA_NULL; + m_DedicatedAllocation.m_Next = VMA_NULL; } -uint32_t VmaBlockVector::ProcessDefragmentations( - class VmaBlockVectorDefragmentationContext *pCtx, - VmaDefragmentationPassMoveInfo* pMove, uint32_t maxMoves) +void VmaAllocation_T::SetName(VmaAllocator hAllocator, const char* pName) { - VmaMutexLockWrite lock(m_Mutex, m_hAllocator->m_UseMutex); - - const uint32_t moveCount = VMA_MIN(uint32_t(pCtx->defragmentationMoves.size()) - pCtx->defragmentationMovesProcessed, maxMoves); - - for(uint32_t i = 0; i < moveCount; ++ i) - { - VmaDefragmentationMove& move = pCtx->defragmentationMoves[pCtx->defragmentationMovesProcessed + i]; - - pMove->allocation = move.hAllocation; - pMove->memory = move.pDstBlock->GetDeviceMemory(); - pMove->offset = move.dstOffset; - - ++ pMove; - } + VMA_ASSERT(pName == VMA_NULL || pName != m_pName); - pCtx->defragmentationMovesProcessed += moveCount; + FreeName(hAllocator); - return moveCount; + if (pName != VMA_NULL) + m_pName = VmaCreateStringCopy(hAllocator->GetAllocationCallbacks(), pName); } -void VmaBlockVector::CommitDefragmentations( - class VmaBlockVectorDefragmentationContext *pCtx, - VmaDefragmentationStats* pStats) +uint8_t VmaAllocation_T::SwapBlockAllocation(VmaAllocator hAllocator, VmaAllocation allocation) { - VmaMutexLockWrite lock(m_Mutex, m_hAllocator->m_UseMutex); + VMA_ASSERT(allocation != VMA_NULL); + VMA_ASSERT(m_Type == ALLOCATION_TYPE_BLOCK); + VMA_ASSERT(allocation->m_Type == ALLOCATION_TYPE_BLOCK); - for(uint32_t i = pCtx->defragmentationMovesCommitted; i < pCtx->defragmentationMovesProcessed; ++ i) - { - const VmaDefragmentationMove &move = pCtx->defragmentationMoves[i]; + if (m_MapCount != 0) + m_BlockAllocation.m_Block->Unmap(hAllocator, m_MapCount); - move.pSrcBlock->m_pMetadata->FreeAtOffset(move.srcOffset); - move.hAllocation->ChangeBlockAllocation(m_hAllocator, move.pDstBlock, move.dstOffset); - } + m_BlockAllocation.m_Block->m_pMetadata->SetAllocationUserData(m_BlockAllocation.m_AllocHandle, allocation); + VMA_SWAP(m_BlockAllocation, allocation->m_BlockAllocation); + m_BlockAllocation.m_Block->m_pMetadata->SetAllocationUserData(m_BlockAllocation.m_AllocHandle, this); - pCtx->defragmentationMovesCommitted = pCtx->defragmentationMovesProcessed; - FreeEmptyBlocks(pStats); +#if VMA_STATS_STRING_ENABLED + VMA_SWAP(m_BufferImageUsage, allocation->m_BufferImageUsage); +#endif + return m_MapCount; } -size_t VmaBlockVector::CalcAllocationCount() const +VmaAllocHandle VmaAllocation_T::GetAllocHandle() const { - size_t result = 0; - for(size_t i = 0; i < m_Blocks.size(); ++i) + switch (m_Type) { - result += m_Blocks[i]->m_pMetadata->GetAllocationCount(); + case ALLOCATION_TYPE_BLOCK: + return m_BlockAllocation.m_AllocHandle; + case ALLOCATION_TYPE_DEDICATED: + return VK_NULL_HANDLE; + default: + VMA_ASSERT(0); + return VK_NULL_HANDLE; } - return result; } -bool VmaBlockVector::IsBufferImageGranularityConflictPossible() const +VkDeviceSize VmaAllocation_T::GetOffset() const { - if(m_BufferImageGranularity == 1) - { - return false; - } - VmaSuballocationType lastSuballocType = VMA_SUBALLOCATION_TYPE_FREE; - for(size_t i = 0, count = m_Blocks.size(); i < count; ++i) + switch (m_Type) { - VmaDeviceMemoryBlock* const pBlock = m_Blocks[i]; - VMA_ASSERT(m_Algorithm == 0); - VmaBlockMetadata_Generic* const pMetadata = (VmaBlockMetadata_Generic*)pBlock->m_pMetadata; - if(pMetadata->IsBufferImageGranularityConflictPossible(m_BufferImageGranularity, lastSuballocType)) - { - return true; - } + case ALLOCATION_TYPE_BLOCK: + return m_BlockAllocation.m_Block->m_pMetadata->GetAllocationOffset(m_BlockAllocation.m_AllocHandle); + case ALLOCATION_TYPE_DEDICATED: + return 0; + default: + VMA_ASSERT(0); + return 0; } - return false; } -void VmaBlockVector::MakePoolAllocationsLost( - uint32_t currentFrameIndex, - size_t* pLostAllocationCount) +VmaPool VmaAllocation_T::GetParentPool() const { - VmaMutexLockWrite lock(m_Mutex, m_hAllocator->m_UseMutex); - size_t lostAllocationCount = 0; - for(uint32_t blockIndex = 0; blockIndex < m_Blocks.size(); ++blockIndex) - { - VmaDeviceMemoryBlock* const pBlock = m_Blocks[blockIndex]; - VMA_ASSERT(pBlock); - lostAllocationCount += pBlock->m_pMetadata->MakeAllocationsLost(currentFrameIndex, m_FrameInUseCount); - } - if(pLostAllocationCount != VMA_NULL) + switch (m_Type) { - *pLostAllocationCount = lostAllocationCount; + case ALLOCATION_TYPE_BLOCK: + return m_BlockAllocation.m_Block->GetParentPool(); + case ALLOCATION_TYPE_DEDICATED: + return m_DedicatedAllocation.m_hParentPool; + default: + VMA_ASSERT(0); + return VK_NULL_HANDLE; } } -VkResult VmaBlockVector::CheckCorruption() +VkDeviceMemory VmaAllocation_T::GetMemory() const { - if(!IsCorruptionDetectionEnabled()) + switch (m_Type) { - return VK_ERROR_FEATURE_NOT_PRESENT; + case ALLOCATION_TYPE_BLOCK: + return m_BlockAllocation.m_Block->GetDeviceMemory(); + case ALLOCATION_TYPE_DEDICATED: + return m_DedicatedAllocation.m_hMemory; + default: + VMA_ASSERT(0); + return VK_NULL_HANDLE; } +} - VmaMutexLockRead lock(m_Mutex, m_hAllocator->m_UseMutex); - for(uint32_t blockIndex = 0; blockIndex < m_Blocks.size(); ++blockIndex) +void* VmaAllocation_T::GetMappedData() const +{ + switch (m_Type) { - VmaDeviceMemoryBlock* const pBlock = m_Blocks[blockIndex]; - VMA_ASSERT(pBlock); - VkResult res = pBlock->CheckCorruption(m_hAllocator); - if(res != VK_SUCCESS) + case ALLOCATION_TYPE_BLOCK: + if (m_MapCount != 0 || IsPersistentMap()) { - return res; + void* pBlockData = m_BlockAllocation.m_Block->GetMappedData(); + VMA_ASSERT(pBlockData != VMA_NULL); + return (char*)pBlockData + GetOffset(); + } + else + { + return VMA_NULL; } + break; + case ALLOCATION_TYPE_DEDICATED: + VMA_ASSERT((m_DedicatedAllocation.m_pMappedData != VMA_NULL) == (m_MapCount != 0 || IsPersistentMap())); + return m_DedicatedAllocation.m_pMappedData; + default: + VMA_ASSERT(0); + return VMA_NULL; } - return VK_SUCCESS; } -void VmaBlockVector::AddStats(VmaStats* pStats) +void VmaAllocation_T::BlockAllocMap() { - const uint32_t memTypeIndex = m_MemoryTypeIndex; - const uint32_t memHeapIndex = m_hAllocator->MemoryTypeIndexToHeapIndex(memTypeIndex); - - VmaMutexLockRead lock(m_Mutex, m_hAllocator->m_UseMutex); + VMA_ASSERT(GetType() == ALLOCATION_TYPE_BLOCK); + VMA_ASSERT(IsMappingAllowed() && "Mapping is not allowed on this allocation! Please use one of the new VMA_ALLOCATION_CREATE_HOST_ACCESS_* flags when creating it."); - for(uint32_t blockIndex = 0; blockIndex < m_Blocks.size(); ++blockIndex) + if (m_MapCount < 0xFF) { - const VmaDeviceMemoryBlock* const pBlock = m_Blocks[blockIndex]; - VMA_ASSERT(pBlock); - VMA_HEAVY_ASSERT(pBlock->Validate()); - VmaStatInfo allocationStatInfo; - pBlock->m_pMetadata->CalcAllocationStatInfo(allocationStatInfo); - VmaAddStatInfo(pStats->total, allocationStatInfo); - VmaAddStatInfo(pStats->memoryType[memTypeIndex], allocationStatInfo); - VmaAddStatInfo(pStats->memoryHeap[memHeapIndex], allocationStatInfo); + ++m_MapCount; } -} - -//////////////////////////////////////////////////////////////////////////////// -// VmaDefragmentationAlgorithm_Generic members definition - -VmaDefragmentationAlgorithm_Generic::VmaDefragmentationAlgorithm_Generic( - VmaAllocator hAllocator, - VmaBlockVector* pBlockVector, - uint32_t currentFrameIndex, - bool overlappingMoveSupported) : - VmaDefragmentationAlgorithm(hAllocator, pBlockVector, currentFrameIndex), - m_AllocationCount(0), - m_AllAllocations(false), - m_BytesMoved(0), - m_AllocationsMoved(0), - m_Blocks(VmaStlAllocator(hAllocator->GetAllocationCallbacks())) -{ - // Create block info for each block. - const size_t blockCount = m_pBlockVector->m_Blocks.size(); - for(size_t blockIndex = 0; blockIndex < blockCount; ++blockIndex) + else { - BlockInfo* pBlockInfo = vma_new(m_hAllocator, BlockInfo)(m_hAllocator->GetAllocationCallbacks()); - pBlockInfo->m_OriginalBlockIndex = blockIndex; - pBlockInfo->m_pBlock = m_pBlockVector->m_Blocks[blockIndex]; - m_Blocks.push_back(pBlockInfo); + VMA_ASSERT(0 && "Allocation mapped too many times simultaneously."); } - - // Sort them by m_pBlock pointer value. - VMA_SORT(m_Blocks.begin(), m_Blocks.end(), BlockPointerLess()); } -VmaDefragmentationAlgorithm_Generic::~VmaDefragmentationAlgorithm_Generic() +void VmaAllocation_T::BlockAllocUnmap() { - for(size_t i = m_Blocks.size(); i--; ) + VMA_ASSERT(GetType() == ALLOCATION_TYPE_BLOCK); + + if (m_MapCount > 0) { - vma_delete(m_hAllocator, m_Blocks[i]); + --m_MapCount; + } + else + { + VMA_ASSERT(0 && "Unmapping allocation not previously mapped."); } } -void VmaDefragmentationAlgorithm_Generic::AddAllocation(VmaAllocation hAlloc, VkBool32* pChanged) +VkResult VmaAllocation_T::DedicatedAllocMap(VmaAllocator hAllocator, void** ppData) { - // Now as we are inside VmaBlockVector::m_Mutex, we can make final check if this allocation was not lost. - if(hAlloc->GetLastUseFrameIndex() != VMA_FRAME_INDEX_LOST) + VMA_ASSERT(GetType() == ALLOCATION_TYPE_DEDICATED); + VMA_ASSERT(IsMappingAllowed() && "Mapping is not allowed on this allocation! Please use one of the new VMA_ALLOCATION_CREATE_HOST_ACCESS_* flags when creating it."); + + if (m_MapCount != 0 || IsPersistentMap()) { - VmaDeviceMemoryBlock* pBlock = hAlloc->GetBlock(); - BlockInfoVector::iterator it = VmaBinaryFindFirstNotLess(m_Blocks.begin(), m_Blocks.end(), pBlock, BlockPointerLess()); - if(it != m_Blocks.end() && (*it)->m_pBlock == pBlock) + if (m_MapCount < 0xFF) { - AllocationInfo allocInfo = AllocationInfo(hAlloc, pChanged); - (*it)->m_Allocations.push_back(allocInfo); + VMA_ASSERT(m_DedicatedAllocation.m_pMappedData != VMA_NULL); + *ppData = m_DedicatedAllocation.m_pMappedData; + ++m_MapCount; + return VK_SUCCESS; } else { - VMA_ASSERT(0); + VMA_ASSERT(0 && "Dedicated allocation mapped too many times simultaneously."); + return VK_ERROR_MEMORY_MAP_FAILED; } - - ++m_AllocationCount; } -} - -VkResult VmaDefragmentationAlgorithm_Generic::DefragmentRound( - VmaVector< VmaDefragmentationMove, VmaStlAllocator >& moves, - VkDeviceSize maxBytesToMove, - uint32_t maxAllocationsToMove, - bool freeOldAllocations) -{ - if(m_Blocks.empty()) + else { - return VK_SUCCESS; + VkResult result = (*hAllocator->GetVulkanFunctions().vkMapMemory)( + hAllocator->m_hDevice, + m_DedicatedAllocation.m_hMemory, + 0, // offset + VK_WHOLE_SIZE, + 0, // flags + ppData); + if (result == VK_SUCCESS) + { + m_DedicatedAllocation.m_pMappedData = *ppData; + m_MapCount = 1; + } + return result; } +} - // This is a choice based on research. - // Option 1: - uint32_t strategy = VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT; - // Option 2: - //uint32_t strategy = VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT; - // Option 3: - //uint32_t strategy = VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT; +void VmaAllocation_T::DedicatedAllocUnmap(VmaAllocator hAllocator) +{ + VMA_ASSERT(GetType() == ALLOCATION_TYPE_DEDICATED); - size_t srcBlockMinIndex = 0; - // When FAST_ALGORITHM, move allocations from only last out of blocks that contain non-movable allocations. - /* - if(m_AlgorithmFlags & VMA_DEFRAGMENTATION_FAST_ALGORITHM_BIT) + if (m_MapCount > 0) { - const size_t blocksWithNonMovableCount = CalcBlocksWithNonMovableCount(); - if(blocksWithNonMovableCount > 0) + --m_MapCount; + if (m_MapCount == 0 && !IsPersistentMap()) { - srcBlockMinIndex = blocksWithNonMovableCount - 1; + m_DedicatedAllocation.m_pMappedData = VMA_NULL; + (*hAllocator->GetVulkanFunctions().vkUnmapMemory)( + hAllocator->m_hDevice, + m_DedicatedAllocation.m_hMemory); } } - */ - - size_t srcBlockIndex = m_Blocks.size() - 1; - size_t srcAllocIndex = SIZE_MAX; - for(;;) + else { - // 1. Find next allocation to move. - // 1.1. Start from last to first m_Blocks - they are sorted from most "destination" to most "source". - // 1.2. Then start from last to first m_Allocations. - while(srcAllocIndex >= m_Blocks[srcBlockIndex]->m_Allocations.size()) - { - if(m_Blocks[srcBlockIndex]->m_Allocations.empty()) - { - // Finished: no more allocations to process. - if(srcBlockIndex == srcBlockMinIndex) - { - return VK_SUCCESS; - } - else - { - --srcBlockIndex; - srcAllocIndex = SIZE_MAX; - } - } - else - { - srcAllocIndex = m_Blocks[srcBlockIndex]->m_Allocations.size() - 1; - } - } - - BlockInfo* pSrcBlockInfo = m_Blocks[srcBlockIndex]; - AllocationInfo& allocInfo = pSrcBlockInfo->m_Allocations[srcAllocIndex]; - - const VkDeviceSize size = allocInfo.m_hAllocation->GetSize(); - const VkDeviceSize srcOffset = allocInfo.m_hAllocation->GetOffset(); - const VkDeviceSize alignment = allocInfo.m_hAllocation->GetAlignment(); - const VmaSuballocationType suballocType = allocInfo.m_hAllocation->GetSuballocationType(); - - // 2. Try to find new place for this allocation in preceding or current block. - for(size_t dstBlockIndex = 0; dstBlockIndex <= srcBlockIndex; ++dstBlockIndex) - { - BlockInfo* pDstBlockInfo = m_Blocks[dstBlockIndex]; - VmaAllocationRequest dstAllocRequest; - if(pDstBlockInfo->m_pBlock->m_pMetadata->CreateAllocationRequest( - m_CurrentFrameIndex, - m_pBlockVector->GetFrameInUseCount(), - m_pBlockVector->GetBufferImageGranularity(), - size, - alignment, - false, // upperAddress - suballocType, - false, // canMakeOtherLost - strategy, - &dstAllocRequest) && - MoveMakesSense( - dstBlockIndex, dstAllocRequest.offset, srcBlockIndex, srcOffset)) - { - VMA_ASSERT(dstAllocRequest.itemsToMakeLostCount == 0); - - // Reached limit on number of allocations or bytes to move. - if((m_AllocationsMoved + 1 > maxAllocationsToMove) || - (m_BytesMoved + size > maxBytesToMove)) - { - return VK_SUCCESS; - } - - VmaDefragmentationMove move = {}; - move.srcBlockIndex = pSrcBlockInfo->m_OriginalBlockIndex; - move.dstBlockIndex = pDstBlockInfo->m_OriginalBlockIndex; - move.srcOffset = srcOffset; - move.dstOffset = dstAllocRequest.offset; - move.size = size; - move.hAllocation = allocInfo.m_hAllocation; - move.pSrcBlock = pSrcBlockInfo->m_pBlock; - move.pDstBlock = pDstBlockInfo->m_pBlock; - - moves.push_back(move); - - pDstBlockInfo->m_pBlock->m_pMetadata->Alloc( - dstAllocRequest, - suballocType, - size, - allocInfo.m_hAllocation); - - if(freeOldAllocations) - { - pSrcBlockInfo->m_pBlock->m_pMetadata->FreeAtOffset(srcOffset); - allocInfo.m_hAllocation->ChangeBlockAllocation(m_hAllocator, pDstBlockInfo->m_pBlock, dstAllocRequest.offset); - } - - if(allocInfo.m_pChanged != VMA_NULL) - { - *allocInfo.m_pChanged = VK_TRUE; - } - - ++m_AllocationsMoved; - m_BytesMoved += size; + VMA_ASSERT(0 && "Unmapping dedicated allocation not previously mapped."); + } +} - VmaVectorRemove(pSrcBlockInfo->m_Allocations, srcAllocIndex); +#if VMA_STATS_STRING_ENABLED +void VmaAllocation_T::InitBufferImageUsage(uint32_t bufferImageUsage) +{ + VMA_ASSERT(m_BufferImageUsage == 0); + m_BufferImageUsage = bufferImageUsage; +} - break; - } - } +void VmaAllocation_T::PrintParameters(class VmaJsonWriter& json) const +{ + json.WriteString("Type"); + json.WriteString(VMA_SUBALLOCATION_TYPE_NAMES[m_SuballocationType]); - // If not processed, this allocInfo remains in pBlockInfo->m_Allocations for next round. + json.WriteString("Size"); + json.WriteNumber(m_Size); + json.WriteString("Usage"); + json.WriteNumber(m_BufferImageUsage); - if(srcAllocIndex > 0) - { - --srcAllocIndex; - } - else - { - if(srcBlockIndex > 0) - { - --srcBlockIndex; - srcAllocIndex = SIZE_MAX; - } - else - { - return VK_SUCCESS; - } - } + if (m_pUserData != VMA_NULL) + { + json.WriteString("CustomData"); + json.BeginString(); + json.ContinueString_Pointer(m_pUserData); + json.EndString(); + } + if (m_pName != VMA_NULL) + { + json.WriteString("Name"); + json.WriteString(m_pName); } } +#endif // VMA_STATS_STRING_ENABLED -size_t VmaDefragmentationAlgorithm_Generic::CalcBlocksWithNonMovableCount() const +void VmaAllocation_T::FreeName(VmaAllocator hAllocator) { - size_t result = 0; - for(size_t i = 0; i < m_Blocks.size(); ++i) + if(m_pName) { - if(m_Blocks[i]->m_HasNonMovableAllocations) - { - ++result; - } + VmaFreeString(hAllocator->GetAllocationCallbacks(), m_pName); + m_pName = VMA_NULL; } - return result; } +#endif // _VMA_ALLOCATION_T_FUNCTIONS + +#ifndef _VMA_BLOCK_VECTOR_FUNCTIONS +VmaBlockVector::VmaBlockVector( + VmaAllocator hAllocator, + VmaPool hParentPool, + uint32_t memoryTypeIndex, + VkDeviceSize preferredBlockSize, + size_t minBlockCount, + size_t maxBlockCount, + VkDeviceSize bufferImageGranularity, + bool explicitBlockSize, + uint32_t algorithm, + float priority, + VkDeviceSize minAllocationAlignment, + void* pMemoryAllocateNext) + : m_hAllocator(hAllocator), + m_hParentPool(hParentPool), + m_MemoryTypeIndex(memoryTypeIndex), + m_PreferredBlockSize(preferredBlockSize), + m_MinBlockCount(minBlockCount), + m_MaxBlockCount(maxBlockCount), + m_BufferImageGranularity(bufferImageGranularity), + m_ExplicitBlockSize(explicitBlockSize), + m_Algorithm(algorithm), + m_Priority(priority), + m_MinAllocationAlignment(minAllocationAlignment), + m_pMemoryAllocateNext(pMemoryAllocateNext), + m_Blocks(VmaStlAllocator(hAllocator->GetAllocationCallbacks())), + m_NextBlockId(0) {} -VkResult VmaDefragmentationAlgorithm_Generic::Defragment( - VmaVector< VmaDefragmentationMove, VmaStlAllocator >& moves, - VkDeviceSize maxBytesToMove, - uint32_t maxAllocationsToMove, - VmaDefragmentationFlags flags) +VmaBlockVector::~VmaBlockVector() { - if(!m_AllAllocations && m_AllocationCount == 0) + for (size_t i = m_Blocks.size(); i--; ) { - return VK_SUCCESS; + m_Blocks[i]->Destroy(m_hAllocator); + vma_delete(m_hAllocator, m_Blocks[i]); } +} - const size_t blockCount = m_Blocks.size(); - for(size_t blockIndex = 0; blockIndex < blockCount; ++blockIndex) +VkResult VmaBlockVector::CreateMinBlocks() +{ + for (size_t i = 0; i < m_MinBlockCount; ++i) { - BlockInfo* pBlockInfo = m_Blocks[blockIndex]; - - if(m_AllAllocations) + VkResult res = CreateBlock(m_PreferredBlockSize, VMA_NULL); + if (res != VK_SUCCESS) { - VmaBlockMetadata_Generic* pMetadata = (VmaBlockMetadata_Generic*)pBlockInfo->m_pBlock->m_pMetadata; - for(VmaSuballocationList::const_iterator it = pMetadata->m_Suballocations.begin(); - it != pMetadata->m_Suballocations.end(); - ++it) - { - if(it->type != VMA_SUBALLOCATION_TYPE_FREE) - { - AllocationInfo allocInfo = AllocationInfo(it->hAllocation, VMA_NULL); - pBlockInfo->m_Allocations.push_back(allocInfo); - } - } + return res; } - - pBlockInfo->CalcHasNonMovableAllocations(); - - // This is a choice based on research. - // Option 1: - pBlockInfo->SortAllocationsByOffsetDescending(); - // Option 2: - //pBlockInfo->SortAllocationsBySizeDescending(); } + return VK_SUCCESS; +} - // Sort m_Blocks this time by the main criterium, from most "destination" to most "source" blocks. - VMA_SORT(m_Blocks.begin(), m_Blocks.end(), BlockInfoCompareMoveDestination()); - - // This is a choice based on research. - const uint32_t roundCount = 2; +void VmaBlockVector::AddStatistics(VmaStatistics& inoutStats) +{ + VmaMutexLockRead lock(m_Mutex, m_hAllocator->m_UseMutex); - // Execute defragmentation rounds (the main part). - VkResult result = VK_SUCCESS; - for(uint32_t round = 0; (round < roundCount) && (result == VK_SUCCESS); ++round) + const size_t blockCount = m_Blocks.size(); + for (uint32_t blockIndex = 0; blockIndex < blockCount; ++blockIndex) { - result = DefragmentRound(moves, maxBytesToMove, maxAllocationsToMove, !(flags & VMA_DEFRAGMENTATION_FLAG_INCREMENTAL)); + const VmaDeviceMemoryBlock* const pBlock = m_Blocks[blockIndex]; + VMA_ASSERT(pBlock); + VMA_HEAVY_ASSERT(pBlock->Validate()); + pBlock->m_pMetadata->AddStatistics(inoutStats); } - - return result; } -bool VmaDefragmentationAlgorithm_Generic::MoveMakesSense( - size_t dstBlockIndex, VkDeviceSize dstOffset, - size_t srcBlockIndex, VkDeviceSize srcOffset) +void VmaBlockVector::AddDetailedStatistics(VmaDetailedStatistics& inoutStats) { - if(dstBlockIndex < srcBlockIndex) - { - return true; - } - if(dstBlockIndex > srcBlockIndex) - { - return false; - } - if(dstOffset < srcOffset) + VmaMutexLockRead lock(m_Mutex, m_hAllocator->m_UseMutex); + + const size_t blockCount = m_Blocks.size(); + for (uint32_t blockIndex = 0; blockIndex < blockCount; ++blockIndex) { - return true; + const VmaDeviceMemoryBlock* const pBlock = m_Blocks[blockIndex]; + VMA_ASSERT(pBlock); + VMA_HEAVY_ASSERT(pBlock->Validate()); + pBlock->m_pMetadata->AddDetailedStatistics(inoutStats); } - return false; } -//////////////////////////////////////////////////////////////////////////////// -// VmaDefragmentationAlgorithm_Fast - -VmaDefragmentationAlgorithm_Fast::VmaDefragmentationAlgorithm_Fast( - VmaAllocator hAllocator, - VmaBlockVector* pBlockVector, - uint32_t currentFrameIndex, - bool overlappingMoveSupported) : - VmaDefragmentationAlgorithm(hAllocator, pBlockVector, currentFrameIndex), - m_OverlappingMoveSupported(overlappingMoveSupported), - m_AllocationCount(0), - m_AllAllocations(false), - m_BytesMoved(0), - m_AllocationsMoved(0), - m_BlockInfos(VmaStlAllocator(hAllocator->GetAllocationCallbacks())) +bool VmaBlockVector::IsEmpty() { - VMA_ASSERT(VMA_DEBUG_MARGIN == 0); - + VmaMutexLockRead lock(m_Mutex, m_hAllocator->m_UseMutex); + return m_Blocks.empty(); } -VmaDefragmentationAlgorithm_Fast::~VmaDefragmentationAlgorithm_Fast() +bool VmaBlockVector::IsCorruptionDetectionEnabled() const { + const uint32_t requiredMemFlags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + return (VMA_DEBUG_DETECT_CORRUPTION != 0) && + (VMA_DEBUG_MARGIN > 0) && + (m_Algorithm == 0 || m_Algorithm == VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT) && + (m_hAllocator->m_MemProps.memoryTypes[m_MemoryTypeIndex].propertyFlags & requiredMemFlags) == requiredMemFlags; } -VkResult VmaDefragmentationAlgorithm_Fast::Defragment( - VmaVector< VmaDefragmentationMove, VmaStlAllocator >& moves, - VkDeviceSize maxBytesToMove, - uint32_t maxAllocationsToMove, - VmaDefragmentationFlags flags) +VkResult VmaBlockVector::Allocate( + VkDeviceSize size, + VkDeviceSize alignment, + const VmaAllocationCreateInfo& createInfo, + VmaSuballocationType suballocType, + size_t allocationCount, + VmaAllocation* pAllocations) { - VMA_ASSERT(m_AllAllocations || m_pBlockVector->CalcAllocationCount() == m_AllocationCount); - - const size_t blockCount = m_pBlockVector->GetBlockCount(); - if(blockCount == 0 || maxBytesToMove == 0 || maxAllocationsToMove == 0) - { - return VK_SUCCESS; - } - - PreprocessMetadata(); + size_t allocIndex; + VkResult res = VK_SUCCESS; - // Sort blocks in order from most destination. + alignment = VMA_MAX(alignment, m_MinAllocationAlignment); - m_BlockInfos.resize(blockCount); - for(size_t i = 0; i < blockCount; ++i) + if (IsCorruptionDetectionEnabled()) { - m_BlockInfos[i].origBlockIndex = i; + size = VmaAlignUp(size, sizeof(VMA_CORRUPTION_DETECTION_MAGIC_VALUE)); + alignment = VmaAlignUp(alignment, sizeof(VMA_CORRUPTION_DETECTION_MAGIC_VALUE)); } - VMA_SORT(m_BlockInfos.begin(), m_BlockInfos.end(), [this](const BlockInfo& lhs, const BlockInfo& rhs) -> bool { - return m_pBlockVector->GetBlock(lhs.origBlockIndex)->m_pMetadata->GetSumFreeSize() < - m_pBlockVector->GetBlock(rhs.origBlockIndex)->m_pMetadata->GetSumFreeSize(); - }); - - // THE MAIN ALGORITHM - - FreeSpaceDatabase freeSpaceDb; - - size_t dstBlockInfoIndex = 0; - size_t dstOrigBlockIndex = m_BlockInfos[dstBlockInfoIndex].origBlockIndex; - VmaDeviceMemoryBlock* pDstBlock = m_pBlockVector->GetBlock(dstOrigBlockIndex); - VmaBlockMetadata_Generic* pDstMetadata = (VmaBlockMetadata_Generic*)pDstBlock->m_pMetadata; - VkDeviceSize dstBlockSize = pDstMetadata->GetSize(); - VkDeviceSize dstOffset = 0; - - bool end = false; - for(size_t srcBlockInfoIndex = 0; !end && srcBlockInfoIndex < blockCount; ++srcBlockInfoIndex) { - const size_t srcOrigBlockIndex = m_BlockInfos[srcBlockInfoIndex].origBlockIndex; - VmaDeviceMemoryBlock* const pSrcBlock = m_pBlockVector->GetBlock(srcOrigBlockIndex); - VmaBlockMetadata_Generic* const pSrcMetadata = (VmaBlockMetadata_Generic*)pSrcBlock->m_pMetadata; - for(VmaSuballocationList::iterator srcSuballocIt = pSrcMetadata->m_Suballocations.begin(); - !end && srcSuballocIt != pSrcMetadata->m_Suballocations.end(); ) + VmaMutexLockWrite lock(m_Mutex, m_hAllocator->m_UseMutex); + for (allocIndex = 0; allocIndex < allocationCount; ++allocIndex) { - VmaAllocation_T* const pAlloc = srcSuballocIt->hAllocation; - const VkDeviceSize srcAllocAlignment = pAlloc->GetAlignment(); - const VkDeviceSize srcAllocSize = srcSuballocIt->size; - if(m_AllocationsMoved == maxAllocationsToMove || - m_BytesMoved + srcAllocSize > maxBytesToMove) + res = AllocatePage( + size, + alignment, + createInfo, + suballocType, + pAllocations + allocIndex); + if (res != VK_SUCCESS) { - end = true; break; } - const VkDeviceSize srcAllocOffset = srcSuballocIt->offset; - - VmaDefragmentationMove move = {}; - // Try to place it in one of free spaces from the database. - size_t freeSpaceInfoIndex; - VkDeviceSize dstAllocOffset; - if(freeSpaceDb.Fetch(srcAllocAlignment, srcAllocSize, - freeSpaceInfoIndex, dstAllocOffset)) - { - size_t freeSpaceOrigBlockIndex = m_BlockInfos[freeSpaceInfoIndex].origBlockIndex; - VmaDeviceMemoryBlock* pFreeSpaceBlock = m_pBlockVector->GetBlock(freeSpaceOrigBlockIndex); - VmaBlockMetadata_Generic* pFreeSpaceMetadata = (VmaBlockMetadata_Generic*)pFreeSpaceBlock->m_pMetadata; - - // Same block - if(freeSpaceInfoIndex == srcBlockInfoIndex) - { - VMA_ASSERT(dstAllocOffset <= srcAllocOffset); - - // MOVE OPTION 1: Move the allocation inside the same block by decreasing offset. - - VmaSuballocation suballoc = *srcSuballocIt; - suballoc.offset = dstAllocOffset; - suballoc.hAllocation->ChangeOffset(dstAllocOffset); - m_BytesMoved += srcAllocSize; - ++m_AllocationsMoved; - - VmaSuballocationList::iterator nextSuballocIt = srcSuballocIt; - ++nextSuballocIt; - pSrcMetadata->m_Suballocations.erase(srcSuballocIt); - srcSuballocIt = nextSuballocIt; - - InsertSuballoc(pFreeSpaceMetadata, suballoc); + } + } - move.srcBlockIndex = srcOrigBlockIndex; - move.dstBlockIndex = freeSpaceOrigBlockIndex; - move.srcOffset = srcAllocOffset; - move.dstOffset = dstAllocOffset; - move.size = srcAllocSize; + if (res != VK_SUCCESS) + { + // Free all already created allocations. + while (allocIndex--) + Free(pAllocations[allocIndex]); + memset(pAllocations, 0, sizeof(VmaAllocation) * allocationCount); + } - moves.push_back(move); - } - // Different block - else - { - // MOVE OPTION 2: Move the allocation to a different block. + return res; +} - VMA_ASSERT(freeSpaceInfoIndex < srcBlockInfoIndex); +VkResult VmaBlockVector::AllocatePage( + VkDeviceSize size, + VkDeviceSize alignment, + const VmaAllocationCreateInfo& createInfo, + VmaSuballocationType suballocType, + VmaAllocation* pAllocation) +{ + const bool isUpperAddress = (createInfo.flags & VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT) != 0; - VmaSuballocation suballoc = *srcSuballocIt; - suballoc.offset = dstAllocOffset; - suballoc.hAllocation->ChangeBlockAllocation(m_hAllocator, pFreeSpaceBlock, dstAllocOffset); - m_BytesMoved += srcAllocSize; - ++m_AllocationsMoved; + VkDeviceSize freeMemory; + { + const uint32_t heapIndex = m_hAllocator->MemoryTypeIndexToHeapIndex(m_MemoryTypeIndex); + VmaBudget heapBudget = {}; + m_hAllocator->GetHeapBudgets(&heapBudget, heapIndex, 1); + freeMemory = (heapBudget.usage < heapBudget.budget) ? (heapBudget.budget - heapBudget.usage) : 0; + } - VmaSuballocationList::iterator nextSuballocIt = srcSuballocIt; - ++nextSuballocIt; - pSrcMetadata->m_Suballocations.erase(srcSuballocIt); - srcSuballocIt = nextSuballocIt; + const bool canFallbackToDedicated = !HasExplicitBlockSize() && + (createInfo.flags & VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT) == 0; + const bool canCreateNewBlock = + ((createInfo.flags & VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT) == 0) && + (m_Blocks.size() < m_MaxBlockCount) && + (freeMemory >= size || !canFallbackToDedicated); + uint32_t strategy = createInfo.flags & VMA_ALLOCATION_CREATE_STRATEGY_MASK; - InsertSuballoc(pFreeSpaceMetadata, suballoc); + // Upper address can only be used with linear allocator and within single memory block. + if (isUpperAddress && + (m_Algorithm != VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT || m_MaxBlockCount > 1)) + { + return VK_ERROR_FEATURE_NOT_PRESENT; + } - move.srcBlockIndex = srcOrigBlockIndex; - move.dstBlockIndex = freeSpaceOrigBlockIndex; - move.srcOffset = srcAllocOffset; - move.dstOffset = dstAllocOffset; - move.size = srcAllocSize; + // Early reject: requested allocation size is larger that maximum block size for this block vector. + if (size + VMA_DEBUG_MARGIN > m_PreferredBlockSize) + { + return VK_ERROR_OUT_OF_DEVICE_MEMORY; + } - moves.push_back(move); - } + // 1. Search existing allocations. Try to allocate. + if (m_Algorithm == VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT) + { + // Use only last block. + if (!m_Blocks.empty()) + { + VmaDeviceMemoryBlock* const pCurrBlock = m_Blocks.back(); + VMA_ASSERT(pCurrBlock); + VkResult res = AllocateFromBlock( + pCurrBlock, size, alignment, createInfo.flags, createInfo.pUserData, suballocType, strategy, pAllocation); + if (res == VK_SUCCESS) + { + VMA_DEBUG_LOG_FORMAT(" Returned from last block #%u", pCurrBlock->GetId()); + IncrementallySortBlocks(); + return VK_SUCCESS; } - else + } + } + else + { + if (strategy != VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT) // MIN_MEMORY or default + { + const bool isHostVisible = + (m_hAllocator->m_MemProps.memoryTypes[m_MemoryTypeIndex].propertyFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) != 0; + if(isHostVisible) { - dstAllocOffset = VmaAlignUp(dstOffset, srcAllocAlignment); - - // If the allocation doesn't fit before the end of dstBlock, forward to next block. - while(dstBlockInfoIndex < srcBlockInfoIndex && - dstAllocOffset + srcAllocSize > dstBlockSize) - { - // But before that, register remaining free space at the end of dst block. - freeSpaceDb.Register(dstBlockInfoIndex, dstOffset, dstBlockSize - dstOffset); - - ++dstBlockInfoIndex; - dstOrigBlockIndex = m_BlockInfos[dstBlockInfoIndex].origBlockIndex; - pDstBlock = m_pBlockVector->GetBlock(dstOrigBlockIndex); - pDstMetadata = (VmaBlockMetadata_Generic*)pDstBlock->m_pMetadata; - dstBlockSize = pDstMetadata->GetSize(); - dstOffset = 0; - dstAllocOffset = 0; - } - - // Same block - if(dstBlockInfoIndex == srcBlockInfoIndex) + const bool isMappingAllowed = (createInfo.flags & + (VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT)) != 0; + /* + For non-mappable allocations, check blocks that are not mapped first. + For mappable allocations, check blocks that are already mapped first. + This way, having many blocks, we will separate mappable and non-mappable allocations, + hopefully limiting the number of blocks that are mapped, which will help tools like RenderDoc. + */ + for(size_t mappingI = 0; mappingI < 2; ++mappingI) { - VMA_ASSERT(dstAllocOffset <= srcAllocOffset); - - const bool overlap = dstAllocOffset + srcAllocSize > srcAllocOffset; - - bool skipOver = overlap; - if(overlap && m_OverlappingMoveSupported && dstAllocOffset < srcAllocOffset) - { - // If destination and source place overlap, skip if it would move it - // by only < 1/64 of its size. - skipOver = (srcAllocOffset - dstAllocOffset) * 64 < srcAllocSize; - } - - if(skipOver) + // Forward order in m_Blocks - prefer blocks with smallest amount of free space. + for (size_t blockIndex = 0; blockIndex < m_Blocks.size(); ++blockIndex) { - freeSpaceDb.Register(dstBlockInfoIndex, dstOffset, srcAllocOffset - dstOffset); - - dstOffset = srcAllocOffset + srcAllocSize; - ++srcSuballocIt; + VmaDeviceMemoryBlock* const pCurrBlock = m_Blocks[blockIndex]; + VMA_ASSERT(pCurrBlock); + const bool isBlockMapped = pCurrBlock->GetMappedData() != VMA_NULL; + if((mappingI == 0) == (isMappingAllowed == isBlockMapped)) + { + VkResult res = AllocateFromBlock( + pCurrBlock, size, alignment, createInfo.flags, createInfo.pUserData, suballocType, strategy, pAllocation); + if (res == VK_SUCCESS) + { + VMA_DEBUG_LOG_FORMAT(" Returned from existing block #%u", pCurrBlock->GetId()); + IncrementallySortBlocks(); + return VK_SUCCESS; + } + } } - // MOVE OPTION 1: Move the allocation inside the same block by decreasing offset. - else + } + } + else + { + // Forward order in m_Blocks - prefer blocks with smallest amount of free space. + for (size_t blockIndex = 0; blockIndex < m_Blocks.size(); ++blockIndex) + { + VmaDeviceMemoryBlock* const pCurrBlock = m_Blocks[blockIndex]; + VMA_ASSERT(pCurrBlock); + VkResult res = AllocateFromBlock( + pCurrBlock, size, alignment, createInfo.flags, createInfo.pUserData, suballocType, strategy, pAllocation); + if (res == VK_SUCCESS) { - srcSuballocIt->offset = dstAllocOffset; - srcSuballocIt->hAllocation->ChangeOffset(dstAllocOffset); - dstOffset = dstAllocOffset + srcAllocSize; - m_BytesMoved += srcAllocSize; - ++m_AllocationsMoved; - ++srcSuballocIt; - - move.srcBlockIndex = srcOrigBlockIndex; - move.dstBlockIndex = dstOrigBlockIndex; - move.srcOffset = srcAllocOffset; - move.dstOffset = dstAllocOffset; - move.size = srcAllocSize; - - moves.push_back(move); + VMA_DEBUG_LOG_FORMAT(" Returned from existing block #%u", pCurrBlock->GetId()); + IncrementallySortBlocks(); + return VK_SUCCESS; } } - // Different block - else + } + } + else // VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT + { + // Backward order in m_Blocks - prefer blocks with largest amount of free space. + for (size_t blockIndex = m_Blocks.size(); blockIndex--; ) + { + VmaDeviceMemoryBlock* const pCurrBlock = m_Blocks[blockIndex]; + VMA_ASSERT(pCurrBlock); + VkResult res = AllocateFromBlock(pCurrBlock, size, alignment, createInfo.flags, createInfo.pUserData, suballocType, strategy, pAllocation); + if (res == VK_SUCCESS) { - // MOVE OPTION 2: Move the allocation to a different block. - - VMA_ASSERT(dstBlockInfoIndex < srcBlockInfoIndex); - VMA_ASSERT(dstAllocOffset + srcAllocSize <= dstBlockSize); - - VmaSuballocation suballoc = *srcSuballocIt; - suballoc.offset = dstAllocOffset; - suballoc.hAllocation->ChangeBlockAllocation(m_hAllocator, pDstBlock, dstAllocOffset); - dstOffset = dstAllocOffset + srcAllocSize; - m_BytesMoved += srcAllocSize; - ++m_AllocationsMoved; - - VmaSuballocationList::iterator nextSuballocIt = srcSuballocIt; - ++nextSuballocIt; - pSrcMetadata->m_Suballocations.erase(srcSuballocIt); - srcSuballocIt = nextSuballocIt; - - pDstMetadata->m_Suballocations.push_back(suballoc); - - move.srcBlockIndex = srcOrigBlockIndex; - move.dstBlockIndex = dstOrigBlockIndex; - move.srcOffset = srcAllocOffset; - move.dstOffset = dstAllocOffset; - move.size = srcAllocSize; - - moves.push_back(move); + VMA_DEBUG_LOG_FORMAT(" Returned from existing block #%u", pCurrBlock->GetId()); + IncrementallySortBlocks(); + return VK_SUCCESS; } } } } - m_BlockInfos.clear(); - - PostprocessMetadata(); + // 2. Try to create new block. + if (canCreateNewBlock) + { + // Calculate optimal size for new block. + VkDeviceSize newBlockSize = m_PreferredBlockSize; + uint32_t newBlockSizeShift = 0; + const uint32_t NEW_BLOCK_SIZE_SHIFT_MAX = 3; - return VK_SUCCESS; -} + if (!m_ExplicitBlockSize) + { + // Allocate 1/8, 1/4, 1/2 as first blocks. + const VkDeviceSize maxExistingBlockSize = CalcMaxBlockSize(); + for (uint32_t i = 0; i < NEW_BLOCK_SIZE_SHIFT_MAX; ++i) + { + const VkDeviceSize smallerNewBlockSize = newBlockSize / 2; + if (smallerNewBlockSize > maxExistingBlockSize && smallerNewBlockSize >= size * 2) + { + newBlockSize = smallerNewBlockSize; + ++newBlockSizeShift; + } + else + { + break; + } + } + } -void VmaDefragmentationAlgorithm_Fast::PreprocessMetadata() -{ - const size_t blockCount = m_pBlockVector->GetBlockCount(); - for(size_t blockIndex = 0; blockIndex < blockCount; ++blockIndex) - { - VmaBlockMetadata_Generic* const pMetadata = - (VmaBlockMetadata_Generic*)m_pBlockVector->GetBlock(blockIndex)->m_pMetadata; - pMetadata->m_FreeCount = 0; - pMetadata->m_SumFreeSize = pMetadata->GetSize(); - pMetadata->m_FreeSuballocationsBySize.clear(); - for(VmaSuballocationList::iterator it = pMetadata->m_Suballocations.begin(); - it != pMetadata->m_Suballocations.end(); ) + size_t newBlockIndex = 0; + VkResult res = (newBlockSize <= freeMemory || !canFallbackToDedicated) ? + CreateBlock(newBlockSize, &newBlockIndex) : VK_ERROR_OUT_OF_DEVICE_MEMORY; + // Allocation of this size failed? Try 1/2, 1/4, 1/8 of m_PreferredBlockSize. + if (!m_ExplicitBlockSize) + { + while (res < 0 && newBlockSizeShift < NEW_BLOCK_SIZE_SHIFT_MAX) + { + const VkDeviceSize smallerNewBlockSize = newBlockSize / 2; + if (smallerNewBlockSize >= size) + { + newBlockSize = smallerNewBlockSize; + ++newBlockSizeShift; + res = (newBlockSize <= freeMemory || !canFallbackToDedicated) ? + CreateBlock(newBlockSize, &newBlockIndex) : VK_ERROR_OUT_OF_DEVICE_MEMORY; + } + else + { + break; + } + } + } + + if (res == VK_SUCCESS) { - if(it->type == VMA_SUBALLOCATION_TYPE_FREE) + VmaDeviceMemoryBlock* const pBlock = m_Blocks[newBlockIndex]; + VMA_ASSERT(pBlock->m_pMetadata->GetSize() >= size); + + res = AllocateFromBlock( + pBlock, size, alignment, createInfo.flags, createInfo.pUserData, suballocType, strategy, pAllocation); + if (res == VK_SUCCESS) { - VmaSuballocationList::iterator nextIt = it; - ++nextIt; - pMetadata->m_Suballocations.erase(it); - it = nextIt; + VMA_DEBUG_LOG_FORMAT(" Created new block #%u Size=%llu", pBlock->GetId(), newBlockSize); + IncrementallySortBlocks(); + return VK_SUCCESS; } else { - ++it; + // Allocation from new block failed, possibly due to VMA_DEBUG_MARGIN or alignment. + return VK_ERROR_OUT_OF_DEVICE_MEMORY; } } } + + return VK_ERROR_OUT_OF_DEVICE_MEMORY; } -void VmaDefragmentationAlgorithm_Fast::PostprocessMetadata() +void VmaBlockVector::Free(const VmaAllocation hAllocation) { - const size_t blockCount = m_pBlockVector->GetBlockCount(); - for(size_t blockIndex = 0; blockIndex < blockCount; ++blockIndex) + VmaDeviceMemoryBlock* pBlockToDelete = VMA_NULL; + + bool budgetExceeded = false; + { + const uint32_t heapIndex = m_hAllocator->MemoryTypeIndexToHeapIndex(m_MemoryTypeIndex); + VmaBudget heapBudget = {}; + m_hAllocator->GetHeapBudgets(&heapBudget, heapIndex, 1); + budgetExceeded = heapBudget.usage >= heapBudget.budget; + } + + // Scope for lock. { - VmaBlockMetadata_Generic* const pMetadata = - (VmaBlockMetadata_Generic*)m_pBlockVector->GetBlock(blockIndex)->m_pMetadata; - const VkDeviceSize blockSize = pMetadata->GetSize(); + VmaMutexLockWrite lock(m_Mutex, m_hAllocator->m_UseMutex); + + VmaDeviceMemoryBlock* pBlock = hAllocation->GetBlock(); - // No allocations in this block - entire area is free. - if(pMetadata->m_Suballocations.empty()) + if (IsCorruptionDetectionEnabled()) { - pMetadata->m_FreeCount = 1; - //pMetadata->m_SumFreeSize is already set to blockSize. - VmaSuballocation suballoc = { - 0, // offset - blockSize, // size - VMA_NULL, // hAllocation - VMA_SUBALLOCATION_TYPE_FREE }; - pMetadata->m_Suballocations.push_back(suballoc); - pMetadata->RegisterFreeSuballocation(pMetadata->m_Suballocations.begin()); + VkResult res = pBlock->ValidateMagicValueAfterAllocation(m_hAllocator, hAllocation->GetOffset(), hAllocation->GetSize()); + VMA_ASSERT(res == VK_SUCCESS && "Couldn't map block memory to validate magic value."); } - // There are some allocations in this block. - else + + if (hAllocation->IsPersistentMap()) { - VkDeviceSize offset = 0; - VmaSuballocationList::iterator it; - for(it = pMetadata->m_Suballocations.begin(); - it != pMetadata->m_Suballocations.end(); - ++it) - { - VMA_ASSERT(it->type != VMA_SUBALLOCATION_TYPE_FREE); - VMA_ASSERT(it->offset >= offset); + pBlock->Unmap(m_hAllocator, 1); + } - // Need to insert preceding free space. - if(it->offset > offset) - { - ++pMetadata->m_FreeCount; - const VkDeviceSize freeSize = it->offset - offset; - VmaSuballocation suballoc = { - offset, // offset - freeSize, // size - VMA_NULL, // hAllocation - VMA_SUBALLOCATION_TYPE_FREE }; - VmaSuballocationList::iterator precedingFreeIt = pMetadata->m_Suballocations.insert(it, suballoc); - if(freeSize >= VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER) - { - pMetadata->m_FreeSuballocationsBySize.push_back(precedingFreeIt); - } - } + const bool hadEmptyBlockBeforeFree = HasEmptyBlock(); + pBlock->m_pMetadata->Free(hAllocation->GetAllocHandle()); + pBlock->PostFree(m_hAllocator); + VMA_HEAVY_ASSERT(pBlock->Validate()); - pMetadata->m_SumFreeSize -= it->size; - offset = it->offset + it->size; - } + VMA_DEBUG_LOG_FORMAT(" Freed from MemoryTypeIndex=%u", m_MemoryTypeIndex); - // Need to insert trailing free space. - if(offset < blockSize) + const bool canDeleteBlock = m_Blocks.size() > m_MinBlockCount; + // pBlock became empty after this deallocation. + if (pBlock->m_pMetadata->IsEmpty()) + { + // Already had empty block. We don't want to have two, so delete this one. + if ((hadEmptyBlockBeforeFree || budgetExceeded) && canDeleteBlock) { - ++pMetadata->m_FreeCount; - const VkDeviceSize freeSize = blockSize - offset; - VmaSuballocation suballoc = { - offset, // offset - freeSize, // size - VMA_NULL, // hAllocation - VMA_SUBALLOCATION_TYPE_FREE }; - VMA_ASSERT(it == pMetadata->m_Suballocations.end()); - VmaSuballocationList::iterator trailingFreeIt = pMetadata->m_Suballocations.insert(it, suballoc); - if(freeSize > VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER) - { - pMetadata->m_FreeSuballocationsBySize.push_back(trailingFreeIt); - } + pBlockToDelete = pBlock; + Remove(pBlock); + } + // else: We now have one empty block - leave it. A hysteresis to avoid allocating whole block back and forth. + } + // pBlock didn't become empty, but we have another empty block - find and free that one. + // (This is optional, heuristics.) + else if (hadEmptyBlockBeforeFree && canDeleteBlock) + { + VmaDeviceMemoryBlock* pLastBlock = m_Blocks.back(); + if (pLastBlock->m_pMetadata->IsEmpty()) + { + pBlockToDelete = pLastBlock; + m_Blocks.pop_back(); } - - VMA_SORT( - pMetadata->m_FreeSuballocationsBySize.begin(), - pMetadata->m_FreeSuballocationsBySize.end(), - VmaSuballocationItemSizeLess()); } - VMA_HEAVY_ASSERT(pMetadata->Validate()); + IncrementallySortBlocks(); + } + + // Destruction of a free block. Deferred until this point, outside of mutex + // lock, for performance reason. + if (pBlockToDelete != VMA_NULL) + { + VMA_DEBUG_LOG_FORMAT(" Deleted empty block #%u", pBlockToDelete->GetId()); + pBlockToDelete->Destroy(m_hAllocator); + vma_delete(m_hAllocator, pBlockToDelete); } + + m_hAllocator->m_Budget.RemoveAllocation(m_hAllocator->MemoryTypeIndexToHeapIndex(m_MemoryTypeIndex), hAllocation->GetSize()); + m_hAllocator->m_AllocationObjectAllocator.Free(hAllocation); } -void VmaDefragmentationAlgorithm_Fast::InsertSuballoc(VmaBlockMetadata_Generic* pMetadata, const VmaSuballocation& suballoc) +VkDeviceSize VmaBlockVector::CalcMaxBlockSize() const { - // TODO: Optimize somehow. Remember iterator instead of searching for it linearly. - VmaSuballocationList::iterator it = pMetadata->m_Suballocations.begin(); - while(it != pMetadata->m_Suballocations.end()) + VkDeviceSize result = 0; + for (size_t i = m_Blocks.size(); i--; ) { - if(it->offset < suballoc.offset) + result = VMA_MAX(result, m_Blocks[i]->m_pMetadata->GetSize()); + if (result >= m_PreferredBlockSize) { - ++it; + break; } } - pMetadata->m_Suballocations.insert(it, suballoc); + return result; } -//////////////////////////////////////////////////////////////////////////////// -// VmaBlockVectorDefragmentationContext - -VmaBlockVectorDefragmentationContext::VmaBlockVectorDefragmentationContext( - VmaAllocator hAllocator, - VmaPool hCustomPool, - VmaBlockVector* pBlockVector, - uint32_t currFrameIndex) : - res(VK_SUCCESS), - mutexLocked(false), - blockContexts(VmaStlAllocator(hAllocator->GetAllocationCallbacks())), - defragmentationMoves(VmaStlAllocator(hAllocator->GetAllocationCallbacks())), - defragmentationMovesProcessed(0), - defragmentationMovesCommitted(0), - hasDefragmentationPlan(0), - m_hAllocator(hAllocator), - m_hCustomPool(hCustomPool), - m_pBlockVector(pBlockVector), - m_CurrFrameIndex(currFrameIndex), - m_pAlgorithm(VMA_NULL), - m_Allocations(VmaStlAllocator(hAllocator->GetAllocationCallbacks())), - m_AllAllocations(false) +void VmaBlockVector::Remove(VmaDeviceMemoryBlock* pBlock) { + for (uint32_t blockIndex = 0; blockIndex < m_Blocks.size(); ++blockIndex) + { + if (m_Blocks[blockIndex] == pBlock) + { + VmaVectorRemove(m_Blocks, blockIndex); + return; + } + } + VMA_ASSERT(0); } -VmaBlockVectorDefragmentationContext::~VmaBlockVectorDefragmentationContext() +void VmaBlockVector::IncrementallySortBlocks() { - vma_delete(m_hAllocator, m_pAlgorithm); + if (!m_IncrementalSort) + return; + if (m_Algorithm != VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT) + { + // Bubble sort only until first swap. + for (size_t i = 1; i < m_Blocks.size(); ++i) + { + if (m_Blocks[i - 1]->m_pMetadata->GetSumFreeSize() > m_Blocks[i]->m_pMetadata->GetSumFreeSize()) + { + VMA_SWAP(m_Blocks[i - 1], m_Blocks[i]); + return; + } + } + } } -void VmaBlockVectorDefragmentationContext::AddAllocation(VmaAllocation hAlloc, VkBool32* pChanged) +void VmaBlockVector::SortByFreeSize() { - AllocInfo info = { hAlloc, pChanged }; - m_Allocations.push_back(info); + VMA_SORT(m_Blocks.begin(), m_Blocks.end(), + [](VmaDeviceMemoryBlock* b1, VmaDeviceMemoryBlock* b2) -> bool + { + return b1->m_pMetadata->GetSumFreeSize() < b2->m_pMetadata->GetSumFreeSize(); + }); } -void VmaBlockVectorDefragmentationContext::Begin(bool overlappingMoveSupported, VmaDefragmentationFlags flags) +VkResult VmaBlockVector::AllocateFromBlock( + VmaDeviceMemoryBlock* pBlock, + VkDeviceSize size, + VkDeviceSize alignment, + VmaAllocationCreateFlags allocFlags, + void* pUserData, + VmaSuballocationType suballocType, + uint32_t strategy, + VmaAllocation* pAllocation) { - const bool allAllocations = m_AllAllocations || - m_Allocations.size() == m_pBlockVector->CalcAllocationCount(); + const bool isUpperAddress = (allocFlags & VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT) != 0; - /******************************** - HERE IS THE CHOICE OF DEFRAGMENTATION ALGORITHM. - ********************************/ + VmaAllocationRequest currRequest = {}; + if (pBlock->m_pMetadata->CreateAllocationRequest( + size, + alignment, + isUpperAddress, + suballocType, + strategy, + &currRequest)) + { + return CommitAllocationRequest(currRequest, pBlock, alignment, allocFlags, pUserData, suballocType, pAllocation); + } + return VK_ERROR_OUT_OF_DEVICE_MEMORY; +} - /* - Fast algorithm is supported only when certain criteria are met: - - VMA_DEBUG_MARGIN is 0. - - All allocations in this block vector are moveable. - - There is no possibility of image/buffer granularity conflict. - - The defragmentation is not incremental - */ - if(VMA_DEBUG_MARGIN == 0 && - allAllocations && - !m_pBlockVector->IsBufferImageGranularityConflictPossible() && - !(flags & VMA_DEFRAGMENTATION_FLAG_INCREMENTAL)) +VkResult VmaBlockVector::CommitAllocationRequest( + VmaAllocationRequest& allocRequest, + VmaDeviceMemoryBlock* pBlock, + VkDeviceSize alignment, + VmaAllocationCreateFlags allocFlags, + void* pUserData, + VmaSuballocationType suballocType, + VmaAllocation* pAllocation) +{ + const bool mapped = (allocFlags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0; + const bool isUserDataString = (allocFlags & VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT) != 0; + const bool isMappingAllowed = (allocFlags & + (VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT)) != 0; + + pBlock->PostAlloc(m_hAllocator); + // Allocate from pCurrBlock. + if (mapped) { - m_pAlgorithm = vma_new(m_hAllocator, VmaDefragmentationAlgorithm_Fast)( - m_hAllocator, m_pBlockVector, m_CurrFrameIndex, overlappingMoveSupported); + VkResult res = pBlock->Map(m_hAllocator, 1, VMA_NULL); + if (res != VK_SUCCESS) + { + return res; + } } + + *pAllocation = m_hAllocator->m_AllocationObjectAllocator.Allocate(isMappingAllowed); + pBlock->m_pMetadata->Alloc(allocRequest, suballocType, *pAllocation); + (*pAllocation)->InitBlockAllocation( + pBlock, + allocRequest.allocHandle, + alignment, + allocRequest.size, // Not size, as actual allocation size may be larger than requested! + m_MemoryTypeIndex, + suballocType, + mapped); + VMA_HEAVY_ASSERT(pBlock->Validate()); + if (isUserDataString) + (*pAllocation)->SetName(m_hAllocator, (const char*)pUserData); else + (*pAllocation)->SetUserData(m_hAllocator, pUserData); + m_hAllocator->m_Budget.AddAllocation(m_hAllocator->MemoryTypeIndexToHeapIndex(m_MemoryTypeIndex), allocRequest.size); + if (VMA_DEBUG_INITIALIZE_ALLOCATIONS) { - m_pAlgorithm = vma_new(m_hAllocator, VmaDefragmentationAlgorithm_Generic)( - m_hAllocator, m_pBlockVector, m_CurrFrameIndex, overlappingMoveSupported); + m_hAllocator->FillAllocation(*pAllocation, VMA_ALLOCATION_FILL_PATTERN_CREATED); } + if (IsCorruptionDetectionEnabled()) + { + VkResult res = pBlock->WriteMagicValueAfterAllocation(m_hAllocator, (*pAllocation)->GetOffset(), allocRequest.size); + VMA_ASSERT(res == VK_SUCCESS && "Couldn't map block memory to write magic value."); + } + return VK_SUCCESS; +} + +VkResult VmaBlockVector::CreateBlock(VkDeviceSize blockSize, size_t* pNewBlockIndex) +{ + VkMemoryAllocateInfo allocInfo = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO }; + allocInfo.pNext = m_pMemoryAllocateNext; + allocInfo.memoryTypeIndex = m_MemoryTypeIndex; + allocInfo.allocationSize = blockSize; - if(allAllocations) +#if VMA_BUFFER_DEVICE_ADDRESS + // Every standalone block can potentially contain a buffer with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT - always enable the feature. + VkMemoryAllocateFlagsInfoKHR allocFlagsInfo = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR }; + if (m_hAllocator->m_UseKhrBufferDeviceAddress) { - m_pAlgorithm->AddAll(); + allocFlagsInfo.flags = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR; + VmaPnextChainPushFront(&allocInfo, &allocFlagsInfo); } - else +#endif // VMA_BUFFER_DEVICE_ADDRESS + +#if VMA_MEMORY_PRIORITY + VkMemoryPriorityAllocateInfoEXT priorityInfo = { VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT }; + if (m_hAllocator->m_UseExtMemoryPriority) { - for(size_t i = 0, count = m_Allocations.size(); i < count; ++i) - { - m_pAlgorithm->AddAllocation(m_Allocations[i].hAlloc, m_Allocations[i].pChanged); - } + VMA_ASSERT(m_Priority >= 0.f && m_Priority <= 1.f); + priorityInfo.priority = m_Priority; + VmaPnextChainPushFront(&allocInfo, &priorityInfo); } -} +#endif // VMA_MEMORY_PRIORITY -//////////////////////////////////////////////////////////////////////////////// -// VmaDefragmentationContext +#if VMA_EXTERNAL_MEMORY + // Attach VkExportMemoryAllocateInfoKHR if necessary. + VkExportMemoryAllocateInfoKHR exportMemoryAllocInfo = { VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR }; + exportMemoryAllocInfo.handleTypes = m_hAllocator->GetExternalMemoryHandleTypeFlags(m_MemoryTypeIndex); + if (exportMemoryAllocInfo.handleTypes != 0) + { + VmaPnextChainPushFront(&allocInfo, &exportMemoryAllocInfo); + } +#endif // VMA_EXTERNAL_MEMORY -VmaDefragmentationContext_T::VmaDefragmentationContext_T( - VmaAllocator hAllocator, - uint32_t currFrameIndex, - uint32_t flags, - VmaDefragmentationStats* pStats) : - m_hAllocator(hAllocator), - m_CurrFrameIndex(currFrameIndex), - m_Flags(flags), - m_pStats(pStats), - m_CustomPoolContexts(VmaStlAllocator(hAllocator->GetAllocationCallbacks())) -{ - memset(m_DefaultPoolContexts, 0, sizeof(m_DefaultPoolContexts)); -} + VkDeviceMemory mem = VK_NULL_HANDLE; + VkResult res = m_hAllocator->AllocateVulkanMemory(&allocInfo, &mem); + if (res < 0) + { + return res; + } -VmaDefragmentationContext_T::~VmaDefragmentationContext_T() -{ - for(size_t i = m_CustomPoolContexts.size(); i--; ) + // New VkDeviceMemory successfully created. + + // Create new Allocation for it. + VmaDeviceMemoryBlock* const pBlock = vma_new(m_hAllocator, VmaDeviceMemoryBlock)(m_hAllocator); + pBlock->Init( + m_hAllocator, + m_hParentPool, + m_MemoryTypeIndex, + mem, + allocInfo.allocationSize, + m_NextBlockId++, + m_Algorithm, + m_BufferImageGranularity); + + m_Blocks.push_back(pBlock); + if (pNewBlockIndex != VMA_NULL) { - VmaBlockVectorDefragmentationContext* pBlockVectorCtx = m_CustomPoolContexts[i]; - pBlockVectorCtx->GetBlockVector()->DefragmentationEnd(pBlockVectorCtx, m_Flags, m_pStats); - vma_delete(m_hAllocator, pBlockVectorCtx); + *pNewBlockIndex = m_Blocks.size() - 1; } - for(size_t i = m_hAllocator->m_MemProps.memoryTypeCount; i--; ) + + return VK_SUCCESS; +} + +bool VmaBlockVector::HasEmptyBlock() +{ + for (size_t index = 0, count = m_Blocks.size(); index < count; ++index) { - VmaBlockVectorDefragmentationContext* pBlockVectorCtx = m_DefaultPoolContexts[i]; - if(pBlockVectorCtx) + VmaDeviceMemoryBlock* const pBlock = m_Blocks[index]; + if (pBlock->m_pMetadata->IsEmpty()) { - pBlockVectorCtx->GetBlockVector()->DefragmentationEnd(pBlockVectorCtx, m_Flags, m_pStats); - vma_delete(m_hAllocator, pBlockVectorCtx); + return true; } } + return false; } -void VmaDefragmentationContext_T::AddPools(uint32_t poolCount, const VmaPool* pPools) +#if VMA_STATS_STRING_ENABLED +void VmaBlockVector::PrintDetailedMap(class VmaJsonWriter& json) { - for(uint32_t poolIndex = 0; poolIndex < poolCount; ++poolIndex) - { - VmaPool pool = pPools[poolIndex]; - VMA_ASSERT(pool); - // Pools with algorithm other than default are not defragmented. - if(pool->m_BlockVector.GetAlgorithm() == 0) - { - VmaBlockVectorDefragmentationContext* pBlockVectorDefragCtx = VMA_NULL; + VmaMutexLockRead lock(m_Mutex, m_hAllocator->m_UseMutex); - for(size_t i = m_CustomPoolContexts.size(); i--; ) - { - if(m_CustomPoolContexts[i]->GetCustomPool() == pool) - { - pBlockVectorDefragCtx = m_CustomPoolContexts[i]; - break; - } - } - if(!pBlockVectorDefragCtx) - { - pBlockVectorDefragCtx = vma_new(m_hAllocator, VmaBlockVectorDefragmentationContext)( - m_hAllocator, - pool, - &pool->m_BlockVector, - m_CurrFrameIndex); - m_CustomPoolContexts.push_back(pBlockVectorDefragCtx); - } + json.BeginObject(); + for (size_t i = 0; i < m_Blocks.size(); ++i) + { + json.BeginString(); + json.ContinueString(m_Blocks[i]->GetId()); + json.EndString(); - pBlockVectorDefragCtx->AddAll(); - } + json.BeginObject(); + json.WriteString("MapRefCount"); + json.WriteNumber(m_Blocks[i]->GetMapRefCount()); + + m_Blocks[i]->m_pMetadata->PrintDetailedMap(json); + json.EndObject(); } + json.EndObject(); } +#endif // VMA_STATS_STRING_ENABLED -void VmaDefragmentationContext_T::AddAllocations( - uint32_t allocationCount, - const VmaAllocation* pAllocations, - VkBool32* pAllocationsChanged) +VkResult VmaBlockVector::CheckCorruption() { - // Dispatch pAllocations among defragmentators. Create them when necessary. - for(uint32_t allocIndex = 0; allocIndex < allocationCount; ++allocIndex) + if (!IsCorruptionDetectionEnabled()) + { + return VK_ERROR_FEATURE_NOT_PRESENT; + } + + VmaMutexLockRead lock(m_Mutex, m_hAllocator->m_UseMutex); + for (uint32_t blockIndex = 0; blockIndex < m_Blocks.size(); ++blockIndex) { - const VmaAllocation hAlloc = pAllocations[allocIndex]; - VMA_ASSERT(hAlloc); - // DedicatedAlloc cannot be defragmented. - if((hAlloc->GetType() == VmaAllocation_T::ALLOCATION_TYPE_BLOCK) && - // Lost allocation cannot be defragmented. - (hAlloc->GetLastUseFrameIndex() != VMA_FRAME_INDEX_LOST)) + VmaDeviceMemoryBlock* const pBlock = m_Blocks[blockIndex]; + VMA_ASSERT(pBlock); + VkResult res = pBlock->CheckCorruption(m_hAllocator); + if (res != VK_SUCCESS) { - VmaBlockVectorDefragmentationContext* pBlockVectorDefragCtx = VMA_NULL; + return res; + } + } + return VK_SUCCESS; +} - const VmaPool hAllocPool = hAlloc->GetBlock()->GetParentPool(); - // This allocation belongs to custom pool. - if(hAllocPool != VK_NULL_HANDLE) - { - // Pools with algorithm other than default are not defragmented. - if(hAllocPool->m_BlockVector.GetAlgorithm() == 0) - { - for(size_t i = m_CustomPoolContexts.size(); i--; ) - { - if(m_CustomPoolContexts[i]->GetCustomPool() == hAllocPool) - { - pBlockVectorDefragCtx = m_CustomPoolContexts[i]; - break; - } - } - if(!pBlockVectorDefragCtx) - { - pBlockVectorDefragCtx = vma_new(m_hAllocator, VmaBlockVectorDefragmentationContext)( - m_hAllocator, - hAllocPool, - &hAllocPool->m_BlockVector, - m_CurrFrameIndex); - m_CustomPoolContexts.push_back(pBlockVectorDefragCtx); - } - } - } - // This allocation belongs to default pool. - else - { - const uint32_t memTypeIndex = hAlloc->GetMemoryTypeIndex(); - pBlockVectorDefragCtx = m_DefaultPoolContexts[memTypeIndex]; - if(!pBlockVectorDefragCtx) - { - pBlockVectorDefragCtx = vma_new(m_hAllocator, VmaBlockVectorDefragmentationContext)( - m_hAllocator, - VMA_NULL, // hCustomPool - m_hAllocator->m_pBlockVectors[memTypeIndex], - m_CurrFrameIndex); - m_DefaultPoolContexts[memTypeIndex] = pBlockVectorDefragCtx; - } - } +#endif // _VMA_BLOCK_VECTOR_FUNCTIONS + +#ifndef _VMA_DEFRAGMENTATION_CONTEXT_FUNCTIONS +VmaDefragmentationContext_T::VmaDefragmentationContext_T( + VmaAllocator hAllocator, + const VmaDefragmentationInfo& info) + : m_MaxPassBytes(info.maxBytesPerPass == 0 ? VK_WHOLE_SIZE : info.maxBytesPerPass), + m_MaxPassAllocations(info.maxAllocationsPerPass == 0 ? UINT32_MAX : info.maxAllocationsPerPass), + m_BreakCallback(info.pfnBreakCallback), + m_BreakCallbackUserData(info.pBreakCallbackUserData), + m_MoveAllocator(hAllocator->GetAllocationCallbacks()), + m_Moves(m_MoveAllocator) +{ + m_Algorithm = info.flags & VMA_DEFRAGMENTATION_FLAG_ALGORITHM_MASK; - if(pBlockVectorDefragCtx) + if (info.pool != VMA_NULL) + { + m_BlockVectorCount = 1; + m_PoolBlockVector = &info.pool->m_BlockVector; + m_pBlockVectors = &m_PoolBlockVector; + m_PoolBlockVector->SetIncrementalSort(false); + m_PoolBlockVector->SortByFreeSize(); + } + else + { + m_BlockVectorCount = hAllocator->GetMemoryTypeCount(); + m_PoolBlockVector = VMA_NULL; + m_pBlockVectors = hAllocator->m_pBlockVectors; + for (uint32_t i = 0; i < m_BlockVectorCount; ++i) + { + VmaBlockVector* vector = m_pBlockVectors[i]; + if (vector != VMA_NULL) { - VkBool32* const pChanged = (pAllocationsChanged != VMA_NULL) ? - &pAllocationsChanged[allocIndex] : VMA_NULL; - pBlockVectorDefragCtx->AddAllocation(hAlloc, pChanged); + vector->SetIncrementalSort(false); + vector->SortByFreeSize(); } } } -} -VkResult VmaDefragmentationContext_T::Defragment( - VkDeviceSize maxCpuBytesToMove, uint32_t maxCpuAllocationsToMove, - VkDeviceSize maxGpuBytesToMove, uint32_t maxGpuAllocationsToMove, - VkCommandBuffer commandBuffer, VmaDefragmentationStats* pStats, VmaDefragmentationFlags flags) -{ - if(pStats) + switch (m_Algorithm) { - memset(pStats, 0, sizeof(VmaDefragmentationStats)); + case 0: // Default algorithm + m_Algorithm = VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT; + m_AlgorithmState = vma_new_array(hAllocator, StateBalanced, m_BlockVectorCount); + break; + case VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT: + m_AlgorithmState = vma_new_array(hAllocator, StateBalanced, m_BlockVectorCount); + break; + case VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT: + if (hAllocator->GetBufferImageGranularity() > 1) + { + m_AlgorithmState = vma_new_array(hAllocator, StateExtensive, m_BlockVectorCount); + } + break; } +} - if(flags & VMA_DEFRAGMENTATION_FLAG_INCREMENTAL) +VmaDefragmentationContext_T::~VmaDefragmentationContext_T() +{ + if (m_PoolBlockVector != VMA_NULL) { - // For incremental defragmetnations, we just earmark how much we can move - // The real meat is in the defragmentation steps - m_MaxCpuBytesToMove = maxCpuBytesToMove; - m_MaxCpuAllocationsToMove = maxCpuAllocationsToMove; - - m_MaxGpuBytesToMove = maxGpuBytesToMove; - m_MaxGpuAllocationsToMove = maxGpuAllocationsToMove; - - if(m_MaxCpuBytesToMove == 0 && m_MaxCpuAllocationsToMove == 0 && - m_MaxGpuBytesToMove == 0 && m_MaxGpuAllocationsToMove == 0) - return VK_SUCCESS; - - return VK_NOT_READY; + m_PoolBlockVector->SetIncrementalSort(true); } - - if(commandBuffer == VK_NULL_HANDLE) + else { - maxGpuBytesToMove = 0; - maxGpuAllocationsToMove = 0; - } - - VkResult res = VK_SUCCESS; - - // Process default pools. - for(uint32_t memTypeIndex = 0; - memTypeIndex < m_hAllocator->GetMemoryTypeCount() && res >= VK_SUCCESS; - ++memTypeIndex) - { - VmaBlockVectorDefragmentationContext* pBlockVectorCtx = m_DefaultPoolContexts[memTypeIndex]; - if(pBlockVectorCtx) - { - VMA_ASSERT(pBlockVectorCtx->GetBlockVector()); - pBlockVectorCtx->GetBlockVector()->Defragment( - pBlockVectorCtx, - pStats, flags, - maxCpuBytesToMove, maxCpuAllocationsToMove, - maxGpuBytesToMove, maxGpuAllocationsToMove, - commandBuffer); - if(pBlockVectorCtx->res != VK_SUCCESS) - { - res = pBlockVectorCtx->res; - } + for (uint32_t i = 0; i < m_BlockVectorCount; ++i) + { + VmaBlockVector* vector = m_pBlockVectors[i]; + if (vector != VMA_NULL) + vector->SetIncrementalSort(true); } } - // Process custom pools. - for(size_t customCtxIndex = 0, customCtxCount = m_CustomPoolContexts.size(); - customCtxIndex < customCtxCount && res >= VK_SUCCESS; - ++customCtxIndex) + if (m_AlgorithmState) { - VmaBlockVectorDefragmentationContext* pBlockVectorCtx = m_CustomPoolContexts[customCtxIndex]; - VMA_ASSERT(pBlockVectorCtx && pBlockVectorCtx->GetBlockVector()); - pBlockVectorCtx->GetBlockVector()->Defragment( - pBlockVectorCtx, - pStats, flags, - maxCpuBytesToMove, maxCpuAllocationsToMove, - maxGpuBytesToMove, maxGpuAllocationsToMove, - commandBuffer); - if(pBlockVectorCtx->res != VK_SUCCESS) + switch (m_Algorithm) { - res = pBlockVectorCtx->res; + case VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT: + vma_delete_array(m_MoveAllocator.m_pCallbacks, reinterpret_cast(m_AlgorithmState), m_BlockVectorCount); + break; + case VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT: + vma_delete_array(m_MoveAllocator.m_pCallbacks, reinterpret_cast(m_AlgorithmState), m_BlockVectorCount); + break; + default: + VMA_ASSERT(0); } } - - return res; } -VkResult VmaDefragmentationContext_T::DefragmentPassBegin(VmaDefragmentationPassInfo* pInfo) +VkResult VmaDefragmentationContext_T::DefragmentPassBegin(VmaDefragmentationPassMoveInfo& moveInfo) { - VmaDefragmentationPassMoveInfo* pCurrentMove = pInfo->pMoves; - uint32_t movesLeft = pInfo->moveCount; + if (m_PoolBlockVector != VMA_NULL) + { + VmaMutexLockWrite lock(m_PoolBlockVector->GetMutex(), m_PoolBlockVector->GetAllocator()->m_UseMutex); - // Process default pools. - for(uint32_t memTypeIndex = 0; - memTypeIndex < m_hAllocator->GetMemoryTypeCount(); - ++memTypeIndex) + if (m_PoolBlockVector->GetBlockCount() > 1) + ComputeDefragmentation(*m_PoolBlockVector, 0); + else if (m_PoolBlockVector->GetBlockCount() == 1) + ReallocWithinBlock(*m_PoolBlockVector, m_PoolBlockVector->GetBlock(0)); + } + else { - VmaBlockVectorDefragmentationContext *pBlockVectorCtx = m_DefaultPoolContexts[memTypeIndex]; - if(pBlockVectorCtx) + for (uint32_t i = 0; i < m_BlockVectorCount; ++i) { - VMA_ASSERT(pBlockVectorCtx->GetBlockVector()); - - if(!pBlockVectorCtx->hasDefragmentationPlan) + if (m_pBlockVectors[i] != VMA_NULL) { - pBlockVectorCtx->GetBlockVector()->Defragment( - pBlockVectorCtx, - m_pStats, m_Flags, - m_MaxCpuBytesToMove, m_MaxCpuAllocationsToMove, - m_MaxGpuBytesToMove, m_MaxGpuAllocationsToMove, - VK_NULL_HANDLE); + VmaMutexLockWrite lock(m_pBlockVectors[i]->GetMutex(), m_pBlockVectors[i]->GetAllocator()->m_UseMutex); - if(pBlockVectorCtx->res < VK_SUCCESS) - continue; - - pBlockVectorCtx->hasDefragmentationPlan = true; + if (m_pBlockVectors[i]->GetBlockCount() > 1) + { + if (ComputeDefragmentation(*m_pBlockVectors[i], i)) + break; + } + else if (m_pBlockVectors[i]->GetBlockCount() == 1) + { + if (ReallocWithinBlock(*m_pBlockVectors[i], m_pBlockVectors[i]->GetBlock(0))) + break; + } } - - const uint32_t processed = pBlockVectorCtx->GetBlockVector()->ProcessDefragmentations( - pBlockVectorCtx, - pCurrentMove, movesLeft); - - movesLeft -= processed; - pCurrentMove += processed; } } - // Process custom pools. - for(size_t customCtxIndex = 0, customCtxCount = m_CustomPoolContexts.size(); - customCtxIndex < customCtxCount; - ++customCtxIndex) + moveInfo.moveCount = static_cast(m_Moves.size()); + if (moveInfo.moveCount > 0) { - VmaBlockVectorDefragmentationContext *pBlockVectorCtx = m_CustomPoolContexts[customCtxIndex]; - VMA_ASSERT(pBlockVectorCtx && pBlockVectorCtx->GetBlockVector()); - - if(!pBlockVectorCtx->hasDefragmentationPlan) - { - pBlockVectorCtx->GetBlockVector()->Defragment( - pBlockVectorCtx, - m_pStats, m_Flags, - m_MaxCpuBytesToMove, m_MaxCpuAllocationsToMove, - m_MaxGpuBytesToMove, m_MaxGpuAllocationsToMove, - VK_NULL_HANDLE); - - if(pBlockVectorCtx->res < VK_SUCCESS) - continue; - - pBlockVectorCtx->hasDefragmentationPlan = true; - } - - const uint32_t processed = pBlockVectorCtx->GetBlockVector()->ProcessDefragmentations( - pBlockVectorCtx, - pCurrentMove, movesLeft); - - movesLeft -= processed; - pCurrentMove += processed; + moveInfo.pMoves = m_Moves.data(); + return VK_INCOMPLETE; } - pInfo->moveCount = pInfo->moveCount - movesLeft; - + moveInfo.pMoves = VMA_NULL; return VK_SUCCESS; } -VkResult VmaDefragmentationContext_T::DefragmentPassEnd() + +VkResult VmaDefragmentationContext_T::DefragmentPassEnd(VmaDefragmentationPassMoveInfo& moveInfo) { - VkResult res = VK_SUCCESS; + VMA_ASSERT(moveInfo.moveCount > 0 ? moveInfo.pMoves != VMA_NULL : true); - // Process default pools. - for(uint32_t memTypeIndex = 0; - memTypeIndex < m_hAllocator->GetMemoryTypeCount(); - ++memTypeIndex) + VkResult result = VK_SUCCESS; + VmaStlAllocator blockAllocator(m_MoveAllocator.m_pCallbacks); + VmaVector> immovableBlocks(blockAllocator); + VmaVector> mappedBlocks(blockAllocator); + + VmaAllocator allocator = VMA_NULL; + for (uint32_t i = 0; i < moveInfo.moveCount; ++i) { - VmaBlockVectorDefragmentationContext *pBlockVectorCtx = m_DefaultPoolContexts[memTypeIndex]; - if(pBlockVectorCtx) + VmaDefragmentationMove& move = moveInfo.pMoves[i]; + size_t prevCount = 0, currentCount = 0; + VkDeviceSize freedBlockSize = 0; + + uint32_t vectorIndex; + VmaBlockVector* vector; + if (m_PoolBlockVector != VMA_NULL) + { + vectorIndex = 0; + vector = m_PoolBlockVector; + } + else { - VMA_ASSERT(pBlockVectorCtx->GetBlockVector()); + vectorIndex = move.srcAllocation->GetMemoryTypeIndex(); + vector = m_pBlockVectors[vectorIndex]; + VMA_ASSERT(vector != VMA_NULL); + } - if(!pBlockVectorCtx->hasDefragmentationPlan) + switch (move.operation) + { + case VMA_DEFRAGMENTATION_MOVE_OPERATION_COPY: + { + uint8_t mapCount = move.srcAllocation->SwapBlockAllocation(vector->m_hAllocator, move.dstTmpAllocation); + if (mapCount > 0) { - res = VK_NOT_READY; - continue; + allocator = vector->m_hAllocator; + VmaDeviceMemoryBlock* newMapBlock = move.srcAllocation->GetBlock(); + bool notPresent = true; + for (FragmentedBlock& block : mappedBlocks) + { + if (block.block == newMapBlock) + { + notPresent = false; + block.data += mapCount; + break; + } + } + if (notPresent) + mappedBlocks.push_back({ mapCount, newMapBlock }); } - pBlockVectorCtx->GetBlockVector()->CommitDefragmentations( - pBlockVectorCtx, m_pStats); + // Scope for locks, Free have it's own lock + { + VmaMutexLockRead lock(vector->GetMutex(), vector->GetAllocator()->m_UseMutex); + prevCount = vector->GetBlockCount(); + freedBlockSize = move.dstTmpAllocation->GetBlock()->m_pMetadata->GetSize(); + } + vector->Free(move.dstTmpAllocation); + { + VmaMutexLockRead lock(vector->GetMutex(), vector->GetAllocator()->m_UseMutex); + currentCount = vector->GetBlockCount(); + } - if(pBlockVectorCtx->defragmentationMoves.size() != pBlockVectorCtx->defragmentationMovesCommitted) - res = VK_NOT_READY; + result = VK_INCOMPLETE; + break; } - } - - // Process custom pools. - for(size_t customCtxIndex = 0, customCtxCount = m_CustomPoolContexts.size(); - customCtxIndex < customCtxCount; - ++customCtxIndex) - { - VmaBlockVectorDefragmentationContext *pBlockVectorCtx = m_CustomPoolContexts[customCtxIndex]; - VMA_ASSERT(pBlockVectorCtx && pBlockVectorCtx->GetBlockVector()); - - if(!pBlockVectorCtx->hasDefragmentationPlan) + case VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE: { - res = VK_NOT_READY; - continue; + m_PassStats.bytesMoved -= move.srcAllocation->GetSize(); + --m_PassStats.allocationsMoved; + vector->Free(move.dstTmpAllocation); + + VmaDeviceMemoryBlock* newBlock = move.srcAllocation->GetBlock(); + bool notPresent = true; + for (const FragmentedBlock& block : immovableBlocks) + { + if (block.block == newBlock) + { + notPresent = false; + break; + } + } + if (notPresent) + immovableBlocks.push_back({ vectorIndex, newBlock }); + break; } + case VMA_DEFRAGMENTATION_MOVE_OPERATION_DESTROY: + { + m_PassStats.bytesMoved -= move.srcAllocation->GetSize(); + --m_PassStats.allocationsMoved; + // Scope for locks, Free have it's own lock + { + VmaMutexLockRead lock(vector->GetMutex(), vector->GetAllocator()->m_UseMutex); + prevCount = vector->GetBlockCount(); + freedBlockSize = move.srcAllocation->GetBlock()->m_pMetadata->GetSize(); + } + vector->Free(move.srcAllocation); + { + VmaMutexLockRead lock(vector->GetMutex(), vector->GetAllocator()->m_UseMutex); + currentCount = vector->GetBlockCount(); + } + freedBlockSize *= prevCount - currentCount; - pBlockVectorCtx->GetBlockVector()->CommitDefragmentations( - pBlockVectorCtx, m_pStats); + VkDeviceSize dstBlockSize; + { + VmaMutexLockRead lock(vector->GetMutex(), vector->GetAllocator()->m_UseMutex); + dstBlockSize = move.dstTmpAllocation->GetBlock()->m_pMetadata->GetSize(); + } + vector->Free(move.dstTmpAllocation); + { + VmaMutexLockRead lock(vector->GetMutex(), vector->GetAllocator()->m_UseMutex); + freedBlockSize += dstBlockSize * (currentCount - vector->GetBlockCount()); + currentCount = vector->GetBlockCount(); + } - if(pBlockVectorCtx->defragmentationMoves.size() != pBlockVectorCtx->defragmentationMovesCommitted) - res = VK_NOT_READY; - } + result = VK_INCOMPLETE; + break; + } + default: + VMA_ASSERT(0); + } - return res; -} + if (prevCount > currentCount) + { + size_t freedBlocks = prevCount - currentCount; + m_PassStats.deviceMemoryBlocksFreed += static_cast(freedBlocks); + m_PassStats.bytesFreed += freedBlockSize; + } -//////////////////////////////////////////////////////////////////////////////// -// VmaRecorder + if(m_Algorithm == VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT && + m_AlgorithmState != VMA_NULL) + { + // Avoid unnecessary tries to allocate when new free block is available + StateExtensive& state = reinterpret_cast(m_AlgorithmState)[vectorIndex]; + if (state.firstFreeBlock != SIZE_MAX) + { + const size_t diff = prevCount - currentCount; + if (state.firstFreeBlock >= diff) + { + state.firstFreeBlock -= diff; + if (state.firstFreeBlock != 0) + state.firstFreeBlock -= vector->GetBlock(state.firstFreeBlock - 1)->m_pMetadata->IsEmpty(); + } + else + state.firstFreeBlock = 0; + } + } + } + moveInfo.moveCount = 0; + moveInfo.pMoves = VMA_NULL; + m_Moves.clear(); -#if VMA_RECORDING_ENABLED + // Update stats + m_GlobalStats.allocationsMoved += m_PassStats.allocationsMoved; + m_GlobalStats.bytesFreed += m_PassStats.bytesFreed; + m_GlobalStats.bytesMoved += m_PassStats.bytesMoved; + m_GlobalStats.deviceMemoryBlocksFreed += m_PassStats.deviceMemoryBlocksFreed; + m_PassStats = { 0 }; -VmaRecorder::VmaRecorder() : - m_UseMutex(true), - m_Flags(0), - m_File(VMA_NULL), - m_RecordingStartTime(std::chrono::high_resolution_clock::now()) -{ -} + // Move blocks with immovable allocations according to algorithm + if (immovableBlocks.size() > 0) + { + do + { + if(m_Algorithm == VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT) + { + if (m_AlgorithmState != VMA_NULL) + { + bool swapped = false; + // Move to the start of free blocks range + for (const FragmentedBlock& block : immovableBlocks) + { + StateExtensive& state = reinterpret_cast(m_AlgorithmState)[block.data]; + if (state.operation != StateExtensive::Operation::Cleanup) + { + VmaBlockVector* vector = m_pBlockVectors[block.data]; + VmaMutexLockWrite lock(vector->GetMutex(), vector->GetAllocator()->m_UseMutex); -VkResult VmaRecorder::Init(const VmaRecordSettings& settings, bool useMutex) -{ - m_UseMutex = useMutex; - m_Flags = settings.flags; + for (size_t i = 0, count = vector->GetBlockCount() - m_ImmovableBlockCount; i < count; ++i) + { + if (vector->GetBlock(i) == block.block) + { + VMA_SWAP(vector->m_Blocks[i], vector->m_Blocks[vector->GetBlockCount() - ++m_ImmovableBlockCount]); + if (state.firstFreeBlock != SIZE_MAX) + { + if (i + 1 < state.firstFreeBlock) + { + if (state.firstFreeBlock > 1) + VMA_SWAP(vector->m_Blocks[i], vector->m_Blocks[--state.firstFreeBlock]); + else + --state.firstFreeBlock; + } + } + swapped = true; + break; + } + } + } + } + if (swapped) + result = VK_INCOMPLETE; + break; + } + } -#if defined(_WIN32) - // Open file for writing. - errno_t err = fopen_s(&m_File, settings.pFilePath, "wb"); + // Move to the beginning + for (const FragmentedBlock& block : immovableBlocks) + { + VmaBlockVector* vector = m_pBlockVectors[block.data]; + VmaMutexLockWrite lock(vector->GetMutex(), vector->GetAllocator()->m_UseMutex); - if(err != 0) - { - return VK_ERROR_INITIALIZATION_FAILED; + for (size_t i = m_ImmovableBlockCount; i < vector->GetBlockCount(); ++i) + { + if (vector->GetBlock(i) == block.block) + { + VMA_SWAP(vector->m_Blocks[i], vector->m_Blocks[m_ImmovableBlockCount++]); + break; + } + } + } + } while (false); } -#else - // Open file for writing. - m_File = fopen(settings.pFilePath, "wb"); - if(m_File == 0) + // Bulk-map destination blocks + for (const FragmentedBlock& block : mappedBlocks) { - return VK_ERROR_INITIALIZATION_FAILED; + VkResult res = block.block->Map(allocator, block.data, VMA_NULL); + VMA_ASSERT(res == VK_SUCCESS); } -#endif - - // Write header. - fprintf(m_File, "%s\n", "Vulkan Memory Allocator,Calls recording"); - fprintf(m_File, "%s\n", "1,8"); - - return VK_SUCCESS; + return result; } -VmaRecorder::~VmaRecorder() +bool VmaDefragmentationContext_T::ComputeDefragmentation(VmaBlockVector& vector, size_t index) { - if(m_File != VMA_NULL) + switch (m_Algorithm) { - fclose(m_File); + case VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT: + return ComputeDefragmentation_Fast(vector); + case VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT: + return ComputeDefragmentation_Balanced(vector, index, true); + case VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FULL_BIT: + return ComputeDefragmentation_Full(vector); + case VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT: + return ComputeDefragmentation_Extensive(vector, index); + default: + VMA_ASSERT(0); + return ComputeDefragmentation_Balanced(vector, index, true); } } -void VmaRecorder::RecordCreateAllocator(uint32_t frameIndex) +VmaDefragmentationContext_T::MoveAllocationData VmaDefragmentationContext_T::GetMoveData( + VmaAllocHandle handle, VmaBlockMetadata* metadata) { - CallParams callParams; - GetBasicParams(callParams); + MoveAllocationData moveData; + moveData.move.srcAllocation = (VmaAllocation)metadata->GetAllocationUserData(handle); + moveData.size = moveData.move.srcAllocation->GetSize(); + moveData.alignment = moveData.move.srcAllocation->GetAlignment(); + moveData.type = moveData.move.srcAllocation->GetSuballocationType(); + moveData.flags = 0; - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaCreateAllocator\n", callParams.threadId, callParams.time, frameIndex); - Flush(); -} - -void VmaRecorder::RecordDestroyAllocator(uint32_t frameIndex) -{ - CallParams callParams; - GetBasicParams(callParams); + if (moveData.move.srcAllocation->IsPersistentMap()) + moveData.flags |= VMA_ALLOCATION_CREATE_MAPPED_BIT; + if (moveData.move.srcAllocation->IsMappingAllowed()) + moveData.flags |= VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT; - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaDestroyAllocator\n", callParams.threadId, callParams.time, frameIndex); - Flush(); + return moveData; } -void VmaRecorder::RecordCreatePool(uint32_t frameIndex, const VmaPoolCreateInfo& createInfo, VmaPool pool) +VmaDefragmentationContext_T::CounterStatus VmaDefragmentationContext_T::CheckCounters(VkDeviceSize bytes) { - CallParams callParams; - GetBasicParams(callParams); + // Check custom criteria if exists + if (m_BreakCallback && m_BreakCallback(m_BreakCallbackUserData)) + return CounterStatus::End; - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaCreatePool,%u,%u,%llu,%llu,%llu,%u,%p\n", callParams.threadId, callParams.time, frameIndex, - createInfo.memoryTypeIndex, - createInfo.flags, - createInfo.blockSize, - (uint64_t)createInfo.minBlockCount, - (uint64_t)createInfo.maxBlockCount, - createInfo.frameInUseCount, - pool); - Flush(); + // Ignore allocation if will exceed max size for copy + if (m_PassStats.bytesMoved + bytes > m_MaxPassBytes) + { + if (++m_IgnoredAllocs < MAX_ALLOCS_TO_IGNORE) + return CounterStatus::Ignore; + else + return CounterStatus::End; + } + else + m_IgnoredAllocs = 0; + return CounterStatus::Pass; } -void VmaRecorder::RecordDestroyPool(uint32_t frameIndex, VmaPool pool) +bool VmaDefragmentationContext_T::IncrementCounters(VkDeviceSize bytes) { - CallParams callParams; - GetBasicParams(callParams); - - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaDestroyPool,%p\n", callParams.threadId, callParams.time, frameIndex, - pool); - Flush(); + m_PassStats.bytesMoved += bytes; + // Early return when max found + if (++m_PassStats.allocationsMoved >= m_MaxPassAllocations || m_PassStats.bytesMoved >= m_MaxPassBytes) + { + VMA_ASSERT((m_PassStats.allocationsMoved == m_MaxPassAllocations || + m_PassStats.bytesMoved == m_MaxPassBytes) && "Exceeded maximal pass threshold!"); + return true; + } + return false; } -void VmaRecorder::RecordAllocateMemory(uint32_t frameIndex, - const VkMemoryRequirements& vkMemReq, - const VmaAllocationCreateInfo& createInfo, - VmaAllocation allocation) -{ - CallParams callParams; - GetBasicParams(callParams); - - VmaMutexLock lock(m_FileMutex, m_UseMutex); - UserDataString userDataStr(createInfo.flags, createInfo.pUserData); - fprintf(m_File, "%u,%.3f,%u,vmaAllocateMemory,%llu,%llu,%u,%u,%u,%u,%u,%u,%p,%p,%s\n", callParams.threadId, callParams.time, frameIndex, - vkMemReq.size, - vkMemReq.alignment, - vkMemReq.memoryTypeBits, - createInfo.flags, - createInfo.usage, - createInfo.requiredFlags, - createInfo.preferredFlags, - createInfo.memoryTypeBits, - createInfo.pool, - allocation, - userDataStr.GetString()); - Flush(); -} - -void VmaRecorder::RecordAllocateMemoryPages(uint32_t frameIndex, - const VkMemoryRequirements& vkMemReq, - const VmaAllocationCreateInfo& createInfo, - uint64_t allocationCount, - const VmaAllocation* pAllocations) -{ - CallParams callParams; - GetBasicParams(callParams); - - VmaMutexLock lock(m_FileMutex, m_UseMutex); - UserDataString userDataStr(createInfo.flags, createInfo.pUserData); - fprintf(m_File, "%u,%.3f,%u,vmaAllocateMemoryPages,%llu,%llu,%u,%u,%u,%u,%u,%u,%p,", callParams.threadId, callParams.time, frameIndex, - vkMemReq.size, - vkMemReq.alignment, - vkMemReq.memoryTypeBits, - createInfo.flags, - createInfo.usage, - createInfo.requiredFlags, - createInfo.preferredFlags, - createInfo.memoryTypeBits, - createInfo.pool); - PrintPointerList(allocationCount, pAllocations); - fprintf(m_File, ",%s\n", userDataStr.GetString()); - Flush(); -} - -void VmaRecorder::RecordAllocateMemoryForBuffer(uint32_t frameIndex, - const VkMemoryRequirements& vkMemReq, - bool requiresDedicatedAllocation, - bool prefersDedicatedAllocation, - const VmaAllocationCreateInfo& createInfo, - VmaAllocation allocation) -{ - CallParams callParams; - GetBasicParams(callParams); - - VmaMutexLock lock(m_FileMutex, m_UseMutex); - UserDataString userDataStr(createInfo.flags, createInfo.pUserData); - fprintf(m_File, "%u,%.3f,%u,vmaAllocateMemoryForBuffer,%llu,%llu,%u,%u,%u,%u,%u,%u,%u,%u,%p,%p,%s\n", callParams.threadId, callParams.time, frameIndex, - vkMemReq.size, - vkMemReq.alignment, - vkMemReq.memoryTypeBits, - requiresDedicatedAllocation ? 1 : 0, - prefersDedicatedAllocation ? 1 : 0, - createInfo.flags, - createInfo.usage, - createInfo.requiredFlags, - createInfo.preferredFlags, - createInfo.memoryTypeBits, - createInfo.pool, - allocation, - userDataStr.GetString()); - Flush(); -} - -void VmaRecorder::RecordAllocateMemoryForImage(uint32_t frameIndex, - const VkMemoryRequirements& vkMemReq, - bool requiresDedicatedAllocation, - bool prefersDedicatedAllocation, - const VmaAllocationCreateInfo& createInfo, - VmaAllocation allocation) -{ - CallParams callParams; - GetBasicParams(callParams); - - VmaMutexLock lock(m_FileMutex, m_UseMutex); - UserDataString userDataStr(createInfo.flags, createInfo.pUserData); - fprintf(m_File, "%u,%.3f,%u,vmaAllocateMemoryForImage,%llu,%llu,%u,%u,%u,%u,%u,%u,%u,%u,%p,%p,%s\n", callParams.threadId, callParams.time, frameIndex, - vkMemReq.size, - vkMemReq.alignment, - vkMemReq.memoryTypeBits, - requiresDedicatedAllocation ? 1 : 0, - prefersDedicatedAllocation ? 1 : 0, - createInfo.flags, - createInfo.usage, - createInfo.requiredFlags, - createInfo.preferredFlags, - createInfo.memoryTypeBits, - createInfo.pool, - allocation, - userDataStr.GetString()); - Flush(); -} - -void VmaRecorder::RecordFreeMemory(uint32_t frameIndex, - VmaAllocation allocation) +bool VmaDefragmentationContext_T::ReallocWithinBlock(VmaBlockVector& vector, VmaDeviceMemoryBlock* block) { - CallParams callParams; - GetBasicParams(callParams); + VmaBlockMetadata* metadata = block->m_pMetadata; - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaFreeMemory,%p\n", callParams.threadId, callParams.time, frameIndex, - allocation); - Flush(); -} - -void VmaRecorder::RecordFreeMemoryPages(uint32_t frameIndex, - uint64_t allocationCount, - const VmaAllocation* pAllocations) -{ - CallParams callParams; - GetBasicParams(callParams); + for (VmaAllocHandle handle = metadata->GetAllocationListBegin(); + handle != VK_NULL_HANDLE; + handle = metadata->GetNextAllocation(handle)) + { + MoveAllocationData moveData = GetMoveData(handle, metadata); + // Ignore newly created allocations by defragmentation algorithm + if (moveData.move.srcAllocation->GetUserData() == this) + continue; + switch (CheckCounters(moveData.move.srcAllocation->GetSize())) + { + case CounterStatus::Ignore: + continue; + case CounterStatus::End: + return true; + case CounterStatus::Pass: + break; + default: + VMA_ASSERT(0); + } - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaFreeMemoryPages,", callParams.threadId, callParams.time, frameIndex); - PrintPointerList(allocationCount, pAllocations); - fprintf(m_File, "\n"); - Flush(); + VkDeviceSize offset = moveData.move.srcAllocation->GetOffset(); + if (offset != 0 && metadata->GetSumFreeSize() >= moveData.size) + { + VmaAllocationRequest request = {}; + if (metadata->CreateAllocationRequest( + moveData.size, + moveData.alignment, + false, + moveData.type, + VMA_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT, + &request)) + { + if (metadata->GetAllocationOffset(request.allocHandle) < offset) + { + if (vector.CommitAllocationRequest( + request, + block, + moveData.alignment, + moveData.flags, + this, + moveData.type, + &moveData.move.dstTmpAllocation) == VK_SUCCESS) + { + m_Moves.push_back(moveData.move); + if (IncrementCounters(moveData.size)) + return true; + } + } + } + } + } + return false; } -void VmaRecorder::RecordSetAllocationUserData(uint32_t frameIndex, - VmaAllocation allocation, - const void* pUserData) +bool VmaDefragmentationContext_T::AllocInOtherBlock(size_t start, size_t end, MoveAllocationData& data, VmaBlockVector& vector) { - CallParams callParams; - GetBasicParams(callParams); - - VmaMutexLock lock(m_FileMutex, m_UseMutex); - UserDataString userDataStr( - allocation->IsUserDataString() ? VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT : 0, - pUserData); - fprintf(m_File, "%u,%.3f,%u,vmaSetAllocationUserData,%p,%s\n", callParams.threadId, callParams.time, frameIndex, - allocation, - userDataStr.GetString()); - Flush(); + for (; start < end; ++start) + { + VmaDeviceMemoryBlock* dstBlock = vector.GetBlock(start); + if (dstBlock->m_pMetadata->GetSumFreeSize() >= data.size) + { + if (vector.AllocateFromBlock(dstBlock, + data.size, + data.alignment, + data.flags, + this, + data.type, + 0, + &data.move.dstTmpAllocation) == VK_SUCCESS) + { + m_Moves.push_back(data.move); + if (IncrementCounters(data.size)) + return true; + break; + } + } + } + return false; } -void VmaRecorder::RecordCreateLostAllocation(uint32_t frameIndex, - VmaAllocation allocation) +bool VmaDefragmentationContext_T::ComputeDefragmentation_Fast(VmaBlockVector& vector) { - CallParams callParams; - GetBasicParams(callParams); + // Move only between blocks - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaCreateLostAllocation,%p\n", callParams.threadId, callParams.time, frameIndex, - allocation); - Flush(); -} + // Go through allocations in last blocks and try to fit them inside first ones + for (size_t i = vector.GetBlockCount() - 1; i > m_ImmovableBlockCount; --i) + { + VmaBlockMetadata* metadata = vector.GetBlock(i)->m_pMetadata; -void VmaRecorder::RecordMapMemory(uint32_t frameIndex, - VmaAllocation allocation) -{ - CallParams callParams; - GetBasicParams(callParams); + for (VmaAllocHandle handle = metadata->GetAllocationListBegin(); + handle != VK_NULL_HANDLE; + handle = metadata->GetNextAllocation(handle)) + { + MoveAllocationData moveData = GetMoveData(handle, metadata); + // Ignore newly created allocations by defragmentation algorithm + if (moveData.move.srcAllocation->GetUserData() == this) + continue; + switch (CheckCounters(moveData.move.srcAllocation->GetSize())) + { + case CounterStatus::Ignore: + continue; + case CounterStatus::End: + return true; + case CounterStatus::Pass: + break; + default: + VMA_ASSERT(0); + } - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaMapMemory,%p\n", callParams.threadId, callParams.time, frameIndex, - allocation); - Flush(); + // Check all previous blocks for free space + if (AllocInOtherBlock(0, i, moveData, vector)) + return true; + } + } + return false; } -void VmaRecorder::RecordUnmapMemory(uint32_t frameIndex, - VmaAllocation allocation) +bool VmaDefragmentationContext_T::ComputeDefragmentation_Balanced(VmaBlockVector& vector, size_t index, bool update) { - CallParams callParams; - GetBasicParams(callParams); - - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaUnmapMemory,%p\n", callParams.threadId, callParams.time, frameIndex, - allocation); - Flush(); -} + // Go over every allocation and try to fit it in previous blocks at lowest offsets, + // if not possible: realloc within single block to minimize offset (exclude offset == 0), + // but only if there are noticeable gaps between them (some heuristic, ex. average size of allocation in block) + VMA_ASSERT(m_AlgorithmState != VMA_NULL); -void VmaRecorder::RecordFlushAllocation(uint32_t frameIndex, - VmaAllocation allocation, VkDeviceSize offset, VkDeviceSize size) -{ - CallParams callParams; - GetBasicParams(callParams); + StateBalanced& vectorState = reinterpret_cast(m_AlgorithmState)[index]; + if (update && vectorState.avgAllocSize == UINT64_MAX) + UpdateVectorStatistics(vector, vectorState); - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaFlushAllocation,%p,%llu,%llu\n", callParams.threadId, callParams.time, frameIndex, - allocation, - offset, - size); - Flush(); -} + const size_t startMoveCount = m_Moves.size(); + VkDeviceSize minimalFreeRegion = vectorState.avgFreeSize / 2; + for (size_t i = vector.GetBlockCount() - 1; i > m_ImmovableBlockCount; --i) + { + VmaDeviceMemoryBlock* block = vector.GetBlock(i); + VmaBlockMetadata* metadata = block->m_pMetadata; + VkDeviceSize prevFreeRegionSize = 0; -void VmaRecorder::RecordInvalidateAllocation(uint32_t frameIndex, - VmaAllocation allocation, VkDeviceSize offset, VkDeviceSize size) -{ - CallParams callParams; - GetBasicParams(callParams); + for (VmaAllocHandle handle = metadata->GetAllocationListBegin(); + handle != VK_NULL_HANDLE; + handle = metadata->GetNextAllocation(handle)) + { + MoveAllocationData moveData = GetMoveData(handle, metadata); + // Ignore newly created allocations by defragmentation algorithm + if (moveData.move.srcAllocation->GetUserData() == this) + continue; + switch (CheckCounters(moveData.move.srcAllocation->GetSize())) + { + case CounterStatus::Ignore: + continue; + case CounterStatus::End: + return true; + case CounterStatus::Pass: + break; + default: + VMA_ASSERT(0); + } - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaInvalidateAllocation,%p,%llu,%llu\n", callParams.threadId, callParams.time, frameIndex, - allocation, - offset, - size); - Flush(); -} + // Check all previous blocks for free space + const size_t prevMoveCount = m_Moves.size(); + if (AllocInOtherBlock(0, i, moveData, vector)) + return true; -void VmaRecorder::RecordCreateBuffer(uint32_t frameIndex, - const VkBufferCreateInfo& bufCreateInfo, - const VmaAllocationCreateInfo& allocCreateInfo, - VmaAllocation allocation) -{ - CallParams callParams; - GetBasicParams(callParams); - - VmaMutexLock lock(m_FileMutex, m_UseMutex); - UserDataString userDataStr(allocCreateInfo.flags, allocCreateInfo.pUserData); - fprintf(m_File, "%u,%.3f,%u,vmaCreateBuffer,%u,%llu,%u,%u,%u,%u,%u,%u,%u,%p,%p,%s\n", callParams.threadId, callParams.time, frameIndex, - bufCreateInfo.flags, - bufCreateInfo.size, - bufCreateInfo.usage, - bufCreateInfo.sharingMode, - allocCreateInfo.flags, - allocCreateInfo.usage, - allocCreateInfo.requiredFlags, - allocCreateInfo.preferredFlags, - allocCreateInfo.memoryTypeBits, - allocCreateInfo.pool, - allocation, - userDataStr.GetString()); - Flush(); -} - -void VmaRecorder::RecordCreateImage(uint32_t frameIndex, - const VkImageCreateInfo& imageCreateInfo, - const VmaAllocationCreateInfo& allocCreateInfo, - VmaAllocation allocation) -{ - CallParams callParams; - GetBasicParams(callParams); - - VmaMutexLock lock(m_FileMutex, m_UseMutex); - UserDataString userDataStr(allocCreateInfo.flags, allocCreateInfo.pUserData); - fprintf(m_File, "%u,%.3f,%u,vmaCreateImage,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%p,%p,%s\n", callParams.threadId, callParams.time, frameIndex, - imageCreateInfo.flags, - imageCreateInfo.imageType, - imageCreateInfo.format, - imageCreateInfo.extent.width, - imageCreateInfo.extent.height, - imageCreateInfo.extent.depth, - imageCreateInfo.mipLevels, - imageCreateInfo.arrayLayers, - imageCreateInfo.samples, - imageCreateInfo.tiling, - imageCreateInfo.usage, - imageCreateInfo.sharingMode, - imageCreateInfo.initialLayout, - allocCreateInfo.flags, - allocCreateInfo.usage, - allocCreateInfo.requiredFlags, - allocCreateInfo.preferredFlags, - allocCreateInfo.memoryTypeBits, - allocCreateInfo.pool, - allocation, - userDataStr.GetString()); - Flush(); -} - -void VmaRecorder::RecordDestroyBuffer(uint32_t frameIndex, - VmaAllocation allocation) -{ - CallParams callParams; - GetBasicParams(callParams); + VkDeviceSize nextFreeRegionSize = metadata->GetNextFreeRegionSize(handle); + // If no room found then realloc within block for lower offset + VkDeviceSize offset = moveData.move.srcAllocation->GetOffset(); + if (prevMoveCount == m_Moves.size() && offset != 0 && metadata->GetSumFreeSize() >= moveData.size) + { + // Check if realloc will make sense + if (prevFreeRegionSize >= minimalFreeRegion || + nextFreeRegionSize >= minimalFreeRegion || + moveData.size <= vectorState.avgFreeSize || + moveData.size <= vectorState.avgAllocSize) + { + VmaAllocationRequest request = {}; + if (metadata->CreateAllocationRequest( + moveData.size, + moveData.alignment, + false, + moveData.type, + VMA_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT, + &request)) + { + if (metadata->GetAllocationOffset(request.allocHandle) < offset) + { + if (vector.CommitAllocationRequest( + request, + block, + moveData.alignment, + moveData.flags, + this, + moveData.type, + &moveData.move.dstTmpAllocation) == VK_SUCCESS) + { + m_Moves.push_back(moveData.move); + if (IncrementCounters(moveData.size)) + return true; + } + } + } + } + } + prevFreeRegionSize = nextFreeRegionSize; + } + } - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaDestroyBuffer,%p\n", callParams.threadId, callParams.time, frameIndex, - allocation); - Flush(); + // No moves performed, update statistics to current vector state + if (startMoveCount == m_Moves.size() && !update) + { + vectorState.avgAllocSize = UINT64_MAX; + return ComputeDefragmentation_Balanced(vector, index, false); + } + return false; } -void VmaRecorder::RecordDestroyImage(uint32_t frameIndex, - VmaAllocation allocation) +bool VmaDefragmentationContext_T::ComputeDefragmentation_Full(VmaBlockVector& vector) { - CallParams callParams; - GetBasicParams(callParams); - - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaDestroyImage,%p\n", callParams.threadId, callParams.time, frameIndex, - allocation); - Flush(); -} + // Go over every allocation and try to fit it in previous blocks at lowest offsets, + // if not possible: realloc within single block to minimize offset (exclude offset == 0) -void VmaRecorder::RecordTouchAllocation(uint32_t frameIndex, - VmaAllocation allocation) -{ - CallParams callParams; - GetBasicParams(callParams); + for (size_t i = vector.GetBlockCount() - 1; i > m_ImmovableBlockCount; --i) + { + VmaDeviceMemoryBlock* block = vector.GetBlock(i); + VmaBlockMetadata* metadata = block->m_pMetadata; - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaTouchAllocation,%p\n", callParams.threadId, callParams.time, frameIndex, - allocation); - Flush(); -} + for (VmaAllocHandle handle = metadata->GetAllocationListBegin(); + handle != VK_NULL_HANDLE; + handle = metadata->GetNextAllocation(handle)) + { + MoveAllocationData moveData = GetMoveData(handle, metadata); + // Ignore newly created allocations by defragmentation algorithm + if (moveData.move.srcAllocation->GetUserData() == this) + continue; + switch (CheckCounters(moveData.move.srcAllocation->GetSize())) + { + case CounterStatus::Ignore: + continue; + case CounterStatus::End: + return true; + case CounterStatus::Pass: + break; + default: + VMA_ASSERT(0); + } -void VmaRecorder::RecordGetAllocationInfo(uint32_t frameIndex, - VmaAllocation allocation) -{ - CallParams callParams; - GetBasicParams(callParams); + // Check all previous blocks for free space + const size_t prevMoveCount = m_Moves.size(); + if (AllocInOtherBlock(0, i, moveData, vector)) + return true; - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaGetAllocationInfo,%p\n", callParams.threadId, callParams.time, frameIndex, - allocation); - Flush(); + // If no room found then realloc within block for lower offset + VkDeviceSize offset = moveData.move.srcAllocation->GetOffset(); + if (prevMoveCount == m_Moves.size() && offset != 0 && metadata->GetSumFreeSize() >= moveData.size) + { + VmaAllocationRequest request = {}; + if (metadata->CreateAllocationRequest( + moveData.size, + moveData.alignment, + false, + moveData.type, + VMA_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT, + &request)) + { + if (metadata->GetAllocationOffset(request.allocHandle) < offset) + { + if (vector.CommitAllocationRequest( + request, + block, + moveData.alignment, + moveData.flags, + this, + moveData.type, + &moveData.move.dstTmpAllocation) == VK_SUCCESS) + { + m_Moves.push_back(moveData.move); + if (IncrementCounters(moveData.size)) + return true; + } + } + } + } + } + } + return false; } -void VmaRecorder::RecordMakePoolAllocationsLost(uint32_t frameIndex, - VmaPool pool) +bool VmaDefragmentationContext_T::ComputeDefragmentation_Extensive(VmaBlockVector& vector, size_t index) { - CallParams callParams; - GetBasicParams(callParams); + // First free single block, then populate it to the brim, then free another block, and so on - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaMakePoolAllocationsLost,%p\n", callParams.threadId, callParams.time, frameIndex, - pool); - Flush(); -} + // Fallback to previous algorithm since without granularity conflicts it can achieve max packing + if (vector.m_BufferImageGranularity == 1) + return ComputeDefragmentation_Full(vector); -void VmaRecorder::RecordDefragmentationBegin(uint32_t frameIndex, - const VmaDefragmentationInfo2& info, - VmaDefragmentationContext ctx) -{ - CallParams callParams; - GetBasicParams(callParams); + VMA_ASSERT(m_AlgorithmState != VMA_NULL); - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaDefragmentationBegin,%u,", callParams.threadId, callParams.time, frameIndex, - info.flags); - PrintPointerList(info.allocationCount, info.pAllocations); - fprintf(m_File, ","); - PrintPointerList(info.poolCount, info.pPools); - fprintf(m_File, ",%llu,%u,%llu,%u,%p,%p\n", - info.maxCpuBytesToMove, - info.maxCpuAllocationsToMove, - info.maxGpuBytesToMove, - info.maxGpuAllocationsToMove, - info.commandBuffer, - ctx); - Flush(); -} + StateExtensive& vectorState = reinterpret_cast(m_AlgorithmState)[index]; -void VmaRecorder::RecordDefragmentationEnd(uint32_t frameIndex, - VmaDefragmentationContext ctx) -{ - CallParams callParams; - GetBasicParams(callParams); + bool texturePresent = false, bufferPresent = false, otherPresent = false; + switch (vectorState.operation) + { + case StateExtensive::Operation::Done: // Vector defragmented + return false; + case StateExtensive::Operation::FindFreeBlockBuffer: + case StateExtensive::Operation::FindFreeBlockTexture: + case StateExtensive::Operation::FindFreeBlockAll: + { + // No more blocks to free, just perform fast realloc and move to cleanup + if (vectorState.firstFreeBlock == 0) + { + vectorState.operation = StateExtensive::Operation::Cleanup; + return ComputeDefragmentation_Fast(vector); + } - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaDefragmentationEnd,%p\n", callParams.threadId, callParams.time, frameIndex, - ctx); - Flush(); -} + // No free blocks, have to clear last one + size_t last = (vectorState.firstFreeBlock == SIZE_MAX ? vector.GetBlockCount() : vectorState.firstFreeBlock) - 1; + VmaBlockMetadata* freeMetadata = vector.GetBlock(last)->m_pMetadata; -void VmaRecorder::RecordSetPoolName(uint32_t frameIndex, - VmaPool pool, - const char* name) -{ - CallParams callParams; - GetBasicParams(callParams); + const size_t prevMoveCount = m_Moves.size(); + for (VmaAllocHandle handle = freeMetadata->GetAllocationListBegin(); + handle != VK_NULL_HANDLE; + handle = freeMetadata->GetNextAllocation(handle)) + { + MoveAllocationData moveData = GetMoveData(handle, freeMetadata); + switch (CheckCounters(moveData.move.srcAllocation->GetSize())) + { + case CounterStatus::Ignore: + continue; + case CounterStatus::End: + return true; + case CounterStatus::Pass: + break; + default: + VMA_ASSERT(0); + } - VmaMutexLock lock(m_FileMutex, m_UseMutex); - fprintf(m_File, "%u,%.3f,%u,vmaSetPoolName,%p,%s\n", callParams.threadId, callParams.time, frameIndex, - pool, name != VMA_NULL ? name : ""); - Flush(); -} + // Check all previous blocks for free space + if (AllocInOtherBlock(0, last, moveData, vector)) + { + // Full clear performed already + if (prevMoveCount != m_Moves.size() && freeMetadata->GetNextAllocation(handle) == VK_NULL_HANDLE) + vectorState.firstFreeBlock = last; + return true; + } + } -VmaRecorder::UserDataString::UserDataString(VmaAllocationCreateFlags allocFlags, const void* pUserData) -{ - if(pUserData != VMA_NULL) - { - if((allocFlags & VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT) != 0) + if (prevMoveCount == m_Moves.size()) { - m_Str = (const char*)pUserData; + // Cannot perform full clear, have to move data in other blocks around + if (last != 0) + { + for (size_t i = last - 1; i; --i) + { + if (ReallocWithinBlock(vector, vector.GetBlock(i))) + return true; + } + } + + if (prevMoveCount == m_Moves.size()) + { + // No possible reallocs within blocks, try to move them around fast + return ComputeDefragmentation_Fast(vector); + } } else { - // If VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT is not specified, convert the string's memory address to a string and store it. - snprintf(m_PtrStr, 17, "%p", pUserData); - m_Str = m_PtrStr; + switch (vectorState.operation) + { + case StateExtensive::Operation::FindFreeBlockBuffer: + vectorState.operation = StateExtensive::Operation::MoveBuffers; + break; + case StateExtensive::Operation::FindFreeBlockTexture: + vectorState.operation = StateExtensive::Operation::MoveTextures; + break; + case StateExtensive::Operation::FindFreeBlockAll: + vectorState.operation = StateExtensive::Operation::MoveAll; + break; + default: + VMA_ASSERT(0); + vectorState.operation = StateExtensive::Operation::MoveTextures; + } + vectorState.firstFreeBlock = last; + // Nothing done, block found without reallocations, can perform another reallocs in same pass + return ComputeDefragmentation_Extensive(vector, index); } + break; } - else + case StateExtensive::Operation::MoveTextures: { - m_Str = ""; - } -} - -void VmaRecorder::WriteConfiguration( - const VkPhysicalDeviceProperties& devProps, - const VkPhysicalDeviceMemoryProperties& memProps, - uint32_t vulkanApiVersion, - bool dedicatedAllocationExtensionEnabled, - bool bindMemory2ExtensionEnabled, - bool memoryBudgetExtensionEnabled, - bool deviceCoherentMemoryExtensionEnabled) -{ - fprintf(m_File, "Config,Begin\n"); + if (MoveDataToFreeBlocks(VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL, vector, + vectorState.firstFreeBlock, texturePresent, bufferPresent, otherPresent)) + { + if (texturePresent) + { + vectorState.operation = StateExtensive::Operation::FindFreeBlockTexture; + return ComputeDefragmentation_Extensive(vector, index); + } - fprintf(m_File, "VulkanApiVersion,%u,%u\n", VK_VERSION_MAJOR(vulkanApiVersion), VK_VERSION_MINOR(vulkanApiVersion)); + if (!bufferPresent && !otherPresent) + { + vectorState.operation = StateExtensive::Operation::Cleanup; + break; + } - fprintf(m_File, "PhysicalDevice,apiVersion,%u\n", devProps.apiVersion); - fprintf(m_File, "PhysicalDevice,driverVersion,%u\n", devProps.driverVersion); - fprintf(m_File, "PhysicalDevice,vendorID,%u\n", devProps.vendorID); - fprintf(m_File, "PhysicalDevice,deviceID,%u\n", devProps.deviceID); - fprintf(m_File, "PhysicalDevice,deviceType,%u\n", devProps.deviceType); - fprintf(m_File, "PhysicalDevice,deviceName,%s\n", devProps.deviceName); + // No more textures to move, check buffers + vectorState.operation = StateExtensive::Operation::MoveBuffers; + bufferPresent = false; + otherPresent = false; + } + else + break; + VMA_FALLTHROUGH; // Fallthrough + } + case StateExtensive::Operation::MoveBuffers: + { + if (MoveDataToFreeBlocks(VMA_SUBALLOCATION_TYPE_BUFFER, vector, + vectorState.firstFreeBlock, texturePresent, bufferPresent, otherPresent)) + { + if (bufferPresent) + { + vectorState.operation = StateExtensive::Operation::FindFreeBlockBuffer; + return ComputeDefragmentation_Extensive(vector, index); + } - fprintf(m_File, "PhysicalDeviceLimits,maxMemoryAllocationCount,%u\n", devProps.limits.maxMemoryAllocationCount); - fprintf(m_File, "PhysicalDeviceLimits,bufferImageGranularity,%llu\n", devProps.limits.bufferImageGranularity); - fprintf(m_File, "PhysicalDeviceLimits,nonCoherentAtomSize,%llu\n", devProps.limits.nonCoherentAtomSize); + if (!otherPresent) + { + vectorState.operation = StateExtensive::Operation::Cleanup; + break; + } - fprintf(m_File, "PhysicalDeviceMemory,HeapCount,%u\n", memProps.memoryHeapCount); - for(uint32_t i = 0; i < memProps.memoryHeapCount; ++i) - { - fprintf(m_File, "PhysicalDeviceMemory,Heap,%u,size,%llu\n", i, memProps.memoryHeaps[i].size); - fprintf(m_File, "PhysicalDeviceMemory,Heap,%u,flags,%u\n", i, memProps.memoryHeaps[i].flags); + // No more buffers to move, check all others + vectorState.operation = StateExtensive::Operation::MoveAll; + otherPresent = false; + } + else + break; + VMA_FALLTHROUGH; // Fallthrough } - fprintf(m_File, "PhysicalDeviceMemory,TypeCount,%u\n", memProps.memoryTypeCount); - for(uint32_t i = 0; i < memProps.memoryTypeCount; ++i) + case StateExtensive::Operation::MoveAll: { - fprintf(m_File, "PhysicalDeviceMemory,Type,%u,heapIndex,%u\n", i, memProps.memoryTypes[i].heapIndex); - fprintf(m_File, "PhysicalDeviceMemory,Type,%u,propertyFlags,%u\n", i, memProps.memoryTypes[i].propertyFlags); + if (MoveDataToFreeBlocks(VMA_SUBALLOCATION_TYPE_FREE, vector, + vectorState.firstFreeBlock, texturePresent, bufferPresent, otherPresent)) + { + if (otherPresent) + { + vectorState.operation = StateExtensive::Operation::FindFreeBlockBuffer; + return ComputeDefragmentation_Extensive(vector, index); + } + // Everything moved + vectorState.operation = StateExtensive::Operation::Cleanup; + } + break; + } + case StateExtensive::Operation::Cleanup: + // Cleanup is handled below so that other operations may reuse the cleanup code. This case is here to prevent the unhandled enum value warning (C4062). + break; } - fprintf(m_File, "Extension,VK_KHR_dedicated_allocation,%u\n", dedicatedAllocationExtensionEnabled ? 1 : 0); - fprintf(m_File, "Extension,VK_KHR_bind_memory2,%u\n", bindMemory2ExtensionEnabled ? 1 : 0); - fprintf(m_File, "Extension,VK_EXT_memory_budget,%u\n", memoryBudgetExtensionEnabled ? 1 : 0); - fprintf(m_File, "Extension,VK_AMD_device_coherent_memory,%u\n", deviceCoherentMemoryExtensionEnabled ? 1 : 0); - - fprintf(m_File, "Macro,VMA_DEBUG_ALWAYS_DEDICATED_MEMORY,%u\n", VMA_DEBUG_ALWAYS_DEDICATED_MEMORY ? 1 : 0); - fprintf(m_File, "Macro,VMA_MIN_ALIGNMENT,%llu\n", (VkDeviceSize)VMA_MIN_ALIGNMENT); - fprintf(m_File, "Macro,VMA_DEBUG_MARGIN,%llu\n", (VkDeviceSize)VMA_DEBUG_MARGIN); - fprintf(m_File, "Macro,VMA_DEBUG_INITIALIZE_ALLOCATIONS,%u\n", VMA_DEBUG_INITIALIZE_ALLOCATIONS ? 1 : 0); - fprintf(m_File, "Macro,VMA_DEBUG_DETECT_CORRUPTION,%u\n", VMA_DEBUG_DETECT_CORRUPTION ? 1 : 0); - fprintf(m_File, "Macro,VMA_DEBUG_GLOBAL_MUTEX,%u\n", VMA_DEBUG_GLOBAL_MUTEX ? 1 : 0); - fprintf(m_File, "Macro,VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY,%llu\n", (VkDeviceSize)VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY); - fprintf(m_File, "Macro,VMA_SMALL_HEAP_MAX_SIZE,%llu\n", (VkDeviceSize)VMA_SMALL_HEAP_MAX_SIZE); - fprintf(m_File, "Macro,VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE,%llu\n", (VkDeviceSize)VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE); + if (vectorState.operation == StateExtensive::Operation::Cleanup) + { + // All other work done, pack data in blocks even tighter if possible + const size_t prevMoveCount = m_Moves.size(); + for (size_t i = 0; i < vector.GetBlockCount(); ++i) + { + if (ReallocWithinBlock(vector, vector.GetBlock(i))) + return true; + } - fprintf(m_File, "Config,End\n"); + if (prevMoveCount == m_Moves.size()) + vectorState.operation = StateExtensive::Operation::Done; + } + return false; } -void VmaRecorder::GetBasicParams(CallParams& outParams) +void VmaDefragmentationContext_T::UpdateVectorStatistics(VmaBlockVector& vector, StateBalanced& state) { - #if defined(_WIN32) - outParams.threadId = GetCurrentThreadId(); - #else - // Use C++11 features to get thread id and convert it to uint32_t. - // There is room for optimization since sstream is quite slow. - // Is there a better way to convert std::this_thread::get_id() to uint32_t? - std::thread::id thread_id = std::this_thread::get_id(); - std::stringstream thread_id_to_string_converter; - thread_id_to_string_converter << thread_id; - std::string thread_id_as_string = thread_id_to_string_converter.str(); - outParams.threadId = static_cast(std::stoi(thread_id_as_string.c_str())); - #endif + size_t allocCount = 0; + size_t freeCount = 0; + state.avgFreeSize = 0; + state.avgAllocSize = 0; - auto current_time = std::chrono::high_resolution_clock::now(); + for (size_t i = 0; i < vector.GetBlockCount(); ++i) + { + VmaBlockMetadata* metadata = vector.GetBlock(i)->m_pMetadata; + + allocCount += metadata->GetAllocationCount(); + freeCount += metadata->GetFreeRegionsCount(); + state.avgFreeSize += metadata->GetSumFreeSize(); + state.avgAllocSize += metadata->GetSize(); + } - outParams.time = std::chrono::duration(current_time - m_RecordingStartTime).count(); + state.avgAllocSize = (state.avgAllocSize - state.avgFreeSize) / allocCount; + state.avgFreeSize /= freeCount; } -void VmaRecorder::PrintPointerList(uint64_t count, const VmaAllocation* pItems) +bool VmaDefragmentationContext_T::MoveDataToFreeBlocks(VmaSuballocationType currentType, + VmaBlockVector& vector, size_t firstFreeBlock, + bool& texturePresent, bool& bufferPresent, bool& otherPresent) { - if(count) + const size_t prevMoveCount = m_Moves.size(); + for (size_t i = firstFreeBlock ; i;) { - fprintf(m_File, "%p", pItems[0]); - for(uint64_t i = 1; i < count; ++i) + VmaDeviceMemoryBlock* block = vector.GetBlock(--i); + VmaBlockMetadata* metadata = block->m_pMetadata; + + for (VmaAllocHandle handle = metadata->GetAllocationListBegin(); + handle != VK_NULL_HANDLE; + handle = metadata->GetNextAllocation(handle)) { - fprintf(m_File, " %p", pItems[i]); - } - } -} + MoveAllocationData moveData = GetMoveData(handle, metadata); + // Ignore newly created allocations by defragmentation algorithm + if (moveData.move.srcAllocation->GetUserData() == this) + continue; + switch (CheckCounters(moveData.move.srcAllocation->GetSize())) + { + case CounterStatus::Ignore: + continue; + case CounterStatus::End: + return true; + case CounterStatus::Pass: + break; + default: + VMA_ASSERT(0); + } -void VmaRecorder::Flush() -{ - if((m_Flags & VMA_RECORD_FLUSH_AFTER_CALL_BIT) != 0) - { - fflush(m_File); + // Move only single type of resources at once + if (!VmaIsBufferImageGranularityConflict(moveData.type, currentType)) + { + // Try to fit allocation into free blocks + if (AllocInOtherBlock(firstFreeBlock, vector.GetBlockCount(), moveData, vector)) + return false; + } + + if (!VmaIsBufferImageGranularityConflict(moveData.type, VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL)) + texturePresent = true; + else if (!VmaIsBufferImageGranularityConflict(moveData.type, VMA_SUBALLOCATION_TYPE_BUFFER)) + bufferPresent = true; + else + otherPresent = true; + } } + return prevMoveCount == m_Moves.size(); } +#endif // _VMA_DEFRAGMENTATION_CONTEXT_FUNCTIONS -#endif // #if VMA_RECORDING_ENABLED - -//////////////////////////////////////////////////////////////////////////////// -// VmaAllocationObjectAllocator +#ifndef _VMA_POOL_T_FUNCTIONS +VmaPool_T::VmaPool_T( + VmaAllocator hAllocator, + const VmaPoolCreateInfo& createInfo, + VkDeviceSize preferredBlockSize) + : m_BlockVector( + hAllocator, + this, // hParentPool + createInfo.memoryTypeIndex, + createInfo.blockSize != 0 ? createInfo.blockSize : preferredBlockSize, + createInfo.minBlockCount, + createInfo.maxBlockCount, + (createInfo.flags& VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT) != 0 ? 1 : hAllocator->GetBufferImageGranularity(), + createInfo.blockSize != 0, // explicitBlockSize + createInfo.flags & VMA_POOL_CREATE_ALGORITHM_MASK, // algorithm + createInfo.priority, + VMA_MAX(hAllocator->GetMemoryTypeMinAlignment(createInfo.memoryTypeIndex), createInfo.minAllocationAlignment), + createInfo.pMemoryAllocateNext), + m_Id(0), + m_Name(VMA_NULL) {} -VmaAllocationObjectAllocator::VmaAllocationObjectAllocator(const VkAllocationCallbacks* pAllocationCallbacks) : - m_Allocator(pAllocationCallbacks, 1024) +VmaPool_T::~VmaPool_T() { -} + VMA_ASSERT(m_PrevPool == VMA_NULL && m_NextPool == VMA_NULL); -template VmaAllocation VmaAllocationObjectAllocator::Allocate(Types&&... args) -{ - VmaMutexLock mutexLock(m_Mutex); - return m_Allocator.Alloc(std::forward(args)...); + const VkAllocationCallbacks* allocs = m_BlockVector.GetAllocator()->GetAllocationCallbacks(); + VmaFreeString(allocs, m_Name); } -void VmaAllocationObjectAllocator::Free(VmaAllocation hAlloc) +void VmaPool_T::SetName(const char* pName) { - VmaMutexLock mutexLock(m_Mutex); - m_Allocator.Free(hAlloc); -} + const VkAllocationCallbacks* allocs = m_BlockVector.GetAllocator()->GetAllocationCallbacks(); + VmaFreeString(allocs, m_Name); -//////////////////////////////////////////////////////////////////////////////// -// VmaAllocator_T + if (pName != VMA_NULL) + { + m_Name = VmaCreateStringCopy(allocs, pName); + } + else + { + m_Name = VMA_NULL; + } +} +#endif // _VMA_POOL_T_FUNCTIONS +#ifndef _VMA_ALLOCATOR_T_FUNCTIONS VmaAllocator_T::VmaAllocator_T(const VmaAllocatorCreateInfo* pCreateInfo) : m_UseMutex((pCreateInfo->flags & VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT) == 0), m_VulkanApiVersion(pCreateInfo->vulkanApiVersion != 0 ? pCreateInfo->vulkanApiVersion : VK_API_VERSION_1_0), @@ -14192,13 +14082,9 @@ VmaAllocator_T::VmaAllocator_T(const VmaAllocatorCreateInfo* pCreateInfo) : m_DeviceMemoryCount(0), m_PreferredLargeHeapBlockSize(0), m_PhysicalDevice(pCreateInfo->physicalDevice), - m_CurrentFrameIndex(0), m_GpuDefragmentationMemoryTypeBits(UINT32_MAX), m_NextPoolId(0), m_GlobalMemoryTypeBits(UINT32_MAX) -#if VMA_RECORDING_ENABLED - ,m_pRecorder(VMA_NULL) -#endif { if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) { @@ -14241,6 +14127,12 @@ VmaAllocator_T::VmaAllocator_T(const VmaAllocatorCreateInfo* pCreateInfo) : VMA_ASSERT(0 && "VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT is set but required extension or Vulkan 1.2 is not available in your Vulkan header or its support in VMA has been disabled by a preprocessor macro."); } #endif +#if VMA_VULKAN_VERSION < 1003000 + if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 3, 0)) + { + VMA_ASSERT(0 && "vulkanApiVersion >= VK_API_VERSION_1_3 but required Vulkan version is disabled by preprocessor macros."); + } +#endif #if VMA_VULKAN_VERSION < 1002000 if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 2, 0)) { @@ -14319,24 +14211,26 @@ VmaAllocator_T::VmaAllocator_T(const VmaAllocatorCreateInfo* pCreateInfo) : for(uint32_t memTypeIndex = 0; memTypeIndex < GetMemoryTypeCount(); ++memTypeIndex) { - const VkDeviceSize preferredBlockSize = CalcPreferredBlockSize(memTypeIndex); - - m_pBlockVectors[memTypeIndex] = vma_new(this, VmaBlockVector)( - this, - VK_NULL_HANDLE, // hParentPool - memTypeIndex, - preferredBlockSize, - 0, - SIZE_MAX, - GetBufferImageGranularity(), - pCreateInfo->frameInUseCount, - false, // explicitBlockSize - false, // linearAlgorithm - 0.5f, // priority (0.5 is the default per Vulkan spec) - GetMemoryTypeMinAlignment(memTypeIndex), // minAllocationAlignment - VMA_NULL); // // pMemoryAllocateNext - // No need to call m_pBlockVectors[memTypeIndex][blockVectorTypeIndex]->CreateMinBlocks here, - // becase minBlockCount is 0. + // Create only supported types + if((m_GlobalMemoryTypeBits & (1u << memTypeIndex)) != 0) + { + const VkDeviceSize preferredBlockSize = CalcPreferredBlockSize(memTypeIndex); + m_pBlockVectors[memTypeIndex] = vma_new(this, VmaBlockVector)( + this, + VK_NULL_HANDLE, // hParentPool + memTypeIndex, + preferredBlockSize, + 0, + SIZE_MAX, + GetBufferImageGranularity(), + false, // explicitBlockSize + 0, // algorithm + 0.5f, // priority (0.5 is the default per Vulkan spec) + GetMemoryTypeMinAlignment(memTypeIndex), // minAllocationAlignment + VMA_NULL); // // pMemoryAllocateNext + // No need to call m_pBlockVectors[memTypeIndex][blockVectorTypeIndex]->CreateMinBlocks here, + // becase minBlockCount is 0. + } } } @@ -14344,31 +14238,6 @@ VkResult VmaAllocator_T::Init(const VmaAllocatorCreateInfo* pCreateInfo) { VkResult res = VK_SUCCESS; - if(pCreateInfo->pRecordSettings != VMA_NULL && - !VmaStrIsEmpty(pCreateInfo->pRecordSettings->pFilePath)) - { -#if VMA_RECORDING_ENABLED - m_pRecorder = vma_new(this, VmaRecorder)(); - res = m_pRecorder->Init(*pCreateInfo->pRecordSettings, m_UseMutex); - if(res != VK_SUCCESS) - { - return res; - } - m_pRecorder->WriteConfiguration( - m_PhysicalDeviceProperties, - m_MemProps, - m_VulkanApiVersion, - m_UseKhrDedicatedAllocation, - m_UseKhrBindMemory2, - m_UseExtMemoryBudget, - m_UseAmdDeviceCoherentMemory); - m_pRecorder->RecordCreateAllocator(GetCurrentFrameIndex()); -#else - VMA_ASSERT(0 && "VmaAllocatorCreateInfo::pRecordSettings used, but not supported due to VMA_RECORDING_ENABLED not defined to 1."); - return VK_ERROR_FEATURE_NOT_PRESENT; -#endif - } - #if VMA_MEMORY_BUDGET if(m_UseExtMemoryBudget) { @@ -14381,23 +14250,10 @@ VkResult VmaAllocator_T::Init(const VmaAllocatorCreateInfo* pCreateInfo) VmaAllocator_T::~VmaAllocator_T() { -#if VMA_RECORDING_ENABLED - if(m_pRecorder != VMA_NULL) - { - m_pRecorder->RecordDestroyAllocator(GetCurrentFrameIndex()); - vma_delete(this, m_pRecorder); - } -#endif - VMA_ASSERT(m_Pools.IsEmpty()); for(size_t memTypeIndex = GetMemoryTypeCount(); memTypeIndex--; ) { - if(!m_DedicatedAllocations[memTypeIndex].IsEmpty()) - { - VMA_ASSERT(0 && "Unfreed dedicated allocations found."); - } - vma_delete(this, m_pBlockVectors[memTypeIndex]); } } @@ -14425,6 +14281,8 @@ void VmaAllocator_T::ImportVulkanFunctions(const VmaVulkanFunctions* pVulkanFunc void VmaAllocator_T::ImportVulkanFunctions_Static() { // Vulkan 1.0 + m_VulkanFunctions.vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)vkGetInstanceProcAddr; + m_VulkanFunctions.vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr)vkGetDeviceProcAddr; m_VulkanFunctions.vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)vkGetPhysicalDeviceProperties; m_VulkanFunctions.vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)vkGetPhysicalDeviceMemoryProperties; m_VulkanFunctions.vkAllocateMemory = (PFN_vkAllocateMemory)vkAllocateMemory; @@ -14451,12 +14309,26 @@ void VmaAllocator_T::ImportVulkanFunctions_Static() m_VulkanFunctions.vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2)vkGetImageMemoryRequirements2; m_VulkanFunctions.vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2)vkBindBufferMemory2; m_VulkanFunctions.vkBindImageMemory2KHR = (PFN_vkBindImageMemory2)vkBindImageMemory2; + } +#endif + +#if VMA_MEMORY_BUDGET || VMA_VULKAN_VERSION >= 1001000 + if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) + { m_VulkanFunctions.vkGetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2)vkGetPhysicalDeviceMemoryProperties2; } #endif + +#if VMA_VULKAN_VERSION >= 1003000 + if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 3, 0)) + { + m_VulkanFunctions.vkGetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)vkGetDeviceBufferMemoryRequirements; + m_VulkanFunctions.vkGetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)vkGetDeviceImageMemoryRequirements; + } +#endif } -#endif // #if VMA_STATIC_VULKAN_FUNCTIONS == 1 +#endif // VMA_STATIC_VULKAN_FUNCTIONS == 1 void VmaAllocator_T::ImportVulkanFunctions_Custom(const VmaVulkanFunctions* pVulkanFunctions) { @@ -14465,6 +14337,8 @@ void VmaAllocator_T::ImportVulkanFunctions_Custom(const VmaVulkanFunctions* pVul #define VMA_COPY_IF_NOT_NULL(funcName) \ if(pVulkanFunctions->funcName != VMA_NULL) m_VulkanFunctions.funcName = pVulkanFunctions->funcName; + VMA_COPY_IF_NOT_NULL(vkGetInstanceProcAddr); + VMA_COPY_IF_NOT_NULL(vkGetDeviceProcAddr); VMA_COPY_IF_NOT_NULL(vkGetPhysicalDeviceProperties); VMA_COPY_IF_NOT_NULL(vkGetPhysicalDeviceMemoryProperties); VMA_COPY_IF_NOT_NULL(vkAllocateMemory); @@ -14493,10 +14367,15 @@ void VmaAllocator_T::ImportVulkanFunctions_Custom(const VmaVulkanFunctions* pVul VMA_COPY_IF_NOT_NULL(vkBindImageMemory2KHR); #endif -#if VMA_MEMORY_BUDGET +#if VMA_MEMORY_BUDGET || VMA_VULKAN_VERSION >= 1001000 VMA_COPY_IF_NOT_NULL(vkGetPhysicalDeviceMemoryProperties2KHR); #endif +#if VMA_VULKAN_VERSION >= 1003000 + VMA_COPY_IF_NOT_NULL(vkGetDeviceBufferMemoryRequirements); + VMA_COPY_IF_NOT_NULL(vkGetDeviceImageMemoryRequirements); +#endif + #undef VMA_COPY_IF_NOT_NULL } @@ -14504,14 +14383,19 @@ void VmaAllocator_T::ImportVulkanFunctions_Custom(const VmaVulkanFunctions* pVul void VmaAllocator_T::ImportVulkanFunctions_Dynamic() { + VMA_ASSERT(m_VulkanFunctions.vkGetInstanceProcAddr && m_VulkanFunctions.vkGetDeviceProcAddr && + "To use VMA_DYNAMIC_VULKAN_FUNCTIONS in new versions of VMA you now have to pass " + "VmaVulkanFunctions::vkGetInstanceProcAddr and vkGetDeviceProcAddr as VmaAllocatorCreateInfo::pVulkanFunctions. " + "Other members can be null."); + #define VMA_FETCH_INSTANCE_FUNC(memberName, functionPointerType, functionNameString) \ if(m_VulkanFunctions.memberName == VMA_NULL) \ m_VulkanFunctions.memberName = \ - (functionPointerType)vkGetInstanceProcAddr(m_hInstance, functionNameString); + (functionPointerType)m_VulkanFunctions.vkGetInstanceProcAddr(m_hInstance, functionNameString); #define VMA_FETCH_DEVICE_FUNC(memberName, functionPointerType, functionNameString) \ if(m_VulkanFunctions.memberName == VMA_NULL) \ m_VulkanFunctions.memberName = \ - (functionPointerType)vkGetDeviceProcAddr(m_hDevice, functionNameString); + (functionPointerType)m_VulkanFunctions.vkGetDeviceProcAddr(m_hDevice, functionNameString); VMA_FETCH_INSTANCE_FUNC(vkGetPhysicalDeviceProperties, PFN_vkGetPhysicalDeviceProperties, "vkGetPhysicalDeviceProperties"); VMA_FETCH_INSTANCE_FUNC(vkGetPhysicalDeviceMemoryProperties, PFN_vkGetPhysicalDeviceMemoryProperties, "vkGetPhysicalDeviceMemoryProperties"); @@ -14534,12 +14418,22 @@ void VmaAllocator_T::ImportVulkanFunctions_Dynamic() #if VMA_VULKAN_VERSION >= 1001000 if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) { - VMA_FETCH_DEVICE_FUNC(vkGetBufferMemoryRequirements2KHR, PFN_vkGetBufferMemoryRequirements2, "vkGetBufferMemoryRequirements2"); - VMA_FETCH_DEVICE_FUNC(vkGetImageMemoryRequirements2KHR, PFN_vkGetImageMemoryRequirements2, "vkGetImageMemoryRequirements2"); - VMA_FETCH_DEVICE_FUNC(vkBindBufferMemory2KHR, PFN_vkBindBufferMemory2, "vkBindBufferMemory2"); - VMA_FETCH_DEVICE_FUNC(vkBindImageMemory2KHR, PFN_vkBindImageMemory2, "vkBindImageMemory2"); + VMA_FETCH_DEVICE_FUNC(vkGetBufferMemoryRequirements2KHR, PFN_vkGetBufferMemoryRequirements2, "vkGetBufferMemoryRequirements2"); + VMA_FETCH_DEVICE_FUNC(vkGetImageMemoryRequirements2KHR, PFN_vkGetImageMemoryRequirements2, "vkGetImageMemoryRequirements2"); + VMA_FETCH_DEVICE_FUNC(vkBindBufferMemory2KHR, PFN_vkBindBufferMemory2, "vkBindBufferMemory2"); + VMA_FETCH_DEVICE_FUNC(vkBindImageMemory2KHR, PFN_vkBindImageMemory2, "vkBindImageMemory2"); + } +#endif + +#if VMA_MEMORY_BUDGET || VMA_VULKAN_VERSION >= 1001000 + if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) + { VMA_FETCH_INSTANCE_FUNC(vkGetPhysicalDeviceMemoryProperties2KHR, PFN_vkGetPhysicalDeviceMemoryProperties2, "vkGetPhysicalDeviceMemoryProperties2"); } + else if(m_UseExtMemoryBudget) + { + VMA_FETCH_INSTANCE_FUNC(vkGetPhysicalDeviceMemoryProperties2KHR, PFN_vkGetPhysicalDeviceMemoryProperties2, "vkGetPhysicalDeviceMemoryProperties2KHR"); + } #endif #if VMA_DEDICATED_ALLOCATION @@ -14558,18 +14452,30 @@ void VmaAllocator_T::ImportVulkanFunctions_Dynamic() } #endif // #if VMA_BIND_MEMORY2 -#if VMA_MEMORY_BUDGET - if(m_UseExtMemoryBudget) +#if VMA_MEMORY_BUDGET || VMA_VULKAN_VERSION >= 1001000 + if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) + { + VMA_FETCH_INSTANCE_FUNC(vkGetPhysicalDeviceMemoryProperties2KHR, PFN_vkGetPhysicalDeviceMemoryProperties2KHR, "vkGetPhysicalDeviceMemoryProperties2"); + } + else if(m_UseExtMemoryBudget) { VMA_FETCH_INSTANCE_FUNC(vkGetPhysicalDeviceMemoryProperties2KHR, PFN_vkGetPhysicalDeviceMemoryProperties2KHR, "vkGetPhysicalDeviceMemoryProperties2KHR"); } #endif // #if VMA_MEMORY_BUDGET +#if VMA_VULKAN_VERSION >= 1003000 + if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 3, 0)) + { + VMA_FETCH_DEVICE_FUNC(vkGetDeviceBufferMemoryRequirements, PFN_vkGetDeviceBufferMemoryRequirements, "vkGetDeviceBufferMemoryRequirements"); + VMA_FETCH_DEVICE_FUNC(vkGetDeviceImageMemoryRequirements, PFN_vkGetDeviceImageMemoryRequirements, "vkGetDeviceImageMemoryRequirements"); + } +#endif + #undef VMA_FETCH_DEVICE_FUNC #undef VMA_FETCH_INSTANCE_FUNC } -#endif // #if VMA_DYNAMIC_VULKAN_FUNCTIONS == 1 +#endif // VMA_DYNAMIC_VULKAN_FUNCTIONS == 1 void VmaAllocator_T::ValidateVulkanFunctions() { @@ -14613,6 +14519,14 @@ void VmaAllocator_T::ValidateVulkanFunctions() VMA_ASSERT(m_VulkanFunctions.vkGetPhysicalDeviceMemoryProperties2KHR != VMA_NULL); } #endif + +#if VMA_VULKAN_VERSION >= 1003000 + if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 3, 0)) + { + VMA_ASSERT(m_VulkanFunctions.vkGetDeviceBufferMemoryRequirements != VMA_NULL); + VMA_ASSERT(m_VulkanFunctions.vkGetDeviceImageMemoryRequirements != VMA_NULL); + } +#endif } VkDeviceSize VmaAllocator_T::CalcPreferredBlockSize(uint32_t memTypeIndex) @@ -14624,180 +14538,195 @@ VkDeviceSize VmaAllocator_T::CalcPreferredBlockSize(uint32_t memTypeIndex) } VkResult VmaAllocator_T::AllocateMemoryOfType( + VmaPool pool, VkDeviceSize size, VkDeviceSize alignment, - bool dedicatedAllocation, + bool dedicatedPreferred, VkBuffer dedicatedBuffer, - VkBufferUsageFlags dedicatedBufferUsage, VkImage dedicatedImage, + VkFlags dedicatedBufferImageUsage, const VmaAllocationCreateInfo& createInfo, uint32_t memTypeIndex, VmaSuballocationType suballocType, + VmaDedicatedAllocationList& dedicatedAllocations, + VmaBlockVector& blockVector, size_t allocationCount, VmaAllocation* pAllocations) { VMA_ASSERT(pAllocations != VMA_NULL); - VMA_DEBUG_LOG(" AllocateMemory: MemoryTypeIndex=%u, AllocationCount=%zu, Size=%llu", memTypeIndex, allocationCount, size); + VMA_DEBUG_LOG_FORMAT(" AllocateMemory: MemoryTypeIndex=%u, AllocationCount=%zu, Size=%llu", memTypeIndex, allocationCount, size); VmaAllocationCreateInfo finalCreateInfo = createInfo; + VkResult res = CalcMemTypeParams( + finalCreateInfo, + memTypeIndex, + size, + allocationCount); + if(res != VK_SUCCESS) + return res; - // If memory type is not HOST_VISIBLE, disable MAPPED. - if((finalCreateInfo.flags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0 && - (m_MemProps.memoryTypes[memTypeIndex].propertyFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) == 0) + if((finalCreateInfo.flags & VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT) != 0) { - finalCreateInfo.flags &= ~VMA_ALLOCATION_CREATE_MAPPED_BIT; + return AllocateDedicatedMemory( + pool, + size, + suballocType, + dedicatedAllocations, + memTypeIndex, + (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0, + (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT) != 0, + (finalCreateInfo.flags & + (VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT)) != 0, + (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_CAN_ALIAS_BIT) != 0, + finalCreateInfo.pUserData, + finalCreateInfo.priority, + dedicatedBuffer, + dedicatedImage, + dedicatedBufferImageUsage, + allocationCount, + pAllocations, + blockVector.GetAllocationNextPtr()); } - // If memory is lazily allocated, it should be always dedicated. - if(finalCreateInfo.usage == VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED) + else { - finalCreateInfo.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT; - } + const bool canAllocateDedicated = + (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT) == 0 && + (pool == VK_NULL_HANDLE || !blockVector.HasExplicitBlockSize()); - VmaBlockVector* const blockVector = m_pBlockVectors[memTypeIndex]; - VMA_ASSERT(blockVector); + if(canAllocateDedicated) + { + // Heuristics: Allocate dedicated memory if requested size if greater than half of preferred block size. + if(size > blockVector.GetPreferredBlockSize() / 2) + { + dedicatedPreferred = true; + } + // Protection against creating each allocation as dedicated when we reach or exceed heap size/budget, + // which can quickly deplete maxMemoryAllocationCount: Don't prefer dedicated allocations when above + // 3/4 of the maximum allocation count. + if(m_PhysicalDeviceProperties.limits.maxMemoryAllocationCount < UINT32_MAX / 4 && + m_DeviceMemoryCount.load() > m_PhysicalDeviceProperties.limits.maxMemoryAllocationCount * 3 / 4) + { + dedicatedPreferred = false; + } - const VkDeviceSize preferredBlockSize = blockVector->GetPreferredBlockSize(); - bool preferDedicatedMemory = - VMA_DEBUG_ALWAYS_DEDICATED_MEMORY || - dedicatedAllocation || - // Heuristics: Allocate dedicated memory if requested size if greater than half of preferred block size. - size > preferredBlockSize / 2; + if(dedicatedPreferred) + { + res = AllocateDedicatedMemory( + pool, + size, + suballocType, + dedicatedAllocations, + memTypeIndex, + (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0, + (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT) != 0, + (finalCreateInfo.flags & + (VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT)) != 0, + (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_CAN_ALIAS_BIT) != 0, + finalCreateInfo.pUserData, + finalCreateInfo.priority, + dedicatedBuffer, + dedicatedImage, + dedicatedBufferImageUsage, + allocationCount, + pAllocations, + blockVector.GetAllocationNextPtr()); + if(res == VK_SUCCESS) + { + // Succeeded: AllocateDedicatedMemory function already filled pMemory, nothing more to do here. + VMA_DEBUG_LOG(" Allocated as DedicatedMemory"); + return VK_SUCCESS; + } + } + } - if(preferDedicatedMemory && - (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT) == 0 && - finalCreateInfo.pool == VK_NULL_HANDLE) - { - finalCreateInfo.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT; - } + res = blockVector.Allocate( + size, + alignment, + finalCreateInfo, + suballocType, + allocationCount, + pAllocations); + if(res == VK_SUCCESS) + return VK_SUCCESS; - if((finalCreateInfo.flags & VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT) != 0) - { - if((finalCreateInfo.flags & VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT) != 0) - { - return VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - else + // Try dedicated memory. + if(canAllocateDedicated && !dedicatedPreferred) { - return AllocateDedicatedMemory( + res = AllocateDedicatedMemory( + pool, size, suballocType, + dedicatedAllocations, memTypeIndex, - (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT) != 0, (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0, (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT) != 0, + (finalCreateInfo.flags & + (VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT)) != 0, + (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_CAN_ALIAS_BIT) != 0, finalCreateInfo.pUserData, finalCreateInfo.priority, dedicatedBuffer, - dedicatedBufferUsage, dedicatedImage, + dedicatedBufferImageUsage, allocationCount, - pAllocations); - } - } - else - { - VkResult res = blockVector->Allocate( - m_CurrentFrameIndex.load(), - size, - alignment, - finalCreateInfo, - suballocType, - allocationCount, - pAllocations); - if(res == VK_SUCCESS) - { - return res; - } - - // 5. Try dedicated memory. - if((finalCreateInfo.flags & VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT) != 0) - { - return VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - - // Protection against creating each allocation as dedicated when we reach or exceed heap size/budget, - // which can quickly deplete maxMemoryAllocationCount: Don't try dedicated allocations when above - // 3/4 of the maximum allocation count. - if(m_DeviceMemoryCount.load() > m_PhysicalDeviceProperties.limits.maxMemoryAllocationCount * 3 / 4) - { - return VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - - res = AllocateDedicatedMemory( - size, - suballocType, - memTypeIndex, - (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT) != 0, - (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0, - (finalCreateInfo.flags & VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT) != 0, - finalCreateInfo.pUserData, - finalCreateInfo.priority, - dedicatedBuffer, - dedicatedBufferUsage, - dedicatedImage, - allocationCount, - pAllocations); - if(res == VK_SUCCESS) - { - // Succeeded: AllocateDedicatedMemory function already filld pMemory, nothing more to do here. - VMA_DEBUG_LOG(" Allocated as DedicatedMemory"); - return VK_SUCCESS; - } - else - { - // Everything failed: Return error code. - VMA_DEBUG_LOG(" vkAllocateMemory FAILED"); - return res; + pAllocations, + blockVector.GetAllocationNextPtr()); + if(res == VK_SUCCESS) + { + // Succeeded: AllocateDedicatedMemory function already filled pMemory, nothing more to do here. + VMA_DEBUG_LOG(" Allocated as DedicatedMemory"); + return VK_SUCCESS; + } } + // Everything failed: Return error code. + VMA_DEBUG_LOG(" vkAllocateMemory FAILED"); + return res; } } VkResult VmaAllocator_T::AllocateDedicatedMemory( + VmaPool pool, VkDeviceSize size, VmaSuballocationType suballocType, + VmaDedicatedAllocationList& dedicatedAllocations, uint32_t memTypeIndex, - bool withinBudget, bool map, bool isUserDataString, + bool isMappingAllowed, + bool canAliasMemory, void* pUserData, float priority, VkBuffer dedicatedBuffer, - VkBufferUsageFlags dedicatedBufferUsage, VkImage dedicatedImage, + VkFlags dedicatedBufferImageUsage, size_t allocationCount, - VmaAllocation* pAllocations) + VmaAllocation* pAllocations, + const void* pNextChain) { VMA_ASSERT(allocationCount > 0 && pAllocations); - if(withinBudget) - { - const uint32_t heapIndex = MemoryTypeIndexToHeapIndex(memTypeIndex); - VmaBudget heapBudget = {}; - GetBudget(&heapBudget, heapIndex, 1); - if(heapBudget.usage + size * allocationCount > heapBudget.budget) - { - return VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - } - VkMemoryAllocateInfo allocInfo = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO }; allocInfo.memoryTypeIndex = memTypeIndex; allocInfo.allocationSize = size; + allocInfo.pNext = pNextChain; #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 VkMemoryDedicatedAllocateInfoKHR dedicatedAllocInfo = { VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR }; - if(m_UseKhrDedicatedAllocation || m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) + if(!canAliasMemory) { - if(dedicatedBuffer != VK_NULL_HANDLE) - { - VMA_ASSERT(dedicatedImage == VK_NULL_HANDLE); - dedicatedAllocInfo.buffer = dedicatedBuffer; - VmaPnextChainPushFront(&allocInfo, &dedicatedAllocInfo); - } - else if(dedicatedImage != VK_NULL_HANDLE) + if(m_UseKhrDedicatedAllocation || m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) { - dedicatedAllocInfo.image = dedicatedImage; - VmaPnextChainPushFront(&allocInfo, &dedicatedAllocInfo); + if(dedicatedBuffer != VK_NULL_HANDLE) + { + VMA_ASSERT(dedicatedImage == VK_NULL_HANDLE); + dedicatedAllocInfo.buffer = dedicatedBuffer; + VmaPnextChainPushFront(&allocInfo, &dedicatedAllocInfo); + } + else if(dedicatedImage != VK_NULL_HANDLE) + { + dedicatedAllocInfo.image = dedicatedImage; + VmaPnextChainPushFront(&allocInfo, &dedicatedAllocInfo); + } } } #endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 @@ -14809,8 +14738,8 @@ VkResult VmaAllocator_T::AllocateDedicatedMemory( bool canContainBufferWithDeviceAddress = true; if(dedicatedBuffer != VK_NULL_HANDLE) { - canContainBufferWithDeviceAddress = dedicatedBufferUsage == UINT32_MAX || // Usage flags unknown - (dedicatedBufferUsage & VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT) != 0; + canContainBufferWithDeviceAddress = dedicatedBufferImageUsage == UINT32_MAX || // Usage flags unknown + (dedicatedBufferImageUsage & VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT) != 0; } else if(dedicatedImage != VK_NULL_HANDLE) { @@ -14828,6 +14757,7 @@ VkResult VmaAllocator_T::AllocateDedicatedMemory( VkMemoryPriorityAllocateInfoEXT priorityInfo = { VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT }; if(m_UseExtMemoryPriority) { + VMA_ASSERT(priority >= 0.f && priority <= 1.f); priorityInfo.priority = priority; VmaPnextChainPushFront(&allocInfo, &priorityInfo); } @@ -14848,12 +14778,14 @@ VkResult VmaAllocator_T::AllocateDedicatedMemory( for(allocIndex = 0; allocIndex < allocationCount; ++allocIndex) { res = AllocateDedicatedMemoryPage( + pool, size, suballocType, memTypeIndex, allocInfo, map, isUserDataString, + isMappingAllowed, pUserData, pAllocations + allocIndex); if(res != VK_SUCCESS) @@ -14864,17 +14796,11 @@ VkResult VmaAllocator_T::AllocateDedicatedMemory( if(res == VK_SUCCESS) { - // Register them in m_DedicatedAllocations. + for (allocIndex = 0; allocIndex < allocationCount; ++allocIndex) { - VmaMutexLockWrite lock(m_DedicatedAllocationsMutex[memTypeIndex], m_UseMutex); - DedicatedAllocationLinkedList& dedicatedAllocations = m_DedicatedAllocations[memTypeIndex]; - for(allocIndex = 0; allocIndex < allocationCount; ++allocIndex) - { - dedicatedAllocations.PushBack(pAllocations[allocIndex]); - } + dedicatedAllocations.Register(pAllocations[allocIndex]); } - - VMA_DEBUG_LOG(" Allocated DedicatedMemory Count=%zu, MemoryTypeIndex=#%u", allocationCount, memTypeIndex); + VMA_DEBUG_LOG_FORMAT(" Allocated DedicatedMemory Count=%zu, MemoryTypeIndex=#%u", allocationCount, memTypeIndex); } else { @@ -14896,7 +14822,6 @@ VkResult VmaAllocator_T::AllocateDedicatedMemory( FreeVulkanMemory(memTypeIndex, currAlloc->GetSize(), hMemory); m_Budget.RemoveAllocation(MemoryTypeIndexToHeapIndex(memTypeIndex), currAlloc->GetSize()); - currAlloc->SetUserData(this, VMA_NULL); m_AllocationObjectAllocator.Free(currAlloc); } @@ -14907,12 +14832,14 @@ VkResult VmaAllocator_T::AllocateDedicatedMemory( } VkResult VmaAllocator_T::AllocateDedicatedMemoryPage( + VmaPool pool, VkDeviceSize size, VmaSuballocationType suballocType, uint32_t memTypeIndex, const VkMemoryAllocateInfo& allocInfo, bool map, bool isUserDataString, + bool isMappingAllowed, void* pUserData, VmaAllocation* pAllocation) { @@ -14942,80 +14869,235 @@ VkResult VmaAllocator_T::AllocateDedicatedMemoryPage( } } - *pAllocation = m_AllocationObjectAllocator.Allocate(m_CurrentFrameIndex.load(), isUserDataString); - (*pAllocation)->InitDedicatedAllocation(memTypeIndex, hMemory, suballocType, pMappedData, size); - (*pAllocation)->SetUserData(this, pUserData); - m_Budget.AddAllocation(MemoryTypeIndexToHeapIndex(memTypeIndex), size); - if(VMA_DEBUG_INITIALIZE_ALLOCATIONS) + *pAllocation = m_AllocationObjectAllocator.Allocate(isMappingAllowed); + (*pAllocation)->InitDedicatedAllocation(pool, memTypeIndex, hMemory, suballocType, pMappedData, size); + if (isUserDataString) + (*pAllocation)->SetName(this, (const char*)pUserData); + else + (*pAllocation)->SetUserData(this, pUserData); + m_Budget.AddAllocation(MemoryTypeIndexToHeapIndex(memTypeIndex), size); + if(VMA_DEBUG_INITIALIZE_ALLOCATIONS) + { + FillAllocation(*pAllocation, VMA_ALLOCATION_FILL_PATTERN_CREATED); + } + + return VK_SUCCESS; +} + +void VmaAllocator_T::GetBufferMemoryRequirements( + VkBuffer hBuffer, + VkMemoryRequirements& memReq, + bool& requiresDedicatedAllocation, + bool& prefersDedicatedAllocation) const +{ +#if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 + if(m_UseKhrDedicatedAllocation || m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) + { + VkBufferMemoryRequirementsInfo2KHR memReqInfo = { VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR }; + memReqInfo.buffer = hBuffer; + + VkMemoryDedicatedRequirementsKHR memDedicatedReq = { VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR }; + + VkMemoryRequirements2KHR memReq2 = { VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR }; + VmaPnextChainPushFront(&memReq2, &memDedicatedReq); + + (*m_VulkanFunctions.vkGetBufferMemoryRequirements2KHR)(m_hDevice, &memReqInfo, &memReq2); + + memReq = memReq2.memoryRequirements; + requiresDedicatedAllocation = (memDedicatedReq.requiresDedicatedAllocation != VK_FALSE); + prefersDedicatedAllocation = (memDedicatedReq.prefersDedicatedAllocation != VK_FALSE); + } + else +#endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 + { + (*m_VulkanFunctions.vkGetBufferMemoryRequirements)(m_hDevice, hBuffer, &memReq); + requiresDedicatedAllocation = false; + prefersDedicatedAllocation = false; + } +} + +void VmaAllocator_T::GetImageMemoryRequirements( + VkImage hImage, + VkMemoryRequirements& memReq, + bool& requiresDedicatedAllocation, + bool& prefersDedicatedAllocation) const +{ +#if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 + if(m_UseKhrDedicatedAllocation || m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) + { + VkImageMemoryRequirementsInfo2KHR memReqInfo = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR }; + memReqInfo.image = hImage; + + VkMemoryDedicatedRequirementsKHR memDedicatedReq = { VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR }; + + VkMemoryRequirements2KHR memReq2 = { VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR }; + VmaPnextChainPushFront(&memReq2, &memDedicatedReq); + + (*m_VulkanFunctions.vkGetImageMemoryRequirements2KHR)(m_hDevice, &memReqInfo, &memReq2); + + memReq = memReq2.memoryRequirements; + requiresDedicatedAllocation = (memDedicatedReq.requiresDedicatedAllocation != VK_FALSE); + prefersDedicatedAllocation = (memDedicatedReq.prefersDedicatedAllocation != VK_FALSE); + } + else +#endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 + { + (*m_VulkanFunctions.vkGetImageMemoryRequirements)(m_hDevice, hImage, &memReq); + requiresDedicatedAllocation = false; + prefersDedicatedAllocation = false; + } +} + +VkResult VmaAllocator_T::FindMemoryTypeIndex( + uint32_t memoryTypeBits, + const VmaAllocationCreateInfo* pAllocationCreateInfo, + VkFlags bufImgUsage, + uint32_t* pMemoryTypeIndex) const +{ + memoryTypeBits &= GetGlobalMemoryTypeBits(); + + if(pAllocationCreateInfo->memoryTypeBits != 0) + { + memoryTypeBits &= pAllocationCreateInfo->memoryTypeBits; + } + + VkMemoryPropertyFlags requiredFlags = 0, preferredFlags = 0, notPreferredFlags = 0; + if(!FindMemoryPreferences( + IsIntegratedGpu(), + *pAllocationCreateInfo, + bufImgUsage, + requiredFlags, preferredFlags, notPreferredFlags)) + { + return VK_ERROR_FEATURE_NOT_PRESENT; + } + + *pMemoryTypeIndex = UINT32_MAX; + uint32_t minCost = UINT32_MAX; + for(uint32_t memTypeIndex = 0, memTypeBit = 1; + memTypeIndex < GetMemoryTypeCount(); + ++memTypeIndex, memTypeBit <<= 1) + { + // This memory type is acceptable according to memoryTypeBits bitmask. + if((memTypeBit & memoryTypeBits) != 0) + { + const VkMemoryPropertyFlags currFlags = + m_MemProps.memoryTypes[memTypeIndex].propertyFlags; + // This memory type contains requiredFlags. + if((requiredFlags & ~currFlags) == 0) + { + // Calculate cost as number of bits from preferredFlags not present in this memory type. + uint32_t currCost = VMA_COUNT_BITS_SET(preferredFlags & ~currFlags) + + VMA_COUNT_BITS_SET(currFlags & notPreferredFlags); + // Remember memory type with lowest cost. + if(currCost < minCost) + { + *pMemoryTypeIndex = memTypeIndex; + if(currCost == 0) + { + return VK_SUCCESS; + } + minCost = currCost; + } + } + } + } + return (*pMemoryTypeIndex != UINT32_MAX) ? VK_SUCCESS : VK_ERROR_FEATURE_NOT_PRESENT; +} + +VkResult VmaAllocator_T::CalcMemTypeParams( + VmaAllocationCreateInfo& inoutCreateInfo, + uint32_t memTypeIndex, + VkDeviceSize size, + size_t allocationCount) +{ + // If memory type is not HOST_VISIBLE, disable MAPPED. + if((inoutCreateInfo.flags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0 && + (m_MemProps.memoryTypes[memTypeIndex].propertyFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) == 0) { - FillAllocation(*pAllocation, VMA_ALLOCATION_FILL_PATTERN_CREATED); + inoutCreateInfo.flags &= ~VMA_ALLOCATION_CREATE_MAPPED_BIT; } + if((inoutCreateInfo.flags & VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT) != 0 && + (inoutCreateInfo.flags & VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT) != 0) + { + const uint32_t heapIndex = MemoryTypeIndexToHeapIndex(memTypeIndex); + VmaBudget heapBudget = {}; + GetHeapBudgets(&heapBudget, heapIndex, 1); + if(heapBudget.usage + size * allocationCount > heapBudget.budget) + { + return VK_ERROR_OUT_OF_DEVICE_MEMORY; + } + } return VK_SUCCESS; } -void VmaAllocator_T::GetBufferMemoryRequirements( - VkBuffer hBuffer, - VkMemoryRequirements& memReq, - bool& requiresDedicatedAllocation, - bool& prefersDedicatedAllocation) const +VkResult VmaAllocator_T::CalcAllocationParams( + VmaAllocationCreateInfo& inoutCreateInfo, + bool dedicatedRequired, + bool dedicatedPreferred) { -#if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 - if(m_UseKhrDedicatedAllocation || m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) + VMA_ASSERT((inoutCreateInfo.flags & + (VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT)) != + (VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT) && + "Specifying both flags VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT and VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT is incorrect."); + VMA_ASSERT((((inoutCreateInfo.flags & VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT) == 0 || + (inoutCreateInfo.flags & (VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT)) != 0)) && + "Specifying VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT requires also VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT."); + if(inoutCreateInfo.usage == VMA_MEMORY_USAGE_AUTO || inoutCreateInfo.usage == VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE || inoutCreateInfo.usage == VMA_MEMORY_USAGE_AUTO_PREFER_HOST) { - VkBufferMemoryRequirementsInfo2KHR memReqInfo = { VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR }; - memReqInfo.buffer = hBuffer; - - VkMemoryDedicatedRequirementsKHR memDedicatedReq = { VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR }; - - VkMemoryRequirements2KHR memReq2 = { VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR }; - VmaPnextChainPushFront(&memReq2, &memDedicatedReq); - - (*m_VulkanFunctions.vkGetBufferMemoryRequirements2KHR)(m_hDevice, &memReqInfo, &memReq2); - - memReq = memReq2.memoryRequirements; - requiresDedicatedAllocation = (memDedicatedReq.requiresDedicatedAllocation != VK_FALSE); - prefersDedicatedAllocation = (memDedicatedReq.prefersDedicatedAllocation != VK_FALSE); + if((inoutCreateInfo.flags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0) + { + VMA_ASSERT((inoutCreateInfo.flags & (VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT)) != 0 && + "When using VMA_ALLOCATION_CREATE_MAPPED_BIT and usage = VMA_MEMORY_USAGE_AUTO*, you must also specify VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT."); + } } - else -#endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 + + // If memory is lazily allocated, it should be always dedicated. + if(dedicatedRequired || + inoutCreateInfo.usage == VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED) { - (*m_VulkanFunctions.vkGetBufferMemoryRequirements)(m_hDevice, hBuffer, &memReq); - requiresDedicatedAllocation = false; - prefersDedicatedAllocation = false; + inoutCreateInfo.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT; } -} -void VmaAllocator_T::GetImageMemoryRequirements( - VkImage hImage, - VkMemoryRequirements& memReq, - bool& requiresDedicatedAllocation, - bool& prefersDedicatedAllocation) const -{ -#if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 - if(m_UseKhrDedicatedAllocation || m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) + if(inoutCreateInfo.pool != VK_NULL_HANDLE) { - VkImageMemoryRequirementsInfo2KHR memReqInfo = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR }; - memReqInfo.image = hImage; - - VkMemoryDedicatedRequirementsKHR memDedicatedReq = { VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR }; - - VkMemoryRequirements2KHR memReq2 = { VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR }; - VmaPnextChainPushFront(&memReq2, &memDedicatedReq); + if(inoutCreateInfo.pool->m_BlockVector.HasExplicitBlockSize() && + (inoutCreateInfo.flags & VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT) != 0) + { + VMA_ASSERT(0 && "Specifying VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT while current custom pool doesn't support dedicated allocations."); + return VK_ERROR_FEATURE_NOT_PRESENT; + } + inoutCreateInfo.priority = inoutCreateInfo.pool->m_BlockVector.GetPriority(); + } - (*m_VulkanFunctions.vkGetImageMemoryRequirements2KHR)(m_hDevice, &memReqInfo, &memReq2); + if((inoutCreateInfo.flags & VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT) != 0 && + (inoutCreateInfo.flags & VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT) != 0) + { + VMA_ASSERT(0 && "Specifying VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT together with VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT makes no sense."); + return VK_ERROR_FEATURE_NOT_PRESENT; + } - memReq = memReq2.memoryRequirements; - requiresDedicatedAllocation = (memDedicatedReq.requiresDedicatedAllocation != VK_FALSE); - prefersDedicatedAllocation = (memDedicatedReq.prefersDedicatedAllocation != VK_FALSE); + if(VMA_DEBUG_ALWAYS_DEDICATED_MEMORY && + (inoutCreateInfo.flags & VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT) != 0) + { + inoutCreateInfo.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT; } - else -#endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 + + // Non-auto USAGE values imply HOST_ACCESS flags. + // And so does VMA_MEMORY_USAGE_UNKNOWN because it is used with custom pools. + // Which specific flag is used doesn't matter. They change things only when used with VMA_MEMORY_USAGE_AUTO*. + // Otherwise they just protect from assert on mapping. + if(inoutCreateInfo.usage != VMA_MEMORY_USAGE_AUTO && + inoutCreateInfo.usage != VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE && + inoutCreateInfo.usage != VMA_MEMORY_USAGE_AUTO_PREFER_HOST) { - (*m_VulkanFunctions.vkGetImageMemoryRequirements)(m_hDevice, hImage, &memReq); - requiresDedicatedAllocation = false; - prefersDedicatedAllocation = false; + if((inoutCreateInfo.flags & (VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT)) == 0) + { + inoutCreateInfo.flags |= VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT; + } } + + return VK_SUCCESS; } VkResult VmaAllocator_T::AllocateMemory( @@ -15023,8 +15105,8 @@ VkResult VmaAllocator_T::AllocateMemory( bool requiresDedicatedAllocation, bool prefersDedicatedAllocation, VkBuffer dedicatedBuffer, - VkBufferUsageFlags dedicatedBufferUsage, VkImage dedicatedImage, + VkFlags dedicatedBufferImageUsage, const VmaAllocationCreateInfo& createInfo, VmaSuballocationType suballocType, size_t allocationCount, @@ -15038,54 +15120,28 @@ VkResult VmaAllocator_T::AllocateMemory( { return VK_ERROR_INITIALIZATION_FAILED; } - if((createInfo.flags & VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT) != 0 && - (createInfo.flags & VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT) != 0) - { - VMA_ASSERT(0 && "Specifying VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT together with VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT makes no sense."); - return VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - if((createInfo.flags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0 && - (createInfo.flags & VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT) != 0) - { - VMA_ASSERT(0 && "Specifying VMA_ALLOCATION_CREATE_MAPPED_BIT together with VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT is invalid."); - return VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - if(requiresDedicatedAllocation) - { - if((createInfo.flags & VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT) != 0) - { - VMA_ASSERT(0 && "VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT specified while dedicated allocation is required."); - return VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - if(createInfo.pool != VK_NULL_HANDLE) - { - VMA_ASSERT(0 && "Pool specified while dedicated allocation is required."); - return VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - } - if((createInfo.pool != VK_NULL_HANDLE) && - ((createInfo.flags & (VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT)) != 0)) - { - VMA_ASSERT(0 && "Specifying VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT when pool != null is invalid."); - return VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - if(createInfo.pool != VK_NULL_HANDLE) - { - VmaAllocationCreateInfo createInfoForPool = createInfo; - // If memory type is not HOST_VISIBLE, disable MAPPED. - if((createInfoForPool.flags & VMA_ALLOCATION_CREATE_MAPPED_BIT) != 0 && - (m_MemProps.memoryTypes[createInfo.pool->m_BlockVector.GetMemoryTypeIndex()].propertyFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) == 0) - { - createInfoForPool.flags &= ~VMA_ALLOCATION_CREATE_MAPPED_BIT; - } + VmaAllocationCreateInfo createInfoFinal = createInfo; + VkResult res = CalcAllocationParams(createInfoFinal, requiresDedicatedAllocation, prefersDedicatedAllocation); + if(res != VK_SUCCESS) + return res; - return createInfo.pool->m_BlockVector.Allocate( - m_CurrentFrameIndex.load(), + if(createInfoFinal.pool != VK_NULL_HANDLE) + { + VmaBlockVector& blockVector = createInfoFinal.pool->m_BlockVector; + return AllocateMemoryOfType( + createInfoFinal.pool, vkMemReq.size, vkMemReq.alignment, - createInfoForPool, + prefersDedicatedAllocation, + dedicatedBuffer, + dedicatedImage, + dedicatedBufferImageUsage, + createInfoFinal, + blockVector.GetMemoryTypeIndex(), suballocType, + createInfoFinal.pool->m_DedicatedAllocations, + blockVector, allocationCount, pAllocations); } @@ -15094,68 +15150,42 @@ VkResult VmaAllocator_T::AllocateMemory( // Bit mask of memory Vulkan types acceptable for this allocation. uint32_t memoryTypeBits = vkMemReq.memoryTypeBits; uint32_t memTypeIndex = UINT32_MAX; - VkResult res = vmaFindMemoryTypeIndex(this, memoryTypeBits, &createInfo, &memTypeIndex); - if(res == VK_SUCCESS) + res = FindMemoryTypeIndex(memoryTypeBits, &createInfoFinal, dedicatedBufferImageUsage, &memTypeIndex); + // Can't find any single memory type matching requirements. res is VK_ERROR_FEATURE_NOT_PRESENT. + if(res != VK_SUCCESS) + return res; + do { + VmaBlockVector* blockVector = m_pBlockVectors[memTypeIndex]; + VMA_ASSERT(blockVector && "Trying to use unsupported memory type!"); res = AllocateMemoryOfType( + VK_NULL_HANDLE, vkMemReq.size, vkMemReq.alignment, requiresDedicatedAllocation || prefersDedicatedAllocation, dedicatedBuffer, - dedicatedBufferUsage, dedicatedImage, - createInfo, + dedicatedBufferImageUsage, + createInfoFinal, memTypeIndex, suballocType, + m_DedicatedAllocations[memTypeIndex], + *blockVector, allocationCount, pAllocations); - // Succeeded on first try. + // Allocation succeeded if(res == VK_SUCCESS) - { - return res; - } - // Allocation from this memory type failed. Try other compatible memory types. - else - { - for(;;) - { - // Remove old memTypeIndex from list of possibilities. - memoryTypeBits &= ~(1u << memTypeIndex); - // Find alternative memTypeIndex. - res = vmaFindMemoryTypeIndex(this, memoryTypeBits, &createInfo, &memTypeIndex); - if(res == VK_SUCCESS) - { - res = AllocateMemoryOfType( - vkMemReq.size, - vkMemReq.alignment, - requiresDedicatedAllocation || prefersDedicatedAllocation, - dedicatedBuffer, - dedicatedBufferUsage, - dedicatedImage, - createInfo, - memTypeIndex, - suballocType, - allocationCount, - pAllocations); - // Allocation from this alternative memory type succeeded. - if(res == VK_SUCCESS) - { - return res; - } - // else: Allocation from this memory type failed. Try next one - next loop iteration. - } - // No other matching memory type index could be found. - else - { - // Not returning res, which is VK_ERROR_FEATURE_NOT_PRESENT, because we already failed to allocate once. - return VK_ERROR_OUT_OF_DEVICE_MEMORY; - } - } - } - } - // Can't find any single memory type maching requirements. res is VK_ERROR_FEATURE_NOT_PRESENT. - else - return res; + return VK_SUCCESS; + + // Remove old memTypeIndex from list of possibilities. + memoryTypeBits &= ~(1u << memTypeIndex); + // Find alternative memTypeIndex. + res = FindMemoryTypeIndex(memoryTypeBits, &createInfoFinal, dedicatedBufferImageUsage, &memTypeIndex); + } while(res == VK_SUCCESS); + + // No other matching memory type index could be found. + // Not returning res, which is VK_ERROR_FEATURE_NOT_PRESENT, because we already failed to allocate once. + return VK_ERROR_OUT_OF_DEVICE_MEMORY; } } @@ -15171,62 +15201,57 @@ void VmaAllocator_T::FreeMemory( if(allocation != VK_NULL_HANDLE) { - if(TouchAllocation(allocation)) + if(VMA_DEBUG_INITIALIZE_ALLOCATIONS) { - if(VMA_DEBUG_INITIALIZE_ALLOCATIONS) - { - FillAllocation(allocation, VMA_ALLOCATION_FILL_PATTERN_DESTROYED); - } + FillAllocation(allocation, VMA_ALLOCATION_FILL_PATTERN_DESTROYED); + } - switch(allocation->GetType()) + allocation->FreeName(this); + + switch(allocation->GetType()) + { + case VmaAllocation_T::ALLOCATION_TYPE_BLOCK: { - case VmaAllocation_T::ALLOCATION_TYPE_BLOCK: + VmaBlockVector* pBlockVector = VMA_NULL; + VmaPool hPool = allocation->GetParentPool(); + if(hPool != VK_NULL_HANDLE) { - VmaBlockVector* pBlockVector = VMA_NULL; - VmaPool hPool = allocation->GetBlock()->GetParentPool(); - if(hPool != VK_NULL_HANDLE) - { - pBlockVector = &hPool->m_BlockVector; - } - else - { - const uint32_t memTypeIndex = allocation->GetMemoryTypeIndex(); - pBlockVector = m_pBlockVectors[memTypeIndex]; - } - pBlockVector->Free(allocation); + pBlockVector = &hPool->m_BlockVector; } - break; - case VmaAllocation_T::ALLOCATION_TYPE_DEDICATED: - FreeDedicatedMemory(allocation); - break; - default: - VMA_ASSERT(0); + else + { + const uint32_t memTypeIndex = allocation->GetMemoryTypeIndex(); + pBlockVector = m_pBlockVectors[memTypeIndex]; + VMA_ASSERT(pBlockVector && "Trying to free memory of unsupported type!"); + } + pBlockVector->Free(allocation); } + break; + case VmaAllocation_T::ALLOCATION_TYPE_DEDICATED: + FreeDedicatedMemory(allocation); + break; + default: + VMA_ASSERT(0); } - - // Do this regardless of whether the allocation is lost. Lost allocations still account to Budget.AllocationBytes. - m_Budget.RemoveAllocation(MemoryTypeIndexToHeapIndex(allocation->GetMemoryTypeIndex()), allocation->GetSize()); - allocation->SetUserData(this, VMA_NULL); - m_AllocationObjectAllocator.Free(allocation); } } } -void VmaAllocator_T::CalculateStats(VmaStats* pStats) +void VmaAllocator_T::CalculateStatistics(VmaTotalStatistics* pStats) { // Initialize. - InitStatInfo(pStats->total); - for(size_t i = 0; i < VK_MAX_MEMORY_TYPES; ++i) - InitStatInfo(pStats->memoryType[i]); - for(size_t i = 0; i < VK_MAX_MEMORY_HEAPS; ++i) - InitStatInfo(pStats->memoryHeap[i]); + VmaClearDetailedStatistics(pStats->total); + for(uint32_t i = 0; i < VK_MAX_MEMORY_TYPES; ++i) + VmaClearDetailedStatistics(pStats->memoryType[i]); + for(uint32_t i = 0; i < VK_MAX_MEMORY_HEAPS; ++i) + VmaClearDetailedStatistics(pStats->memoryHeap[i]); // Process default pools. for(uint32_t memTypeIndex = 0; memTypeIndex < GetMemoryTypeCount(); ++memTypeIndex) { VmaBlockVector* const pBlockVector = m_pBlockVectors[memTypeIndex]; - VMA_ASSERT(pBlockVector); - pBlockVector->AddStats(pStats); + if (pBlockVector != VMA_NULL) + pBlockVector->AddDetailedStatistics(pStats->memoryType[memTypeIndex]); } // Process custom pools. @@ -15234,36 +15259,37 @@ void VmaAllocator_T::CalculateStats(VmaStats* pStats) VmaMutexLockRead lock(m_PoolsMutex, m_UseMutex); for(VmaPool pool = m_Pools.Front(); pool != VMA_NULL; pool = m_Pools.GetNext(pool)) { - pool->m_BlockVector.AddStats(pStats); + VmaBlockVector& blockVector = pool->m_BlockVector; + const uint32_t memTypeIndex = blockVector.GetMemoryTypeIndex(); + blockVector.AddDetailedStatistics(pStats->memoryType[memTypeIndex]); + pool->m_DedicatedAllocations.AddDetailedStatistics(pStats->memoryType[memTypeIndex]); } } // Process dedicated allocations. for(uint32_t memTypeIndex = 0; memTypeIndex < GetMemoryTypeCount(); ++memTypeIndex) { - const uint32_t memHeapIndex = MemoryTypeIndexToHeapIndex(memTypeIndex); - VmaMutexLockRead dedicatedAllocationsLock(m_DedicatedAllocationsMutex[memTypeIndex], m_UseMutex); - DedicatedAllocationLinkedList& dedicatedAllocList = m_DedicatedAllocations[memTypeIndex]; - for(VmaAllocation alloc = dedicatedAllocList.Front(); - alloc != VMA_NULL; alloc = dedicatedAllocList.GetNext(alloc)) - { - VmaStatInfo allocationStatInfo; - alloc->DedicatedAllocCalcStatsInfo(allocationStatInfo); - VmaAddStatInfo(pStats->total, allocationStatInfo); - VmaAddStatInfo(pStats->memoryType[memTypeIndex], allocationStatInfo); - VmaAddStatInfo(pStats->memoryHeap[memHeapIndex], allocationStatInfo); - } + m_DedicatedAllocations[memTypeIndex].AddDetailedStatistics(pStats->memoryType[memTypeIndex]); + } + + // Sum from memory types to memory heaps. + for(uint32_t memTypeIndex = 0; memTypeIndex < GetMemoryTypeCount(); ++memTypeIndex) + { + const uint32_t memHeapIndex = m_MemProps.memoryTypes[memTypeIndex].heapIndex; + VmaAddDetailedStatistics(pStats->memoryHeap[memHeapIndex], pStats->memoryType[memTypeIndex]); } - // Postprocess. - VmaPostprocessCalcStatInfo(pStats->total); - for(size_t i = 0; i < GetMemoryTypeCount(); ++i) - VmaPostprocessCalcStatInfo(pStats->memoryType[i]); - for(size_t i = 0; i < GetMemoryHeapCount(); ++i) - VmaPostprocessCalcStatInfo(pStats->memoryHeap[i]); + // Sum from memory heaps to total. + for(uint32_t memHeapIndex = 0; memHeapIndex < GetMemoryHeapCount(); ++memHeapIndex) + VmaAddDetailedStatistics(pStats->total, pStats->memoryHeap[memHeapIndex]); + + VMA_ASSERT(pStats->total.statistics.allocationCount == 0 || + pStats->total.allocationSizeMax >= pStats->total.allocationSizeMin); + VMA_ASSERT(pStats->total.unusedRangeCount == 0 || + pStats->total.unusedRangeSizeMax >= pStats->total.unusedRangeSizeMin); } -void VmaAllocator_T::GetBudget(VmaBudget* outBudget, uint32_t firstHeap, uint32_t heapCount) +void VmaAllocator_T::GetHeapBudgets(VmaBudget* outBudgets, uint32_t firstHeap, uint32_t heapCount) { #if VMA_MEMORY_BUDGET if(m_UseExtMemoryBudget) @@ -15271,230 +15297,87 @@ void VmaAllocator_T::GetBudget(VmaBudget* outBudget, uint32_t firstHeap, uint32_ if(m_Budget.m_OperationsSinceBudgetFetch < 30) { VmaMutexLockRead lockRead(m_Budget.m_BudgetMutex, m_UseMutex); - for(uint32_t i = 0; i < heapCount; ++i, ++outBudget) + for(uint32_t i = 0; i < heapCount; ++i, ++outBudgets) { const uint32_t heapIndex = firstHeap + i; - outBudget->blockBytes = m_Budget.m_BlockBytes[heapIndex]; - outBudget->allocationBytes = m_Budget.m_AllocationBytes[heapIndex]; + outBudgets->statistics.blockCount = m_Budget.m_BlockCount[heapIndex]; + outBudgets->statistics.allocationCount = m_Budget.m_AllocationCount[heapIndex]; + outBudgets->statistics.blockBytes = m_Budget.m_BlockBytes[heapIndex]; + outBudgets->statistics.allocationBytes = m_Budget.m_AllocationBytes[heapIndex]; - if(m_Budget.m_VulkanUsage[heapIndex] + outBudget->blockBytes > m_Budget.m_BlockBytesAtBudgetFetch[heapIndex]) + if(m_Budget.m_VulkanUsage[heapIndex] + outBudgets->statistics.blockBytes > m_Budget.m_BlockBytesAtBudgetFetch[heapIndex]) { - outBudget->usage = m_Budget.m_VulkanUsage[heapIndex] + - outBudget->blockBytes - m_Budget.m_BlockBytesAtBudgetFetch[heapIndex]; + outBudgets->usage = m_Budget.m_VulkanUsage[heapIndex] + + outBudgets->statistics.blockBytes - m_Budget.m_BlockBytesAtBudgetFetch[heapIndex]; } else { - outBudget->usage = 0; + outBudgets->usage = 0; } // Have to take MIN with heap size because explicit HeapSizeLimit is included in it. - outBudget->budget = VMA_MIN( + outBudgets->budget = VMA_MIN( m_Budget.m_VulkanBudget[heapIndex], m_MemProps.memoryHeaps[heapIndex].size); } } else { UpdateVulkanBudget(); // Outside of mutex lock - GetBudget(outBudget, firstHeap, heapCount); // Recursion - } - } - else -#endif - { - for(uint32_t i = 0; i < heapCount; ++i, ++outBudget) - { - const uint32_t heapIndex = firstHeap + i; - - outBudget->blockBytes = m_Budget.m_BlockBytes[heapIndex]; - outBudget->allocationBytes = m_Budget.m_AllocationBytes[heapIndex]; - - outBudget->usage = outBudget->blockBytes; - outBudget->budget = m_MemProps.memoryHeaps[heapIndex].size * 8 / 10; // 80% heuristics. - } - } -} - -static const uint32_t VMA_VENDOR_ID_AMD = 4098; - -VkResult VmaAllocator_T::DefragmentationBegin( - const VmaDefragmentationInfo2& info, - VmaDefragmentationStats* pStats, - VmaDefragmentationContext* pContext) -{ - if(info.pAllocationsChanged != VMA_NULL) - { - memset(info.pAllocationsChanged, 0, info.allocationCount * sizeof(VkBool32)); - } - - *pContext = vma_new(this, VmaDefragmentationContext_T)( - this, m_CurrentFrameIndex.load(), info.flags, pStats); - - (*pContext)->AddPools(info.poolCount, info.pPools); - (*pContext)->AddAllocations( - info.allocationCount, info.pAllocations, info.pAllocationsChanged); - - VkResult res = (*pContext)->Defragment( - info.maxCpuBytesToMove, info.maxCpuAllocationsToMove, - info.maxGpuBytesToMove, info.maxGpuAllocationsToMove, - info.commandBuffer, pStats, info.flags); - - if(res != VK_NOT_READY) - { - vma_delete(this, *pContext); - *pContext = VMA_NULL; - } - - return res; -} - -VkResult VmaAllocator_T::DefragmentationEnd( - VmaDefragmentationContext context) -{ - vma_delete(this, context); - return VK_SUCCESS; -} - -VkResult VmaAllocator_T::DefragmentationPassBegin( - VmaDefragmentationPassInfo* pInfo, - VmaDefragmentationContext context) -{ - return context->DefragmentPassBegin(pInfo); -} -VkResult VmaAllocator_T::DefragmentationPassEnd( - VmaDefragmentationContext context) -{ - return context->DefragmentPassEnd(); - -} - -void VmaAllocator_T::GetAllocationInfo(VmaAllocation hAllocation, VmaAllocationInfo* pAllocationInfo) -{ - if(hAllocation->CanBecomeLost()) - { - /* - Warning: This is a carefully designed algorithm. - Do not modify unless you really know what you are doing :) - */ - const uint32_t localCurrFrameIndex = m_CurrentFrameIndex.load(); - uint32_t localLastUseFrameIndex = hAllocation->GetLastUseFrameIndex(); - for(;;) - { - if(localLastUseFrameIndex == VMA_FRAME_INDEX_LOST) - { - pAllocationInfo->memoryType = UINT32_MAX; - pAllocationInfo->deviceMemory = VK_NULL_HANDLE; - pAllocationInfo->offset = 0; - pAllocationInfo->size = hAllocation->GetSize(); - pAllocationInfo->pMappedData = VMA_NULL; - pAllocationInfo->pUserData = hAllocation->GetUserData(); - return; - } - else if(localLastUseFrameIndex == localCurrFrameIndex) - { - pAllocationInfo->memoryType = hAllocation->GetMemoryTypeIndex(); - pAllocationInfo->deviceMemory = hAllocation->GetMemory(); - pAllocationInfo->offset = hAllocation->GetOffset(); - pAllocationInfo->size = hAllocation->GetSize(); - pAllocationInfo->pMappedData = VMA_NULL; - pAllocationInfo->pUserData = hAllocation->GetUserData(); - return; - } - else // Last use time earlier than current time. - { - if(hAllocation->CompareExchangeLastUseFrameIndex(localLastUseFrameIndex, localCurrFrameIndex)) - { - localLastUseFrameIndex = localCurrFrameIndex; - } - } - } - } - else - { -#if VMA_STATS_STRING_ENABLED - uint32_t localCurrFrameIndex = m_CurrentFrameIndex.load(); - uint32_t localLastUseFrameIndex = hAllocation->GetLastUseFrameIndex(); - for(;;) - { - VMA_ASSERT(localLastUseFrameIndex != VMA_FRAME_INDEX_LOST); - if(localLastUseFrameIndex == localCurrFrameIndex) - { - break; - } - else // Last use time earlier than current time. - { - if(hAllocation->CompareExchangeLastUseFrameIndex(localLastUseFrameIndex, localCurrFrameIndex)) - { - localLastUseFrameIndex = localCurrFrameIndex; - } - } - } -#endif - - pAllocationInfo->memoryType = hAllocation->GetMemoryTypeIndex(); - pAllocationInfo->deviceMemory = hAllocation->GetMemory(); - pAllocationInfo->offset = hAllocation->GetOffset(); - pAllocationInfo->size = hAllocation->GetSize(); - pAllocationInfo->pMappedData = hAllocation->GetMappedData(); - pAllocationInfo->pUserData = hAllocation->GetUserData(); - } -} - -bool VmaAllocator_T::TouchAllocation(VmaAllocation hAllocation) -{ - // This is a stripped-down version of VmaAllocator_T::GetAllocationInfo. - if(hAllocation->CanBecomeLost()) - { - uint32_t localCurrFrameIndex = m_CurrentFrameIndex.load(); - uint32_t localLastUseFrameIndex = hAllocation->GetLastUseFrameIndex(); - for(;;) - { - if(localLastUseFrameIndex == VMA_FRAME_INDEX_LOST) - { - return false; - } - else if(localLastUseFrameIndex == localCurrFrameIndex) - { - return true; - } - else // Last use time earlier than current time. - { - if(hAllocation->CompareExchangeLastUseFrameIndex(localLastUseFrameIndex, localCurrFrameIndex)) - { - localLastUseFrameIndex = localCurrFrameIndex; - } - } + GetHeapBudgets(outBudgets, firstHeap, heapCount); // Recursion } } else +#endif { -#if VMA_STATS_STRING_ENABLED - uint32_t localCurrFrameIndex = m_CurrentFrameIndex.load(); - uint32_t localLastUseFrameIndex = hAllocation->GetLastUseFrameIndex(); - for(;;) + for(uint32_t i = 0; i < heapCount; ++i, ++outBudgets) { - VMA_ASSERT(localLastUseFrameIndex != VMA_FRAME_INDEX_LOST); - if(localLastUseFrameIndex == localCurrFrameIndex) - { - break; - } - else // Last use time earlier than current time. - { - if(hAllocation->CompareExchangeLastUseFrameIndex(localLastUseFrameIndex, localCurrFrameIndex)) - { - localLastUseFrameIndex = localCurrFrameIndex; - } - } + const uint32_t heapIndex = firstHeap + i; + + outBudgets->statistics.blockCount = m_Budget.m_BlockCount[heapIndex]; + outBudgets->statistics.allocationCount = m_Budget.m_AllocationCount[heapIndex]; + outBudgets->statistics.blockBytes = m_Budget.m_BlockBytes[heapIndex]; + outBudgets->statistics.allocationBytes = m_Budget.m_AllocationBytes[heapIndex]; + + outBudgets->usage = outBudgets->statistics.blockBytes; + outBudgets->budget = m_MemProps.memoryHeaps[heapIndex].size * 8 / 10; // 80% heuristics. } -#endif + } +} - return true; +void VmaAllocator_T::GetAllocationInfo(VmaAllocation hAllocation, VmaAllocationInfo* pAllocationInfo) +{ + pAllocationInfo->memoryType = hAllocation->GetMemoryTypeIndex(); + pAllocationInfo->deviceMemory = hAllocation->GetMemory(); + pAllocationInfo->offset = hAllocation->GetOffset(); + pAllocationInfo->size = hAllocation->GetSize(); + pAllocationInfo->pMappedData = hAllocation->GetMappedData(); + pAllocationInfo->pUserData = hAllocation->GetUserData(); + pAllocationInfo->pName = hAllocation->GetName(); +} + +void VmaAllocator_T::GetAllocationInfo2(VmaAllocation hAllocation, VmaAllocationInfo2* pAllocationInfo) +{ + GetAllocationInfo(hAllocation, &pAllocationInfo->allocationInfo); + + switch (hAllocation->GetType()) + { + case VmaAllocation_T::ALLOCATION_TYPE_BLOCK: + pAllocationInfo->blockSize = hAllocation->GetBlock()->m_pMetadata->GetSize(); + pAllocationInfo->dedicatedMemory = VK_FALSE; + break; + case VmaAllocation_T::ALLOCATION_TYPE_DEDICATED: + pAllocationInfo->blockSize = pAllocationInfo->allocationInfo.size; + pAllocationInfo->dedicatedMemory = VK_TRUE; + break; + default: + VMA_ASSERT(0); } } VkResult VmaAllocator_T::CreatePool(const VmaPoolCreateInfo* pCreateInfo, VmaPool* pPool) { - VMA_DEBUG_LOG(" CreatePool: MemoryTypeIndex=%u, flags=%u", pCreateInfo->memoryTypeIndex, pCreateInfo->flags); + VMA_DEBUG_LOG_FORMAT(" CreatePool: MemoryTypeIndex=%u, flags=%u", pCreateInfo->memoryTypeIndex, pCreateInfo->flags); VmaPoolCreateInfo newCreateInfo = *pCreateInfo; @@ -15556,9 +15439,18 @@ void VmaAllocator_T::DestroyPool(VmaPool pool) vma_delete(this, pool); } -void VmaAllocator_T::GetPoolStats(VmaPool pool, VmaPoolStats* pPoolStats) +void VmaAllocator_T::GetPoolStatistics(VmaPool pool, VmaStatistics* pPoolStats) +{ + VmaClearStatistics(*pPoolStats); + pool->m_BlockVector.AddStatistics(*pPoolStats); + pool->m_DedicatedAllocations.AddStatistics(*pPoolStats); +} + +void VmaAllocator_T::CalculatePoolStatistics(VmaPool pool, VmaDetailedStatistics* pPoolStats) { - pool->m_BlockVector.GetPoolStats(pPoolStats); + VmaClearDetailedStatistics(*pPoolStats); + pool->m_BlockVector.AddDetailedStatistics(*pPoolStats); + pool->m_DedicatedAllocations.AddDetailedStatistics(*pPoolStats); } void VmaAllocator_T::SetCurrentFrameIndex(uint32_t frameIndex) @@ -15573,15 +15465,6 @@ void VmaAllocator_T::SetCurrentFrameIndex(uint32_t frameIndex) #endif // #if VMA_MEMORY_BUDGET } -void VmaAllocator_T::MakePoolAllocationsLost( - VmaPool hPool, - size_t* pLostAllocationCount) -{ - hPool->m_BlockVector.MakePoolAllocationsLost( - m_CurrentFrameIndex.load(), - pLostAllocationCount); -} - VkResult VmaAllocator_T::CheckPoolCorruption(VmaPool hPool) { return hPool->m_BlockVector.CheckCorruption(); @@ -15594,10 +15477,9 @@ VkResult VmaAllocator_T::CheckCorruption(uint32_t memoryTypeBits) // Process default pools. for(uint32_t memTypeIndex = 0; memTypeIndex < GetMemoryTypeCount(); ++memTypeIndex) { - if(((1u << memTypeIndex) & memoryTypeBits) != 0) + VmaBlockVector* const pBlockVector = m_pBlockVectors[memTypeIndex]; + if(pBlockVector != VMA_NULL) { - VmaBlockVector* const pBlockVector = m_pBlockVectors[memTypeIndex]; - VMA_ASSERT(pBlockVector); VkResult localRes = pBlockVector->CheckCorruption(); switch(localRes) { @@ -15637,40 +15519,9 @@ VkResult VmaAllocator_T::CheckCorruption(uint32_t memoryTypeBits) return finalRes; } -void VmaAllocator_T::CreateLostAllocation(VmaAllocation* pAllocation) -{ - *pAllocation = m_AllocationObjectAllocator.Allocate(VMA_FRAME_INDEX_LOST, false); - (*pAllocation)->InitLost(); -} - -// An object that increments given atomic but decrements it back in the destructor unless Commit() is called. -template -struct AtomicTransactionalIncrement -{ -public: - typedef std::atomic AtomicT; - ~AtomicTransactionalIncrement() - { - if(m_Atomic) - --(*m_Atomic); - } - T Increment(AtomicT* atomic) - { - m_Atomic = atomic; - return m_Atomic->fetch_add(1); - } - void Commit() - { - m_Atomic = nullptr; - } - -private: - AtomicT* m_Atomic = nullptr; -}; - VkResult VmaAllocator_T::AllocateVulkanMemory(const VkMemoryAllocateInfo* pAllocateInfo, VkDeviceMemory* pMemory) { - AtomicTransactionalIncrement deviceMemoryCountIncrement; + AtomicTransactionalIncrement deviceMemoryCountIncrement; const uint64_t prevDeviceMemoryCount = deviceMemoryCountIncrement.Increment(&m_DeviceMemoryCount); #if VMA_DEBUG_DONT_EXCEED_MAX_MEMORY_ALLOCATION_COUNT if(prevDeviceMemoryCount >= m_PhysicalDeviceProperties.limits.maxMemoryAllocationCount) @@ -15703,6 +15554,7 @@ VkResult VmaAllocator_T::AllocateVulkanMemory(const VkMemoryAllocateInfo* pAlloc { m_Budget.m_BlockBytes[heapIndex] += pAllocateInfo->allocationSize; } + ++m_Budget.m_BlockCount[heapIndex]; // VULKAN CALL vkAllocateMemory. VkResult res = (*m_VulkanFunctions.vkAllocateMemory)(m_hDevice, pAllocateInfo, GetAllocationCallbacks(), pMemory); @@ -15723,6 +15575,7 @@ VkResult VmaAllocator_T::AllocateVulkanMemory(const VkMemoryAllocateInfo* pAlloc } else { + --m_Budget.m_BlockCount[heapIndex]; m_Budget.m_BlockBytes[heapIndex] -= pAllocateInfo->allocationSize; } @@ -15740,7 +15593,9 @@ void VmaAllocator_T::FreeVulkanMemory(uint32_t memoryType, VkDeviceSize size, Vk // VULKAN CALL vkFreeMemory. (*m_VulkanFunctions.vkFreeMemory)(m_hDevice, hMemory, GetAllocationCallbacks()); - m_Budget.m_BlockBytes[MemoryTypeIndexToHeapIndex(memoryType)] -= size; + const uint32_t heapIndex = MemoryTypeIndexToHeapIndex(memoryType); + --m_Budget.m_BlockCount[heapIndex]; + m_Budget.m_BlockBytes[heapIndex] -= size; --m_DeviceMemoryCount; } @@ -15809,11 +15664,6 @@ VkResult VmaAllocator_T::BindVulkanImage( VkResult VmaAllocator_T::Map(VmaAllocation hAllocation, void** ppData) { - if(hAllocation->CanBecomeLost()) - { - return VK_ERROR_MEMORY_MAP_FAILED; - } - switch(hAllocation->GetType()) { case VmaAllocation_T::ALLOCATION_TYPE_BLOCK: @@ -15828,6 +15678,7 @@ VkResult VmaAllocator_T::Map(VmaAllocation hAllocation, void** ppData) } return res; } + VMA_FALLTHROUGH; // Fallthrough case VmaAllocation_T::ALLOCATION_TYPE_DEDICATED: return hAllocation->DedicatedAllocMap(this, ppData); default: @@ -15861,7 +15712,7 @@ VkResult VmaAllocator_T::BindBufferMemory( VkBuffer hBuffer, const void* pNext) { - VkResult res = VK_SUCCESS; + VkResult res = VK_ERROR_UNKNOWN; switch(hAllocation->GetType()) { case VmaAllocation_T::ALLOCATION_TYPE_DEDICATED: @@ -15870,7 +15721,7 @@ VkResult VmaAllocator_T::BindBufferMemory( case VmaAllocation_T::ALLOCATION_TYPE_BLOCK: { VmaDeviceMemoryBlock* const pBlock = hAllocation->GetBlock(); - VMA_ASSERT(pBlock && "Binding buffer to allocation that doesn't belong to any block. Is the allocation lost?"); + VMA_ASSERT(pBlock && "Binding buffer to allocation that doesn't belong to any block."); res = pBlock->BindBufferMemory(this, hAllocation, allocationLocalOffset, hBuffer, pNext); break; } @@ -15886,7 +15737,7 @@ VkResult VmaAllocator_T::BindImageMemory( VkImage hImage, const void* pNext) { - VkResult res = VK_SUCCESS; + VkResult res = VK_ERROR_UNKNOWN; switch(hAllocation->GetType()) { case VmaAllocation_T::ALLOCATION_TYPE_DEDICATED: @@ -15895,7 +15746,7 @@ VkResult VmaAllocator_T::BindImageMemory( case VmaAllocation_T::ALLOCATION_TYPE_BLOCK: { VmaDeviceMemoryBlock* pBlock = hAllocation->GetBlock(); - VMA_ASSERT(pBlock && "Binding image to allocation that doesn't belong to any block. Is the allocation lost?"); + VMA_ASSERT(pBlock && "Binding image to allocation that doesn't belong to any block."); res = pBlock->BindImageMemory(this, hAllocation, allocationLocalOffset, hImage, pNext); break; } @@ -15977,10 +15828,16 @@ void VmaAllocator_T::FreeDedicatedMemory(const VmaAllocation allocation) VMA_ASSERT(allocation && allocation->GetType() == VmaAllocation_T::ALLOCATION_TYPE_DEDICATED); const uint32_t memTypeIndex = allocation->GetMemoryTypeIndex(); + VmaPool parentPool = allocation->GetParentPool(); + if(parentPool == VK_NULL_HANDLE) { - VmaMutexLockWrite lock(m_DedicatedAllocationsMutex[memTypeIndex], m_UseMutex); - DedicatedAllocationLinkedList& dedicatedAllocations = m_DedicatedAllocations[memTypeIndex]; - dedicatedAllocations.Remove(allocation); + // Default pool + m_DedicatedAllocations[memTypeIndex].Unregister(allocation); + } + else + { + // Custom pool + parentPool->m_DedicatedAllocations.Unregister(allocation); } VkDeviceMemory hMemory = allocation->GetMemory(); @@ -15997,7 +15854,10 @@ void VmaAllocator_T::FreeDedicatedMemory(const VmaAllocation allocation) FreeVulkanMemory(memTypeIndex, allocation->GetSize(), hMemory); - VMA_DEBUG_LOG(" Freed DedicatedMemory MemoryTypeIndex=%u", memTypeIndex); + m_Budget.RemoveAllocation(MemoryTypeIndexToHeapIndex(allocation->GetMemoryTypeIndex()), allocation->GetSize()); + m_AllocationObjectAllocator.Free(allocation); + + VMA_DEBUG_LOG_FORMAT(" Freed DedicatedMemory MemoryTypeIndex=%u", memTypeIndex); } uint32_t VmaAllocator_T::CalculateGpuDefragmentationMemoryTypeBits() const @@ -16111,7 +15971,6 @@ bool VmaAllocator_T::GetFlushOrInvalidateRange( } #if VMA_MEMORY_BUDGET - void VmaAllocator_T::UpdateVulkanBudget() { VMA_ASSERT(m_UseExtMemoryBudget); @@ -16149,13 +16008,12 @@ void VmaAllocator_T::UpdateVulkanBudget() m_Budget.m_OperationsSinceBudgetFetch = 0; } } - -#endif // #if VMA_MEMORY_BUDGET +#endif // VMA_MEMORY_BUDGET void VmaAllocator_T::FillAllocation(const VmaAllocation hAllocation, uint8_t pattern) { if(VMA_DEBUG_INITIALIZE_ALLOCATIONS && - !hAllocation->CanBecomeLost() && + hAllocation->IsMappingAllowed() && (m_MemProps.memoryTypes[hAllocation->GetMemoryTypeIndex()].propertyFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) != 0) { void* pData = VMA_NULL; @@ -16185,106 +16043,114 @@ uint32_t VmaAllocator_T::GetGpuDefragmentationMemoryTypeBits() } #if VMA_STATS_STRING_ENABLED - void VmaAllocator_T::PrintDetailedMap(VmaJsonWriter& json) { - bool dedicatedAllocationsStarted = false; - for(uint32_t memTypeIndex = 0; memTypeIndex < GetMemoryTypeCount(); ++memTypeIndex) + json.WriteString("DefaultPools"); + json.BeginObject(); { - VmaMutexLockRead dedicatedAllocationsLock(m_DedicatedAllocationsMutex[memTypeIndex], m_UseMutex); - DedicatedAllocationLinkedList& dedicatedAllocList = m_DedicatedAllocations[memTypeIndex]; - if(!dedicatedAllocList.IsEmpty()) + for (uint32_t memTypeIndex = 0; memTypeIndex < GetMemoryTypeCount(); ++memTypeIndex) { - if(dedicatedAllocationsStarted == false) + VmaBlockVector* pBlockVector = m_pBlockVectors[memTypeIndex]; + VmaDedicatedAllocationList& dedicatedAllocList = m_DedicatedAllocations[memTypeIndex]; + if (pBlockVector != VMA_NULL) { - dedicatedAllocationsStarted = true; - json.WriteString("DedicatedAllocations"); + json.BeginString("Type "); + json.ContinueString(memTypeIndex); + json.EndString(); json.BeginObject(); - } - - json.BeginString("Type "); - json.ContinueString(memTypeIndex); - json.EndString(); + { + json.WriteString("PreferredBlockSize"); + json.WriteNumber(pBlockVector->GetPreferredBlockSize()); - json.BeginArray(); + json.WriteString("Blocks"); + pBlockVector->PrintDetailedMap(json); - for(VmaAllocation alloc = dedicatedAllocList.Front(); - alloc != VMA_NULL; alloc = dedicatedAllocList.GetNext(alloc)) - { - json.BeginObject(true); - alloc->PrintParameters(json); + json.WriteString("DedicatedAllocations"); + dedicatedAllocList.BuildStatsString(json); + } json.EndObject(); } - - json.EndArray(); } } - if(dedicatedAllocationsStarted) - { - json.EndObject(); - } + json.EndObject(); + json.WriteString("CustomPools"); + json.BeginObject(); { - bool allocationsStarted = false; - for(uint32_t memTypeIndex = 0; memTypeIndex < GetMemoryTypeCount(); ++memTypeIndex) + VmaMutexLockRead lock(m_PoolsMutex, m_UseMutex); + if (!m_Pools.IsEmpty()) { - if(m_pBlockVectors[memTypeIndex]->IsEmpty() == false) + for (uint32_t memTypeIndex = 0; memTypeIndex < GetMemoryTypeCount(); ++memTypeIndex) { - if(allocationsStarted == false) + bool displayType = true; + size_t index = 0; + for (VmaPool pool = m_Pools.Front(); pool != VMA_NULL; pool = m_Pools.GetNext(pool)) { - allocationsStarted = true; - json.WriteString("DefaultPools"); - json.BeginObject(); - } + VmaBlockVector& blockVector = pool->m_BlockVector; + if (blockVector.GetMemoryTypeIndex() == memTypeIndex) + { + if (displayType) + { + json.BeginString("Type "); + json.ContinueString(memTypeIndex); + json.EndString(); + json.BeginArray(); + displayType = false; + } - json.BeginString("Type "); - json.ContinueString(memTypeIndex); - json.EndString(); + json.BeginObject(); + { + json.WriteString("Name"); + json.BeginString(); + json.ContinueString((uint64_t)index++); + if (pool->GetName()) + { + json.ContinueString(" - "); + json.ContinueString(pool->GetName()); + } + json.EndString(); - m_pBlockVectors[memTypeIndex]->PrintDetailedMap(json); - } - } - if(allocationsStarted) - { - json.EndObject(); - } - } + json.WriteString("PreferredBlockSize"); + json.WriteNumber(blockVector.GetPreferredBlockSize()); - // Custom pools - { - VmaMutexLockRead lock(m_PoolsMutex, m_UseMutex); - if(!m_Pools.IsEmpty()) - { - json.WriteString("Pools"); - json.BeginObject(); - for(VmaPool pool = m_Pools.Front(); pool != VMA_NULL; pool = m_Pools.GetNext(pool)) - { - json.BeginString(); - json.ContinueString(pool->GetId()); - json.EndString(); + json.WriteString("Blocks"); + blockVector.PrintDetailedMap(json); + + json.WriteString("DedicatedAllocations"); + pool->m_DedicatedAllocations.BuildStatsString(json); + } + json.EndObject(); + } + } - pool->m_BlockVector.PrintDetailedMap(json); + if (!displayType) + json.EndArray(); } - json.EndObject(); } } + json.EndObject(); } +#endif // VMA_STATS_STRING_ENABLED +#endif // _VMA_ALLOCATOR_T_FUNCTIONS -#endif // #if VMA_STATS_STRING_ENABLED - -//////////////////////////////////////////////////////////////////////////////// -// Public interface +#ifndef _VMA_PUBLIC_INTERFACE VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateAllocator( const VmaAllocatorCreateInfo* pCreateInfo, VmaAllocator* pAllocator) { VMA_ASSERT(pCreateInfo && pAllocator); VMA_ASSERT(pCreateInfo->vulkanApiVersion == 0 || - (VK_VERSION_MAJOR(pCreateInfo->vulkanApiVersion) == 1 && VK_VERSION_MINOR(pCreateInfo->vulkanApiVersion) <= 2)); + (VK_VERSION_MAJOR(pCreateInfo->vulkanApiVersion) == 1 && VK_VERSION_MINOR(pCreateInfo->vulkanApiVersion) <= 3)); VMA_DEBUG_LOG("vmaCreateAllocator"); *pAllocator = vma_new(pCreateInfo->pAllocationCallbacks, VmaAllocator_T)(pCreateInfo); - return (*pAllocator)->Init(pCreateInfo); + VkResult result = (*pAllocator)->Init(pCreateInfo); + if(result < 0) + { + vma_delete(pCreateInfo->pAllocationCallbacks, *pAllocator); + *pAllocator = VK_NULL_HANDLE; + } + return result; } VMA_CALL_PRE void VMA_CALL_POST vmaDestroyAllocator( @@ -16293,7 +16159,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaDestroyAllocator( if(allocator != VK_NULL_HANDLE) { VMA_DEBUG_LOG("vmaDestroyAllocator"); - VkAllocationCallbacks allocationCallbacks = allocator->m_AllocationCallbacks; + VkAllocationCallbacks allocationCallbacks = allocator->m_AllocationCallbacks; // Have to copy the callbacks when destroying. vma_delete(&allocationCallbacks, allocator); } } @@ -16337,29 +16203,28 @@ VMA_CALL_PRE void VMA_CALL_POST vmaSetCurrentFrameIndex( uint32_t frameIndex) { VMA_ASSERT(allocator); - VMA_ASSERT(frameIndex != VMA_FRAME_INDEX_LOST); VMA_DEBUG_GLOBAL_MUTEX_LOCK allocator->SetCurrentFrameIndex(frameIndex); } -VMA_CALL_PRE void VMA_CALL_POST vmaCalculateStats( +VMA_CALL_PRE void VMA_CALL_POST vmaCalculateStatistics( VmaAllocator allocator, - VmaStats* pStats) + VmaTotalStatistics* pStats) { VMA_ASSERT(allocator && pStats); VMA_DEBUG_GLOBAL_MUTEX_LOCK - allocator->CalculateStats(pStats); + allocator->CalculateStatistics(pStats); } -VMA_CALL_PRE void VMA_CALL_POST vmaGetBudget( +VMA_CALL_PRE void VMA_CALL_POST vmaGetHeapBudgets( VmaAllocator allocator, - VmaBudget* pBudget) + VmaBudget* pBudgets) { - VMA_ASSERT(allocator && pBudget); + VMA_ASSERT(allocator && pBudgets); VMA_DEBUG_GLOBAL_MUTEX_LOCK - allocator->GetBudget(pBudget, 0, allocator->GetMemoryHeapCount()); + allocator->GetHeapBudgets(pBudgets, 0, allocator->GetMemoryHeapCount()); } #if VMA_STATS_STRING_ENABLED @@ -16372,137 +16237,183 @@ VMA_CALL_PRE void VMA_CALL_POST vmaBuildStatsString( VMA_ASSERT(allocator && ppStatsString); VMA_DEBUG_GLOBAL_MUTEX_LOCK - VmaStringBuilder sb(allocator); + VmaStringBuilder sb(allocator->GetAllocationCallbacks()); { - VmaJsonWriter json(allocator->GetAllocationCallbacks(), sb); - json.BeginObject(); - - VmaBudget budget[VK_MAX_MEMORY_HEAPS]; - allocator->GetBudget(budget, 0, allocator->GetMemoryHeapCount()); + VmaBudget budgets[VK_MAX_MEMORY_HEAPS]; + allocator->GetHeapBudgets(budgets, 0, allocator->GetMemoryHeapCount()); - VmaStats stats; - allocator->CalculateStats(&stats); + VmaTotalStatistics stats; + allocator->CalculateStatistics(&stats); - json.WriteString("Total"); - VmaPrintStatInfo(json, stats.total); - - for(uint32_t heapIndex = 0; heapIndex < allocator->GetMemoryHeapCount(); ++heapIndex) + VmaJsonWriter json(allocator->GetAllocationCallbacks(), sb); + json.BeginObject(); { - json.BeginString("Heap "); - json.ContinueString(heapIndex); - json.EndString(); + json.WriteString("General"); json.BeginObject(); + { + const VkPhysicalDeviceProperties& deviceProperties = allocator->m_PhysicalDeviceProperties; + const VkPhysicalDeviceMemoryProperties& memoryProperties = allocator->m_MemProps; - json.WriteString("Size"); - json.WriteNumber(allocator->m_MemProps.memoryHeaps[heapIndex].size); + json.WriteString("API"); + json.WriteString("Vulkan"); - json.WriteString("Flags"); - json.BeginArray(true); - if((allocator->m_MemProps.memoryHeaps[heapIndex].flags & VK_MEMORY_HEAP_DEVICE_LOCAL_BIT) != 0) - { - json.WriteString("DEVICE_LOCAL"); - } - json.EndArray(); + json.WriteString("apiVersion"); + json.BeginString(); + json.ContinueString(VK_VERSION_MAJOR(deviceProperties.apiVersion)); + json.ContinueString("."); + json.ContinueString(VK_VERSION_MINOR(deviceProperties.apiVersion)); + json.ContinueString("."); + json.ContinueString(VK_VERSION_PATCH(deviceProperties.apiVersion)); + json.EndString(); - json.WriteString("Budget"); - json.BeginObject(); - { - json.WriteString("BlockBytes"); - json.WriteNumber(budget[heapIndex].blockBytes); - json.WriteString("AllocationBytes"); - json.WriteNumber(budget[heapIndex].allocationBytes); - json.WriteString("Usage"); - json.WriteNumber(budget[heapIndex].usage); - json.WriteString("Budget"); - json.WriteNumber(budget[heapIndex].budget); + json.WriteString("GPU"); + json.WriteString(deviceProperties.deviceName); + json.WriteString("deviceType"); + json.WriteNumber(static_cast(deviceProperties.deviceType)); + + json.WriteString("maxMemoryAllocationCount"); + json.WriteNumber(deviceProperties.limits.maxMemoryAllocationCount); + json.WriteString("bufferImageGranularity"); + json.WriteNumber(deviceProperties.limits.bufferImageGranularity); + json.WriteString("nonCoherentAtomSize"); + json.WriteNumber(deviceProperties.limits.nonCoherentAtomSize); + + json.WriteString("memoryHeapCount"); + json.WriteNumber(memoryProperties.memoryHeapCount); + json.WriteString("memoryTypeCount"); + json.WriteNumber(memoryProperties.memoryTypeCount); } json.EndObject(); - - if(stats.memoryHeap[heapIndex].blockCount > 0) - { - json.WriteString("Stats"); - VmaPrintStatInfo(json, stats.memoryHeap[heapIndex]); - } - - for(uint32_t typeIndex = 0; typeIndex < allocator->GetMemoryTypeCount(); ++typeIndex) + } + { + json.WriteString("Total"); + VmaPrintDetailedStatistics(json, stats.total); + } + { + json.WriteString("MemoryInfo"); + json.BeginObject(); { - if(allocator->MemoryTypeIndexToHeapIndex(typeIndex) == heapIndex) + for (uint32_t heapIndex = 0; heapIndex < allocator->GetMemoryHeapCount(); ++heapIndex) { - json.BeginString("Type "); - json.ContinueString(typeIndex); + json.BeginString("Heap "); + json.ContinueString(heapIndex); json.EndString(); - json.BeginObject(); - - json.WriteString("Flags"); - json.BeginArray(true); - VkMemoryPropertyFlags flags = allocator->m_MemProps.memoryTypes[typeIndex].propertyFlags; - if((flags & VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) != 0) - { - json.WriteString("DEVICE_LOCAL"); - } - if((flags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) != 0) - { - json.WriteString("HOST_VISIBLE"); - } - if((flags & VK_MEMORY_PROPERTY_HOST_COHERENT_BIT) != 0) { - json.WriteString("HOST_COHERENT"); - } - if((flags & VK_MEMORY_PROPERTY_HOST_CACHED_BIT) != 0) - { - json.WriteString("HOST_CACHED"); - } - if((flags & VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT) != 0) - { - json.WriteString("LAZILY_ALLOCATED"); - } -#if VMA_VULKAN_VERSION >= 1001000 - if((flags & VK_MEMORY_PROPERTY_PROTECTED_BIT) != 0) - { - json.WriteString("PROTECTED"); - } -#endif // #if VMA_VULKAN_VERSION >= 1001000 -#if VK_AMD_device_coherent_memory - if((flags & VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD_COPY) != 0) - { - json.WriteString("DEVICE_COHERENT"); - } - if((flags & VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD_COPY) != 0) - { - json.WriteString("DEVICE_UNCACHED"); - } -#endif // #if VK_AMD_device_coherent_memory - json.EndArray(); + const VkMemoryHeap& heapInfo = allocator->m_MemProps.memoryHeaps[heapIndex]; + json.WriteString("Flags"); + json.BeginArray(true); + { + if (heapInfo.flags & VK_MEMORY_HEAP_DEVICE_LOCAL_BIT) + json.WriteString("DEVICE_LOCAL"); + #if VMA_VULKAN_VERSION >= 1001000 + if (heapInfo.flags & VK_MEMORY_HEAP_MULTI_INSTANCE_BIT) + json.WriteString("MULTI_INSTANCE"); + #endif + + VkMemoryHeapFlags flags = heapInfo.flags & + ~(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT + #if VMA_VULKAN_VERSION >= 1001000 + | VK_MEMORY_HEAP_MULTI_INSTANCE_BIT + #endif + ); + if (flags != 0) + json.WriteNumber(flags); + } + json.EndArray(); + + json.WriteString("Size"); + json.WriteNumber(heapInfo.size); + + json.WriteString("Budget"); + json.BeginObject(); + { + json.WriteString("BudgetBytes"); + json.WriteNumber(budgets[heapIndex].budget); + json.WriteString("UsageBytes"); + json.WriteNumber(budgets[heapIndex].usage); + } + json.EndObject(); - if(stats.memoryType[typeIndex].blockCount > 0) - { json.WriteString("Stats"); - VmaPrintStatInfo(json, stats.memoryType[typeIndex]); - } + VmaPrintDetailedStatistics(json, stats.memoryHeap[heapIndex]); + + json.WriteString("MemoryPools"); + json.BeginObject(); + { + for (uint32_t typeIndex = 0; typeIndex < allocator->GetMemoryTypeCount(); ++typeIndex) + { + if (allocator->MemoryTypeIndexToHeapIndex(typeIndex) == heapIndex) + { + json.BeginString("Type "); + json.ContinueString(typeIndex); + json.EndString(); + json.BeginObject(); + { + json.WriteString("Flags"); + json.BeginArray(true); + { + VkMemoryPropertyFlags flags = allocator->m_MemProps.memoryTypes[typeIndex].propertyFlags; + if (flags & VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) + json.WriteString("DEVICE_LOCAL"); + if (flags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) + json.WriteString("HOST_VISIBLE"); + if (flags & VK_MEMORY_PROPERTY_HOST_COHERENT_BIT) + json.WriteString("HOST_COHERENT"); + if (flags & VK_MEMORY_PROPERTY_HOST_CACHED_BIT) + json.WriteString("HOST_CACHED"); + if (flags & VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT) + json.WriteString("LAZILY_ALLOCATED"); + #if VMA_VULKAN_VERSION >= 1001000 + if (flags & VK_MEMORY_PROPERTY_PROTECTED_BIT) + json.WriteString("PROTECTED"); + #endif + #if VK_AMD_device_coherent_memory + if (flags & VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD_COPY) + json.WriteString("DEVICE_COHERENT_AMD"); + if (flags & VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD_COPY) + json.WriteString("DEVICE_UNCACHED_AMD"); + #endif + + flags &= ~(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT + #if VMA_VULKAN_VERSION >= 1001000 + | VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT + #endif + #if VK_AMD_device_coherent_memory + | VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD_COPY + | VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD_COPY + #endif + | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT + | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT + | VK_MEMORY_PROPERTY_HOST_CACHED_BIT); + if (flags != 0) + json.WriteNumber(flags); + } + json.EndArray(); + + json.WriteString("Stats"); + VmaPrintDetailedStatistics(json, stats.memoryType[typeIndex]); + } + json.EndObject(); + } + } + } + json.EndObject(); + } json.EndObject(); } } - json.EndObject(); } - if(detailedMap == VK_TRUE) - { + + if (detailedMap == VK_TRUE) allocator->PrintDetailedMap(json); - } json.EndObject(); } - const size_t len = sb.GetLength(); - char* const pChars = vma_new_array(allocator, char, len + 1); - if(len > 0) - { - memcpy(pChars, sb.GetData(), len); - } - pChars[len] = '\0'; - *ppStatsString = pChars; + *ppStatsString = VmaCreateStringCopy(allocator->GetAllocationCallbacks(), sb.GetData(), sb.GetLength()); } VMA_CALL_PRE void VMA_CALL_POST vmaFreeStatsString( @@ -16512,12 +16423,11 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeStatsString( if(pStatsString != VMA_NULL) { VMA_ASSERT(allocator); - size_t len = strlen(pStatsString); - vma_delete_array(allocator, pStatsString, len + 1); + VmaFreeString(allocator->GetAllocationCallbacks(), pStatsString); } } -#endif // #if VMA_STATS_STRING_ENABLED +#endif // VMA_STATS_STRING_ENABLED /* This function is not protected by any mutex because it just reads immutable data. @@ -16532,91 +16442,7 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndex( VMA_ASSERT(pAllocationCreateInfo != VMA_NULL); VMA_ASSERT(pMemoryTypeIndex != VMA_NULL); - memoryTypeBits &= allocator->GetGlobalMemoryTypeBits(); - - if(pAllocationCreateInfo->memoryTypeBits != 0) - { - memoryTypeBits &= pAllocationCreateInfo->memoryTypeBits; - } - - uint32_t requiredFlags = pAllocationCreateInfo->requiredFlags; - uint32_t preferredFlags = pAllocationCreateInfo->preferredFlags; - uint32_t notPreferredFlags = 0; - - // Convert usage to requiredFlags and preferredFlags. - switch(pAllocationCreateInfo->usage) - { - case VMA_MEMORY_USAGE_UNKNOWN: - break; - case VMA_MEMORY_USAGE_GPU_ONLY: - if(!allocator->IsIntegratedGpu() || (preferredFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) == 0) - { - preferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; - } - break; - case VMA_MEMORY_USAGE_CPU_ONLY: - requiredFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; - break; - case VMA_MEMORY_USAGE_CPU_TO_GPU: - requiredFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; - if(!allocator->IsIntegratedGpu() || (preferredFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) == 0) - { - preferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; - } - break; - case VMA_MEMORY_USAGE_GPU_TO_CPU: - requiredFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; - preferredFlags |= VK_MEMORY_PROPERTY_HOST_CACHED_BIT; - break; - case VMA_MEMORY_USAGE_CPU_COPY: - notPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; - break; - case VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED: - requiredFlags |= VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT; - break; - default: - VMA_ASSERT(0); - break; - } - - // Avoid DEVICE_COHERENT unless explicitly requested. - if(((pAllocationCreateInfo->requiredFlags | pAllocationCreateInfo->preferredFlags) & - (VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD_COPY | VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD_COPY)) == 0) - { - notPreferredFlags |= VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD_COPY; - } - - *pMemoryTypeIndex = UINT32_MAX; - uint32_t minCost = UINT32_MAX; - for(uint32_t memTypeIndex = 0, memTypeBit = 1; - memTypeIndex < allocator->GetMemoryTypeCount(); - ++memTypeIndex, memTypeBit <<= 1) - { - // This memory type is acceptable according to memoryTypeBits bitmask. - if((memTypeBit & memoryTypeBits) != 0) - { - const VkMemoryPropertyFlags currFlags = - allocator->m_MemProps.memoryTypes[memTypeIndex].propertyFlags; - // This memory type contains requiredFlags. - if((requiredFlags & ~currFlags) == 0) - { - // Calculate cost as number of bits from preferredFlags not present in this memory type. - uint32_t currCost = VmaCountBitsSet(preferredFlags & ~currFlags) + - VmaCountBitsSet(currFlags & notPreferredFlags); - // Remember memory type with lowest cost. - if(currCost < minCost) - { - *pMemoryTypeIndex = memTypeIndex; - if(currCost == 0) - { - return VK_SUCCESS; - } - minCost = currCost; - } - } - } - } - return (*pMemoryTypeIndex != UINT32_MAX) ? VK_SUCCESS : VK_ERROR_FEATURE_NOT_PRESENT; + return allocator->FindMemoryTypeIndex(memoryTypeBits, pAllocationCreateInfo, UINT32_MAX, pMemoryTypeIndex); } VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndexForBufferInfo( @@ -16631,24 +16457,40 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndexForBufferInfo( VMA_ASSERT(pMemoryTypeIndex != VMA_NULL); const VkDevice hDev = allocator->m_hDevice; - VkBuffer hBuffer = VK_NULL_HANDLE; const VmaVulkanFunctions* funcs = &allocator->GetVulkanFunctions(); - VkResult res = funcs->vkCreateBuffer( - hDev, pBufferCreateInfo, allocator->GetAllocationCallbacks(), &hBuffer); - if(res == VK_SUCCESS) + VkResult res; + +#if VMA_VULKAN_VERSION >= 1003000 + if(funcs->vkGetDeviceBufferMemoryRequirements) + { + // Can query straight from VkBufferCreateInfo :) + VkDeviceBufferMemoryRequirements devBufMemReq = {VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS}; + devBufMemReq.pCreateInfo = pBufferCreateInfo; + + VkMemoryRequirements2 memReq = {VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2}; + (*funcs->vkGetDeviceBufferMemoryRequirements)(hDev, &devBufMemReq, &memReq); + + res = allocator->FindMemoryTypeIndex( + memReq.memoryRequirements.memoryTypeBits, pAllocationCreateInfo, pBufferCreateInfo->usage, pMemoryTypeIndex); + } + else +#endif // #if VMA_VULKAN_VERSION >= 1003000 { - VkMemoryRequirements memReq = {}; - funcs->vkGetBufferMemoryRequirements( - hDev, hBuffer, &memReq); + // Must create a dummy buffer to query :( + VkBuffer hBuffer = VK_NULL_HANDLE; + res = funcs->vkCreateBuffer( + hDev, pBufferCreateInfo, allocator->GetAllocationCallbacks(), &hBuffer); + if(res == VK_SUCCESS) + { + VkMemoryRequirements memReq = {}; + funcs->vkGetBufferMemoryRequirements(hDev, hBuffer, &memReq); - res = vmaFindMemoryTypeIndex( - allocator, - memReq.memoryTypeBits, - pAllocationCreateInfo, - pMemoryTypeIndex); + res = allocator->FindMemoryTypeIndex( + memReq.memoryTypeBits, pAllocationCreateInfo, pBufferCreateInfo->usage, pMemoryTypeIndex); - funcs->vkDestroyBuffer( - hDev, hBuffer, allocator->GetAllocationCallbacks()); + funcs->vkDestroyBuffer( + hDev, hBuffer, allocator->GetAllocationCallbacks()); + } } return res; } @@ -16665,24 +16507,42 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndexForImageInfo( VMA_ASSERT(pMemoryTypeIndex != VMA_NULL); const VkDevice hDev = allocator->m_hDevice; - VkImage hImage = VK_NULL_HANDLE; const VmaVulkanFunctions* funcs = &allocator->GetVulkanFunctions(); - VkResult res = funcs->vkCreateImage( - hDev, pImageCreateInfo, allocator->GetAllocationCallbacks(), &hImage); - if(res == VK_SUCCESS) + VkResult res; + +#if VMA_VULKAN_VERSION >= 1003000 + if(funcs->vkGetDeviceImageMemoryRequirements) + { + // Can query straight from VkImageCreateInfo :) + VkDeviceImageMemoryRequirements devImgMemReq = {VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS}; + devImgMemReq.pCreateInfo = pImageCreateInfo; + VMA_ASSERT(pImageCreateInfo->tiling != VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT_COPY && (pImageCreateInfo->flags & VK_IMAGE_CREATE_DISJOINT_BIT_COPY) == 0 && + "Cannot use this VkImageCreateInfo with vmaFindMemoryTypeIndexForImageInfo as I don't know what to pass as VkDeviceImageMemoryRequirements::planeAspect."); + + VkMemoryRequirements2 memReq = {VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2}; + (*funcs->vkGetDeviceImageMemoryRequirements)(hDev, &devImgMemReq, &memReq); + + res = allocator->FindMemoryTypeIndex( + memReq.memoryRequirements.memoryTypeBits, pAllocationCreateInfo, pImageCreateInfo->usage, pMemoryTypeIndex); + } + else +#endif // #if VMA_VULKAN_VERSION >= 1003000 { - VkMemoryRequirements memReq = {}; - funcs->vkGetImageMemoryRequirements( - hDev, hImage, &memReq); + // Must create a dummy image to query :( + VkImage hImage = VK_NULL_HANDLE; + res = funcs->vkCreateImage( + hDev, pImageCreateInfo, allocator->GetAllocationCallbacks(), &hImage); + if(res == VK_SUCCESS) + { + VkMemoryRequirements memReq = {}; + funcs->vkGetImageMemoryRequirements(hDev, hImage, &memReq); - res = vmaFindMemoryTypeIndex( - allocator, - memReq.memoryTypeBits, - pAllocationCreateInfo, - pMemoryTypeIndex); + res = allocator->FindMemoryTypeIndex( + memReq.memoryTypeBits, pAllocationCreateInfo, pImageCreateInfo->usage, pMemoryTypeIndex); - funcs->vkDestroyImage( - hDev, hImage, allocator->GetAllocationCallbacks()); + funcs->vkDestroyImage( + hDev, hImage, allocator->GetAllocationCallbacks()); + } } return res; } @@ -16698,16 +16558,7 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreatePool( VMA_DEBUG_GLOBAL_MUTEX_LOCK - VkResult res = allocator->CreatePool(pCreateInfo, pPool); - -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordCreatePool(allocator->GetCurrentFrameIndex(), *pCreateInfo, *pPool); - } -#endif - - return res; + return allocator->CreatePool(pCreateInfo, pPool); } VMA_CALL_PRE void VMA_CALL_POST vmaDestroyPool( @@ -16725,45 +16576,31 @@ VMA_CALL_PRE void VMA_CALL_POST vmaDestroyPool( VMA_DEBUG_GLOBAL_MUTEX_LOCK -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordDestroyPool(allocator->GetCurrentFrameIndex(), pool); - } -#endif - allocator->DestroyPool(pool); } -VMA_CALL_PRE void VMA_CALL_POST vmaGetPoolStats( +VMA_CALL_PRE void VMA_CALL_POST vmaGetPoolStatistics( VmaAllocator allocator, VmaPool pool, - VmaPoolStats* pPoolStats) + VmaStatistics* pPoolStats) { VMA_ASSERT(allocator && pool && pPoolStats); VMA_DEBUG_GLOBAL_MUTEX_LOCK - allocator->GetPoolStats(pool, pPoolStats); + allocator->GetPoolStatistics(pool, pPoolStats); } -VMA_CALL_PRE void VMA_CALL_POST vmaMakePoolAllocationsLost( +VMA_CALL_PRE void VMA_CALL_POST vmaCalculatePoolStatistics( VmaAllocator allocator, VmaPool pool, - size_t* pLostAllocationCount) + VmaDetailedStatistics* pPoolStats) { - VMA_ASSERT(allocator && pool); + VMA_ASSERT(allocator && pool && pPoolStats); VMA_DEBUG_GLOBAL_MUTEX_LOCK -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordMakePoolAllocationsLost(allocator->GetCurrentFrameIndex(), pool); - } -#endif - - allocator->MakePoolAllocationsLost(pool, pLostAllocationCount); + allocator->CalculatePoolStatistics(pool, pPoolStats); } VMA_CALL_PRE VkResult VMA_CALL_POST vmaCheckPoolCorruption(VmaAllocator allocator, VmaPool pool) @@ -16803,13 +16640,6 @@ VMA_CALL_PRE void VMA_CALL_POST vmaSetPoolName( VMA_DEBUG_GLOBAL_MUTEX_LOCK pool->SetName(pName); - -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordSetPoolName(allocator->GetCurrentFrameIndex(), pool, pName); - } -#endif } VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemory( @@ -16830,24 +16660,13 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemory( false, // requiresDedicatedAllocation false, // prefersDedicatedAllocation VK_NULL_HANDLE, // dedicatedBuffer - UINT32_MAX, // dedicatedBufferUsage VK_NULL_HANDLE, // dedicatedImage + UINT32_MAX, // dedicatedBufferImageUsage *pCreateInfo, VMA_SUBALLOCATION_TYPE_UNKNOWN, 1, // allocationCount pAllocation); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordAllocateMemory( - allocator->GetCurrentFrameIndex(), - *pVkMemoryRequirements, - *pCreateInfo, - *pAllocation); - } -#endif - if(pAllocationInfo != VMA_NULL && result == VK_SUCCESS) { allocator->GetAllocationInfo(*pAllocation, pAllocationInfo); @@ -16880,25 +16699,13 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemoryPages( false, // requiresDedicatedAllocation false, // prefersDedicatedAllocation VK_NULL_HANDLE, // dedicatedBuffer - UINT32_MAX, // dedicatedBufferUsage VK_NULL_HANDLE, // dedicatedImage + UINT32_MAX, // dedicatedBufferImageUsage *pCreateInfo, VMA_SUBALLOCATION_TYPE_UNKNOWN, allocationCount, pAllocations); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordAllocateMemoryPages( - allocator->GetCurrentFrameIndex(), - *pVkMemoryRequirements, - *pCreateInfo, - (uint64_t)allocationCount, - pAllocations); - } -#endif - if(pAllocationInfo != VMA_NULL && result == VK_SUCCESS) { for(size_t i = 0; i < allocationCount; ++i) @@ -16935,26 +16742,13 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemoryForBuffer( requiresDedicatedAllocation, prefersDedicatedAllocation, buffer, // dedicatedBuffer - UINT32_MAX, // dedicatedBufferUsage VK_NULL_HANDLE, // dedicatedImage + UINT32_MAX, // dedicatedBufferImageUsage *pCreateInfo, VMA_SUBALLOCATION_TYPE_BUFFER, 1, // allocationCount pAllocation); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordAllocateMemoryForBuffer( - allocator->GetCurrentFrameIndex(), - vkMemReq, - requiresDedicatedAllocation, - prefersDedicatedAllocation, - *pCreateInfo, - *pAllocation); - } -#endif - if(pAllocationInfo && result == VK_SUCCESS) { allocator->GetAllocationInfo(*pAllocation, pAllocationInfo); @@ -16987,26 +16781,13 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaAllocateMemoryForImage( requiresDedicatedAllocation, prefersDedicatedAllocation, VK_NULL_HANDLE, // dedicatedBuffer - UINT32_MAX, // dedicatedBufferUsage image, // dedicatedImage + UINT32_MAX, // dedicatedBufferImageUsage *pCreateInfo, VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN, 1, // allocationCount pAllocation); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordAllocateMemoryForImage( - allocator->GetCurrentFrameIndex(), - vkMemReq, - requiresDedicatedAllocation, - prefersDedicatedAllocation, - *pCreateInfo, - *pAllocation); - } -#endif - if(pAllocationInfo && result == VK_SUCCESS) { allocator->GetAllocationInfo(*pAllocation, pAllocationInfo); @@ -17030,15 +16811,6 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeMemory( VMA_DEBUG_GLOBAL_MUTEX_LOCK -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordFreeMemory( - allocator->GetCurrentFrameIndex(), - allocation); - } -#endif - allocator->FreeMemory( 1, // allocationCount &allocation); @@ -17060,16 +16832,6 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeMemoryPages( VMA_DEBUG_GLOBAL_MUTEX_LOCK -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordFreeMemoryPages( - allocator->GetCurrentFrameIndex(), - (uint64_t)allocationCount, - pAllocations); - } -#endif - allocator->FreeMemory(allocationCount, pAllocations); } @@ -17082,36 +16844,19 @@ VMA_CALL_PRE void VMA_CALL_POST vmaGetAllocationInfo( VMA_DEBUG_GLOBAL_MUTEX_LOCK -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordGetAllocationInfo( - allocator->GetCurrentFrameIndex(), - allocation); - } -#endif - allocator->GetAllocationInfo(allocation, pAllocationInfo); } -VMA_CALL_PRE VkBool32 VMA_CALL_POST vmaTouchAllocation( +VMA_CALL_PRE void VMA_CALL_POST vmaGetAllocationInfo2( VmaAllocator allocator, - VmaAllocation allocation) + VmaAllocation allocation, + VmaAllocationInfo2* pAllocationInfo) { - VMA_ASSERT(allocator && allocation); + VMA_ASSERT(allocator && allocation && pAllocationInfo); VMA_DEBUG_GLOBAL_MUTEX_LOCK -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordTouchAllocation( - allocator->GetCurrentFrameIndex(), - allocation); - } -#endif - - return allocator->TouchAllocation(allocation); + allocator->GetAllocationInfo2(allocation, pAllocationInfo); } VMA_CALL_PRE void VMA_CALL_POST vmaSetAllocationUserData( @@ -17124,36 +16869,24 @@ VMA_CALL_PRE void VMA_CALL_POST vmaSetAllocationUserData( VMA_DEBUG_GLOBAL_MUTEX_LOCK allocation->SetUserData(allocator, pUserData); - -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordSetAllocationUserData( - allocator->GetCurrentFrameIndex(), - allocation, - pUserData); - } -#endif } -VMA_CALL_PRE void VMA_CALL_POST vmaCreateLostAllocation( - VmaAllocator allocator, - VmaAllocation* pAllocation) +VMA_CALL_PRE void VMA_CALL_POST vmaSetAllocationName( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + const char* VMA_NULLABLE pName) { - VMA_ASSERT(allocator && pAllocation); - - VMA_DEBUG_GLOBAL_MUTEX_LOCK; - - allocator->CreateLostAllocation(pAllocation); + allocation->SetName(allocator, pName); +} -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordCreateLostAllocation( - allocator->GetCurrentFrameIndex(), - *pAllocation); - } -#endif +VMA_CALL_PRE void VMA_CALL_POST vmaGetAllocationMemoryProperties( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + VkMemoryPropertyFlags* VMA_NOT_NULL pFlags) +{ + VMA_ASSERT(allocator && allocation && pFlags); + const uint32_t memTypeIndex = allocation->GetMemoryTypeIndex(); + *pFlags = allocator->m_MemProps.memoryTypes[memTypeIndex].propertyFlags; } VMA_CALL_PRE VkResult VMA_CALL_POST vmaMapMemory( @@ -17165,18 +16898,7 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaMapMemory( VMA_DEBUG_GLOBAL_MUTEX_LOCK - VkResult res = allocator->Map(allocation, ppData); - -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordMapMemory( - allocator->GetCurrentFrameIndex(), - allocation); - } -#endif - - return res; + return allocator->Map(allocation, ppData); } VMA_CALL_PRE void VMA_CALL_POST vmaUnmapMemory( @@ -17187,19 +16909,14 @@ VMA_CALL_PRE void VMA_CALL_POST vmaUnmapMemory( VMA_DEBUG_GLOBAL_MUTEX_LOCK -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordUnmapMemory( - allocator->GetCurrentFrameIndex(), - allocation); - } -#endif - allocator->Unmap(allocation); } -VMA_CALL_PRE VkResult VMA_CALL_POST vmaFlushAllocation(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize offset, VkDeviceSize size) +VMA_CALL_PRE VkResult VMA_CALL_POST vmaFlushAllocation( + VmaAllocator allocator, + VmaAllocation allocation, + VkDeviceSize offset, + VkDeviceSize size) { VMA_ASSERT(allocator && allocation); @@ -17209,19 +16926,14 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaFlushAllocation(VmaAllocator allocator, V const VkResult res = allocator->FlushOrInvalidateAllocation(allocation, offset, size, VMA_CACHE_FLUSH); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordFlushAllocation( - allocator->GetCurrentFrameIndex(), - allocation, offset, size); - } -#endif - return res; } -VMA_CALL_PRE VkResult VMA_CALL_POST vmaInvalidateAllocation(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize offset, VkDeviceSize size) +VMA_CALL_PRE VkResult VMA_CALL_POST vmaInvalidateAllocation( + VmaAllocator allocator, + VmaAllocation allocation, + VkDeviceSize offset, + VkDeviceSize size) { VMA_ASSERT(allocator && allocation); @@ -17231,15 +16943,6 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaInvalidateAllocation(VmaAllocator allocat const VkResult res = allocator->FlushOrInvalidateAllocation(allocation, offset, size, VMA_CACHE_INVALIDATE); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordInvalidateAllocation( - allocator->GetCurrentFrameIndex(), - allocation, offset, size); - } -#endif - return res; } @@ -17265,13 +16968,6 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaFlushAllocations( const VkResult res = allocator->FlushOrInvalidateAllocations(allocationCount, allocations, offsets, sizes, VMA_CACHE_FLUSH); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - //TODO - } -#endif - return res; } @@ -17297,17 +16993,12 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaInvalidateAllocations( const VkResult res = allocator->FlushOrInvalidateAllocations(allocationCount, allocations, offsets, sizes, VMA_CACHE_INVALIDATE); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - //TODO - } -#endif - return res; } -VMA_CALL_PRE VkResult VMA_CALL_POST vmaCheckCorruption(VmaAllocator allocator, uint32_t memoryTypeBits) +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCheckCorruption( + VmaAllocator allocator, + uint32_t memoryTypeBits) { VMA_ASSERT(allocator); @@ -17318,139 +17009,70 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaCheckCorruption(VmaAllocator allocator, u return allocator->CheckCorruption(memoryTypeBits); } -VMA_CALL_PRE VkResult VMA_CALL_POST vmaDefragment( - VmaAllocator allocator, - const VmaAllocation* pAllocations, - size_t allocationCount, - VkBool32* pAllocationsChanged, - const VmaDefragmentationInfo *pDefragmentationInfo, - VmaDefragmentationStats* pDefragmentationStats) -{ - // Deprecated interface, reimplemented using new one. - - VmaDefragmentationInfo2 info2 = {}; - info2.allocationCount = (uint32_t)allocationCount; - info2.pAllocations = pAllocations; - info2.pAllocationsChanged = pAllocationsChanged; - if(pDefragmentationInfo != VMA_NULL) - { - info2.maxCpuAllocationsToMove = pDefragmentationInfo->maxAllocationsToMove; - info2.maxCpuBytesToMove = pDefragmentationInfo->maxBytesToMove; - } - else - { - info2.maxCpuAllocationsToMove = UINT32_MAX; - info2.maxCpuBytesToMove = VK_WHOLE_SIZE; - } - // info2.flags, maxGpuAllocationsToMove, maxGpuBytesToMove, commandBuffer deliberately left zero. - - VmaDefragmentationContext ctx; - VkResult res = vmaDefragmentationBegin(allocator, &info2, pDefragmentationStats, &ctx); - if(res == VK_NOT_READY) - { - res = vmaDefragmentationEnd( allocator, ctx); - } - return res; -} - -VMA_CALL_PRE VkResult VMA_CALL_POST vmaDefragmentationBegin( +VMA_CALL_PRE VkResult VMA_CALL_POST vmaBeginDefragmentation( VmaAllocator allocator, - const VmaDefragmentationInfo2* pInfo, - VmaDefragmentationStats* pStats, - VmaDefragmentationContext *pContext) + const VmaDefragmentationInfo* pInfo, + VmaDefragmentationContext* pContext) { VMA_ASSERT(allocator && pInfo && pContext); - // Degenerate case: Nothing to defragment. - if(pInfo->allocationCount == 0 && pInfo->poolCount == 0) + VMA_DEBUG_LOG("vmaBeginDefragmentation"); + + if (pInfo->pool != VMA_NULL) { - return VK_SUCCESS; + // Check if run on supported algorithms + if (pInfo->pool->m_BlockVector.GetAlgorithm() & VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT) + return VK_ERROR_FEATURE_NOT_PRESENT; } - VMA_ASSERT(pInfo->allocationCount == 0 || pInfo->pAllocations != VMA_NULL); - VMA_ASSERT(pInfo->poolCount == 0 || pInfo->pPools != VMA_NULL); - VMA_HEAVY_ASSERT(VmaValidatePointerArray(pInfo->allocationCount, pInfo->pAllocations)); - VMA_HEAVY_ASSERT(VmaValidatePointerArray(pInfo->poolCount, pInfo->pPools)); - - VMA_DEBUG_LOG("vmaDefragmentationBegin"); - VMA_DEBUG_GLOBAL_MUTEX_LOCK - VkResult res = allocator->DefragmentationBegin(*pInfo, pStats, pContext); - -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordDefragmentationBegin( - allocator->GetCurrentFrameIndex(), *pInfo, *pContext); - } -#endif - - return res; + *pContext = vma_new(allocator, VmaDefragmentationContext_T)(allocator, *pInfo); + return VK_SUCCESS; } -VMA_CALL_PRE VkResult VMA_CALL_POST vmaDefragmentationEnd( +VMA_CALL_PRE void VMA_CALL_POST vmaEndDefragmentation( VmaAllocator allocator, - VmaDefragmentationContext context) + VmaDefragmentationContext context, + VmaDefragmentationStats* pStats) { - VMA_ASSERT(allocator); + VMA_ASSERT(allocator && context); - VMA_DEBUG_LOG("vmaDefragmentationEnd"); - - if(context != VK_NULL_HANDLE) - { - VMA_DEBUG_GLOBAL_MUTEX_LOCK + VMA_DEBUG_LOG("vmaEndDefragmentation"); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordDefragmentationEnd( - allocator->GetCurrentFrameIndex(), context); - } -#endif + VMA_DEBUG_GLOBAL_MUTEX_LOCK - return allocator->DefragmentationEnd(context); - } - else - { - return VK_SUCCESS; - } + if (pStats) + context->GetStats(*pStats); + vma_delete(allocator, context); } VMA_CALL_PRE VkResult VMA_CALL_POST vmaBeginDefragmentationPass( - VmaAllocator allocator, - VmaDefragmentationContext context, - VmaDefragmentationPassInfo* pInfo - ) + VmaAllocator VMA_NOT_NULL allocator, + VmaDefragmentationContext VMA_NOT_NULL context, + VmaDefragmentationPassMoveInfo* VMA_NOT_NULL pPassInfo) { - VMA_ASSERT(allocator); - VMA_ASSERT(pInfo); + VMA_ASSERT(context && pPassInfo); VMA_DEBUG_LOG("vmaBeginDefragmentationPass"); VMA_DEBUG_GLOBAL_MUTEX_LOCK - if(context == VK_NULL_HANDLE) - { - pInfo->moveCount = 0; - return VK_SUCCESS; - } - - return allocator->DefragmentationPassBegin(pInfo, context); + return context->DefragmentPassBegin(*pPassInfo); } + VMA_CALL_PRE VkResult VMA_CALL_POST vmaEndDefragmentationPass( - VmaAllocator allocator, - VmaDefragmentationContext context) + VmaAllocator VMA_NOT_NULL allocator, + VmaDefragmentationContext VMA_NOT_NULL context, + VmaDefragmentationPassMoveInfo* VMA_NOT_NULL pPassInfo) { - VMA_ASSERT(allocator); + VMA_ASSERT(context && pPassInfo); VMA_DEBUG_LOG("vmaEndDefragmentationPass"); - VMA_DEBUG_GLOBAL_MUTEX_LOCK - if(context == VK_NULL_HANDLE) - return VK_SUCCESS; + VMA_DEBUG_GLOBAL_MUTEX_LOCK - return allocator->DefragmentationPassEnd(context); + return context->DefragmentPassEnd(*pPassInfo); } VMA_CALL_PRE VkResult VMA_CALL_POST vmaBindBufferMemory( @@ -17562,24 +17184,13 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateBuffer( requiresDedicatedAllocation, prefersDedicatedAllocation, *pBuffer, // dedicatedBuffer - pBufferCreateInfo->usage, // dedicatedBufferUsage VK_NULL_HANDLE, // dedicatedImage + pBufferCreateInfo->usage, // dedicatedBufferImageUsage *pAllocationCreateInfo, VMA_SUBALLOCATION_TYPE_BUFFER, 1, // allocationCount pAllocation); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordCreateBuffer( - allocator->GetCurrentFrameIndex(), - *pBufferCreateInfo, - *pAllocationCreateInfo, - *pAllocation); - } -#endif - if(res >= 0) { // 3. Bind buffer with memory. @@ -17668,51 +17279,99 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateBufferWithAlignment( requiresDedicatedAllocation, prefersDedicatedAllocation, *pBuffer, // dedicatedBuffer - pBufferCreateInfo->usage, // dedicatedBufferUsage VK_NULL_HANDLE, // dedicatedImage + pBufferCreateInfo->usage, // dedicatedBufferImageUsage *pAllocationCreateInfo, VMA_SUBALLOCATION_TYPE_BUFFER, 1, // allocationCount pAllocation); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) + if(res >= 0) { - VMA_ASSERT(0 && "Not implemented."); + // 3. Bind buffer with memory. + if((pAllocationCreateInfo->flags & VMA_ALLOCATION_CREATE_DONT_BIND_BIT) == 0) + { + res = allocator->BindBufferMemory(*pAllocation, 0, *pBuffer, VMA_NULL); + } + if(res >= 0) + { + // All steps succeeded. + #if VMA_STATS_STRING_ENABLED + (*pAllocation)->InitBufferImageUsage(pBufferCreateInfo->usage); + #endif + if(pAllocationInfo != VMA_NULL) + { + allocator->GetAllocationInfo(*pAllocation, pAllocationInfo); + } + + return VK_SUCCESS; + } + allocator->FreeMemory( + 1, // allocationCount + pAllocation); + *pAllocation = VK_NULL_HANDLE; + (*allocator->GetVulkanFunctions().vkDestroyBuffer)(allocator->m_hDevice, *pBuffer, allocator->GetAllocationCallbacks()); + *pBuffer = VK_NULL_HANDLE; + return res; } -#endif + (*allocator->GetVulkanFunctions().vkDestroyBuffer)(allocator->m_hDevice, *pBuffer, allocator->GetAllocationCallbacks()); + *pBuffer = VK_NULL_HANDLE; + return res; + } + return res; +} + +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateAliasingBuffer( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + const VkBufferCreateInfo* VMA_NOT_NULL pBufferCreateInfo, + VkBuffer VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pBuffer) +{ + return vmaCreateAliasingBuffer2(allocator, allocation, 0, pBufferCreateInfo, pBuffer); +} + +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateAliasingBuffer2( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + VkDeviceSize allocationLocalOffset, + const VkBufferCreateInfo* VMA_NOT_NULL pBufferCreateInfo, + VkBuffer VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pBuffer) +{ + VMA_ASSERT(allocator && pBufferCreateInfo && pBuffer && allocation); + VMA_ASSERT(allocationLocalOffset + pBufferCreateInfo->size <= allocation->GetSize()); + + VMA_DEBUG_LOG("vmaCreateAliasingBuffer2"); + + *pBuffer = VK_NULL_HANDLE; + + if (pBufferCreateInfo->size == 0) + { + return VK_ERROR_INITIALIZATION_FAILED; + } + if ((pBufferCreateInfo->usage & VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_COPY) != 0 && + !allocator->m_UseKhrBufferDeviceAddress) + { + VMA_ASSERT(0 && "Creating a buffer with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT is not valid if VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT was not used."); + return VK_ERROR_INITIALIZATION_FAILED; + } - if(res >= 0) - { - // 3. Bind buffer with memory. - if((pAllocationCreateInfo->flags & VMA_ALLOCATION_CREATE_DONT_BIND_BIT) == 0) - { - res = allocator->BindBufferMemory(*pAllocation, 0, *pBuffer, VMA_NULL); - } - if(res >= 0) - { - // All steps succeeded. - #if VMA_STATS_STRING_ENABLED - (*pAllocation)->InitBufferImageUsage(pBufferCreateInfo->usage); - #endif - if(pAllocationInfo != VMA_NULL) - { - allocator->GetAllocationInfo(*pAllocation, pAllocationInfo); - } + VMA_DEBUG_GLOBAL_MUTEX_LOCK - return VK_SUCCESS; - } - allocator->FreeMemory( - 1, // allocationCount - pAllocation); - *pAllocation = VK_NULL_HANDLE; - (*allocator->GetVulkanFunctions().vkDestroyBuffer)(allocator->m_hDevice, *pBuffer, allocator->GetAllocationCallbacks()); - *pBuffer = VK_NULL_HANDLE; - return res; + // 1. Create VkBuffer. + VkResult res = (*allocator->GetVulkanFunctions().vkCreateBuffer)( + allocator->m_hDevice, + pBufferCreateInfo, + allocator->GetAllocationCallbacks(), + pBuffer); + if (res >= 0) + { + // 2. Bind buffer with memory. + res = allocator->BindBufferMemory(allocation, allocationLocalOffset, *pBuffer, VMA_NULL); + if (res >= 0) + { + return VK_SUCCESS; } (*allocator->GetVulkanFunctions().vkDestroyBuffer)(allocator->m_hDevice, *pBuffer, allocator->GetAllocationCallbacks()); - *pBuffer = VK_NULL_HANDLE; - return res; } return res; } @@ -17733,15 +17392,6 @@ VMA_CALL_PRE void VMA_CALL_POST vmaDestroyBuffer( VMA_DEBUG_GLOBAL_MUTEX_LOCK -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordDestroyBuffer( - allocator->GetCurrentFrameIndex(), - allocation); - } -#endif - if(buffer != VK_NULL_HANDLE) { (*allocator->GetVulkanFunctions().vkDestroyBuffer)(allocator->m_hDevice, buffer, allocator->GetAllocationCallbacks()); @@ -17805,24 +17455,13 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateImage( requiresDedicatedAllocation, prefersDedicatedAllocation, VK_NULL_HANDLE, // dedicatedBuffer - UINT32_MAX, // dedicatedBufferUsage *pImage, // dedicatedImage + pImageCreateInfo->usage, // dedicatedBufferImageUsage *pAllocationCreateInfo, suballocType, 1, // allocationCount pAllocation); -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordCreateImage( - allocator->GetCurrentFrameIndex(), - *pImageCreateInfo, - *pAllocationCreateInfo, - *pAllocation); - } -#endif - if(res >= 0) { // 3. Bind image with memory. @@ -17858,10 +17497,62 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateImage( return res; } +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateAliasingImage( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + const VkImageCreateInfo* VMA_NOT_NULL pImageCreateInfo, + VkImage VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pImage) +{ + return vmaCreateAliasingImage2(allocator, allocation, 0, pImageCreateInfo, pImage); +} + +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateAliasingImage2( + VmaAllocator VMA_NOT_NULL allocator, + VmaAllocation VMA_NOT_NULL allocation, + VkDeviceSize allocationLocalOffset, + const VkImageCreateInfo* VMA_NOT_NULL pImageCreateInfo, + VkImage VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pImage) +{ + VMA_ASSERT(allocator && pImageCreateInfo && pImage && allocation); + + *pImage = VK_NULL_HANDLE; + + VMA_DEBUG_LOG("vmaCreateImage2"); + + if (pImageCreateInfo->extent.width == 0 || + pImageCreateInfo->extent.height == 0 || + pImageCreateInfo->extent.depth == 0 || + pImageCreateInfo->mipLevels == 0 || + pImageCreateInfo->arrayLayers == 0) + { + return VK_ERROR_INITIALIZATION_FAILED; + } + + VMA_DEBUG_GLOBAL_MUTEX_LOCK + + // 1. Create VkImage. + VkResult res = (*allocator->GetVulkanFunctions().vkCreateImage)( + allocator->m_hDevice, + pImageCreateInfo, + allocator->GetAllocationCallbacks(), + pImage); + if (res >= 0) + { + // 2. Bind image with memory. + res = allocator->BindImageMemory(allocation, allocationLocalOffset, *pImage, VMA_NULL); + if (res >= 0) + { + return VK_SUCCESS; + } + (*allocator->GetVulkanFunctions().vkDestroyImage)(allocator->m_hDevice, *pImage, allocator->GetAllocationCallbacks()); + } + return res; +} + VMA_CALL_PRE void VMA_CALL_POST vmaDestroyImage( - VmaAllocator allocator, - VkImage image, - VmaAllocation allocation) + VmaAllocator VMA_NOT_NULL allocator, + VkImage VMA_NULLABLE_NON_DISPATCHABLE image, + VmaAllocation VMA_NULLABLE allocation) { VMA_ASSERT(allocator); @@ -17874,15 +17565,6 @@ VMA_CALL_PRE void VMA_CALL_POST vmaDestroyImage( VMA_DEBUG_GLOBAL_MUTEX_LOCK -#if VMA_RECORDING_ENABLED - if(allocator->GetRecorder() != VMA_NULL) - { - allocator->GetRecorder()->RecordDestroyImage( - allocator->GetCurrentFrameIndex(), - allocation); - } -#endif - if(image != VK_NULL_HANDLE) { (*allocator->GetVulkanFunctions().vkDestroyImage)(allocator->m_hDevice, image, allocator->GetAllocationCallbacks()); @@ -17895,7 +17577,134 @@ VMA_CALL_PRE void VMA_CALL_POST vmaDestroyImage( } } -#endif // #ifdef VMA_IMPLEMENTATION +VMA_CALL_PRE VkResult VMA_CALL_POST vmaCreateVirtualBlock( + const VmaVirtualBlockCreateInfo* VMA_NOT_NULL pCreateInfo, + VmaVirtualBlock VMA_NULLABLE * VMA_NOT_NULL pVirtualBlock) +{ + VMA_ASSERT(pCreateInfo && pVirtualBlock); + VMA_ASSERT(pCreateInfo->size > 0); + VMA_DEBUG_LOG("vmaCreateVirtualBlock"); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + *pVirtualBlock = vma_new(pCreateInfo->pAllocationCallbacks, VmaVirtualBlock_T)(*pCreateInfo); + VkResult res = (*pVirtualBlock)->Init(); + if(res < 0) + { + vma_delete(pCreateInfo->pAllocationCallbacks, *pVirtualBlock); + *pVirtualBlock = VK_NULL_HANDLE; + } + return res; +} + +VMA_CALL_PRE void VMA_CALL_POST vmaDestroyVirtualBlock(VmaVirtualBlock VMA_NULLABLE virtualBlock) +{ + if(virtualBlock != VK_NULL_HANDLE) + { + VMA_DEBUG_LOG("vmaDestroyVirtualBlock"); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + VkAllocationCallbacks allocationCallbacks = virtualBlock->m_AllocationCallbacks; // Have to copy the callbacks when destroying. + vma_delete(&allocationCallbacks, virtualBlock); + } +} + +VMA_CALL_PRE VkBool32 VMA_CALL_POST vmaIsVirtualBlockEmpty(VmaVirtualBlock VMA_NOT_NULL virtualBlock) +{ + VMA_ASSERT(virtualBlock != VK_NULL_HANDLE); + VMA_DEBUG_LOG("vmaIsVirtualBlockEmpty"); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + return virtualBlock->IsEmpty() ? VK_TRUE : VK_FALSE; +} + +VMA_CALL_PRE void VMA_CALL_POST vmaGetVirtualAllocationInfo(VmaVirtualBlock VMA_NOT_NULL virtualBlock, + VmaVirtualAllocation VMA_NOT_NULL_NON_DISPATCHABLE allocation, VmaVirtualAllocationInfo* VMA_NOT_NULL pVirtualAllocInfo) +{ + VMA_ASSERT(virtualBlock != VK_NULL_HANDLE && pVirtualAllocInfo != VMA_NULL); + VMA_DEBUG_LOG("vmaGetVirtualAllocationInfo"); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + virtualBlock->GetAllocationInfo(allocation, *pVirtualAllocInfo); +} + +VMA_CALL_PRE VkResult VMA_CALL_POST vmaVirtualAllocate(VmaVirtualBlock VMA_NOT_NULL virtualBlock, + const VmaVirtualAllocationCreateInfo* VMA_NOT_NULL pCreateInfo, VmaVirtualAllocation VMA_NULLABLE_NON_DISPATCHABLE* VMA_NOT_NULL pAllocation, + VkDeviceSize* VMA_NULLABLE pOffset) +{ + VMA_ASSERT(virtualBlock != VK_NULL_HANDLE && pCreateInfo != VMA_NULL && pAllocation != VMA_NULL); + VMA_DEBUG_LOG("vmaVirtualAllocate"); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + return virtualBlock->Allocate(*pCreateInfo, *pAllocation, pOffset); +} + +VMA_CALL_PRE void VMA_CALL_POST vmaVirtualFree(VmaVirtualBlock VMA_NOT_NULL virtualBlock, VmaVirtualAllocation VMA_NULLABLE_NON_DISPATCHABLE allocation) +{ + if(allocation != VK_NULL_HANDLE) + { + VMA_ASSERT(virtualBlock != VK_NULL_HANDLE); + VMA_DEBUG_LOG("vmaVirtualFree"); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + virtualBlock->Free(allocation); + } +} + +VMA_CALL_PRE void VMA_CALL_POST vmaClearVirtualBlock(VmaVirtualBlock VMA_NOT_NULL virtualBlock) +{ + VMA_ASSERT(virtualBlock != VK_NULL_HANDLE); + VMA_DEBUG_LOG("vmaClearVirtualBlock"); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + virtualBlock->Clear(); +} + +VMA_CALL_PRE void VMA_CALL_POST vmaSetVirtualAllocationUserData(VmaVirtualBlock VMA_NOT_NULL virtualBlock, + VmaVirtualAllocation VMA_NOT_NULL_NON_DISPATCHABLE allocation, void* VMA_NULLABLE pUserData) +{ + VMA_ASSERT(virtualBlock != VK_NULL_HANDLE); + VMA_DEBUG_LOG("vmaSetVirtualAllocationUserData"); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + virtualBlock->SetAllocationUserData(allocation, pUserData); +} + +VMA_CALL_PRE void VMA_CALL_POST vmaGetVirtualBlockStatistics(VmaVirtualBlock VMA_NOT_NULL virtualBlock, + VmaStatistics* VMA_NOT_NULL pStats) +{ + VMA_ASSERT(virtualBlock != VK_NULL_HANDLE && pStats != VMA_NULL); + VMA_DEBUG_LOG("vmaGetVirtualBlockStatistics"); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + virtualBlock->GetStatistics(*pStats); +} + +VMA_CALL_PRE void VMA_CALL_POST vmaCalculateVirtualBlockStatistics(VmaVirtualBlock VMA_NOT_NULL virtualBlock, + VmaDetailedStatistics* VMA_NOT_NULL pStats) +{ + VMA_ASSERT(virtualBlock != VK_NULL_HANDLE && pStats != VMA_NULL); + VMA_DEBUG_LOG("vmaCalculateVirtualBlockStatistics"); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + virtualBlock->CalculateDetailedStatistics(*pStats); +} + +#if VMA_STATS_STRING_ENABLED + +VMA_CALL_PRE void VMA_CALL_POST vmaBuildVirtualBlockStatsString(VmaVirtualBlock VMA_NOT_NULL virtualBlock, + char* VMA_NULLABLE * VMA_NOT_NULL ppStatsString, VkBool32 detailedMap) +{ + VMA_ASSERT(virtualBlock != VK_NULL_HANDLE && ppStatsString != VMA_NULL); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + const VkAllocationCallbacks* allocationCallbacks = virtualBlock->GetAllocationCallbacks(); + VmaStringBuilder sb(allocationCallbacks); + virtualBlock->BuildStatsString(detailedMap != VK_FALSE, sb); + *ppStatsString = VmaCreateStringCopy(allocationCallbacks, sb.GetData(), sb.GetLength()); +} + +VMA_CALL_PRE void VMA_CALL_POST vmaFreeVirtualBlockStatsString(VmaVirtualBlock VMA_NOT_NULL virtualBlock, + char* VMA_NULLABLE pStatsString) +{ + if(pStatsString != VMA_NULL) + { + VMA_ASSERT(virtualBlock != VK_NULL_HANDLE); + VMA_DEBUG_GLOBAL_MUTEX_LOCK; + VmaFreeString(virtualBlock->GetAllocationCallbacks(), pStatsString); + } +} +#endif // VMA_STATS_STRING_ENABLED +#endif // _VMA_PUBLIC_INTERFACE +#endif // VMA_IMPLEMENTATION /** \page quick_start Quick start @@ -17925,24 +17734,16 @@ To do it properly: It may be a good idea to create dedicated CPP file just for this purpose. -Note on language: This library is written in C++, but has C-compatible interface. -Thus you can include and use vk_mem_alloc.h in C or C++ code, but full -implementation with `VMA_IMPLEMENTATION` macro must be compiled as C++, NOT as C. - -Please note that this library includes header ``, which in turn +This library includes header ``, which in turn includes `` on Windows. If you need some specific macros defined before including these headers (like `WIN32_LEAN_AND_MEAN` or `WINVER` for Windows, `VK_USE_PLATFORM_WIN32_KHR` for Vulkan), you must define them before every `#include` of this library. -You may need to configure the way you import Vulkan functions. - -- By default, VMA assumes you you link statically with Vulkan API. If this is not the case, - `#define VMA_STATIC_VULKAN_FUNCTIONS 0` before `#include` of the VMA implementation and use another way. -- You can `#define VMA_DYNAMIC_VULKAN_FUNCTIONS 1` and make sure `vkGetInstanceProcAddr` and `vkGetDeviceProcAddr` globals are defined. - All the remaining Vulkan functions will be fetched automatically. -- Finally, you can provide your own pointers to all Vulkan functions needed by VMA using structure member - VmaAllocatorCreateInfo::pVulkanFunctions, if you fetched them in some custom way e.g. using some loader like [Volk](https://github.com/zeux/volk). +This library is written in C++, but has C-compatible interface. +Thus you can include and use vk_mem_alloc.h in C or C++ code, but full +implementation with `VMA_IMPLEMENTATION` macro must be compiled as C++, NOT as C. +Some features of C++14 are used. STL containers, RTTI, or C++ exceptions are not used. \section quick_start_initialization Initialization @@ -17953,23 +17754,80 @@ At program startup: -# Fill VmaAllocatorCreateInfo structure and create #VmaAllocator object by calling vmaCreateAllocator(). -\code -VmaAllocatorCreateInfo allocatorInfo = {}; -allocatorInfo.vulkanApiVersion = VK_API_VERSION_1_2; -allocatorInfo.physicalDevice = physicalDevice; -allocatorInfo.device = device; -allocatorInfo.instance = instance; - -VmaAllocator allocator; -vmaCreateAllocator(&allocatorInfo, &allocator); -\endcode - Only members `physicalDevice`, `device`, `instance` are required. However, you should inform the library which Vulkan version do you use by setting VmaAllocatorCreateInfo::vulkanApiVersion and which extensions did you enable by setting VmaAllocatorCreateInfo::flags (like #VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT for VK_KHR_buffer_device_address). Otherwise, VMA would use only features of Vulkan 1.0 core with no extensions. +\subsection quick_start_initialization_selecting_vulkan_version Selecting Vulkan version + +VMA supports Vulkan version down to 1.0, for backward compatibility. +If you want to use higher version, you need to inform the library about it. +This is a two-step process. + +Step 1: Compile time. By default, VMA compiles with code supporting the highest +Vulkan version found in the included `` that is also supported by the library. +If this is OK, you don't need to do anything. +However, if you want to compile VMA as if only some lower Vulkan version was available, +define macro `VMA_VULKAN_VERSION` before every `#include "vk_mem_alloc.h"`. +It should have decimal numeric value in form of ABBBCCC, where A = major, BBB = minor, CCC = patch Vulkan version. +For example, to compile against Vulkan 1.2: + +\code +#define VMA_VULKAN_VERSION 1002000 // Vulkan 1.2 +#include "vk_mem_alloc.h" +\endcode + +Step 2: Runtime. Even when compiled with higher Vulkan version available, +VMA can use only features of a lower version, which is configurable during creation of the #VmaAllocator object. +By default, only Vulkan 1.0 is used. +To initialize the allocator with support for higher Vulkan version, you need to set member +VmaAllocatorCreateInfo::vulkanApiVersion to an appropriate value, e.g. using constants like `VK_API_VERSION_1_2`. +See code sample below. + +\subsection quick_start_initialization_importing_vulkan_functions Importing Vulkan functions + +You may need to configure importing Vulkan functions. There are 3 ways to do this: + +-# **If you link with Vulkan static library** (e.g. "vulkan-1.lib" on Windows): + - You don't need to do anything. + - VMA will use these, as macro `VMA_STATIC_VULKAN_FUNCTIONS` is defined to 1 by default. +-# **If you want VMA to fetch pointers to Vulkan functions dynamically** using `vkGetInstanceProcAddr`, + `vkGetDeviceProcAddr` (this is the option presented in the example below): + - Define `VMA_STATIC_VULKAN_FUNCTIONS` to 0, `VMA_DYNAMIC_VULKAN_FUNCTIONS` to 1. + - Provide pointers to these two functions via VmaVulkanFunctions::vkGetInstanceProcAddr, + VmaVulkanFunctions::vkGetDeviceProcAddr. + - The library will fetch pointers to all other functions it needs internally. +-# **If you fetch pointers to all Vulkan functions in a custom way**, e.g. using some loader like + [Volk](https://github.com/zeux/volk): + - Define `VMA_STATIC_VULKAN_FUNCTIONS` and `VMA_DYNAMIC_VULKAN_FUNCTIONS` to 0. + - Pass these pointers via structure #VmaVulkanFunctions. + +Example for case 2: + +\code +#define VMA_STATIC_VULKAN_FUNCTIONS 0 +#define VMA_DYNAMIC_VULKAN_FUNCTIONS 1 +#include "vk_mem_alloc.h" + +... + +VmaVulkanFunctions vulkanFunctions = {}; +vulkanFunctions.vkGetInstanceProcAddr = &vkGetInstanceProcAddr; +vulkanFunctions.vkGetDeviceProcAddr = &vkGetDeviceProcAddr; + +VmaAllocatorCreateInfo allocatorCreateInfo = {}; +allocatorCreateInfo.vulkanApiVersion = VK_API_VERSION_1_2; +allocatorCreateInfo.physicalDevice = physicalDevice; +allocatorCreateInfo.device = device; +allocatorCreateInfo.instance = instance; +allocatorCreateInfo.pVulkanFunctions = &vulkanFunctions; + +VmaAllocator allocator; +vmaCreateAllocator(&allocatorCreateInfo, &allocator); +\endcode + \section quick_start_resource_allocation Resource allocation @@ -17978,7 +17836,7 @@ When you want to create a buffer or image: -# Fill `VkBufferCreateInfo` / `VkImageCreateInfo` structure. -# Fill VmaAllocationCreateInfo structure. -# Call vmaCreateBuffer() / vmaCreateImage() to get `VkBuffer`/`VkImage` with memory - already allocated and bound to it. + already allocated and bound to it, plus #VmaAllocation objects that represents its underlying memory. \code VkBufferCreateInfo bufferInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; @@ -17986,7 +17844,7 @@ bufferInfo.size = 65536; bufferInfo.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; VmaAllocationCreateInfo allocInfo = {}; -allocInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY; +allocInfo.usage = VMA_MEMORY_USAGE_AUTO; VkBuffer buffer; VmaAllocation allocation; @@ -18010,8 +17868,8 @@ appropriate members of VmaAllocationCreateInfo structure, as described below. You can also combine multiple methods. -# If you just want to find memory type index that meets your requirements, you - can use function: vmaFindMemoryTypeIndex(), vmaFindMemoryTypeIndexForBufferInfo(), - vmaFindMemoryTypeIndexForImageInfo(). + can use function: vmaFindMemoryTypeIndexForBufferInfo(), + vmaFindMemoryTypeIndexForImageInfo(), vmaFindMemoryTypeIndex(). -# If you want to allocate a region of device memory without association with any specific image or buffer, you can use function vmaAllocateMemory(). Usage of this function is not recommended and usually not needed. @@ -18022,9 +17880,10 @@ You can also combine multiple methods. vmaAllocateMemoryForBuffer(), vmaAllocateMemoryForImage(). For binding you should use functions: vmaBindBufferMemory(), vmaBindImageMemory() or their extended versions: vmaBindBufferMemory2(), vmaBindImageMemory2(). --# If you want to create a buffer or an image, allocate memory for it and bind +-# **This is the easiest and recommended way to use this library:** + If you want to create a buffer or an image, allocate memory for it and bind them together, all in one call, you can use function vmaCreateBuffer(), - vmaCreateImage(). This is the easiest and recommended way to use this library. + vmaCreateImage(). When using 3. or 4., the library internally queries Vulkan for memory types supported for that buffer or image (function `vkGetBufferMemoryRequirements()`) @@ -18042,11 +17901,12 @@ It is valid, although not very useful. The easiest way to specify memory requirements is to fill member VmaAllocationCreateInfo::usage using one of the values of enum #VmaMemoryUsage. It defines high level, common usage types. -For more details, see description of this enum. +Since version 3 of the library, it is recommended to use #VMA_MEMORY_USAGE_AUTO to let it select best memory type for your resource automatically. For example, if you want to create a uniform buffer that will be filled using -transfer only once or infrequently and used for rendering every frame, you can -do it using following code: +transfer only once or infrequently and then used for rendering every frame as a uniform buffer, you can +do it using following code. The buffer will most likely end up in a memory type with +`VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT` to be fast to access by the GPU device. \code VkBufferCreateInfo bufferInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; @@ -18054,13 +17914,56 @@ bufferInfo.size = 65536; bufferInfo.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; VmaAllocationCreateInfo allocInfo = {}; -allocInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY; +allocInfo.usage = VMA_MEMORY_USAGE_AUTO; VkBuffer buffer; VmaAllocation allocation; vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr); \endcode +If you have a preference for putting the resource in GPU (device) memory or CPU (host) memory +on systems with discrete graphics card that have the memories separate, you can use +#VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE or #VMA_MEMORY_USAGE_AUTO_PREFER_HOST. + +When using `VMA_MEMORY_USAGE_AUTO*` while you want to map the allocated memory, +you also need to specify one of the host access flags: +#VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or #VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT. +This will help the library decide about preferred memory type to ensure it has `VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT` +so you can map it. + +For example, a staging buffer that will be filled via mapped pointer and then +used as a source of transfer to the buffer described previously can be created like this. +It will likely end up in a memory type that is `HOST_VISIBLE` and `HOST_COHERENT` +but not `HOST_CACHED` (meaning uncached, write-combined) and not `DEVICE_LOCAL` (meaning system RAM). + +\code +VkBufferCreateInfo stagingBufferInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; +stagingBufferInfo.size = 65536; +stagingBufferInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; + +VmaAllocationCreateInfo stagingAllocInfo = {}; +stagingAllocInfo.usage = VMA_MEMORY_USAGE_AUTO; +stagingAllocInfo.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT; + +VkBuffer stagingBuffer; +VmaAllocation stagingAllocation; +vmaCreateBuffer(allocator, &stagingBufferInfo, &stagingAllocInfo, &stagingBuffer, &stagingAllocation, nullptr); +\endcode + +For more examples of creating different kinds of resources, see chapter \ref usage_patterns. + +Usage values `VMA_MEMORY_USAGE_AUTO*` are legal to use only when the library knows +about the resource being created by having `VkBufferCreateInfo` / `VkImageCreateInfo` passed, +so they work with functions like: vmaCreateBuffer(), vmaCreateImage(), vmaFindMemoryTypeIndexForBufferInfo() etc. +If you allocate raw memory using function vmaAllocateMemory(), you have to use other means of selecting +memory type, as described below. + +\note +Old usage values (`VMA_MEMORY_USAGE_GPU_ONLY`, `VMA_MEMORY_USAGE_CPU_ONLY`, +`VMA_MEMORY_USAGE_CPU_TO_GPU`, `VMA_MEMORY_USAGE_GPU_TO_CPU`, `VMA_MEMORY_USAGE_CPU_COPY`) +are still available and work same way as in previous versions of the library +for backward compatibility, but they are not recommended. + \section choosing_memory_type_required_preferred_flags Required and preferred flags You can specify more detailed requirements by filling members @@ -18074,7 +17977,7 @@ use following code: VmaAllocationCreateInfo allocInfo = {}; allocInfo.requiredFlags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; allocInfo.preferredFlags = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT; -allocInfo.flags = VMA_ALLOCATION_CREATE_MAPPED_BIT; +allocInfo.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT | VMA_ALLOCATION_CREATE_MAPPED_BIT; VkBuffer buffer; VmaAllocation allocation; @@ -18084,8 +17987,8 @@ vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullpt A memory type is chosen that has all the required flags and as many preferred flags set as possible. -If you use VmaAllocationCreateInfo::usage, it is just internally converted to -a set of required and preferred flags. +Value passed in VmaAllocationCreateInfo::usage is internally converted to a set of required and preferred flags, +plus some extra "magic" (heuristics). \section choosing_memory_type_explicit_memory_types Explicit memory types @@ -18152,6 +18055,13 @@ Mapping the same `VkDeviceMemory` block multiple times is illegal - only one map This includes mapping disjoint regions. Mapping is not reference-counted internally by Vulkan. Because of this, Vulkan Memory Allocator provides following facilities: +\note If you want to be able to map an allocation, you need to specify one of the flags +#VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or #VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT +in VmaAllocationCreateInfo::flags. These flags are required for an allocation to be mappable +when using #VMA_MEMORY_USAGE_AUTO or other `VMA_MEMORY_USAGE_AUTO*` enum values. +For other usage values they are ignored and every such allocation made in `HOST_VISIBLE` memory type is mappable, +but they can still be used for consistency. + \section memory_mapping_mapping_functions Mapping functions The library provides following functions for mapping of a specific #VmaAllocation: vmaMapMemory(), vmaUnmapMemory(). @@ -18164,16 +18074,15 @@ For further details, see description of vmaMapMemory() function. \code // Having these objects initialized: - struct ConstantBuffer { ... }; -ConstantBuffer constantBufferData; +ConstantBuffer constantBufferData = ... -VmaAllocator allocator; -VkBuffer constantBuffer; -VmaAllocation constantBufferAllocation; +VmaAllocator allocator = ... +VkBuffer constantBuffer = ... +VmaAllocation constantBufferAllocation = ... // You can map and fill your buffer using following code: @@ -18195,7 +18104,7 @@ object that you wanted to map. \section memory_mapping_persistently_mapped_memory Persistently mapped memory -Kepping your memory persistently mapped is generally OK in Vulkan. +Keeping your memory persistently mapped is generally OK in Vulkan. You don't need to unmap it before using its data on the GPU. The library provides a special feature designed for that: Allocations made with #VMA_ALLOCATION_CREATE_MAPPED_BIT flag set in @@ -18210,8 +18119,9 @@ bufCreateInfo.size = sizeof(ConstantBuffer); bufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; VmaAllocationCreateInfo allocCreateInfo = {}; -allocCreateInfo.usage = VMA_MEMORY_USAGE_CPU_ONLY; -allocCreateInfo.flags = VMA_ALLOCATION_CREATE_MAPPED_BIT; +allocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; +allocCreateInfo.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | + VMA_ALLOCATION_CREATE_MAPPED_BIT; VkBuffer buf; VmaAllocation alloc; @@ -18222,18 +18132,12 @@ vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, &allo memcpy(allocInfo.pMappedData, &constantBufferData, sizeof(constantBufferData)); \endcode -There are some exceptions though, when you should consider mapping memory only for a short period of time: - -- When operating system is Windows 7 or 8.x (Windows 10 is not affected because it uses WDDM2), - device is discrete AMD GPU, - and memory type is the special 256 MiB pool of `DEVICE_LOCAL + HOST_VISIBLE` memory - (selected when you use #VMA_MEMORY_USAGE_CPU_TO_GPU), - then whenever a memory block allocated from this memory type stays mapped - for the time of any call to `vkQueueSubmit()` or `vkQueuePresentKHR()`, this - block is migrated by WDDM to system RAM, which degrades performance. It doesn't - matter if that particular memory block is actually used by the command buffer - being submitted. -- Keeping many large memory blocks mapped may impact performance or stability of some debugging tools. +\note #VMA_ALLOCATION_CREATE_MAPPED_BIT by itself doesn't guarantee that the allocation will end up +in a mappable memory type. +For this, you need to also specify #VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or +#VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT. +#VMA_ALLOCATION_CREATE_MAPPED_BIT only guarantees that if the memory is `HOST_VISIBLE`, the allocation will be mapped on creation. +For an example of how to make use of this fact, see section \ref usage_patterns_advanced_data_uploading. \section memory_mapping_cache_control Cache flush and invalidate @@ -18254,87 +18158,9 @@ In any memory type that is `HOST_VISIBLE` but not `HOST_COHERENT`, all allocatio within blocks are aligned to this value, so their offsets are always multiply of `nonCoherentAtomSize` and two different allocations never share same "line" of this size. -Please note that memory allocated with #VMA_MEMORY_USAGE_CPU_ONLY is guaranteed to be `HOST_COHERENT`. - -Also, Windows drivers from all 3 **PC** GPU vendors (AMD, Intel, NVIDIA) +Also, Windows drivers from all 3 PC GPU vendors (AMD, Intel, NVIDIA) currently provide `HOST_COHERENT` flag on all memory types that are -`HOST_VISIBLE`, so on this platform you may not need to bother. - -\section memory_mapping_finding_if_memory_mappable Finding out if memory is mappable - -It may happen that your allocation ends up in memory that is `HOST_VISIBLE` (available for mapping) -despite it wasn't explicitly requested. -For example, application may work on integrated graphics with unified memory (like Intel) or -allocation from video memory might have failed, so the library chose system memory as fallback. - -You can detect this case and map such allocation to access its memory on CPU directly, -instead of launching a transfer operation. -In order to do that: inspect `allocInfo.memoryType`, call vmaGetMemoryTypeProperties(), -and look for `VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT` flag in properties of that memory type. - -\code -VkBufferCreateInfo bufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; -bufCreateInfo.size = sizeof(ConstantBuffer); -bufCreateInfo.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; - -VmaAllocationCreateInfo allocCreateInfo = {}; -allocCreateInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY; -allocCreateInfo.preferredFlags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; - -VkBuffer buf; -VmaAllocation alloc; -VmaAllocationInfo allocInfo; -vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, &allocInfo); - -VkMemoryPropertyFlags memFlags; -vmaGetMemoryTypeProperties(allocator, allocInfo.memoryType, &memFlags); -if((memFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) != 0) -{ - // Allocation ended up in mappable memory. You can map it and access it directly. - void* mappedData; - vmaMapMemory(allocator, alloc, &mappedData); - memcpy(mappedData, &constantBufferData, sizeof(constantBufferData)); - vmaUnmapMemory(allocator, alloc); -} -else -{ - // Allocation ended up in non-mappable memory. - // You need to create CPU-side buffer in VMA_MEMORY_USAGE_CPU_ONLY and make a transfer. -} -\endcode - -You can even use #VMA_ALLOCATION_CREATE_MAPPED_BIT flag while creating allocations -that are not necessarily `HOST_VISIBLE` (e.g. using #VMA_MEMORY_USAGE_GPU_ONLY). -If the allocation ends up in memory type that is `HOST_VISIBLE`, it will be persistently mapped and you can use it directly. -If not, the flag is just ignored. -Example: - -\code -VkBufferCreateInfo bufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; -bufCreateInfo.size = sizeof(ConstantBuffer); -bufCreateInfo.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; - -VmaAllocationCreateInfo allocCreateInfo = {}; -allocCreateInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY; -allocCreateInfo.flags = VMA_ALLOCATION_CREATE_MAPPED_BIT; - -VkBuffer buf; -VmaAllocation alloc; -VmaAllocationInfo allocInfo; -vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, &allocInfo); - -if(allocInfo.pMappedData != nullptr) -{ - // Allocation ended up in mappable memory. - // It is persistently mapped. You can access it directly. - memcpy(allocInfo.pMappedData, &constantBufferData, sizeof(constantBufferData)); -} -else -{ - // Allocation ended up in non-mappable memory. - // You need to create CPU-side buffer in VMA_MEMORY_USAGE_CPU_ONLY and make a transfer. -} -\endcode +`HOST_VISIBLE`, so on PC you may not need to bother. \page staying_within_budget Staying within budget @@ -18355,12 +18181,12 @@ operating system: \section staying_within_budget_querying_for_budget Querying for budget -To query for current memory usage and available budget, use function vmaGetBudget(). +To query for current memory usage and available budget, use function vmaGetHeapBudgets(). Returned structure #VmaBudget contains quantities expressed in bytes, per Vulkan memory heap. Please note that this function returns different information and works faster than -vmaCalculateStats(). vmaGetBudget() can be called every frame or even before every -allocation, while vmaCalculateStats() is intended to be used rarely, +vmaCalculateStatistics(). vmaGetHeapBudgets() can be called every frame or even before every +allocation, while vmaCalculateStatistics() is intended to be used rarely, only to obtain statistical information, e.g. for debugging purposes. It is recommended to use VK_EXT_memory_budget device extension to obtain information @@ -18390,22 +18216,27 @@ budget, by default the library still tries to create it, leaving it to the Vulka implementation whether the allocation succeeds or fails. You can change this behavior by using #VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT flag. With it, the allocation is not made if it would exceed the budget or if the budget is already exceeded. -Some other allocations become lost instead to make room for it, if the mechanism of -[lost allocations](@ref lost_allocations) is used. -If that is not possible, the allocation fails with `VK_ERROR_OUT_OF_DEVICE_MEMORY`. +VMA then tries to make the allocation from the next eligible Vulkan memory type. +The all of them fail, the call then fails with `VK_ERROR_OUT_OF_DEVICE_MEMORY`. Example usage pattern may be to pass the #VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT flag when creating resources that are not essential for the application (e.g. the texture of a specific object) and not to pass it when creating critically important resources (e.g. render targets). +On AMD graphics cards there is a custom vendor extension available: VK_AMD_memory_overallocation_behavior +that allows to control the behavior of the Vulkan implementation in out-of-memory cases - +whether it should fail with an error code or still allow the allocation. +Usage of this extension involves only passing extra structure on Vulkan device creation, +so it is out of scope of this library. + Finally, you can also use #VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT flag to make sure a new allocation is created only when it fits inside one of the existing memory blocks. If it would require to allocate a new block, if fails instead with `VK_ERROR_OUT_OF_DEVICE_MEMORY`. This also ensures that the function call is very fast because it never goes to Vulkan to obtain a new block. -Please note that creating \ref custom_memory_pools with VmaPoolCreateInfo::minBlockCount -set to more than 0 will try to allocate memory blocks without checking whether they +\note Creating \ref custom_memory_pools with VmaPoolCreateInfo::minBlockCount +set to more than 0 will currently try to allocate memory blocks without checking whether they fit within budget. @@ -18479,7 +18310,7 @@ finalMemReq.memoryTypeBits = img1MemReq.memoryTypeBits & img2MemReq.memoryTypeBi // Validate if(finalMemReq.memoryTypeBits != 0) VmaAllocationCreateInfo allocCreateInfo = {}; -allocCreateInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY; +allocCreateInfo.preferredFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; VmaAllocation alloc; res = vmaAllocateMemory(allocator, &finalMemReq, &allocCreateInfo, &alloc, nullptr); @@ -18494,6 +18325,12 @@ vkDestroyImage(allocator, img2, nullptr); vkDestroyImage(allocator, img1, nullptr); \endcode +VMA also provides convenience functions that create a buffer or image and bind it to memory +represented by an existing #VmaAllocation: +vmaCreateAliasingBuffer(), vmaCreateAliasingBuffer2(), +vmaCreateAliasingImage(), vmaCreateAliasingImage2(). +Versions with "2" offer additional parameter `allocationLocalOffset`. + Remember that using resources that alias in memory requires proper synchronization. You need to issue a memory barrier to make sure commands that use `img1` and `img2` don't overlap on GPU timeline. @@ -18508,7 +18345,7 @@ See chapter 11.8. "Memory Aliasing" of Vulkan specification or `VK_IMAGE_CREATE_ - You can create more complex layout where different images and buffers are bound at different offsets inside one large allocation. For example, one can imagine a big texture used in some render passes, aliasing with a set of many small buffers -used between in some further passes. To bind a resource at non-zero offset of an allocation, +used between in some further passes. To bind a resource at non-zero offset in an allocation, use vmaBindBufferMemory2() / vmaBindImageMemory2(). - Before allocating memory for the resources you want to alias, check `memoryTypeBits` returned in memory requirements of each resource to make sure the bits overlap. @@ -18533,6 +18370,7 @@ It can be useful if you want to: - Reserve minimum or fixed amount of Vulkan memory always preallocated for that pool. - Use extra parameters for a set of your allocations that are available in #VmaPoolCreateInfo but not in #VmaAllocationCreateInfo - e.g., custom minimum alignment, custom `pNext` chain. +- Perform defragmentation on a specific subset of your allocations. To use custom memory pools: @@ -18544,14 +18382,28 @@ To use custom memory pools: Example: \code +// Find memoryTypeIndex for the pool. +VkBufferCreateInfo sampleBufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; +sampleBufCreateInfo.size = 0x10000; // Doesn't matter. +sampleBufCreateInfo.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; + +VmaAllocationCreateInfo sampleAllocCreateInfo = {}; +sampleAllocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; + +uint32_t memTypeIndex; +VkResult res = vmaFindMemoryTypeIndexForBufferInfo(allocator, + &sampleBufCreateInfo, &sampleAllocCreateInfo, &memTypeIndex); +// Check res... + // Create a pool that can have at most 2 blocks, 128 MiB each. VmaPoolCreateInfo poolCreateInfo = {}; -poolCreateInfo.memoryTypeIndex = ... +poolCreateInfo.memoryTypeIndex = memTypeIndex; poolCreateInfo.blockSize = 128ull * 1024 * 1024; poolCreateInfo.maxBlockCount = 2; VmaPool pool; -vmaCreatePool(allocator, &poolCreateInfo, &pool); +res = vmaCreatePool(allocator, &poolCreateInfo, &pool); +// Check res... // Allocate a buffer out of it. VkBufferCreateInfo bufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; @@ -18563,8 +18415,8 @@ allocCreateInfo.pool = pool; VkBuffer buf; VmaAllocation alloc; -VmaAllocationInfo allocInfo; -vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, &allocInfo); +res = vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, nullptr); +// Check res... \endcode You have to free all allocations made from this pool before destroying it. @@ -18574,6 +18426,19 @@ vmaDestroyBuffer(allocator, buf, alloc); vmaDestroyPool(allocator, pool); \endcode +New versions of this library support creating dedicated allocations in custom pools. +It is supported only when VmaPoolCreateInfo::blockSize = 0. +To use this feature, set VmaAllocationCreateInfo::pool to the pointer to your custom pool and +VmaAllocationCreateInfo::flags to #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT. + +\note Excessive use of custom pools is a common mistake when using this library. +Custom pools may be useful for special purposes - when you want to +keep certain type of resources separate e.g. to reserve minimum amount of memory +for them or limit maximum amount of memory they can occupy. For most +resources this is not needed and so it is not recommended to create #VmaPool +objects and allocations out of them. Allocating from the default pool is sufficient. + + \section custom_memory_pools_MemTypeIndex Choosing memory type index When creating a pool, you must explicitly specify memory type index. @@ -18584,11 +18449,11 @@ that you are going to create in that pool. \code VkBufferCreateInfo exampleBufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; -exampleBufCreateInfo.size = 1024; // Whatever. -exampleBufCreateInfo.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; // Change if needed. +exampleBufCreateInfo.size = 1024; // Doesn't matter +exampleBufCreateInfo.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; VmaAllocationCreateInfo allocCreateInfo = {}; -allocCreateInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY; // Change if needed. +allocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; uint32_t memTypeIndex; vmaFindMemoryTypeIndexForBufferInfo(allocator, &exampleBufCreateInfo, &allocCreateInfo, &memTypeIndex); @@ -18628,6 +18493,7 @@ less memory consumed by metadata. With this one flag, you can create a custom pool that can be used in many ways: free-at-once, stack, double stack, and ring buffer. See below for details. +You don't need to specify explicitly which of these options you are going to use - it is detected automatically. \subsection linear_algorithm_free_at_once Free-at-once @@ -18663,7 +18529,7 @@ The space reserved by a custom pool with linear algorithm may be used by two - First, default one, growing up from offset 0. - Second, "upper" one, growing down from the end towards lower offsets. -To make allocation from upper stack, add flag #VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT +To make allocation from the upper stack, add flag #VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT to VmaAllocationCreateInfo::flags. ![Double stack](../gfx/Linear_allocator_7_double_stack.png) @@ -18685,52 +18551,11 @@ you can achieve behavior of a ring buffer / queue. ![Ring buffer](../gfx/Linear_allocator_5_ring_buffer.png) -Pools with linear algorithm support [lost allocations](@ref lost_allocations) when used as ring buffer. -If there is not enough free space for a new allocation, but existing allocations -from the front of the queue can become lost, they become lost and the allocation -succeeds. - -![Ring buffer with lost allocations](../gfx/Linear_allocator_6_ring_buffer_lost.png) - Ring buffer is available only in pools with one memory block - VmaPoolCreateInfo::maxBlockCount must be 1. Otherwise behavior is undefined. -\section buddy_algorithm Buddy allocation algorithm - -There is another allocation algorithm that can be used with custom pools, called -"buddy". Its internal data structure is based on a tree of blocks, each having -size that is a power of two and a half of its parent's size. When you want to -allocate memory of certain size, a free node in the tree is located. If it is too -large, it is recursively split into two halves (called "buddies"). However, if -requested allocation size is not a power of two, the size of a tree node is -aligned up to the nearest power of two and the remaining space is wasted. When -two buddy nodes become free, they are merged back into one larger node. - -![Buddy allocator](../gfx/Buddy_allocator.png) - -The advantage of buddy allocation algorithm over default algorithm is faster -allocation and deallocation, as well as smaller external fragmentation. The -disadvantage is more wasted space (internal fragmentation). - -For more information, please search the Internet for "Buddy memory allocation" - -sources that describe this concept in general. - -To use buddy allocation algorithm with a custom pool, add flag -#VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT to VmaPoolCreateInfo::flags while creating -#VmaPool object. +\note \ref defragmentation is not supported in custom pools created with #VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT. -Several limitations apply to pools that use buddy algorithm: - -- It is recommended to use VmaPoolCreateInfo::blockSize that is a power of two. - Otherwise, only largest power of two smaller than the size is used for - allocations. The remaining space always stays unused. -- [Margins](@ref debugging_memory_usage_margins) and - [corruption detection](@ref debugging_memory_usage_corruption_detection) - don't work in such pools. -- [Lost allocations](@ref lost_allocations) don't work in such pools. You can - use them, but they never become lost. Support may be added in the future. -- [Defragmentation](@ref defragmentation) doesn't work with allocations made from - such pool. \page defragmentation Defragmentation @@ -18740,354 +18565,185 @@ to find a continuous range of free memory for a new allocation despite there is enough free space, just scattered across many small free ranges between existing allocations. -To mitigate this problem, you can use defragmentation feature: -structure #VmaDefragmentationInfo2, function vmaDefragmentationBegin(), vmaDefragmentationEnd(). -Given set of allocations, -this function can move them to compact used memory, ensure more continuous free -space and possibly also free some `VkDeviceMemory` blocks. - -What the defragmentation does is: - -- Updates #VmaAllocation objects to point to new `VkDeviceMemory` and offset. - After allocation has been moved, its VmaAllocationInfo::deviceMemory and/or - VmaAllocationInfo::offset changes. You must query them again using - vmaGetAllocationInfo() if you need them. -- Moves actual data in memory. - -What it doesn't do, so you need to do it yourself: - -- Recreate buffers and images that were bound to allocations that were defragmented and - bind them with their new places in memory. - You must use `vkDestroyBuffer()`, `vkDestroyImage()`, - `vkCreateBuffer()`, `vkCreateImage()`, vmaBindBufferMemory(), vmaBindImageMemory() - for that purpose and NOT vmaDestroyBuffer(), - vmaDestroyImage(), vmaCreateBuffer(), vmaCreateImage(), because you don't need to - destroy or create allocation objects! -- Recreate views and update descriptors that point to these buffers and images. - -\section defragmentation_cpu Defragmenting CPU memory - -Following example demonstrates how you can run defragmentation on CPU. -Only allocations created in memory types that are `HOST_VISIBLE` can be defragmented. -Others are ignored. - -The way it works is: - -- It temporarily maps entire memory blocks when necessary. -- It moves data using `memmove()` function. - -\code -// Given following variables already initialized: -VkDevice device; -VmaAllocator allocator; -std::vector buffers; -std::vector allocations; - - -const uint32_t allocCount = (uint32_t)allocations.size(); -std::vector allocationsChanged(allocCount); - -VmaDefragmentationInfo2 defragInfo = {}; -defragInfo.allocationCount = allocCount; -defragInfo.pAllocations = allocations.data(); -defragInfo.pAllocationsChanged = allocationsChanged.data(); -defragInfo.maxCpuBytesToMove = VK_WHOLE_SIZE; // No limit. -defragInfo.maxCpuAllocationsToMove = UINT32_MAX; // No limit. - -VmaDefragmentationContext defragCtx; -vmaDefragmentationBegin(allocator, &defragInfo, nullptr, &defragCtx); -vmaDefragmentationEnd(allocator, defragCtx); - -for(uint32_t i = 0; i < allocCount; ++i) -{ - if(allocationsChanged[i]) - { - // Destroy buffer that is immutably bound to memory region which is no longer valid. - vkDestroyBuffer(device, buffers[i], nullptr); - - // Create new buffer with same parameters. - VkBufferCreateInfo bufferInfo = ...; - vkCreateBuffer(device, &bufferInfo, nullptr, &buffers[i]); - - // You can make dummy call to vkGetBufferMemoryRequirements here to silence validation layer warning. - - // Bind new buffer to new memory region. Data contained in it is already moved. - VmaAllocationInfo allocInfo; - vmaGetAllocationInfo(allocator, allocations[i], &allocInfo); - vmaBindBufferMemory(allocator, allocations[i], buffers[i]); - } -} -\endcode - -Setting VmaDefragmentationInfo2::pAllocationsChanged is optional. -This output array tells whether particular allocation in VmaDefragmentationInfo2::pAllocations at the same index -has been modified during defragmentation. -You can pass null, but you then need to query every allocation passed to defragmentation -for new parameters using vmaGetAllocationInfo() if you might need to recreate and rebind a buffer or image associated with it. - -If you use [Custom memory pools](@ref choosing_memory_type_custom_memory_pools), -you can fill VmaDefragmentationInfo2::poolCount and VmaDefragmentationInfo2::pPools -instead of VmaDefragmentationInfo2::allocationCount and VmaDefragmentationInfo2::pAllocations -to defragment all allocations in given pools. -You cannot use VmaDefragmentationInfo2::pAllocationsChanged in that case. -You can also combine both methods. - -\section defragmentation_gpu Defragmenting GPU memory - -It is also possible to defragment allocations created in memory types that are not `HOST_VISIBLE`. -To do that, you need to pass a command buffer that meets requirements as described in -VmaDefragmentationInfo2::commandBuffer. The way it works is: - -- It creates temporary buffers and binds them to entire memory blocks when necessary. -- It issues `vkCmdCopyBuffer()` to passed command buffer. +To mitigate this problem, you can use defragmentation feature. +It doesn't happen automatically though and needs your cooperation, +because VMA is a low level library that only allocates memory. +It cannot recreate buffers and images in a new place as it doesn't remember the contents of `VkBufferCreateInfo` / `VkImageCreateInfo` structures. +It cannot copy their contents as it doesn't record any commands to a command buffer. Example: \code -// Given following variables already initialized: -VkDevice device; -VmaAllocator allocator; -VkCommandBuffer commandBuffer; -std::vector buffers; -std::vector allocations; - - -const uint32_t allocCount = (uint32_t)allocations.size(); -std::vector allocationsChanged(allocCount); - -VkCommandBufferBeginInfo cmdBufBeginInfo = ...; -vkBeginCommandBuffer(commandBuffer, &cmdBufBeginInfo); - -VmaDefragmentationInfo2 defragInfo = {}; -defragInfo.allocationCount = allocCount; -defragInfo.pAllocations = allocations.data(); -defragInfo.pAllocationsChanged = allocationsChanged.data(); -defragInfo.maxGpuBytesToMove = VK_WHOLE_SIZE; // Notice it is "GPU" this time. -defragInfo.maxGpuAllocationsToMove = UINT32_MAX; // Notice it is "GPU" this time. -defragInfo.commandBuffer = commandBuffer; +VmaDefragmentationInfo defragInfo = {}; +defragInfo.pool = myPool; +defragInfo.flags = VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT; VmaDefragmentationContext defragCtx; -vmaDefragmentationBegin(allocator, &defragInfo, nullptr, &defragCtx); - -vkEndCommandBuffer(commandBuffer); - -// Submit commandBuffer. -// Wait for a fence that ensures commandBuffer execution finished. - -vmaDefragmentationEnd(allocator, defragCtx); +VkResult res = vmaBeginDefragmentation(allocator, &defragInfo, &defragCtx); +// Check res... -for(uint32_t i = 0; i < allocCount; ++i) +for(;;) { - if(allocationsChanged[i]) - { - // Destroy buffer that is immutably bound to memory region which is no longer valid. - vkDestroyBuffer(device, buffers[i], nullptr); - - // Create new buffer with same parameters. - VkBufferCreateInfo bufferInfo = ...; - vkCreateBuffer(device, &bufferInfo, nullptr, &buffers[i]); - - // You can make dummy call to vkGetBufferMemoryRequirements here to silence validation layer warning. + VmaDefragmentationPassMoveInfo pass; + res = vmaBeginDefragmentationPass(allocator, defragCtx, &pass); + if(res == VK_SUCCESS) + break; + else if(res != VK_INCOMPLETE) + // Handle error... - // Bind new buffer to new memory region. Data contained in it is already moved. + for(uint32_t i = 0; i < pass.moveCount; ++i) + { + // Inspect pass.pMoves[i].srcAllocation, identify what buffer/image it represents. VmaAllocationInfo allocInfo; - vmaGetAllocationInfo(allocator, allocations[i], &allocInfo); - vmaBindBufferMemory(allocator, allocations[i], buffers[i]); - } -} -\endcode + vmaGetAllocationInfo(allocator, pass.pMoves[i].srcAllocation, &allocInfo); + MyEngineResourceData* resData = (MyEngineResourceData*)allocInfo.pUserData; -You can combine these two methods by specifying non-zero `maxGpu*` as well as `maxCpu*` parameters. -The library automatically chooses best method to defragment each memory pool. - -You may try not to block your entire program to wait until defragmentation finishes, -but do it in the background, as long as you carefully fullfill requirements described -in function vmaDefragmentationBegin(). - -\section defragmentation_additional_notes Additional notes - -It is only legal to defragment allocations bound to: - -- buffers -- images created with `VK_IMAGE_CREATE_ALIAS_BIT`, `VK_IMAGE_TILING_LINEAR`, and - being currently in `VK_IMAGE_LAYOUT_GENERAL` or `VK_IMAGE_LAYOUT_PREINITIALIZED`. - -Defragmentation of images created with `VK_IMAGE_TILING_OPTIMAL` or in any other -layout may give undefined results. - -If you defragment allocations bound to images, new images to be bound to new -memory region after defragmentation should be created with `VK_IMAGE_LAYOUT_PREINITIALIZED` -and then transitioned to their original layout from before defragmentation if -needed using an image memory barrier. - -While using defragmentation, you may experience validation layer warnings, which you just need to ignore. -See [Validation layer warnings](@ref general_considerations_validation_layer_warnings). - -Please don't expect memory to be fully compacted after defragmentation. -Algorithms inside are based on some heuristics that try to maximize number of Vulkan -memory blocks to make totally empty to release them, as well as to maximize continuous -empty space inside remaining blocks, while minimizing the number and size of allocations that -need to be moved. Some fragmentation may still remain - this is normal. - -\section defragmentation_custom_algorithm Writing custom defragmentation algorithm - -If you want to implement your own, custom defragmentation algorithm, -there is infrastructure prepared for that, -but it is not exposed through the library API - you need to hack its source code. -Here are steps needed to do this: - --# Main thing you need to do is to define your own class derived from base abstract - class `VmaDefragmentationAlgorithm` and implement your version of its pure virtual methods. - See definition and comments of this class for details. --# Your code needs to interact with device memory block metadata. - If you need more access to its data than it is provided by its public interface, - declare your new class as a friend class e.g. in class `VmaBlockMetadata_Generic`. --# If you want to create a flag that would enable your algorithm or pass some additional - flags to configure it, add them to `VmaDefragmentationFlagBits` and use them in - VmaDefragmentationInfo2::flags. --# Modify function `VmaBlockVectorDefragmentationContext::Begin` to create object - of your new class whenever needed. - - -\page lost_allocations Lost allocations - -If your game oversubscribes video memory, if may work OK in previous-generation -graphics APIs (DirectX 9, 10, 11, OpenGL) because resources are automatically -paged to system RAM. In Vulkan you can't do it because when you run out of -memory, an allocation just fails. If you have more data (e.g. textures) that can -fit into VRAM and you don't need it all at once, you may want to upload them to -GPU on demand and "push out" ones that are not used for a long time to make room -for the new ones, effectively using VRAM (or a cartain memory pool) as a form of -cache. Vulkan Memory Allocator can help you with that by supporting a concept of -"lost allocations". - -To create an allocation that can become lost, include #VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT -flag in VmaAllocationCreateInfo::flags. Before using a buffer or image bound to -such allocation in every new frame, you need to query it if it is not lost. -To check it, call vmaTouchAllocation(). -If the allocation is lost, you should not use it or buffer/image bound to it. -You mustn't forget to destroy this allocation and this buffer/image. -vmaGetAllocationInfo() can also be used for checking status of the allocation. -Allocation is lost when returned VmaAllocationInfo::deviceMemory == `VK_NULL_HANDLE`. - -To create an allocation that can make some other allocations lost to make room -for it, use #VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT flag. You will -usually use both flags #VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT and -#VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT at the same time. - -Warning! Current implementation uses quite naive, brute force algorithm, -which can make allocation calls that use #VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT -flag quite slow. A new, more optimal algorithm and data structure to speed this -up is planned for the future. - -Q: When interleaving creation of new allocations with usage of existing ones, -how do you make sure that an allocation won't become lost while it is used in the -current frame? - -It is ensured because vmaTouchAllocation() / vmaGetAllocationInfo() not only returns allocation -status/parameters and checks whether it is not lost, but when it is not, it also -atomically marks it as used in the current frame, which makes it impossible to -become lost in that frame. It uses lockless algorithm, so it works fast and -doesn't involve locking any internal mutex. - -Q: What if my allocation may still be in use by the GPU when it is rendering a -previous frame while I already submit new frame on the CPU? - -You can make sure that allocations "touched" by vmaTouchAllocation() / vmaGetAllocationInfo() will not -become lost for a number of additional frames back from the current one by -specifying this number as VmaAllocatorCreateInfo::frameInUseCount (for default -memory pool) and VmaPoolCreateInfo::frameInUseCount (for custom pool). - -Q: How do you inform the library when new frame starts? - -You need to call function vmaSetCurrentFrameIndex(). - -Example code: + // Recreate and bind this buffer/image at: pass.pMoves[i].dstMemory, pass.pMoves[i].dstOffset. + VkImageCreateInfo imgCreateInfo = ... + VkImage newImg; + res = vkCreateImage(device, &imgCreateInfo, nullptr, &newImg); + // Check res... + res = vmaBindImageMemory(allocator, pass.pMoves[i].dstTmpAllocation, newImg); + // Check res... -\code -struct MyBuffer -{ - VkBuffer m_Buf = nullptr; - VmaAllocation m_Alloc = nullptr; + // Issue a vkCmdCopyBuffer/vkCmdCopyImage to copy its content to the new place. + vkCmdCopyImage(cmdBuf, resData->img, ..., newImg, ...); + } - // Called when the buffer is really needed in the current frame. - void EnsureBuffer(); -}; + // Make sure the copy commands finished executing. + vkWaitForFences(...); -void MyBuffer::EnsureBuffer() -{ - // Buffer has been created. - if(m_Buf != VK_NULL_HANDLE) + // Destroy old buffers/images bound with pass.pMoves[i].srcAllocation. + for(uint32_t i = 0; i < pass.moveCount; ++i) { - // Check if its allocation is not lost + mark it as used in current frame. - if(vmaTouchAllocation(allocator, m_Alloc)) - { - // It is all OK - safe to use m_Buf. - return; - } + // ... + vkDestroyImage(device, resData->img, nullptr); } - // Buffer not yet exists or lost - destroy and recreate it. - - vmaDestroyBuffer(allocator, m_Buf, m_Alloc); - - VkBufferCreateInfo bufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; - bufCreateInfo.size = 1024; - bufCreateInfo.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; - - VmaAllocationCreateInfo allocCreateInfo = {}; - allocCreateInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY; - allocCreateInfo.flags = VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT | - VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT; + // Update appropriate descriptors to point to the new places... - vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &m_Buf, &m_Alloc, nullptr); + res = vmaEndDefragmentationPass(allocator, defragCtx, &pass); + if(res == VK_SUCCESS) + break; + else if(res != VK_INCOMPLETE) + // Handle error... } -\endcode - -When using lost allocations, you may see some Vulkan validation layer warnings -about overlapping regions of memory bound to different kinds of buffers and -images. This is still valid as long as you implement proper handling of lost -allocations (like in the example above) and don't use them. -You can create an allocation that is already in lost state from the beginning using function -vmaCreateLostAllocation(). It may be useful if you need a "dummy" allocation that is not null. - -You can call function vmaMakePoolAllocationsLost() to set all eligible allocations -in a specified custom pool to lost state. -Allocations that have been "touched" in current frame or VmaPoolCreateInfo::frameInUseCount frames back -cannot become lost. - -Q: Can I touch allocation that cannot become lost? +vmaEndDefragmentation(allocator, defragCtx, nullptr); +\endcode -Yes, although it has no visible effect. -Calls to vmaGetAllocationInfo() and vmaTouchAllocation() update last use frame index -also for allocations that cannot become lost, but the only way to observe it is to dump -internal allocator state using vmaBuildStatsString(). -You can use this feature for debugging purposes to explicitly mark allocations that you use -in current frame and then analyze JSON dump to see for how long each allocation stays unused. +Although functions like vmaCreateBuffer(), vmaCreateImage(), vmaDestroyBuffer(), vmaDestroyImage() +create/destroy an allocation and a buffer/image at once, these are just a shortcut for +creating the resource, allocating memory, and binding them together. +Defragmentation works on memory allocations only. You must handle the rest manually. +Defragmentation is an iterative process that should repreat "passes" as long as related functions +return `VK_INCOMPLETE` not `VK_SUCCESS`. +In each pass: + +1. vmaBeginDefragmentationPass() function call: + - Calculates and returns the list of allocations to be moved in this pass. + Note this can be a time-consuming process. + - Reserves destination memory for them by creating temporary destination allocations + that you can query for their `VkDeviceMemory` + offset using vmaGetAllocationInfo(). +2. Inside the pass, **you should**: + - Inspect the returned list of allocations to be moved. + - Create new buffers/images and bind them at the returned destination temporary allocations. + - Copy data from source to destination resources if necessary. + - Destroy the source buffers/images, but NOT their allocations. +3. vmaEndDefragmentationPass() function call: + - Frees the source memory reserved for the allocations that are moved. + - Modifies source #VmaAllocation objects that are moved to point to the destination reserved memory. + - Frees `VkDeviceMemory` blocks that became empty. + +Unlike in previous iterations of the defragmentation API, there is no list of "movable" allocations passed as a parameter. +Defragmentation algorithm tries to move all suitable allocations. +You can, however, refuse to move some of them inside a defragmentation pass, by setting +`pass.pMoves[i].operation` to #VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE. +This is not recommended and may result in suboptimal packing of the allocations after defragmentation. +If you cannot ensure any allocation can be moved, it is better to keep movable allocations separate in a custom pool. + +Inside a pass, for each allocation that should be moved: + +- You should copy its data from the source to the destination place by calling e.g. `vkCmdCopyBuffer()`, `vkCmdCopyImage()`. + - You need to make sure these commands finished executing before destroying the source buffers/images and before calling vmaEndDefragmentationPass(). +- If a resource doesn't contain any meaningful data, e.g. it is a transient color attachment image to be cleared, + filled, and used temporarily in each rendering frame, you can just recreate this image + without copying its data. +- If the resource is in `HOST_VISIBLE` and `HOST_CACHED` memory, you can copy its data on the CPU + using `memcpy()`. +- If you cannot move the allocation, you can set `pass.pMoves[i].operation` to #VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE. + This will cancel the move. + - vmaEndDefragmentationPass() will then free the destination memory + not the source memory of the allocation, leaving it unchanged. +- If you decide the allocation is unimportant and can be destroyed instead of moved (e.g. it wasn't used for long time), + you can set `pass.pMoves[i].operation` to #VMA_DEFRAGMENTATION_MOVE_OPERATION_DESTROY. + - vmaEndDefragmentationPass() will then free both source and destination memory, and will destroy the source #VmaAllocation object. + +You can defragment a specific custom pool by setting VmaDefragmentationInfo::pool +(like in the example above) or all the default pools by setting this member to null. + +Defragmentation is always performed in each pool separately. +Allocations are never moved between different Vulkan memory types. +The size of the destination memory reserved for a moved allocation is the same as the original one. +Alignment of an allocation as it was determined using `vkGetBufferMemoryRequirements()` etc. is also respected after defragmentation. +Buffers/images should be recreated with the same `VkBufferCreateInfo` / `VkImageCreateInfo` parameters as the original ones. + +You can perform the defragmentation incrementally to limit the number of allocations and bytes to be moved +in each pass, e.g. to call it in sync with render frames and not to experience too big hitches. +See members: VmaDefragmentationInfo::maxBytesPerPass, VmaDefragmentationInfo::maxAllocationsPerPass. + +It is also safe to perform the defragmentation asynchronously to render frames and other Vulkan and VMA +usage, possibly from multiple threads, with the exception that allocations +returned in VmaDefragmentationPassMoveInfo::pMoves shouldn't be destroyed until the defragmentation pass is ended. + +Mapping is preserved on allocations that are moved during defragmentation. +Whether through #VMA_ALLOCATION_CREATE_MAPPED_BIT or vmaMapMemory(), the allocations +are mapped at their new place. Of course, pointer to the mapped data changes, so it needs to be queried +using VmaAllocationInfo::pMappedData. + +\note Defragmentation is not supported in custom pools created with #VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT. \page statistics Statistics -This library contains functions that return information about its internal state, +This library contains several functions that return information about its internal state, especially the amount of memory allocated from Vulkan. -Please keep in mind that these functions need to traverse all internal data structures -to gather these information, so they may be quite time-consuming. -Don't call them too often. \section statistics_numeric_statistics Numeric statistics -You can query for overall statistics of the allocator using function vmaCalculateStats(). -Information are returned using structure #VmaStats. -It contains #VmaStatInfo - number of allocated blocks, number of allocations -(occupied ranges in these blocks), number of unused (free) ranges in these blocks, -number of bytes used and unused (but still allocated from Vulkan) and other information. -They are summed across memory heaps, memory types and total for whole allocator. +If you need to obtain basic statistics about memory usage per heap, together with current budget, +you can call function vmaGetHeapBudgets() and inspect structure #VmaBudget. +This is useful to keep track of memory usage and stay within budget +(see also \ref staying_within_budget). +Example: + +\code +uint32_t heapIndex = ... + +VmaBudget budgets[VK_MAX_MEMORY_HEAPS]; +vmaGetHeapBudgets(allocator, budgets); + +printf("My heap currently has %u allocations taking %llu B,\n", + budgets[heapIndex].statistics.allocationCount, + budgets[heapIndex].statistics.allocationBytes); +printf("allocated out of %u Vulkan device memory blocks taking %llu B,\n", + budgets[heapIndex].statistics.blockCount, + budgets[heapIndex].statistics.blockBytes); +printf("Vulkan reports total usage %llu B with budget %llu B.\n", + budgets[heapIndex].usage, + budgets[heapIndex].budget); +\endcode + +You can query for more detailed statistics per memory heap, type, and totals, +including minimum and maximum allocation size and unused range size, +by calling function vmaCalculateStatistics() and inspecting structure #VmaTotalStatistics. +This function is slower though, as it has to traverse all the internal data structures, +so it should be used only for debugging purposes. -You can query for statistics of a custom pool using function vmaGetPoolStats(). -Information are returned using structure #VmaPoolStats. +You can query for statistics of a custom pool using function vmaGetPoolStatistics() +or vmaCalculatePoolStatistics(). -You can query for information about specific allocation using function vmaGetAllocationInfo(). +You can query for information about a specific allocation using function vmaGetAllocationInfo(). It fill structure #VmaAllocationInfo. \section statistics_json_dump JSON dump @@ -19104,7 +18760,7 @@ The format of this JSON string is not part of official documentation of the libr but it will not change in backward-incompatible way without increasing library major version number and appropriate mention in changelog. -The JSON string contains all the data that can be obtained using vmaCalculateStats(). +The JSON string contains all the data that can be obtained using vmaCalculateStatistics(). It can also contain detailed map of allocated memory blocks and their regions - free and occupied by allocations. This allows e.g. to visualize the memory or assess fragmentation. @@ -19119,20 +18775,21 @@ To do that, fill VmaAllocationCreateInfo::pUserData field when creating an allocation. It is an opaque `void*` pointer. You can use it e.g. as a pointer, some handle, index, key, ordinal number or any other value that would associate the allocation with your custom metadata. +It is useful to identify appropriate data structures in your engine given #VmaAllocation, +e.g. when doing \ref defragmentation. \code -VkBufferCreateInfo bufferInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; -// Fill bufferInfo... +VkBufferCreateInfo bufCreateInfo = ... MyBufferMetadata* pMetadata = CreateBufferMetadata(); VmaAllocationCreateInfo allocCreateInfo = {}; -allocCreateInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY; +allocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; allocCreateInfo.pUserData = pMetadata; VkBuffer buffer; VmaAllocation allocation; -vmaCreateBuffer(allocator, &bufferInfo, &allocCreateInfo, &buffer, &allocation, nullptr); +vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buffer, &allocation, nullptr); \endcode The pointer may be later retrieved as VmaAllocationInfo::pUserData: @@ -19146,50 +18803,190 @@ MyBufferMetadata* pMetadata = (MyBufferMetadata*)allocInfo.pUserData; It can also be changed using function vmaSetAllocationUserData(). Values of (non-zero) allocations' `pUserData` are printed in JSON report created by -vmaBuildStatsString(), in hexadecimal form. +vmaBuildStatsString() in hexadecimal form. \section allocation_names Allocation names -There is alternative mode available where `pUserData` pointer is used to point to -a null-terminated string, giving a name to the allocation. To use this mode, -set #VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT flag in VmaAllocationCreateInfo::flags. -Then `pUserData` passed as VmaAllocationCreateInfo::pUserData or argument to -vmaSetAllocationUserData() must be either null or pointer to a null-terminated string. +An allocation can also carry a null-terminated string, giving a name to the allocation. +To set it, call vmaSetAllocationName(). The library creates internal copy of the string, so the pointer you pass doesn't need to be valid for whole lifetime of the allocation. You can free it after the call. \code -VkImageCreateInfo imageInfo = { VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO }; -// Fill imageInfo... - std::string imageName = "Texture: "; imageName += fileName; +vmaSetAllocationName(allocator, allocation, imageName.c_str()); +\endcode -VmaAllocationCreateInfo allocCreateInfo = {}; -allocCreateInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY; -allocCreateInfo.flags = VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT; -allocCreateInfo.pUserData = imageName.c_str(); +The string can be later retrieved by inspecting VmaAllocationInfo::pName. +It is also printed in JSON report created by vmaBuildStatsString(). -VkImage image; -VmaAllocation allocation; -vmaCreateImage(allocator, &imageInfo, &allocCreateInfo, &image, &allocation, nullptr); +\note Setting string name to VMA allocation doesn't automatically set it to the Vulkan buffer or image created with it. +You must do it manually using an extension like VK_EXT_debug_utils, which is independent of this library. + + +\page virtual_allocator Virtual allocator + +As an extra feature, the core allocation algorithm of the library is exposed through a simple and convenient API of "virtual allocator". +It doesn't allocate any real GPU memory. It just keeps track of used and free regions of a "virtual block". +You can use it to allocate your own memory or other objects, even completely unrelated to Vulkan. +A common use case is sub-allocation of pieces of one large GPU buffer. + +\section virtual_allocator_creating_virtual_block Creating virtual block + +To use this functionality, there is no main "allocator" object. +You don't need to have #VmaAllocator object created. +All you need to do is to create a separate #VmaVirtualBlock object for each block of memory you want to be managed by the allocator: + +-# Fill in #VmaVirtualBlockCreateInfo structure. +-# Call vmaCreateVirtualBlock(). Get new #VmaVirtualBlock object. + +Example: + +\code +VmaVirtualBlockCreateInfo blockCreateInfo = {}; +blockCreateInfo.size = 1048576; // 1 MB + +VmaVirtualBlock block; +VkResult res = vmaCreateVirtualBlock(&blockCreateInfo, &block); \endcode -The value of `pUserData` pointer of the allocation will be different than the one -you passed when setting allocation's name - pointing to a buffer managed -internally that holds copy of the string. +\section virtual_allocator_making_virtual_allocations Making virtual allocations + +#VmaVirtualBlock object contains internal data structure that keeps track of free and occupied regions +using the same code as the main Vulkan memory allocator. +Similarly to #VmaAllocation for standard GPU allocations, there is #VmaVirtualAllocation type +that represents an opaque handle to an allocation within the virtual block. + +In order to make such allocation: + +-# Fill in #VmaVirtualAllocationCreateInfo structure. +-# Call vmaVirtualAllocate(). Get new #VmaVirtualAllocation object that represents the allocation. + You can also receive `VkDeviceSize offset` that was assigned to the allocation. + +Example: \code -VmaAllocationInfo allocInfo; -vmaGetAllocationInfo(allocator, allocation, &allocInfo); -const char* imageName = (const char*)allocInfo.pUserData; -printf("Image name: %s\n", imageName); +VmaVirtualAllocationCreateInfo allocCreateInfo = {}; +allocCreateInfo.size = 4096; // 4 KB + +VmaVirtualAllocation alloc; +VkDeviceSize offset; +res = vmaVirtualAllocate(block, &allocCreateInfo, &alloc, &offset); +if(res == VK_SUCCESS) +{ + // Use the 4 KB of your memory starting at offset. +} +else +{ + // Allocation failed - no space for it could be found. Handle this error! +} \endcode -That string is also printed in JSON report created by vmaBuildStatsString(). +\section virtual_allocator_deallocation Deallocation -\note Passing string name to VMA allocation doesn't automatically set it to the Vulkan buffer or image created with it. -You must do it manually using an extension like VK_EXT_debug_utils, which is independent of this library. +When no longer needed, an allocation can be freed by calling vmaVirtualFree(). +You can only pass to this function an allocation that was previously returned by vmaVirtualAllocate() +called for the same #VmaVirtualBlock. + +When whole block is no longer needed, the block object can be released by calling vmaDestroyVirtualBlock(). +All allocations must be freed before the block is destroyed, which is checked internally by an assert. +However, if you don't want to call vmaVirtualFree() for each allocation, you can use vmaClearVirtualBlock() to free them all at once - +a feature not available in normal Vulkan memory allocator. Example: + +\code +vmaVirtualFree(block, alloc); +vmaDestroyVirtualBlock(block); +\endcode + +\section virtual_allocator_allocation_parameters Allocation parameters + +You can attach a custom pointer to each allocation by using vmaSetVirtualAllocationUserData(). +Its default value is null. +It can be used to store any data that needs to be associated with that allocation - e.g. an index, a handle, or a pointer to some +larger data structure containing more information. Example: + +\code +struct CustomAllocData +{ + std::string m_AllocName; +}; +CustomAllocData* allocData = new CustomAllocData(); +allocData->m_AllocName = "My allocation 1"; +vmaSetVirtualAllocationUserData(block, alloc, allocData); +\endcode + +The pointer can later be fetched, along with allocation offset and size, by passing the allocation handle to function +vmaGetVirtualAllocationInfo() and inspecting returned structure #VmaVirtualAllocationInfo. +If you allocated a new object to be used as the custom pointer, don't forget to delete that object before freeing the allocation! +Example: + +\code +VmaVirtualAllocationInfo allocInfo; +vmaGetVirtualAllocationInfo(block, alloc, &allocInfo); +delete (CustomAllocData*)allocInfo.pUserData; + +vmaVirtualFree(block, alloc); +\endcode + +\section virtual_allocator_alignment_and_units Alignment and units + +It feels natural to express sizes and offsets in bytes. +If an offset of an allocation needs to be aligned to a multiply of some number (e.g. 4 bytes), you can fill optional member +VmaVirtualAllocationCreateInfo::alignment to request it. Example: + +\code +VmaVirtualAllocationCreateInfo allocCreateInfo = {}; +allocCreateInfo.size = 4096; // 4 KB +allocCreateInfo.alignment = 4; // Returned offset must be a multiply of 4 B + +VmaVirtualAllocation alloc; +res = vmaVirtualAllocate(block, &allocCreateInfo, &alloc, nullptr); +\endcode + +Alignments of different allocations made from one block may vary. +However, if all alignments and sizes are always multiply of some size e.g. 4 B or `sizeof(MyDataStruct)`, +you can express all sizes, alignments, and offsets in multiples of that size instead of individual bytes. +It might be more convenient, but you need to make sure to use this new unit consistently in all the places: + +- VmaVirtualBlockCreateInfo::size +- VmaVirtualAllocationCreateInfo::size and VmaVirtualAllocationCreateInfo::alignment +- Using offset returned by vmaVirtualAllocate() or in VmaVirtualAllocationInfo::offset + +\section virtual_allocator_statistics Statistics + +You can obtain statistics of a virtual block using vmaGetVirtualBlockStatistics() +(to get brief statistics that are fast to calculate) +or vmaCalculateVirtualBlockStatistics() (to get more detailed statistics, slower to calculate). +The functions fill structures #VmaStatistics, #VmaDetailedStatistics respectively - same as used by the normal Vulkan memory allocator. +Example: + +\code +VmaStatistics stats; +vmaGetVirtualBlockStatistics(block, &stats); +printf("My virtual block has %llu bytes used by %u virtual allocations\n", + stats.allocationBytes, stats.allocationCount); +\endcode + +You can also request a full list of allocations and free regions as a string in JSON format by calling +vmaBuildVirtualBlockStatsString(). +Returned string must be later freed using vmaFreeVirtualBlockStatsString(). +The format of this string differs from the one returned by the main Vulkan allocator, but it is similar. + +\section virtual_allocator_additional_considerations Additional considerations + +The "virtual allocator" functionality is implemented on a level of individual memory blocks. +Keeping track of a whole collection of blocks, allocating new ones when out of free space, +deleting empty ones, and deciding which one to try first for a new allocation must be implemented by the user. + +Alternative allocation algorithms are supported, just like in custom pools of the real GPU memory. +See enum #VmaVirtualBlockCreateFlagBits to learn how to specify them (e.g. #VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT). +You can find their description in chapter \ref custom_memory_pools. +Allocation strategies are also supported. +See enum #VmaVirtualAllocationCreateFlagBits to learn how to specify them (e.g. #VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT). + +Following features are supported only by the allocator of the real GPU memory and not by virtual allocations: +buffer-image granularity, `VMA_DEBUG_MARGIN`, `VMA_MIN_ALIGNMENT`. \page debugging_memory_usage Debugging incorrect memory usage @@ -19209,17 +19006,15 @@ To do it, define macro `VMA_DEBUG_INITIALIZE_ALLOCATIONS` to 1. #include "vk_mem_alloc.h" \endcode -It makes memory of all new allocations initialized to bit pattern `0xDCDCDCDC`. +It makes memory of new allocations initialized to bit pattern `0xDCDCDCDC`. Before an allocation is destroyed, its memory is filled with bit pattern `0xEFEFEFEF`. Memory is automatically mapped and unmapped if necessary. If you find these values while debugging your program, good chances are that you incorrectly read Vulkan memory that is allocated but not initialized, or already freed, respectively. -Memory initialization works only with memory types that are `HOST_VISIBLE`. +Memory initialization works only with memory types that are `HOST_VISIBLE` and with allocations that can be mapped. It works also with dedicated allocations. -It doesn't work with allocations created with #VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT flag, -as they cannot be mapped. \section debugging_memory_usage_margins Margins @@ -19229,7 +19024,7 @@ By default, allocations are laid out in memory blocks next to each other if poss ![Allocations without margin](../gfx/Margins_1.png) Define macro `VMA_DEBUG_MARGIN` to some non-zero value (e.g. 16) to enforce specified -number of bytes as a margin before and after every allocation. +number of bytes as a margin after every allocation. \code #define VMA_DEBUG_MARGIN 16 @@ -19243,9 +19038,6 @@ being overwritten outside of allocation boundaries. It is not 100% certain thoug Change in application behavior may also be caused by different order and distribution of allocations across memory blocks after margins are applied. -The margin is applied also before first and after last allocation in a block. -It may occur only once between two adjacent allocations. - Margins work with all types of memory. Margin is applied only to allocations made out of memory blocks and not to dedicated @@ -19253,12 +19045,13 @@ allocations, which have their own memory block of specific size. It is thus not applied to allocations made using #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT flag or those automatically decided to put into dedicated allocations, e.g. due to its large size or recommended by VK_KHR_dedicated_allocation extension. -Margins are also not active in custom pools created with #VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT flag. Margins appear in [JSON dump](@ref statistics_json_dump) as part of free space. Note that enabling margins increases memory usage and fragmentation. +Margins do not apply to \ref virtual_allocator. + \section debugging_memory_usage_corruption_detection Corruption detection You can additionally define macro `VMA_DEBUG_DETECT_CORRUPTION` to 1 to enable validation @@ -19271,7 +19064,7 @@ of contents of the margins. \endcode When this feature is enabled, number of bytes specified as `VMA_DEBUG_MARGIN` -(it must be multiply of 4) before and after every allocation is filled with a magic number. +(it must be multiply of 4) after every allocation is filled with a magic number. This idea is also know as "canary". Memory is automatically mapped and unmapped if necessary. @@ -19289,58 +19082,6 @@ Margin validation (corruption detection) works only for memory types that are `HOST_VISIBLE` and `HOST_COHERENT`. -\page record_and_replay Record and replay - -\section record_and_replay_introduction Introduction - -While using the library, sequence of calls to its functions together with their -parameters can be recorded to a file and later replayed using standalone player -application. It can be useful to: - -- Test correctness - check if same sequence of calls will not cause crash or - failures on a target platform. -- Gather statistics - see number of allocations, peak memory usage, number of - calls etc. -- Benchmark performance - see how much time it takes to replay the whole - sequence. - -\section record_and_replay_usage Usage - -Recording functionality is disabled by default. -To enable it, define following macro before every include of this library: - -\code -#define VMA_RECORDING_ENABLED 1 -\endcode - -To record sequence of calls to a file: Fill in -VmaAllocatorCreateInfo::pRecordSettings member while creating #VmaAllocator -object. File is opened and written during whole lifetime of the allocator. - -To replay file: Use VmaReplay - standalone command-line program. -Precompiled binary can be found in "bin" directory. -Its source can be found in "src/VmaReplay" directory. -Its project is generated by Premake. -Command line syntax is printed when the program is launched without parameters. -Basic usage: - - VmaReplay.exe MyRecording.csv - -Documentation of file format can be found in file: "docs/Recording file format.md". -It is a human-readable, text file in CSV format (Comma Separated Values). - -\section record_and_replay_additional_considerations Additional considerations - -- Replaying file that was recorded on a different GPU (with different parameters - like `bufferImageGranularity`, `nonCoherentAtomSize`, and especially different - set of memory heaps and types) may give different performance and memory usage - results, as well as issue some warnings and errors. -- Current implementation of recording in VMA, as well as VmaReplay application, is - coded and tested only on Windows. Inclusion of recording code is driven by - `VMA_RECORDING_ENABLED` macro. Support for other platforms should be easy to - add. Contributions are welcomed. - - \page opengl_interop OpenGL Interop VMA provides some features that help with interoperability with OpenGL. @@ -19361,8 +19102,7 @@ also dedicated allocations or other allocations made from default pools, an alternative solution is to fill in VmaAllocatorCreateInfo::pTypeExternalMemoryHandleTypes. It should point to an array with `VkExternalMemoryHandleTypeFlagsKHR` to be automatically passed by the library through `VkExportMemoryAllocateInfoKHR` on each allocation made from a specific memory type. -This is currently the only method to use if you need exported dedicated allocations, as they cannot be created out of custom pools. -This will change in future versions of the library though. +Please note that new versions of the library also support dedicated allocations created in custom pools. You should not mix these two methods in a way that allows to apply both to the same memory type. Otherwise, `VkExportMemoryAllocateInfoKHR` structure would be attached twice to the `pNext` chain of `VkMemoryAllocateInfo`. @@ -19382,44 +19122,30 @@ from a function like `vkGetBufferMemoryRequirements`, which is called by VMA aut If you want to create a buffer with a specific minimum alignment out of default pools, use special function vmaCreateBufferWithAlignment(), which takes additional parameter `minAlignment`. -This is currently the only method to use if you need exported dedicated allocations, as they cannot be created out of custom pools. -This will change in future versions of the library though. Note the problem of alignment affects only resources placed inside bigger `VkDeviceMemory` blocks and not dedicated allocations, as these, by definition, always have alignment = 0 because the resource is bound to the beginning of its dedicated block. Contrary to Direct3D 12, Vulkan doesn't have a concept of alignment of the entire memory block passed on its allocation. +\section opengl_interop_extended_allocation_information Extended allocation information -\page usage_patterns Recommended usage patterns - -See also slides from talk: -[Sawicki, Adam. Advanced Graphics Techniques Tutorial: Memory management in Vulkan and DX12. Game Developers Conference, 2018](https://www.gdcvault.com/play/1025458/Advanced-Graphics-Techniques-Tutorial-New) - +If you want to rely on VMA to allocate your buffers and images inside larger memory blocks, +but you need to know the size of the entire block and whether the allocation was made +with its own dedicated memory, use function vmaGetAllocationInfo2() to retrieve +extended allocation information in structure #VmaAllocationInfo2. -\section usage_patterns_common_mistakes Common mistakes -Use of CPU_TO_GPU instead of CPU_ONLY memory -#VMA_MEMORY_USAGE_CPU_TO_GPU is recommended only for resources that will be -mapped and written by the CPU, as well as read directly by the GPU - like some -buffers or textures updated every frame (dynamic). If you create a staging copy -of a resource to be written by CPU and then used as a source of transfer to -another resource placed in the GPU memory, that staging resource should be -created with #VMA_MEMORY_USAGE_CPU_ONLY. Please read the descriptions of these -enums carefully for details. +\page usage_patterns Recommended usage patterns -Unnecessary use of custom pools +Vulkan gives great flexibility in memory allocation. +This chapter shows the most common patterns. -\ref custom_memory_pools may be useful for special purposes - when you want to -keep certain type of resources separate e.g. to reserve minimum amount of memory -for them, limit maximum amount of memory they can occupy, or make some of them -push out the other through the mechanism of \ref lost_allocations. For most -resources this is not needed and so it is not recommended to create #VmaPool -objects and allocations out of them. Allocating from the default pool is sufficient. +See also slides from talk: +[Sawicki, Adam. Advanced Graphics Techniques Tutorial: Memory management in Vulkan and DX12. Game Developers Conference, 2018](https://www.gdcvault.com/play/1025458/Advanced-Graphics-Techniques-Tutorial-New) -\section usage_patterns_simple Simple patterns -\subsection usage_patterns_simple_render_targets Render targets +\section usage_patterns_gpu_only GPU-only resource When: Any resources that you frequently write and read on GPU, @@ -19427,123 +19153,220 @@ e.g. images used as color attachments (aka "render targets"), depth-stencil atta images/buffers used as storage image/buffer (aka "Unordered Access View (UAV)"). What to do: -Create them in video memory that is fastest to access from GPU using -#VMA_MEMORY_USAGE_GPU_ONLY. +Let the library select the optimal memory type, which will likely have `VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT`. -Consider using [VK_KHR_dedicated_allocation](@ref vk_khr_dedicated_allocation) extension -and/or manually creating them as dedicated allocations using #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT, -especially if they are large or if you plan to destroy and recreate them e.g. when -display resolution changes. +\code +VkImageCreateInfo imgCreateInfo = { VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO }; +imgCreateInfo.imageType = VK_IMAGE_TYPE_2D; +imgCreateInfo.extent.width = 3840; +imgCreateInfo.extent.height = 2160; +imgCreateInfo.extent.depth = 1; +imgCreateInfo.mipLevels = 1; +imgCreateInfo.arrayLayers = 1; +imgCreateInfo.format = VK_FORMAT_R8G8B8A8_UNORM; +imgCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL; +imgCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; +imgCreateInfo.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; +imgCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT; + +VmaAllocationCreateInfo allocCreateInfo = {}; +allocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; +allocCreateInfo.flags = VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT; +allocCreateInfo.priority = 1.0f; + +VkImage img; +VmaAllocation alloc; +vmaCreateImage(allocator, &imgCreateInfo, &allocCreateInfo, &img, &alloc, nullptr); +\endcode + +Also consider: +Consider creating them as dedicated allocations using #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT, +especially if they are large or if you plan to destroy and recreate them with different sizes +e.g. when display resolution changes. Prefer to create such resources first and all other GPU resources (like textures and vertex buffers) later. +When VK_EXT_memory_priority extension is enabled, it is also worth setting high priority to such allocation +to decrease chances to be evicted to system memory by the operating system. -\subsection usage_patterns_simple_immutable_resources Immutable resources +\section usage_patterns_staging_copy_upload Staging copy for upload When: -Any resources that you fill on CPU only once (aka "immutable") or infrequently -and then read frequently on GPU, -e.g. textures, vertex and index buffers, constant buffers that don't change often. +A "staging" buffer than you want to map and fill from CPU code, then use as a source of transfer +to some GPU resource. What to do: -Create them in video memory that is fastest to access from GPU using -#VMA_MEMORY_USAGE_GPU_ONLY. +Use flag #VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT. +Let the library select the optimal memory type, which will always have `VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT`. -To initialize content of such resource, create a CPU-side (aka "staging") copy of it -in system memory - #VMA_MEMORY_USAGE_CPU_ONLY, map it, fill it, -and submit a transfer from it to the GPU resource. -You can keep the staging copy if you need it for another upload transfer in the future. -If you don't, you can destroy it or reuse this buffer for uploading different resource -after the transfer finishes. +\code +VkBufferCreateInfo bufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; +bufCreateInfo.size = 65536; +bufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; -Prefer to create just buffers in system memory rather than images, even for uploading textures. -Use `vkCmdCopyBufferToImage()`. -Dont use images with `VK_IMAGE_TILING_LINEAR`. +VmaAllocationCreateInfo allocCreateInfo = {}; +allocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; +allocCreateInfo.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | + VMA_ALLOCATION_CREATE_MAPPED_BIT; -\subsection usage_patterns_dynamic_resources Dynamic resources +VkBuffer buf; +VmaAllocation alloc; +VmaAllocationInfo allocInfo; +vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, &allocInfo); -When: -Any resources that change frequently (aka "dynamic"), e.g. every frame or every draw call, -written on CPU, read on GPU. +... -What to do: -Create them using #VMA_MEMORY_USAGE_CPU_TO_GPU. -You can map it and write to it directly on CPU, as well as read from it on GPU. +memcpy(allocInfo.pMappedData, myData, myDataSize); +\endcode -This is a more complex situation. Different solutions are possible, -and the best one depends on specific GPU type, but you can use this simple approach for the start. -Prefer to write to such resource sequentially (e.g. using `memcpy`). -Don't perform random access or any reads from it on CPU, as it may be very slow. -Also note that textures written directly from the host through a mapped pointer need to be in LINEAR not OPTIMAL layout. +Also consider: +You can map the allocation using vmaMapMemory() or you can create it as persistenly mapped +using #VMA_ALLOCATION_CREATE_MAPPED_BIT, as in the example above. -\subsection usage_patterns_readback Readback + +\section usage_patterns_readback Readback When: -Resources that contain data written by GPU that you want to read back on CPU, +Buffers for data written by or transferred from the GPU that you want to read back on the CPU, e.g. results of some computations. What to do: -Create them using #VMA_MEMORY_USAGE_GPU_TO_CPU. -You can write to them directly on GPU, as well as map and read them on CPU. +Use flag #VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT. +Let the library select the optimal memory type, which will always have `VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT` +and `VK_MEMORY_PROPERTY_HOST_CACHED_BIT`. -\section usage_patterns_advanced Advanced patterns +\code +VkBufferCreateInfo bufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; +bufCreateInfo.size = 65536; +bufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_DST_BIT; -\subsection usage_patterns_integrated_graphics Detecting integrated graphics +VmaAllocationCreateInfo allocCreateInfo = {}; +allocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; +allocCreateInfo.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT | + VMA_ALLOCATION_CREATE_MAPPED_BIT; -You can support integrated graphics (like Intel HD Graphics, AMD APU) better -by detecting it in Vulkan. -To do it, call `vkGetPhysicalDeviceProperties()`, inspect -`VkPhysicalDeviceProperties::deviceType` and look for `VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU`. -When you find it, you can assume that memory is unified and all memory types are comparably fast -to access from GPU, regardless of `VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT`. +VkBuffer buf; +VmaAllocation alloc; +VmaAllocationInfo allocInfo; +vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, &allocInfo); -You can then sum up sizes of all available memory heaps and treat them as useful for -your GPU resources, instead of only `DEVICE_LOCAL` ones. -You can also prefer to create your resources in memory types that are `HOST_VISIBLE` to map them -directly instead of submitting explicit transfer (see below). +... -\subsection usage_patterns_direct_vs_transfer Direct access versus transfer +const float* downloadedData = (const float*)allocInfo.pMappedData; +\endcode -For resources that you frequently write on CPU and read on GPU, many solutions are possible: --# Create one copy in video memory using #VMA_MEMORY_USAGE_GPU_ONLY, - second copy in system memory using #VMA_MEMORY_USAGE_CPU_ONLY and submit explicit transfer each time. --# Create just a single copy using #VMA_MEMORY_USAGE_CPU_TO_GPU, map it and fill it on CPU, - read it directly on GPU. --# Create just a single copy using #VMA_MEMORY_USAGE_CPU_ONLY, map it and fill it on CPU, - read it directly on GPU. +\section usage_patterns_advanced_data_uploading Advanced data uploading + +For resources that you frequently write on CPU via mapped pointer and +frequently read on GPU e.g. as a uniform buffer (also called "dynamic"), multiple options are possible: + +-# Easiest solution is to have one copy of the resource in `HOST_VISIBLE` memory, + even if it means system RAM (not `DEVICE_LOCAL`) on systems with a discrete graphics card, + and make the device reach out to that resource directly. + - Reads performed by the device will then go through PCI Express bus. + The performance of this access may be limited, but it may be fine depending on the size + of this resource (whether it is small enough to quickly end up in GPU cache) and the sparsity + of access. +-# On systems with unified memory (e.g. AMD APU or Intel integrated graphics, mobile chips), + a memory type may be available that is both `HOST_VISIBLE` (available for mapping) and `DEVICE_LOCAL` + (fast to access from the GPU). Then, it is likely the best choice for such type of resource. +-# Systems with a discrete graphics card and separate video memory may or may not expose + a memory type that is both `HOST_VISIBLE` and `DEVICE_LOCAL`, also known as Base Address Register (BAR). + If they do, it represents a piece of VRAM (or entire VRAM, if ReBAR is enabled in the motherboard BIOS) + that is available to CPU for mapping. + - Writes performed by the host to that memory go through PCI Express bus. + The performance of these writes may be limited, but it may be fine, especially on PCIe 4.0, + as long as rules of using uncached and write-combined memory are followed - only sequential writes and no reads. +-# Finally, you may need or prefer to create a separate copy of the resource in `DEVICE_LOCAL` memory, + a separate "staging" copy in `HOST_VISIBLE` memory and perform an explicit transfer command between them. + +Thankfully, VMA offers an aid to create and use such resources in the the way optimal +for the current Vulkan device. To help the library make the best choice, +use flag #VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT together with +#VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT. +It will then prefer a memory type that is both `DEVICE_LOCAL` and `HOST_VISIBLE` (integrated memory or BAR), +but if no such memory type is available or allocation from it fails +(PC graphics cards have only 256 MB of BAR by default, unless ReBAR is supported and enabled in BIOS), +it will fall back to `DEVICE_LOCAL` memory for fast GPU access. +It is then up to you to detect that the allocation ended up in a memory type that is not `HOST_VISIBLE`, +so you need to create another "staging" allocation and perform explicit transfers. -Which solution is the most efficient depends on your resource and especially on the GPU. -It is best to measure it and then make the decision. -Some general recommendations: +\code +VkBufferCreateInfo bufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; +bufCreateInfo.size = 65536; +bufCreateInfo.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; -- On integrated graphics use (2) or (3) to avoid unnecessary time and memory overhead - related to using a second copy and making transfer. -- For small resources (e.g. constant buffers) use (2). - Discrete AMD cards have special 256 MiB pool of video memory that is directly mappable. - Even if the resource ends up in system memory, its data may be cached on GPU after first - fetch over PCIe bus. -- For larger resources (e.g. textures), decide between (1) and (2). - You may want to differentiate NVIDIA and AMD, e.g. by looking for memory type that is - both `DEVICE_LOCAL` and `HOST_VISIBLE`. When you find it, use (2), otherwise use (1). +VmaAllocationCreateInfo allocCreateInfo = {}; +allocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; +allocCreateInfo.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | + VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT | + VMA_ALLOCATION_CREATE_MAPPED_BIT; -Similarly, for resources that you frequently write on GPU and read on CPU, multiple -solutions are possible: +VkBuffer buf; +VmaAllocation alloc; +VmaAllocationInfo allocInfo; +vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, &allocInfo); --# Create one copy in video memory using #VMA_MEMORY_USAGE_GPU_ONLY, - second copy in system memory using #VMA_MEMORY_USAGE_GPU_TO_CPU and submit explicit tranfer each time. --# Create just single copy using #VMA_MEMORY_USAGE_GPU_TO_CPU, write to it directly on GPU, - map it and read it on CPU. +VkMemoryPropertyFlags memPropFlags; +vmaGetAllocationMemoryProperties(allocator, alloc, &memPropFlags); -You should take some measurements to decide which option is faster in case of your specific -resource. +if(memPropFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) +{ + // Allocation ended up in a mappable memory and is already mapped - write to it directly. -Note that textures accessed directly from the host through a mapped pointer need to be in LINEAR layout, -which may slow down their usage on the device. -Textures accessed only by the device and transfer operations can use OPTIMAL layout. + // [Executed in runtime]: + memcpy(allocInfo.pMappedData, myData, myDataSize); +} +else +{ + // Allocation ended up in a non-mappable memory - need to transfer. + VkBufferCreateInfo stagingBufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; + stagingBufCreateInfo.size = 65536; + stagingBufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; + + VmaAllocationCreateInfo stagingAllocCreateInfo = {}; + stagingAllocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; + stagingAllocCreateInfo.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | + VMA_ALLOCATION_CREATE_MAPPED_BIT; + + VkBuffer stagingBuf; + VmaAllocation stagingAlloc; + VmaAllocationInfo stagingAllocInfo; + vmaCreateBuffer(allocator, &stagingBufCreateInfo, &stagingAllocCreateInfo, + &stagingBuf, &stagingAlloc, stagingAllocInfo); + + // [Executed in runtime]: + memcpy(stagingAllocInfo.pMappedData, myData, myDataSize); + vmaFlushAllocation(allocator, stagingAlloc, 0, VK_WHOLE_SIZE); + //vkCmdPipelineBarrier: VK_ACCESS_HOST_WRITE_BIT --> VK_ACCESS_TRANSFER_READ_BIT + VkBufferCopy bufCopy = { + 0, // srcOffset + 0, // dstOffset, + myDataSize); // size + vkCmdCopyBuffer(cmdBuf, stagingBuf, buf, 1, &bufCopy); +} +\endcode -If you don't want to specialize your code for specific types of GPUs, you can still make -an simple optimization for cases when your resource ends up in mappable memory to use it -directly in this case instead of creating CPU-side staging copy. -For details see [Finding out if memory is mappable](@ref memory_mapping_finding_if_memory_mappable). +\section usage_patterns_other_use_cases Other use cases + +Here are some other, less obvious use cases and their recommended settings: + +- An image that is used only as transfer source and destination, but it should stay on the device, + as it is used to temporarily store a copy of some texture, e.g. from the current to the next frame, + for temporal antialiasing or other temporal effects. + - Use `VkImageCreateInfo::usage = VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT` + - Use VmaAllocationCreateInfo::usage = #VMA_MEMORY_USAGE_AUTO +- An image that is used only as transfer source and destination, but it should be placed + in the system RAM despite it doesn't need to be mapped, because it serves as a "swap" copy to evict + least recently used textures from VRAM. + - Use `VkImageCreateInfo::usage = VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT` + - Use VmaAllocationCreateInfo::usage = #VMA_MEMORY_USAGE_AUTO_PREFER_HOST, + as VMA needs a hint here to differentiate from the previous case. +- A buffer that you want to map and write from the CPU, directly read from the GPU + (e.g. as a uniform or vertex buffer), but you have a clear preference to place it in device or + host memory due to its large size. + - Use `VkBufferCreateInfo::usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT` + - Use VmaAllocationCreateInfo::usage = #VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE or #VMA_MEMORY_USAGE_AUTO_PREFER_HOST + - Use VmaAllocationCreateInfo::flags = #VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT \page configuration Configuration @@ -19582,6 +19405,8 @@ by using a helper library like [volk](https://github.com/zeux/volk). Third, VMA tries to fetch remaining pointers that are still null by calling `vkGetInstanceProcAddr` and `vkGetDeviceProcAddr` on its own. +You need to only fill in VmaVulkanFunctions::vkGetInstanceProcAddr and VmaVulkanFunctions::vkGetDeviceProcAddr. +Other pointers will be fetched automatically. If you want to disable this feature, set configuration macro: `#define VMA_DYNAMIC_VULKAN_FUNCTIONS 0`. Finally, all the function pointers required by the library (considering selected @@ -19606,7 +19431,7 @@ VmaAllocatorCreateInfo::pDeviceMemoryCallbacks. \section heap_memory_limit Device heap memory limit When device memory of certain heap runs out of free space, new allocations may -fail (returning error code) or they may succeed, silently pushing some existing +fail (returning error code) or they may succeed, silently pushing some existing_ memory blocks from GPU VRAM to system RAM (which degrades performance). This behavior is implementation-dependent - it depends on GPU vendor and graphics driver. @@ -19627,10 +19452,14 @@ VK_KHR_dedicated_allocation is a Vulkan extension which can be used to improve performance on some GPUs. It augments Vulkan API with possibility to query driver whether it prefers particular buffer or image to have its own, dedicated allocation (separate `VkDeviceMemory` block) for better efficiency - to be able -to do some internal optimizations. +to do some internal optimizations. The extension is supported by this library. +It will be used automatically when enabled. + +It has been promoted to core Vulkan 1.1, so if you use eligible Vulkan version +and inform VMA about it by setting VmaAllocatorCreateInfo::vulkanApiVersion, +you are all set. -The extension is supported by this library. It will be used automatically when -enabled. To enable it: +Otherwise, if you want to use it as an extension: 1 . When creating Vulkan device, check if following 2 device extensions are supported (call `vkEnumerateDeviceExtensionProperties()`). @@ -19642,7 +19471,7 @@ If yes, enable them (fill `VkDeviceCreateInfo::ppEnabledExtensionNames`). If you enabled these extensions: 2 . Use #VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT flag when creating -your #VmaAllocator`to inform the library that you enabled required extensions +your #VmaAllocator to inform the library that you enabled required extensions and you want the library to use them. \code @@ -19657,7 +19486,7 @@ buffer using vmaCreateBuffer() or image using vmaCreateImage(). When using the extension together with Vulkan Validation Layer, you will receive warnings like this: - vkBindBufferMemory(): Binding memory to buffer 0x33 but vkGetBufferMemoryRequirements() has not been called on that buffer. +_vkBindBufferMemory(): Binding memory to buffer 0x33 but vkGetBufferMemoryRequirements() has not been called on that buffer._ It is OK, you should just ignore it. It happens because you use function `vkGetBufferMemoryRequirements2KHR()` instead of standard @@ -19671,6 +19500,86 @@ To learn more about this extension, see: +\page vk_ext_memory_priority VK_EXT_memory_priority + +VK_EXT_memory_priority is a device extension that allows to pass additional "priority" +value to Vulkan memory allocations that the implementation may use prefer certain +buffers and images that are critical for performance to stay in device-local memory +in cases when the memory is over-subscribed, while some others may be moved to the system memory. + +VMA offers convenient usage of this extension. +If you enable it, you can pass "priority" parameter when creating allocations or custom pools +and the library automatically passes the value to Vulkan using this extension. + +If you want to use this extension in connection with VMA, follow these steps: + +\section vk_ext_memory_priority_initialization Initialization + +1) Call `vkEnumerateDeviceExtensionProperties` for the physical device. +Check if the extension is supported - if returned array of `VkExtensionProperties` contains "VK_EXT_memory_priority". + +2) Call `vkGetPhysicalDeviceFeatures2` for the physical device instead of old `vkGetPhysicalDeviceFeatures`. +Attach additional structure `VkPhysicalDeviceMemoryPriorityFeaturesEXT` to `VkPhysicalDeviceFeatures2::pNext` to be returned. +Check if the device feature is really supported - check if `VkPhysicalDeviceMemoryPriorityFeaturesEXT::memoryPriority` is true. + +3) While creating device with `vkCreateDevice`, enable this extension - add "VK_EXT_memory_priority" +to the list passed as `VkDeviceCreateInfo::ppEnabledExtensionNames`. + +4) While creating the device, also don't set `VkDeviceCreateInfo::pEnabledFeatures`. +Fill in `VkPhysicalDeviceFeatures2` structure instead and pass it as `VkDeviceCreateInfo::pNext`. +Enable this device feature - attach additional structure `VkPhysicalDeviceMemoryPriorityFeaturesEXT` to +`VkPhysicalDeviceFeatures2::pNext` chain and set its member `memoryPriority` to `VK_TRUE`. + +5) While creating #VmaAllocator with vmaCreateAllocator() inform VMA that you +have enabled this extension and feature - add #VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT +to VmaAllocatorCreateInfo::flags. + +\section vk_ext_memory_priority_usage Usage + +When using this extension, you should initialize following member: + +- VmaAllocationCreateInfo::priority when creating a dedicated allocation with #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT. +- VmaPoolCreateInfo::priority when creating a custom pool. + +It should be a floating-point value between `0.0f` and `1.0f`, where recommended default is `0.5f`. +Memory allocated with higher value can be treated by the Vulkan implementation as higher priority +and so it can have lower chances of being pushed out to system memory, experiencing degraded performance. + +It might be a good idea to create performance-critical resources like color-attachment or depth-stencil images +as dedicated and set high priority to them. For example: + +\code +VkImageCreateInfo imgCreateInfo = { VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO }; +imgCreateInfo.imageType = VK_IMAGE_TYPE_2D; +imgCreateInfo.extent.width = 3840; +imgCreateInfo.extent.height = 2160; +imgCreateInfo.extent.depth = 1; +imgCreateInfo.mipLevels = 1; +imgCreateInfo.arrayLayers = 1; +imgCreateInfo.format = VK_FORMAT_R8G8B8A8_UNORM; +imgCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL; +imgCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; +imgCreateInfo.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; +imgCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT; + +VmaAllocationCreateInfo allocCreateInfo = {}; +allocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; +allocCreateInfo.flags = VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT; +allocCreateInfo.priority = 1.0f; + +VkImage img; +VmaAllocation alloc; +vmaCreateImage(allocator, &imgCreateInfo, &allocCreateInfo, &img, &alloc, nullptr); +\endcode + +`priority` member is ignored in the following situations: + +- Allocations created in custom pools: They inherit the priority, along with all other allocation parameters + from the parametrs passed in #VmaPoolCreateInfo when the pool was created. +- Allocations created in default pools: They inherit the priority from the parameters + VMA used when creating default pools, which means `priority == 0.5f`. + + \page vk_amd_device_coherent_memory VK_AMD_device_coherent_memory VK_AMD_device_coherent_memory is a device extension that enables access to @@ -19714,7 +19623,7 @@ out of the special `DEVICE_COHERENT` and `DEVICE_UNCACHED` memory types on eligi devices. There are multiple ways to do it, for example: - You can request or prefer to allocate out of such memory types by adding - `VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD` to VmaAllocationCreateInfo::requiredFlags + `VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD` to VmaAllocationCreateInfo::requiredFlags or VmaAllocationCreateInfo::preferredFlags. Those flags can be freely mixed with other ways of \ref choosing_memory_type, like setting VmaAllocationCreateInfo::usage. - If you manually found memory type index to use for this purpose, force allocation @@ -19732,7 +19641,7 @@ accompanying this library. Device extension VK_KHR_buffer_device_address allow to fetch raw GPU pointer to a buffer and pass it for usage in a shader code. -It is promoted to core Vulkan 1.2. +It has been promoted to core Vulkan 1.2. If you want to use this feature in connection with VMA, follow these steps: @@ -19785,6 +19694,7 @@ accompanying this library. - By default, all calls to functions that take #VmaAllocator as first parameter are safe to call from multiple threads simultaneously because they are synchronized internally when needed. + This includes allocation and deallocation from default memory pool, as well as custom #VmaPool. - When the allocator is created with #VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT flag, calls to functions that take such #VmaAllocator object must be synchronized externally. @@ -19792,6 +19702,29 @@ accompanying this library. you must not call vmaGetAllocationInfo() and vmaMapMemory() from different threads at the same time if you pass the same #VmaAllocation object to these functions. +- #VmaVirtualBlock is not safe to be used from multiple threads simultaneously. + +\section general_considerations_versioning_and_compatibility Versioning and compatibility + +The library uses [**Semantic Versioning**](https://semver.org/), +which means version numbers follow convention: Major.Minor.Patch (e.g. 2.3.0), where: + +- Incremented Patch version means a release is backward- and forward-compatible, + introducing only some internal improvements, bug fixes, optimizations etc. + or changes that are out of scope of the official API described in this documentation. +- Incremented Minor version means a release is backward-compatible, + so existing code that uses the library should continue to work, while some new + symbols could have been added: new structures, functions, new values in existing + enums and bit flags, new structure members, but not new function parameters. +- Incrementing Major version means a release could break some backward compatibility. + +All changes between official releases are documented in file "CHANGELOG.md". + +\warning Backward compatibility is considered on the level of C++ source code, not binary linkage. +Adding new members to existing structures is treated as backward compatible if initializing +the new members to binary zero results in the old behavior. +You should always fully initialize all library structures to zeros and not rely on their +exact binary size. \section general_considerations_validation_layer_warnings Validation layer warnings @@ -19807,9 +19740,7 @@ to just ignore them. `VkDeviceMemory` block, where different types of images and buffers may end up together, especially on GPUs with unified memory like Intel. - *Non-linear image 0xebc91 is aliased with linear buffer 0xeb8e4 which may indicate a bug.* - - It happens when you use lost allocations, and a new image or buffer is - created in place of an existing object that became lost. - - It may happen also when you use [defragmentation](@ref defragmentation). + - It may happen when you use [defragmentation](@ref defragmentation). \section general_considerations_allocation_algorithm Allocation algorithm @@ -19817,10 +19748,7 @@ The library uses following algorithm for allocation, in order: -# Try to find free range of memory in existing blocks. -# If failed, try to create a new block of `VkDeviceMemory`, with preferred block size. --# If failed, try to create such block with size/2, size/4, size/8. --# If failed and #VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT flag was - specified, try to find space in existing blocks, possilby making some other - allocations lost. +-# If failed, try to create such block with size / 2, size / 4, size / 8. -# If failed, try to allocate separate `VkDeviceMemory` for this allocation, just like when you use #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT. -# If failed, choose other memory type that meets the requirements specified in @@ -19831,28 +19759,29 @@ The library uses following algorithm for allocation, in order: Features deliberately excluded from the scope of this library: -- **Data transfer.** Uploading (streaming) and downloading data of buffers and images - between CPU and GPU memory and related synchronization is responsibility of the user. - Defining some "texture" object that would automatically stream its data from a - staging copy in CPU memory to GPU memory would rather be a feature of another, - higher-level library implemented on top of VMA. -- **Recreation of buffers and images.** Although the library has functions for - buffer and image creation (vmaCreateBuffer(), vmaCreateImage()), you need to - recreate these objects yourself after defragmentation. That is because the big - structures `VkBufferCreateInfo`, `VkImageCreateInfo` are not stored in - #VmaAllocation object. -- **Handling CPU memory allocation failures.** When dynamically creating small C++ - objects in CPU memory (not Vulkan memory), allocation failures are not checked - and handled gracefully, because that would complicate code significantly and - is usually not needed in desktop PC applications anyway. - Success of an allocation is just checked with an assert. -- **Code free of any compiler warnings.** Maintaining the library to compile and - work correctly on so many different platforms is hard enough. Being free of - any warnings, on any version of any compiler, is simply not feasible. - There are many preprocessor macros that make some variables unused, function parameters unreferenced, - or conditional expressions constant in some configurations. - The code of this library should not be bigger or more complicated just to silence these warnings. - It is recommended to disable such warnings instead. -- This is a C++ library with C interface. **Bindings or ports to any other programming languages** are welcome as external projects but - are not going to be included into this repository. +-# **Data transfer.** Uploading (streaming) and downloading data of buffers and images + between CPU and GPU memory and related synchronization is responsibility of the user. + Defining some "texture" object that would automatically stream its data from a + staging copy in CPU memory to GPU memory would rather be a feature of another, + higher-level library implemented on top of VMA. + VMA doesn't record any commands to a `VkCommandBuffer`. It just allocates memory. +-# **Recreation of buffers and images.** Although the library has functions for + buffer and image creation: vmaCreateBuffer(), vmaCreateImage(), you need to + recreate these objects yourself after defragmentation. That is because the big + structures `VkBufferCreateInfo`, `VkImageCreateInfo` are not stored in + #VmaAllocation object. +-# **Handling CPU memory allocation failures.** When dynamically creating small C++ + objects in CPU memory (not Vulkan memory), allocation failures are not checked + and handled gracefully, because that would complicate code significantly and + is usually not needed in desktop PC applications anyway. + Success of an allocation is just checked with an assert. +-# **Code free of any compiler warnings.** Maintaining the library to compile and + work correctly on so many different platforms is hard enough. Being free of + any warnings, on any version of any compiler, is simply not feasible. + There are many preprocessor macros that make some variables unused, function parameters unreferenced, + or conditional expressions constant in some configurations. + The code of this library should not be bigger or more complicated just to silence these warnings. + It is recommended to disable such warnings instead. +-# This is a C++ library with C interface. **Bindings or ports to any other programming languages** are welcome as external projects but + are not going to be included into this repository. */ diff --git a/3rdparty/rcheevos/rcheevos b/3rdparty/rcheevos/rcheevos index 8a717b1b303be6..8afec6c55e3a0f 160000 --- a/3rdparty/rcheevos/rcheevos +++ b/3rdparty/rcheevos/rcheevos @@ -1 +1 @@ -Subproject commit 8a717b1b303be636213a3e6612b059c1c0e98102 +Subproject commit 8afec6c55e3a0f72368a5a085203bab1b8828ffb diff --git a/3rdparty/vulkan-headers b/3rdparty/vulkan-headers index 9f4c61a31435a7..19a863ccce773f 160000 --- a/3rdparty/vulkan-headers +++ b/3rdparty/vulkan-headers @@ -1 +1 @@ -Subproject commit 9f4c61a31435a7a90a314fc68aeb386c92a09c0f +Subproject commit 19a863ccce773ff393b186329478b1eb1a519fd3 diff --git a/3rdparty/xbyak/xbyak/xbyak.h b/3rdparty/xbyak/xbyak/xbyak.h index 41b5cc0684f611..01fddf75054b4c 100644 --- a/3rdparty/xbyak/xbyak/xbyak.h +++ b/3rdparty/xbyak/xbyak/xbyak.h @@ -77,7 +77,11 @@ #endif #include #include - #define XBYAK_TLS __declspec(thread) + #ifdef _MSC_VER + #define XBYAK_TLS __declspec(thread) + #else + #define XBYAK_TLS __thread + #endif #elif defined(__GNUC__) #include #include @@ -95,7 +99,9 @@ #include #endif -#if !defined(MFD_CLOEXEC) // defined only linux 3.17 or later +// MFD_CLOEXEC defined only linux 3.17 or later. +// Android wraps the memfd_create syscall from API version 30. +#if !defined(MFD_CLOEXEC) || (defined(__ANDROID__) && __ANDROID_API__ < 30) #undef XBYAK_USE_MEMFD #endif @@ -112,7 +118,7 @@ #endif #endif -#if (__cplusplus >= 201103) || (defined(_MSC_VER) && _MSC_VER >= 1800) +#if (__cplusplus >= 201103) || (defined(_MSC_VER) && _MSC_VER >= 1900) #undef XBYAK_TLS #define XBYAK_TLS thread_local #define XBYAK_VARIADIC_TEMPLATE @@ -138,11 +144,18 @@ #pragma warning(disable : 4127) /* constant expresison */ #endif +// disable -Warray-bounds because it may be a bug of gcc. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104603 +#if defined(__GNUC__) && !defined(__clang__) + #define XBYAK_DISABLE_WARNING_ARRAY_BOUNDS + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Warray-bounds" +#endif + namespace Xbyak { enum { DEFAULT_MAX_CODE_SIZE = 4096, - VERSION = 0x6000 /* 0xABCD = A.BC(D) */ + VERSION = 0x6730 /* 0xABCD = A.BC(.D) */ }; #ifndef MIE_INTEGER_TYPE_DEFINED @@ -291,10 +304,10 @@ inline void SetError(int err) { inline void ClearError() { local::GetErrorRef() = 0; } -inline int GetError() { return local::GetErrorRef(); } +inline int GetError() { return Xbyak::local::GetErrorRef(); } -#define XBYAK_THROW(err) { local::SetError(err); return; } -#define XBYAK_THROW_RET(err, r) { local::SetError(err); return r; } +#define XBYAK_THROW(err) { Xbyak::local::SetError(err); return; } +#define XBYAK_THROW_RET(err, r) { Xbyak::local::SetError(err); return r; } #else class Error : public std::exception { @@ -358,14 +371,36 @@ inline const To CastTo(From p) XBYAK_NOEXCEPT } namespace inner { -static const size_t ALIGN_PAGE_SIZE = 4096; +#ifdef _WIN32 +struct SystemInfo { + SYSTEM_INFO info; + SystemInfo() + { + GetSystemInfo(&info); + } +}; +#endif +//static const size_t ALIGN_PAGE_SIZE = 4096; +inline size_t getPageSize() +{ +#ifdef _WIN32 + static const SystemInfo si; + return si.info.dwPageSize; +#elif defined(__GNUC__) + static const long pageSize = sysconf(_SC_PAGESIZE); + if (pageSize > 0) { + return (size_t)pageSize; + } +#endif + return 4096; +} inline bool IsInDisp8(uint32_t x) { return 0xFFFFFF80 <= x || x <= 0x7F; } inline bool IsInInt32(uint64_t x) { return ~uint64_t(0x7fffffffu) <= x || x <= 0x7FFFFFFFU; } inline uint32_t VerifyInInt32(uint64_t x) { -#ifdef XBYAK64 +#if defined(XBYAK64) && !defined(__ILP32__) if (!IsInInt32(x)) XBYAK_THROW_RET(ERR_OFFSET_IS_TOO_BIG, 0) #endif return static_cast(x); @@ -383,7 +418,8 @@ enum LabelMode { custom allocator */ struct Allocator { - virtual uint8_t *alloc(size_t size) { return reinterpret_cast(AlignedMalloc(size, inner::ALIGN_PAGE_SIZE)); } + explicit Allocator(const std::string& = "") {} // same interface with MmapAllocator + virtual uint8_t *alloc(size_t size) { return reinterpret_cast(AlignedMalloc(size, inner::getPageSize())); } virtual void free(uint8_t *p) { AlignedFree(p); } virtual ~Allocator() {} /* override to return false if you call protect() manually */ @@ -414,13 +450,24 @@ inline int getMacOsVersion() } // util #endif -class MmapAllocator : Allocator { - typedef XBYAK_STD_UNORDERED_MAP SizeList; - SizeList sizeList_; +class MmapAllocator : public Allocator { + struct Allocation { + size_t size; +#if defined(XBYAK_USE_MEMFD) + // fd_ is only used with XBYAK_USE_MEMFD. We keep the file open + // during the lifetime of each allocation in order to support + // checkpoint/restore by unprivileged users. + int fd; +#endif + }; + const std::string name_; // only used with XBYAK_USE_MEMFD + typedef XBYAK_STD_UNORDERED_MAP AllocationList; + AllocationList allocList_; public: + explicit MmapAllocator(const std::string& name = "xbyak") : name_(name) {} uint8_t *alloc(size_t size) { - const size_t alignedSizeM1 = inner::ALIGN_PAGE_SIZE - 1; + const size_t alignedSizeM1 = inner::getPageSize() - 1; size = (size + alignedSizeM1) & ~alignedSizeM1; #if defined(MAP_ANONYMOUS) int mode = MAP_PRIVATE | MAP_ANONYMOUS; @@ -435,30 +482,42 @@ class MmapAllocator : Allocator { #endif int fd = -1; #if defined(XBYAK_USE_MEMFD) - fd = memfd_create("xbyak", MFD_CLOEXEC); + fd = memfd_create(name_.c_str(), MFD_CLOEXEC); if (fd != -1) { mode = MAP_SHARED; - if (ftruncate(fd, size) != 0) XBYAK_THROW_RET(ERR_CANT_ALLOC, 0) + if (ftruncate(fd, size) != 0) { + close(fd); + XBYAK_THROW_RET(ERR_CANT_ALLOC, 0) + } } #endif void *p = mmap(NULL, size, PROT_READ | PROT_WRITE, mode, fd, 0); + if (p == MAP_FAILED) { + if (fd != -1) close(fd); + XBYAK_THROW_RET(ERR_CANT_ALLOC, 0) + } + assert(p); + Allocation &alloc = allocList_[(uintptr_t)p]; + alloc.size = size; #if defined(XBYAK_USE_MEMFD) - if (fd != -1) close(fd); + alloc.fd = fd; #endif - if (p == MAP_FAILED) XBYAK_THROW_RET(ERR_CANT_ALLOC, 0) - assert(p); - sizeList_[(uintptr_t)p] = size; return (uint8_t*)p; } void free(uint8_t *p) { if (p == 0) return; - SizeList::iterator i = sizeList_.find((uintptr_t)p); - if (i == sizeList_.end()) XBYAK_THROW(ERR_BAD_PARAMETER) - if (munmap((void*)i->first, i->second) < 0) XBYAK_THROW(ERR_MUNMAP) - sizeList_.erase(i); + AllocationList::iterator i = allocList_.find((uintptr_t)p); + if (i == allocList_.end()) XBYAK_THROW(ERR_BAD_PARAMETER) + if (munmap((void*)i->first, i->second.size) < 0) XBYAK_THROW(ERR_MUNMAP) +#if defined(XBYAK_USE_MEMFD) + if (i->second.fd != -1) close(i->second.fd); +#endif + allocList_.erase(i); } }; +#else +typedef Allocator MmapAllocator; #endif class Address; @@ -1176,9 +1235,6 @@ class CodeArray { size_t pageSize = sysconf(_SC_PAGESIZE); size_t iaddr = reinterpret_cast(addr); size_t roundAddr = iaddr & ~(pageSize - static_cast(1)); -#ifndef NDEBUG - if (pageSize != 4096) fprintf(stderr, "large page(%zd) is used. not tested enough.\n", pageSize); -#endif return mprotect(reinterpret_cast(roundAddr), size + (iaddr - roundAddr), mode) == 0; #else return true; @@ -1448,7 +1504,6 @@ class LabelManager { clabelDefList_.clear(); clabelUndefList_.clear(); resetLabelPtrList(); - ClearError(); } void enterLocal() { @@ -1574,6 +1629,7 @@ class CodeGenerator : public CodeArray { enum LabelType { T_SHORT, T_NEAR, + T_FAR, // far jump T_AUTO // T_SHORT if possible }; private: @@ -1622,6 +1678,11 @@ class CodeGenerator : public CodeArray { { return op1.isREG(i32e) && ((op2.isREG(i32e) && op1.getBit() == op2.getBit()) || op2.isMEM()); } + static inline bool isValidSSE(const Operand& op1) + { + // SSE instructions do not support XMM16 - XMM31 + return !(op1.isXMM() && op1.getIdx() >= 16); + } void rex(const Operand& op1, const Operand& op2 = Operand()) { uint8_t rex = 0; @@ -1784,9 +1845,16 @@ class CodeGenerator : public CodeArray { void setSIB(const RegExp& e, int reg, int disp8N = 0) { uint64_t disp64 = e.getDisp(); -#ifdef XBYAK64 +#if defined(XBYAK64) && !defined(__ILP32__) +#ifdef XBYAK_OLD_DISP_CHECK + // treat 0xffffffff as 0xffffffffffffffff uint64_t high = disp64 >> 32; if (high != 0 && high != 0xFFFFFFFF) XBYAK_THROW(ERR_OFFSET_IS_TOO_BIG) +#else + // displacement should be a signed 32-bit value, so also check sign bit + uint64_t high = disp64 >> 31; + if (high != 0 && high != 0x1FFFFFFFF) XBYAK_THROW(ERR_OFFSET_IS_TOO_BIG) +#endif #endif uint32_t disp = static_cast(disp64); const Reg& base = e.getBase(); @@ -1887,6 +1955,7 @@ class CodeGenerator : public CodeArray { template void opJmp(T& label, LabelType type, uint8_t shortCode, uint8_t longCode, uint8_t longPref) { + if (type == T_FAR) XBYAK_THROW(ERR_NOT_SUPPORTED) if (isAutoGrow() && size_ + 16 >= maxSize_) growMemory(); /* avoid splitting code of jmp */ size_t offset = 0; if (labelMgr_.getOffset(&offset, label)) { /* label exists */ @@ -1907,6 +1976,7 @@ class CodeGenerator : public CodeArray { } void opJmpAbs(const void *addr, LabelType type, uint8_t shortCode, uint8_t longCode, uint8_t longPref = 0) { + if (type == T_FAR) XBYAK_THROW(ERR_NOT_SUPPORTED) if (isAutoGrow()) { if (!isNEAR(type)) XBYAK_THROW(ERR_ONLY_T_NEAR_IS_SUPPORTED_IN_AUTO_GROW) if (size_ + 16 >= maxSize_) growMemory(); @@ -1919,6 +1989,16 @@ class CodeGenerator : public CodeArray { } } + void opJmpOp(const Operand& op, LabelType type, int ext) + { + const int bit = 16|i32e; + if (type == T_FAR) { + if (!op.isMEM(bit)) XBYAK_THROW(ERR_NOT_SUPPORTED) + opR_ModM(op, bit, ext + 1, 0xFF, NONE, NONE, false); + } else { + opR_ModM(op, bit, ext, 0xFF, NONE, NONE, true); + } + } // reg is reg field of ModRM // immSize is the size for immediate value // disp8N = 0(normal), disp8N = 1(force disp32), disp8N = {2, 4, 8} ; compressed displacement @@ -1945,6 +2025,7 @@ class CodeGenerator : public CodeArray { void opGen(const Operand& reg, const Operand& op, int code, int pref, bool isValid(const Operand&, const Operand&), int imm8 = NONE, int preCode = NONE) { if (isValid && !isValid(reg, op)) XBYAK_THROW(ERR_BAD_COMBINATION) + if (!isValidSSE(reg) || !isValidSSE(op)) XBYAK_THROW(ERR_NOT_SUPPORTED) if (pref != NONE) db(pref); if (op.isMEM()) { opModM(op.getAddress(), reg.getReg(), 0x0F, preCode, code, (imm8 != NONE) ? 1 : 0); @@ -1955,6 +2036,7 @@ class CodeGenerator : public CodeArray { } void opMMX_IMM(const Mmx& mmx, int imm8, int code, int ext) { + if (!isValidSSE(mmx)) XBYAK_THROW(ERR_NOT_SUPPORTED) if (mmx.isXMM()) db(0x66); opModR(Reg32(ext), mmx, 0x0F, code); db(imm8); @@ -1965,6 +2047,7 @@ class CodeGenerator : public CodeArray { } void opMovXMM(const Operand& op1, const Operand& op2, int code, int pref) { + if (!isValidSSE(op1) || !isValidSSE(op2)) XBYAK_THROW(ERR_NOT_SUPPORTED) if (pref != NONE) db(pref); if (op1.isXMM() && op2.isMEM()) { opModM(op2.getAddress(), op1.getReg(), 0x0F, code); @@ -1976,6 +2059,7 @@ class CodeGenerator : public CodeArray { } void opExt(const Operand& op, const Mmx& mmx, int code, int imm, bool hasMMX2 = false) { + if (!isValidSSE(op) || !isValidSSE(mmx)) XBYAK_THROW(ERR_NOT_SUPPORTED) if (hasMMX2 && op.isREG(i32e)) { /* pextrw is special */ if (mmx.isXMM()) db(0x66); opModR(op.getReg(), mmx, 0x0F, 0xC5); db(imm); @@ -2132,9 +2216,6 @@ class CodeGenerator : public CodeArray { { if (op.isBit(32)) XBYAK_THROW(ERR_BAD_COMBINATION) int w = op.isBit(16); -#ifdef XBYAK64 - if (op.isHigh8bit()) XBYAK_THROW(ERR_BAD_COMBINATION) -#endif bool cond = reg.isREG() && (reg.getBit() > op.getBit()); opModRM(reg, op, cond && op.isREG(), cond && op.isMEM(), 0x0F, code | w); } @@ -2356,18 +2437,21 @@ class CodeGenerator : public CodeArray { if (addr.getRegExp().getIndex().getKind() != kind) XBYAK_THROW(ERR_BAD_VSIB_ADDRESSING) opVex(x, 0, addr, type, code); } - void opVnni(const Xmm& x1, const Xmm& x2, const Operand& op, int type, int code0, PreferredEncoding encoding) + void opEncoding(const Xmm& x1, const Xmm& x2, const Operand& op, int type, int code0, PreferredEncoding encoding) { + opAVX_X_X_XM(x1, x2, op, type | orEvexIf(encoding), code0); + } + int orEvexIf(PreferredEncoding encoding) { if (encoding == DefaultEncoding) { - encoding = EvexEncoding; + encoding = defaultEncoding_; } if (encoding == EvexEncoding) { #ifdef XBYAK_DISABLE_AVX512 XBYAK_THROW(ERR_EVEX_IS_INVALID) #endif - type |= T_MUST_EVEX; + return T_MUST_EVEX; } - opAVX_X_X_XM(x1, x2, op, type, code0); + return 0; } void opInOut(const Reg& a, const Reg& d, uint8_t code) { @@ -2452,6 +2536,7 @@ class CodeGenerator : public CodeArray { #endif private: bool isDefaultJmpNEAR_; + PreferredEncoding defaultEncoding_; public: void L(const std::string& label) { labelMgr_.defineSlabel(label); } void L(Label& label) { labelMgr_.defineClabel(label); } @@ -2474,13 +2559,13 @@ class CodeGenerator : public CodeArray { // set default type of `jmp` of undefined label to T_NEAR void setDefaultJmpNEAR(bool isNear) { isDefaultJmpNEAR_ = isNear; } - void jmp(const Operand& op) { opR_ModM(op, BIT, 4, 0xFF, NONE, NONE, true); } + void jmp(const Operand& op, LabelType type = T_AUTO) { opJmpOp(op, type, 4); } void jmp(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0xEB, 0xE9, 0); } void jmp(const char *label, LabelType type = T_AUTO) { jmp(std::string(label), type); } void jmp(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0xEB, 0xE9, 0); } void jmp(const void *addr, LabelType type = T_AUTO) { opJmpAbs(addr, type, 0xEB, 0xE9); } - void call(const Operand& op) { opR_ModM(op, 16 | i32e, 2, 0xFF, NONE, NONE, true); } + void call(const Operand& op, LabelType type = T_AUTO) { opJmpOp(op, type, 2); } // call(string label), not const std::string& void call(std::string label) { opJmp(label, T_NEAR, 0, 0xE8, 0); } void call(const char *label) { call(std::string(label)); } @@ -2731,11 +2816,13 @@ class CodeGenerator : public CodeArray { , es(Segment::es), cs(Segment::cs), ss(Segment::ss), ds(Segment::ds), fs(Segment::fs), gs(Segment::gs) #endif , isDefaultJmpNEAR_(false) + , defaultEncoding_(EvexEncoding) { labelMgr_.set(this); } void reset() { + ClearError(); resetSize(); labelMgr_.reset(); labelMgr_.set(this); @@ -2767,6 +2854,9 @@ class CodeGenerator : public CodeArray { #undef jnl #endif + // set default encoding to select Vex or Evex + void setDefaultEncoding(PreferredEncoding encoding) { defaultEncoding_ = encoding; } + /* use single byte nop if useMultiByteNop = false */ @@ -2813,7 +2903,7 @@ class CodeGenerator : public CodeArray { { if (x == 1) return; if (x < 1 || (x & (x - 1))) XBYAK_THROW(ERR_BAD_ALIGN) - if (isAutoGrow() && x > inner::ALIGN_PAGE_SIZE) fprintf(stderr, "warning:autoGrow mode does not support %d align\n", (int)x); + if (isAutoGrow()) XBYAK_THROW(ERR_BAD_ALIGN) size_t remain = size_t(getCurr()) % x; if (remain) { nop(x - remain, useMultiByteNop); @@ -2871,6 +2961,10 @@ static const XBYAK_CONSTEXPR Segment es(Segment::es), cs(Segment::cs), ss(Segmen #pragma warning(pop) #endif +#if defined(__GNUC__) && !defined(__clang__) + #pragma GCC diagnostic pop +#endif + } // end of namespace #endif // XBYAK_XBYAK_H_ diff --git a/3rdparty/xbyak/xbyak/xbyak_bin2hex.h b/3rdparty/xbyak/xbyak/xbyak_bin2hex.h new file mode 100644 index 00000000000000..69ecdbfedca741 --- /dev/null +++ b/3rdparty/xbyak/xbyak/xbyak_bin2hex.h @@ -0,0 +1,258 @@ +enum { + B00000000= 0, + B00000001= 1, + B00000010= 2, + B00000011= 3, + B00000100= 4, + B00000101= 5, + B00000110= 6, + B00000111= 7, + B00001000= 8, + B00001001= 9, + B00001010= 10, + B00001011= 11, + B00001100= 12, + B00001101= 13, + B00001110= 14, + B00001111= 15, + B00010000= 16, + B00010001= 17, + B00010010= 18, + B00010011= 19, + B00010100= 20, + B00010101= 21, + B00010110= 22, + B00010111= 23, + B00011000= 24, + B00011001= 25, + B00011010= 26, + B00011011= 27, + B00011100= 28, + B00011101= 29, + B00011110= 30, + B00011111= 31, + B00100000= 32, + B00100001= 33, + B00100010= 34, + B00100011= 35, + B00100100= 36, + B00100101= 37, + B00100110= 38, + B00100111= 39, + B00101000= 40, + B00101001= 41, + B00101010= 42, + B00101011= 43, + B00101100= 44, + B00101101= 45, + B00101110= 46, + B00101111= 47, + B00110000= 48, + B00110001= 49, + B00110010= 50, + B00110011= 51, + B00110100= 52, + B00110101= 53, + B00110110= 54, + B00110111= 55, + B00111000= 56, + B00111001= 57, + B00111010= 58, + B00111011= 59, + B00111100= 60, + B00111101= 61, + B00111110= 62, + B00111111= 63, + B01000000= 64, + B01000001= 65, + B01000010= 66, + B01000011= 67, + B01000100= 68, + B01000101= 69, + B01000110= 70, + B01000111= 71, + B01001000= 72, + B01001001= 73, + B01001010= 74, + B01001011= 75, + B01001100= 76, + B01001101= 77, + B01001110= 78, + B01001111= 79, + B01010000= 80, + B01010001= 81, + B01010010= 82, + B01010011= 83, + B01010100= 84, + B01010101= 85, + B01010110= 86, + B01010111= 87, + B01011000= 88, + B01011001= 89, + B01011010= 90, + B01011011= 91, + B01011100= 92, + B01011101= 93, + B01011110= 94, + B01011111= 95, + B01100000= 96, + B01100001= 97, + B01100010= 98, + B01100011= 99, + B01100100= 100, + B01100101= 101, + B01100110= 102, + B01100111= 103, + B01101000= 104, + B01101001= 105, + B01101010= 106, + B01101011= 107, + B01101100= 108, + B01101101= 109, + B01101110= 110, + B01101111= 111, + B01110000= 112, + B01110001= 113, + B01110010= 114, + B01110011= 115, + B01110100= 116, + B01110101= 117, + B01110110= 118, + B01110111= 119, + B01111000= 120, + B01111001= 121, + B01111010= 122, + B01111011= 123, + B01111100= 124, + B01111101= 125, + B01111110= 126, + B01111111= 127, + B10000000= 128, + B10000001= 129, + B10000010= 130, + B10000011= 131, + B10000100= 132, + B10000101= 133, + B10000110= 134, + B10000111= 135, + B10001000= 136, + B10001001= 137, + B10001010= 138, + B10001011= 139, + B10001100= 140, + B10001101= 141, + B10001110= 142, + B10001111= 143, + B10010000= 144, + B10010001= 145, + B10010010= 146, + B10010011= 147, + B10010100= 148, + B10010101= 149, + B10010110= 150, + B10010111= 151, + B10011000= 152, + B10011001= 153, + B10011010= 154, + B10011011= 155, + B10011100= 156, + B10011101= 157, + B10011110= 158, + B10011111= 159, + B10100000= 160, + B10100001= 161, + B10100010= 162, + B10100011= 163, + B10100100= 164, + B10100101= 165, + B10100110= 166, + B10100111= 167, + B10101000= 168, + B10101001= 169, + B10101010= 170, + B10101011= 171, + B10101100= 172, + B10101101= 173, + B10101110= 174, + B10101111= 175, + B10110000= 176, + B10110001= 177, + B10110010= 178, + B10110011= 179, + B10110100= 180, + B10110101= 181, + B10110110= 182, + B10110111= 183, + B10111000= 184, + B10111001= 185, + B10111010= 186, + B10111011= 187, + B10111100= 188, + B10111101= 189, + B10111110= 190, + B10111111= 191, + B11000000= 192, + B11000001= 193, + B11000010= 194, + B11000011= 195, + B11000100= 196, + B11000101= 197, + B11000110= 198, + B11000111= 199, + B11001000= 200, + B11001001= 201, + B11001010= 202, + B11001011= 203, + B11001100= 204, + B11001101= 205, + B11001110= 206, + B11001111= 207, + B11010000= 208, + B11010001= 209, + B11010010= 210, + B11010011= 211, + B11010100= 212, + B11010101= 213, + B11010110= 214, + B11010111= 215, + B11011000= 216, + B11011001= 217, + B11011010= 218, + B11011011= 219, + B11011100= 220, + B11011101= 221, + B11011110= 222, + B11011111= 223, + B11100000= 224, + B11100001= 225, + B11100010= 226, + B11100011= 227, + B11100100= 228, + B11100101= 229, + B11100110= 230, + B11100111= 231, + B11101000= 232, + B11101001= 233, + B11101010= 234, + B11101011= 235, + B11101100= 236, + B11101101= 237, + B11101110= 238, + B11101111= 239, + B11110000= 240, + B11110001= 241, + B11110010= 242, + B11110011= 243, + B11110100= 244, + B11110101= 245, + B11110110= 246, + B11110111= 247, + B11111000= 248, + B11111001= 249, + B11111010= 250, + B11111011= 251, + B11111100= 252, + B11111101= 253, + B11111110= 254, + B11111111= 255 +}; diff --git a/3rdparty/xbyak/xbyak/xbyak_mnemonic.h b/3rdparty/xbyak/xbyak/xbyak_mnemonic.h index 72bcb22ee53972..edc76c5bb8a119 100644 --- a/3rdparty/xbyak/xbyak/xbyak_mnemonic.h +++ b/3rdparty/xbyak/xbyak/xbyak_mnemonic.h @@ -1,4 +1,6 @@ -const char *getVersionString() const { return "6.00"; } +const char *getVersionString() const { return "6.73"; } +void aadd(const Address& addr, const Reg32e ®) { opModM(addr, reg, 0x0F, 0x38, 0x0FC); } +void aand(const Address& addr, const Reg32e ®) { db(0x66); opModM(addr, reg, 0x0F, 0x38, 0x0FC); } void adc(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x10, 2); } void adc(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x10); } void adcx(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0x66, isREG32_REG32orMEM, NONE, 0x38); } @@ -24,6 +26,8 @@ void andnpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x55, 0x66, isXM void andnps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x55, 0x100, isXMM_XMMorMEM); } void andpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x54, 0x66, isXMM_XMMorMEM); } void andps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x54, 0x100, isXMM_XMMorMEM); } +void aor(const Address& addr, const Reg32e ®) { db(0xF2); opModM(addr, reg, 0x0F, 0x38, 0x0FC); } +void axor(const Address& addr, const Reg32e ®) { db(0xF3); opModM(addr, reg, 0x0F, 0x38, 0x0FC); } void bextr(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr(r1, op, r2, T_0F38, 0xf7, false); } void blendpd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0D, 0x66, isXMM_XMMorMEM, static_cast(imm), 0x3A); } void blendps(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0C, 0x66, isXMM_XMMorMEM, static_cast(imm), 0x3A); } @@ -57,9 +61,11 @@ void cbw() { db(0x66); db(0x98); } void cdq() { db(0x99); } void clc() { db(0xF8); } void cld() { db(0xFC); } +void cldemote(const Address& addr) { opMIB(addr, eax, 0x0F, 0x1C); } void clflush(const Address& addr) { opModM(addr, Reg32(7), 0x0F, 0xAE); } void clflushopt(const Address& addr) { db(0x66); opModM(addr, Reg32(7), 0x0F, 0xAE); } void cli() { db(0xFA); } +void clwb(const Address& addr) { db(0x66); opMIB(addr, esi, 0x0F, 0xAE); } void clzero() { db(0x0F); db(0x01); db(0xFC); } void cmc() { db(0xF5); } void cmova(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 7); }//-V524 @@ -323,6 +329,7 @@ void gf2p8affineqb(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, void gf2p8mulb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCF, 0x66, isXMM_XMMorMEM, NONE, 0x38); } void haddpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7C, 0x66, isXMM_XMMorMEM); } void haddps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7C, 0xF2, isXMM_XMMorMEM); } +void hlt() { db(0xF4); } void hsubpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7D, 0x66, isXMM_XMMorMEM); } void hsubps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7D, 0xF2, isXMM_XMMorMEM); } void idiv(const Operand& op) { opR_ModM(op, 0, 7, 0xF6); } @@ -500,6 +507,8 @@ void movd(const Mmx& mmx, const Address& addr) { if (mmx.isXMM()) db(0x66); opMo void movd(const Mmx& mmx, const Reg32& reg) { if (mmx.isXMM()) db(0x66); opModR(mmx, reg, 0x0F, 0x6E); } void movd(const Reg32& reg, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModR(mmx, reg, 0x0F, 0x7E); } void movddup(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x12, 0xF2, isXMM_XMMorMEM, NONE, NONE); } +void movdir64b(const Reg& reg, const Address& addr) { db(0x66); opModM(addr, reg.cvt32(), 0x0F, 0x38, 0xF8); } +void movdiri(const Address& addr, const Reg32e& reg) { opModM(addr, reg, 0x0F, 0x38, 0xF9); } void movdq2q(const Mmx& mmx, const Xmm& xmm) { db(0xF2); opModR(mmx, xmm, 0x0F, 0xD6); } void movdqa(const Address& addr, const Xmm& xmm) { db(0x66); opModM(addr, xmm, 0x0F, 0x7F); } void movdqa(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x6F, 0x66); } @@ -580,9 +589,9 @@ void pavgb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE0); } void pavgw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE3); } void pblendvb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x10, 0x66, isXMM_XMMorMEM, NONE, 0x38); } void pblendw(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0E, 0x66, isXMM_XMMorMEM, static_cast(imm), 0x3A); } -void pclmulhqhdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x11); } +void pclmulhqhqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x11); } void pclmulhqlqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x01); } -void pclmullqhdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x10); } +void pclmullqhqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x10); } void pclmullqlqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x00); } void pclmulqdq(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x44, 0x66, isXMM_XMMorMEM, static_cast(imm), 0x3A); } void pcmpeqb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x74); } @@ -649,6 +658,8 @@ void pmuludq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF4); } void popcnt(const Reg®, const Operand& op) { opSp1(reg, op, 0xF3, 0x0F, 0xB8); } void popf() { db(0x9D); } void por(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEB); } +void prefetchit0(const Address& addr) { opModM(addr, Reg32(7), 0x0F, 0x18); } +void prefetchit1(const Address& addr) { opModM(addr, Reg32(6), 0x0F, 0x18); } void prefetchnta(const Address& addr) { opModM(addr, Reg32(0), 0x0F, 0x18); } void prefetcht0(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0x18); } void prefetcht1(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0x18); } @@ -719,6 +730,7 @@ void repne() { db(0xF2); } void repnz() { db(0xF2); } void repz() { db(0xF3); } void ret(int imm = 0) { if (imm) { db(0xC2); dw(imm); } else { db(0xC3); } } +void retf(int imm = 0) { if (imm) { db(0xCA); dw(imm); } else { db(0xCB); } } void rol(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 0); } void rol(const Operand& op, int imm) { opShift(op, imm, 0); } void ror(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 1); } @@ -741,6 +753,7 @@ void sbb(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x18); } void scasb() { db(0xAE); } void scasd() { db(0xAF); } void scasw() { db(0x66); db(0xAF); } +void serialize() { db(0x0F); db(0x01); db(0xE8); } void seta(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 7); }//-V524 void setae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }//-V524 void setb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }//-V524 @@ -811,10 +824,13 @@ void subsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0xF2, isXMM void subss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0xF3, isXMM_XMMorMEM); } void sysenter() { db(0x0F); db(0x34); } void sysexit() { db(0x0F); db(0x35); } +void tpause(const Reg32& r) { int idx = r.getIdx(); if (idx > 7) XBYAK_THROW(ERR_BAD_PARAMETER) db(0x66); db(0x0F); db(0xAE); setModRM(3, 6, idx); } void tzcnt(const Reg®, const Operand& op) { opSp1(reg, op, 0xF3, 0x0F, 0xBC); } void ucomisd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2E, 0x66, isXMM_XMMorMEM); } void ucomiss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2E, 0x100, isXMM_XMMorMEM); } void ud2() { db(0x0F); db(0x0B); } +void umonitor(const Reg& r) { int idx = r.getIdx(); if (idx > 7) XBYAK_THROW(ERR_BAD_PARAMETER) int bit = r.getBit(); if (BIT != bit) { if ((BIT == 32 && bit == 16) || (BIT == 64 && bit == 32)) { db(0x67); } else { XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER) } } db(0xF3); db(0x0F); db(0xAE); setModRM(3, 6, idx); } +void umwait(const Reg32& r) { int idx = r.getIdx(); if (idx > 7) XBYAK_THROW(ERR_BAD_PARAMETER) db(0xF2); db(0x0F); db(0xAE); setModRM(3, 6, idx); } void unpckhpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, 0x66, isXMM_XMMorMEM); } void unpckhps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, 0x100, isXMM_XMMorMEM); } void unpcklpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, 0x66, isXMM_XMMorMEM); } @@ -835,6 +851,8 @@ void vandnpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) void vandnps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x55); } void vandpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x54); } void vandps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x54); } +void vbcstnebf162ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_F3 | T_0F38 | T_W0 | T_YMM | T_B16, 0xB1); } +void vbcstnesh2ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_66 | T_0F38 | T_W0 | T_YMM | T_B16, 0xB1); } void vblendpd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x0D, imm); } void vblendps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x0C, imm); } void vblendvpd(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, T_0F3A | T_66 | T_YMM, 0x4B, x4.getIdx() << 4); } @@ -979,6 +997,11 @@ void vcomisd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T void vcomiss(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_0F | T_EW0 | T_EVEX | T_SAE_X, 0x2F); } void vcvtdq2pd(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_0F | T_F3 | T_YMM | T_EVEX | T_EW0 | T_B32 | T_N8 | T_N_VL, 0xE6); } void vcvtdq2ps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5B); } +void vcvtneebf162ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_F3 | T_0F38 | T_W0 | T_YMM, 0xB0); } +void vcvtneeph2ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_66 | T_0F38 | T_W0 | T_YMM, 0xB0); } +void vcvtneobf162ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_F2 | T_0F38 | T_W0 | T_YMM, 0xB0); } +void vcvtneoph2ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_0F38 | T_W0 | T_YMM, 0xB0); } +void vcvtneps2bf16(const Xmm& x, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opCvt2(x, op, T_F3 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32 | orEvexIf(encoding), 0x72); } void vcvtpd2dq(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_F2 | T_YMM | T_EVEX | T_EW1 | T_B64 | T_ER_Z, 0xE6); } void vcvtpd2ps(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_66 | T_YMM | T_EVEX | T_EW1 | T_B64 | T_ER_Z, 0x5A); } void vcvtph2ps(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_0F38 | T_66 | T_W0 | T_EVEX | T_EW0 | T_N8 | T_N_VL | T_SAE_Y, 0x13); } @@ -1169,6 +1192,10 @@ void vpbroadcastb(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isME void vpbroadcastd(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_W0 | T_YMM | T_EVEX, 0x58); } void vpbroadcastq(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_W0 | T_EW1 | T_YMM | T_EVEX, 0x59); } void vpbroadcastw(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_XM_IMM(x, op, T_N2 | T_66 | T_0F38 | T_W0 | T_YMM | T_EVEX, 0x79); } +void vpclmulhqhqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { vpclmulqdq(x1, x2, op, 0x11); } +void vpclmulhqlqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { vpclmulqdq(x1, x2, op, 0x01); } +void vpclmullqhqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { vpclmulqdq(x1, x2, op, 0x10); } +void vpclmullqlqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { vpclmulqdq(x1, x2, op, 0x00); } void vpclmulqdq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM | T_EVEX, 0x44, imm); } void vpcmpeqb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x74); } void vpcmpeqd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x76); } @@ -1182,10 +1209,22 @@ void vpcmpgtq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1 void vpcmpgtw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x65); } void vpcmpistri(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0x63, imm); } void vpcmpistrm(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0x62, imm); } -void vpdpbusd(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opVnni(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x50, encoding); } -void vpdpbusds(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opVnni(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x51, encoding); } -void vpdpwssd(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opVnni(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x52, encoding); } -void vpdpwssds(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opVnni(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x53, encoding); } +void vpdpbssd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_0F38 | T_W0 | T_YMM, 0x50); } +void vpdpbssds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_0F38 | T_W0 | T_YMM, 0x51); } +void vpdpbsud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F38 | T_W0 | T_YMM, 0x50); } +void vpdpbsuds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F38 | T_W0 | T_YMM, 0x51); } +void vpdpbusd(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x50, encoding); } +void vpdpbusds(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x51, encoding); } +void vpdpbuud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F38 | T_W0 | T_YMM, 0x50); } +void vpdpbuuds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F38 | T_W0 | T_YMM, 0x51); } +void vpdpwssd(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x52, encoding); } +void vpdpwssds(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x53, encoding); } +void vpdpwsud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F38 | T_W0 | T_YMM, 0xD2); } +void vpdpwsuds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F38 | T_W0 | T_YMM, 0xD3); } +void vpdpwusd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_YMM, 0xD2); } +void vpdpwusds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_YMM, 0xD3); } +void vpdpwuud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F38 | T_W0 | T_YMM, 0xD2); } +void vpdpwuuds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F38 | T_W0 | T_YMM, 0xD3); } void vperm2f128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { if (!(y1.isYMM() && y2.isYMM() && op.isYMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(y1, &y2, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x06, imm); } void vperm2i128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { if (!(y1.isYMM() && y2.isYMM() && op.isYMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(y1, &y2, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x46, imm); } void vpermd(const Ymm& y1, const Ymm& y2, const Operand& op) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x36); } @@ -1217,6 +1256,8 @@ void vpinsrb(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { if void vpinsrd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { if (!(x1.isXMM() && x2.isXMM() && (op.isREG(32) || op.isMEM()))) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x1, &x2, op, T_0F3A | T_66 | T_W0 | T_EVEX | T_EW0 | T_N4, 0x22, imm); } void vpinsrq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { if (!(x1.isXMM() && x2.isXMM() && (op.isREG(64) || op.isMEM()))) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x1, &x2, op, T_0F3A | T_66 | T_W1 | T_EVEX | T_EW1 | T_N8, 0x22, imm); } void vpinsrw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { if (!(x1.isXMM() && x2.isXMM() && (op.isREG(32) || op.isMEM()))) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x1, &x2, op, T_0F | T_66 | T_EVEX | T_N2, 0xC4, imm); } +void vpmadd52huq(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_B64, 0xB5, encoding); } +void vpmadd52luq(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_B64, 0xB4, encoding); } void vpmaddubsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x04); } void vpmaddwd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xF5); } void vpmaskmovd(const Address& addr, const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x2, x1, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x8E); } @@ -1313,8 +1354,16 @@ void vroundsd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { op void vroundss(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0, 0x0A, imm); } void vrsqrtps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_YMM, 0x52); } void vrsqrtss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F, 0x52); } +void vsha512msg1(const Ymm& y, const Xmm& x) { if (!(y.isYMM() && x.isXMM())) XBYAK_THROW(ERR_BAD_PARAMETER) opVex(y, 0, x, T_F2 | T_0F38 | T_W0 | T_YMM, 0xCC); } +void vsha512msg2(const Ymm& y1, const Ymm& y2) { if (!(y1.isYMM() && y2.isYMM())) XBYAK_THROW(ERR_BAD_PARAMETER) opVex(y1, 0, y2, T_F2 | T_0F38 | T_W0 | T_YMM, 0xCD); } +void vsha512rnds2(const Ymm& y1, const Ymm& y2, const Xmm& x) { if (!(y1.isYMM() && y2.isYMM() && x.isXMM())) XBYAK_THROW(ERR_BAD_PARAMETER) opVex(y1, &y2, x, T_F2 | T_0F38 | T_W0 | T_YMM, 0xCB); } void vshufpd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0xC6, imm); } void vshufps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0xC6, imm); } +void vsm3msg1(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F38 | T_W0 | T_EW0 | T_EVEX, 0xDA); } +void vsm3msg2(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX, 0xDA); } +void vsm3rnds2(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_EW0 | T_EVEX, 0xDE, imm); } +void vsm4key4(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F38 | T_W0 | T_EW0 | T_EVEX, 0xDA); } +void vsm4rnds4(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_0F38 | T_W0 | T_EW0 | T_EVEX, 0xDA); } void vsqrtpd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x51); } void vsqrtps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x51); } void vsqrtsd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_F2 | T_0F | T_EW1 | T_EVEX | T_ER_X, 0x51); } @@ -1339,7 +1388,10 @@ void vzeroupper() { db(0xC5); db(0xF8); db(0x77); } void wait() { db(0x9B); } void wbinvd() { db(0x0F); db(0x09); } void wrmsr() { db(0x0F); db(0x30); } +void xabort(uint8_t imm) { db(0xC6); db(0xF8); db(imm); } void xadd(const Operand& op, const Reg& reg) { opModRM(reg, op, (op.isREG() && reg.isREG() && op.getBit() == reg.getBit()), op.isMEM(), 0x0F, 0xC0 | (reg.isBit(8) ? 0 : 1)); } +void xbegin(uint32_t rel) { db(0xC7); db(0xF8); dd(rel); } +void xend() { db(0x0F); db(0x01); db(0xD5); } void xgetbv() { db(0x0F); db(0x01); db(0xD0); } void xlatb() { db(0xD7); } void xor_(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x30, 6); } @@ -1620,6 +1672,10 @@ void scasq() { db(0x48); db(0xAF); } void stosq() { db(0x48); db(0xAB); } void syscall() { db(0x0F); db(0x05); } void sysret() { db(0x0F); db(0x07); } +void clui() { db(0xF3); db(0x0F); db(0x01); db(0xEE); } +void stui() { db(0xF3); db(0x0F); db(0x01); db(0xEF); } +void testui() { db(0xF3); db(0x0F); db(0x01); db(0xED); } +void uiret() { db(0xF3); db(0x0F); db(0x01); db(0xEC); } void cmpxchg16b(const Address& addr) { opModM(addr, Reg64(1), 0x0F, 0xC7); } void fxrstor64(const Address& addr) { opModM(addr, Reg64(1), 0x0F, 0xAE); } void movq(const Reg64& reg, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModR(mmx, reg, 0x0F, 0x7E); } @@ -1627,12 +1683,29 @@ void movq(const Mmx& mmx, const Reg64& reg) { if (mmx.isXMM()) db(0x66); opModR( void movsxd(const Reg64& reg, const Operand& op) { if (!op.isBit(32)) XBYAK_THROW(ERR_BAD_COMBINATION) opModRM(reg, op, op.isREG(), op.isMEM(), 0x63); } void pextrq(const Operand& op, const Xmm& xmm, uint8_t imm) { if (!op.isREG(64) && !op.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opGen(Reg64(xmm.getIdx()), op, 0x16, 0x66, 0, imm, 0x3A); } void pinsrq(const Xmm& xmm, const Operand& op, uint8_t imm) { if (!op.isREG(64) && !op.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opGen(Reg64(xmm.getIdx()), op, 0x22, 0x66, 0, imm, 0x3A); } +void senduipi(const Reg64& r) { db(0xF3); opModR(Reg32(6), r.cvt32(), 0x0F, 0xC7); } void vcvtss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W1 | T_EVEX | T_EW1 | T_ER_X | T_N8, 0x2D); } void vcvttss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W1 | T_EVEX | T_EW1 | T_SAE_X | T_N8, 0x2C); } void vcvtsd2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F2 | T_W1 | T_EVEX | T_EW1 | T_N4 | T_ER_X, 0x2D); } void vcvttsd2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F2 | T_W1 | T_EVEX | T_EW1 | T_N4 | T_SAE_X, 0x2C); } void vmovq(const Xmm& x, const Reg64& r) { opAVX_X_X_XM(x, xm0, Xmm(r.getIdx()), T_66 | T_0F | T_W1 | T_EVEX | T_EW1, 0x6E); } void vmovq(const Reg64& r, const Xmm& x) { opAVX_X_X_XM(x, xm0, Xmm(r.getIdx()), T_66 | T_0F | T_W1 | T_EVEX | T_EW1, 0x7E); } +void cmpbexadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE6, false); } +void cmpbxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE2, false); } +void cmplexadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xEE, false); } +void cmplxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xEC, false); } +void cmpnbexadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE7, false); } +void cmpnbxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE3, false); } +void cmpnlexadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xEF, false); } +void cmpnlxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xED, false); } +void cmpnoxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE1, false); } +void cmpnpxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xEB, false); } +void cmpnsxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE9, false); } +void cmpnzxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE5, false); } +void cmpoxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE0, false); } +void cmppxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xEA, false); } +void cmpsxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE8, false); } +void cmpzxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE4, false); } void ldtilecfg(const Address& addr) { opVex(tmm0, &tmm0, addr, T_0F38 | T_W0, 0x49); } void sttilecfg(const Address& addr) { opVex(tmm0, &tmm0, addr, T_66 | T_0F38 | T_W0, 0x49); } void tileloadd(const Tmm& tm, const Address& addr) { opAMX(tm, addr, T_F2 | T_0F38 | T_W0, 0x4b); } @@ -1644,6 +1717,7 @@ void tdpbssd(const Tmm& x1, const Tmm& x2, const Tmm& x3) { opVex(x1, &x3, x2, T void tdpbsud(const Tmm& x1, const Tmm& x2, const Tmm& x3) { opVex(x1, &x3, x2, T_F3 | T_0F38 | T_W0, 0x5e); } void tdpbusd(const Tmm& x1, const Tmm& x2, const Tmm& x3) { opVex(x1, &x3, x2, T_66 | T_0F38 | T_W0, 0x5e); } void tdpbuud(const Tmm& x1, const Tmm& x2, const Tmm& x3) { opVex(x1, &x3, x2, T_0F38 | T_W0, 0x5e); } +void tdpfp16ps(const Tmm &x1, const Tmm &x2, const Tmm &x3) { opVex(x1, &x3, x2, T_F2 | T_0F38 | T_W0, 0x5c); } void tdpbf16ps(const Tmm& x1, const Tmm& x2, const Tmm& x3) { opVex(x1, &x3, x2, T_F3 | T_0F38 | T_W0, 0x5c); } #else void jcxz(std::string label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); } @@ -1898,7 +1972,6 @@ void vcompressps(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N4 | void vcompressw(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N2 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x63); } void vcvtdq2ph(const Xmm& x, const Operand& op) { checkCvt4(x, op); opCvt(x, op, T_N16 | T_N_VL | T_MAP5 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0x5B); } void vcvtne2ps2bf16(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x72); } -void vcvtneps2bf16(const Xmm& x, const Operand& op) { opCvt2(x, op, T_F3 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x72); } void vcvtpd2ph(const Xmm& x, const Operand& op) { opCvt5(x, op, T_N16 | T_N_VL | T_66 | T_MAP5 | T_EW1 | T_ER_Z | T_MUST_EVEX | T_B64, 0x5A); } void vcvtpd2qq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x7B); } void vcvtpd2udq(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x79); } @@ -2132,38 +2205,36 @@ void vpgatherqd(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N4 | T void vpgatherqq(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_VSIB, 0x91, 0); } void vplzcntd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x44); } void vplzcntq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x44); } -void vpmadd52huq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xB5); } -void vpmadd52luq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xB4); } void vpmaxsq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x3D); } void vpmaxuq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x3F); } void vpminsq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x39); } void vpminuq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x3B); } void vpmovb2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x29); } void vpmovd2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x39); } -void vpmovdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x31, false); } -void vpmovdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x33, true); } +void vpmovdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x31, false); } +void vpmovdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x33, true); } void vpmovm2b(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x28); } void vpmovm2d(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x38); } void vpmovm2q(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x38); } void vpmovm2w(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x28); } void vpmovq2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x39); } -void vpmovqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x32, false); } -void vpmovqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x35, true); } -void vpmovqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x34, false); } -void vpmovsdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x21, false); } -void vpmovsdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x23, true); } -void vpmovsqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x22, false); } -void vpmovsqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x25, true); } -void vpmovsqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x24, false); } -void vpmovswb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x20, true); } -void vpmovusdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x11, false); } -void vpmovusdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x13, true); } -void vpmovusqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x12, false); } -void vpmovusqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x15, true); } -void vpmovusqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x14, false); } -void vpmovuswb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x10, true); } +void vpmovqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x32, false); } +void vpmovqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x35, true); } +void vpmovqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x34, false); } +void vpmovsdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x21, false); } +void vpmovsdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x23, true); } +void vpmovsqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x22, false); } +void vpmovsqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x25, true); } +void vpmovsqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x24, false); } +void vpmovswb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x20, true); } +void vpmovusdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x11, false); } +void vpmovusdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x13, true); } +void vpmovusqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x12, false); } +void vpmovusqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x15, true); } +void vpmovusqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x14, false); } +void vpmovuswb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x10, true); } void vpmovw2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x29); } -void vpmovwb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x30, true); } +void vpmovwb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x30, true); } void vpmullq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x40); } void vpmultishiftqb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x83); } void vpopcntb(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x54); } diff --git a/3rdparty/xbyak/xbyak/xbyak_util.h b/3rdparty/xbyak/xbyak/xbyak_util.h index f2f651f266fed9..0bcc1349946c1f 100644 --- a/3rdparty/xbyak/xbyak/xbyak_util.h +++ b/3rdparty/xbyak/xbyak/xbyak_util.h @@ -4,12 +4,18 @@ #ifdef XBYAK_ONLY_CLASS_CPU #include #include -#include #include #ifndef XBYAK_THROW #define XBYAK_THROW(x) ; #define XBYAK_THROW_RET(x, y) return y; #endif +#ifndef XBYAK_CONSTEXPR +#if ((__cplusplus >= 201402L) && !(!defined(__clang__) && defined(__GNUC__) && (__GNUC__ <= 5))) || (defined(_MSC_VER) && _MSC_VER >= 1910) + #define XBYAK_CONSTEXPR constexpr +#else + #define XBYAK_CONSTEXPR +#endif +#endif #else #include @@ -17,7 +23,6 @@ utility class and functions for Xbyak Xbyak::util::Clock ; rdtsc timer Xbyak::util::Cpu ; detect CPU - @note this header is UNDER CONSTRUCTION! */ #include "xbyak.h" #endif // XBYAK_ONLY_CLASS_CPU @@ -27,8 +32,8 @@ #endif #ifdef XBYAK_INTEL_CPU_SPECIFIC -#ifdef _MSC_VER - #if (_MSC_VER < 1400) && defined(XBYAK32) +#ifdef _WIN32 + #if defined(_MSC_VER) && (_MSC_VER < 1400) && defined(XBYAK32) static inline __declspec(naked) void __cpuid(int[4], int) { __asm { @@ -88,32 +93,69 @@ typedef enum { CoreLevel = 2 } IntelCpuTopologyLevel; +namespace local { + +template +struct TypeT { +}; + +template +XBYAK_CONSTEXPR TypeT operator|(TypeT, TypeT) { return TypeT(); } + +template +inline T max_(T x, T y) { return x >= y ? x : y; } +template +inline T min_(T x, T y) { return x < y ? x : y; } + +} // local + /** CPU detection class + @note static inline const member is supported by c++17 or later, so use template hack */ class Cpu { - uint64_t type_; +public: + class Type { + uint64_t L; + uint64_t H; + public: + Type(uint64_t L = 0, uint64_t H = 0) : L(L), H(H) { } + template + Type(local::TypeT) : L(L_), H(H_) {} + Type& operator&=(const Type& rhs) { L &= rhs.L; H &= rhs.H; return *this; } + Type& operator|=(const Type& rhs) { L |= rhs.L; H |= rhs.H; return *this; } + Type operator&(const Type& rhs) const { Type t = *this; t &= rhs; return t; } + Type operator|(const Type& rhs) const { Type t = *this; t |= rhs; return t; } + bool operator==(const Type& rhs) const { return H == rhs.H && L == rhs.L; } + bool operator!=(const Type& rhs) const { return !operator==(rhs); } + // without explicit because backward compatilibity + operator bool() const { return (H | L) != 0; } + uint64_t getL() const { return L; } + uint64_t getH() const { return H; } + }; +private: + Type type_; //system topology bool x2APIC_supported_; static const size_t maxTopologyLevels = 2; - unsigned int numCores_[maxTopologyLevels]; + uint32_t numCores_[maxTopologyLevels]; - static const unsigned int maxNumberCacheLevels = 10; - unsigned int dataCacheSize_[maxNumberCacheLevels]; - unsigned int coresSharignDataCache_[maxNumberCacheLevels]; - unsigned int dataCacheLevels_; + static const uint32_t maxNumberCacheLevels = 10; + uint32_t dataCacheSize_[maxNumberCacheLevels]; + uint32_t coresSharignDataCache_[maxNumberCacheLevels]; + uint32_t dataCacheLevels_; - unsigned int get32bitAsBE(const char *x) const + uint32_t get32bitAsBE(const char *x) const { return x[0] | (x[1] << 8) | (x[2] << 16) | (x[3] << 24); } - unsigned int mask(int n) const + uint32_t mask(int n) const { return (1U << n) - 1; } void setFamily() { - unsigned int data[4] = {}; + uint32_t data[4] = {}; getCpuid(1, data); stepping = data[0] & mask(4); model = (data[0] >> 4) & mask(4); @@ -132,17 +174,15 @@ class Cpu { displayModel = model; } } - unsigned int extractBit(unsigned int val, unsigned int base, unsigned int end) + uint32_t extractBit(uint32_t val, uint32_t base, uint32_t end) { return (val >> base) & ((1u << (end - base)) - 1); } void setNumCores() { - if ((type_ & tINTEL) == 0) return; + if (!has(tINTEL) && !has(tAMD)) return; - unsigned int data[4] = {}; - - /* CAUTION: These numbers are configuration as shipped by Intel. */ + uint32_t data[4] = {}; getCpuidEx(0x0, 0, data); if (data[0] >= 0xB) { /* @@ -152,7 +192,7 @@ class Cpu { leaf 0xB can be zeroed-out by a hypervisor */ x2APIC_supported_ = true; - for (unsigned int i = 0; i < maxTopologyLevels; i++) { + for (uint32_t i = 0; i < maxTopologyLevels; i++) { getCpuidEx(0xB, i, data); IntelCpuTopologyLevel level = (IntelCpuTopologyLevel)extractBit(data[2], 8, 15); if (level == SmtLevel || level == CoreLevel) { @@ -162,8 +202,8 @@ class Cpu { /* Fallback values in case a hypervisor has 0xB leaf zeroed-out. */ - numCores_[SmtLevel - 1] = (std::max)(1u, numCores_[SmtLevel - 1]); - numCores_[CoreLevel - 1] = (std::max)(numCores_[SmtLevel - 1], numCores_[CoreLevel - 1]); + numCores_[SmtLevel - 1] = local::max_(1u, numCores_[SmtLevel - 1]); + numCores_[CoreLevel - 1] = local::max_(numCores_[SmtLevel - 1], numCores_[CoreLevel - 1]); } else { /* Failed to deremine num of cores without x2APIC support. @@ -176,14 +216,55 @@ class Cpu { } void setCacheHierarchy() { - if ((type_ & tINTEL) == 0) return; - const unsigned int NO_CACHE = 0; - const unsigned int DATA_CACHE = 1; -// const unsigned int INSTRUCTION_CACHE = 2; - const unsigned int UNIFIED_CACHE = 3; - unsigned int smt_width = 0; - unsigned int logical_cores = 0; - unsigned int data[4] = {}; + if (!has(tINTEL) && !has(tAMD)) return; + + // https://github.com/amd/ZenDNN/blob/a08bf9a9efc160a69147cdecfb61cc85cc0d4928/src/cpu/x64/xbyak/xbyak_util.h#L236-L288 + if (has(tAMD)) { + // There are 3 Data Cache Levels (L1, L2, L3) + dataCacheLevels_ = 3; + const uint32_t leaf = 0x8000001D; // for modern AMD CPus + // Sub leaf value ranges from 0 to 3 + // Sub leaf value 0 refers to L1 Data Cache + // Sub leaf value 1 refers to L1 Instruction Cache + // Sub leaf value 2 refers to L2 Cache + // Sub leaf value 3 refers to L3 Cache + // For legacy AMD CPU, use leaf 0x80000005 for L1 cache + // and 0x80000006 for L2 and L3 cache + int cache_index = 0; + for (uint32_t sub_leaf = 0; sub_leaf <= dataCacheLevels_; sub_leaf++) { + // Skip sub_leaf = 1 as it refers to + // L1 Instruction Cache (not required) + if (sub_leaf == 1) { + continue; + } + uint32_t data[4] = {}; + getCpuidEx(leaf, sub_leaf, data); + // Cache Size = Line Size * Partitions * Associativity * Cache Sets + dataCacheSize_[cache_index] = + (extractBit(data[1], 22, 31) + 1) // Associativity-1 + * (extractBit(data[1], 12, 21) + 1) // Partitions-1 + * (extractBit(data[1], 0, 11) + 1) // Line Size + * (data[2] + 1); + // Calculate the number of cores sharing the current data cache + int smt_width = numCores_[0]; + int logical_cores = numCores_[1]; + int actual_logical_cores = extractBit(data[0], 14, 25) /* # of cores * # of threads */ + 1; + if (logical_cores != 0) { + actual_logical_cores = local::min_(actual_logical_cores, logical_cores); + } + coresSharignDataCache_[cache_index] = local::max_(actual_logical_cores / smt_width, 1); + ++cache_index; + } + return; + } + // intel + const uint32_t NO_CACHE = 0; + const uint32_t DATA_CACHE = 1; +// const uint32_t INSTRUCTION_CACHE = 2; + const uint32_t UNIFIED_CACHE = 3; + uint32_t smt_width = 0; + uint32_t logical_cores = 0; + uint32_t data[4] = {}; if (x2APIC_supported_) { smt_width = numCores_[0]; @@ -201,12 +282,12 @@ class Cpu { */ for (int i = 0; dataCacheLevels_ < maxNumberCacheLevels; i++) { getCpuidEx(0x4, i, data); - unsigned int cacheType = extractBit(data[0], 0, 4); + uint32_t cacheType = extractBit(data[0], 0, 4); if (cacheType == NO_CACHE) break; if (cacheType == DATA_CACHE || cacheType == UNIFIED_CACHE) { - unsigned int actual_logical_cores = extractBit(data[0], 14, 25) + 1; + uint32_t actual_logical_cores = extractBit(data[0], 14, 25) + 1; if (logical_cores != 0) { // true only if leaf 0xB is supported and valid - actual_logical_cores = (std::min)(actual_logical_cores, logical_cores); + actual_logical_cores = local::min_(actual_logical_cores, logical_cores); } assert(actual_logical_cores != 0); dataCacheSize_[dataCacheLevels_] = @@ -216,7 +297,7 @@ class Cpu { * (data[2] + 1); if (cacheType == DATA_CACHE && smt_width == 0) smt_width = actual_logical_cores; assert(smt_width != 0); - coresSharignDataCache_[dataCacheLevels_] = (std::max)(actual_logical_cores / smt_width, 1u); + coresSharignDataCache_[dataCacheLevels_] = local::max_(actual_logical_cores / smt_width, 1u); dataCacheLevels_++; } } @@ -231,7 +312,7 @@ class Cpu { int displayFamily; // family + extFamily int displayModel; // model + extModel - unsigned int getNumCores(IntelCpuTopologyLevel level) const { + uint32_t getNumCores(IntelCpuTopologyLevel level) const { if (!x2APIC_supported_) XBYAK_THROW_RET(ERR_X2APIC_IS_NOT_SUPPORTED, 0) switch (level) { case SmtLevel: return numCores_[level - 1]; @@ -240,13 +321,13 @@ class Cpu { } } - unsigned int getDataCacheLevels() const { return dataCacheLevels_; } - unsigned int getCoresSharingDataCache(unsigned int i) const + uint32_t getDataCacheLevels() const { return dataCacheLevels_; } + uint32_t getCoresSharingDataCache(uint32_t i) const { if (i >= dataCacheLevels_) XBYAK_THROW_RET(ERR_BAD_PARAMETER, 0) return coresSharignDataCache_[i]; } - unsigned int getDataCacheSize(unsigned int i) const + uint32_t getDataCacheSize(uint32_t i) const { if (i >= dataCacheLevels_) XBYAK_THROW_RET(ERR_BAD_PARAMETER, 0) return dataCacheSize_[i]; @@ -255,10 +336,10 @@ class Cpu { /* data[] = { eax, ebx, ecx, edx } */ - static inline void getCpuid(unsigned int eaxIn, unsigned int data[4]) + static inline void getCpuid(uint32_t eaxIn, uint32_t data[4]) { #ifdef XBYAK_INTEL_CPU_SPECIFIC - #ifdef _MSC_VER + #ifdef _WIN32 __cpuid(reinterpret_cast(data), eaxIn); #else __cpuid(eaxIn, data[0], data[1], data[2], data[3]); @@ -268,10 +349,10 @@ class Cpu { (void)data; #endif } - static inline void getCpuidEx(unsigned int eaxIn, unsigned int ecxIn, unsigned int data[4]) + static inline void getCpuidEx(uint32_t eaxIn, uint32_t ecxIn, uint32_t data[4]) { #ifdef XBYAK_INTEL_CPU_SPECIFIC - #ifdef _MSC_VER + #ifdef _WIN32 __cpuidex(reinterpret_cast(data), eaxIn, ecxIn); #else __cpuid_count(eaxIn, ecxIn, data[0], data[1], data[2], data[3]); @@ -288,7 +369,7 @@ class Cpu { #ifdef _MSC_VER return _xgetbv(0); #else - unsigned int eax, edx; + uint32_t eax, edx; // xgetvb is not support on gcc 4.2 // __asm__ volatile("xgetbv" : "=a"(eax), "=d"(edx) : "c"(0)); __asm__ volatile(".byte 0x0f, 0x01, 0xd0" : "=a"(eax), "=d"(edx) : "c"(0)); @@ -298,93 +379,116 @@ class Cpu { return 0; #endif } - typedef uint64_t Type; - - static const Type NONE = 0; - static const Type tMMX = 1 << 0; - static const Type tMMX2 = 1 << 1; - static const Type tCMOV = 1 << 2; - static const Type tSSE = 1 << 3; - static const Type tSSE2 = 1 << 4; - static const Type tSSE3 = 1 << 5; - static const Type tSSSE3 = 1 << 6; - static const Type tSSE41 = 1 << 7; - static const Type tSSE42 = 1 << 8; - static const Type tPOPCNT = 1 << 9; - static const Type tAESNI = 1 << 10; - static const Type tOSXSAVE = 1 << 12; - static const Type tPCLMULQDQ = 1 << 13; - static const Type tAVX = 1 << 14; - static const Type tFMA = 1 << 15; - - static const Type t3DN = 1 << 16; - static const Type tE3DN = 1 << 17; - static const Type tRDTSCP = 1 << 19; - static const Type tAVX2 = 1 << 20; - static const Type tBMI1 = 1 << 21; // andn, bextr, blsi, blsmsk, blsr, tzcnt - static const Type tBMI2 = 1 << 22; // bzhi, mulx, pdep, pext, rorx, sarx, shlx, shrx - static const Type tLZCNT = 1 << 23; - - static const Type tINTEL = 1 << 24; - static const Type tAMD = 1 << 25; - - static const Type tENHANCED_REP = 1 << 26; // enhanced rep movsb/stosb - static const Type tRDRAND = 1 << 27; - static const Type tADX = 1 << 28; // adcx, adox - static const Type tRDSEED = 1 << 29; // rdseed - static const Type tSMAP = 1 << 30; // stac - static const Type tHLE = uint64_t(1) << 31; // xacquire, xrelease, xtest - static const Type tRTM = uint64_t(1) << 32; // xbegin, xend, xabort - static const Type tF16C = uint64_t(1) << 33; // vcvtph2ps, vcvtps2ph - static const Type tMOVBE = uint64_t(1) << 34; // mobve - static const Type tAVX512F = uint64_t(1) << 35; - static const Type tAVX512DQ = uint64_t(1) << 36; - static const Type tAVX512_IFMA = uint64_t(1) << 37; - static const Type tAVX512IFMA = tAVX512_IFMA; - static const Type tAVX512PF = uint64_t(1) << 38; - static const Type tAVX512ER = uint64_t(1) << 39; - static const Type tAVX512CD = uint64_t(1) << 40; - static const Type tAVX512BW = uint64_t(1) << 41; - static const Type tAVX512VL = uint64_t(1) << 42; - static const Type tAVX512_VBMI = uint64_t(1) << 43; - static const Type tAVX512VBMI = tAVX512_VBMI; // changed by Intel's manual - static const Type tAVX512_4VNNIW = uint64_t(1) << 44; - static const Type tAVX512_4FMAPS = uint64_t(1) << 45; - static const Type tPREFETCHWT1 = uint64_t(1) << 46; - static const Type tPREFETCHW = uint64_t(1) << 47; - static const Type tSHA = uint64_t(1) << 48; - static const Type tMPX = uint64_t(1) << 49; - static const Type tAVX512_VBMI2 = uint64_t(1) << 50; - static const Type tGFNI = uint64_t(1) << 51; - static const Type tVAES = uint64_t(1) << 52; - static const Type tVPCLMULQDQ = uint64_t(1) << 53; - static const Type tAVX512_VNNI = uint64_t(1) << 54; - static const Type tAVX512_BITALG = uint64_t(1) << 55; - static const Type tAVX512_VPOPCNTDQ = uint64_t(1) << 56; - static const Type tAVX512_BF16 = uint64_t(1) << 57; - static const Type tAVX512_VP2INTERSECT = uint64_t(1) << 58; - static const Type tAMX_TILE = uint64_t(1) << 59; - static const Type tAMX_INT8 = uint64_t(1) << 60; - static const Type tAMX_BF16 = uint64_t(1) << 61; - static const Type tAVX_VNNI = uint64_t(1) << 62; - static const Type tAVX512_FP16 = uint64_t(1) << 11; - // 18, 63 + +#define XBYAK_SPLIT_ID(id) ((0 <= id && id < 64) ? (1ull << (id % 64)) : 0), (id >= 64 ? (1ull << (id % 64)) : 0) +#if (__cplusplus >= 201103) || (defined(_MSC_VER) && (_MSC_VER >= 1700)) /* VS2012 */ + #define XBYAK_DEFINE_TYPE(id, NAME) static const constexpr local::TypeT NAME{} +#else + #define XBYAK_DEFINE_TYPE(id, NAME) static const local::TypeT NAME +#endif + XBYAK_DEFINE_TYPE(0, tMMX); + XBYAK_DEFINE_TYPE(1, tMMX2); + XBYAK_DEFINE_TYPE(2, tCMOV); + XBYAK_DEFINE_TYPE(3, tSSE); + XBYAK_DEFINE_TYPE(4, tSSE2); + XBYAK_DEFINE_TYPE(5, tSSE3); + XBYAK_DEFINE_TYPE(6, tSSSE3); + XBYAK_DEFINE_TYPE(7, tSSE41); + XBYAK_DEFINE_TYPE(8, tSSE42); + XBYAK_DEFINE_TYPE(9, tPOPCNT); + XBYAK_DEFINE_TYPE(10, tAESNI); + XBYAK_DEFINE_TYPE(11, tAVX512_FP16); + XBYAK_DEFINE_TYPE(12, tOSXSAVE); + XBYAK_DEFINE_TYPE(13, tPCLMULQDQ); + XBYAK_DEFINE_TYPE(14, tAVX); + XBYAK_DEFINE_TYPE(15, tFMA); + XBYAK_DEFINE_TYPE(16, t3DN); + XBYAK_DEFINE_TYPE(17, tE3DN); + XBYAK_DEFINE_TYPE(18, tWAITPKG); + XBYAK_DEFINE_TYPE(19, tRDTSCP); + XBYAK_DEFINE_TYPE(20, tAVX2); + XBYAK_DEFINE_TYPE(21, tBMI1); // andn, bextr, blsi, blsmsk, blsr, tzcnt + XBYAK_DEFINE_TYPE(22, tBMI2); // bzhi, mulx, pdep, pext, rorx, sarx, shlx, shrx + XBYAK_DEFINE_TYPE(23, tLZCNT); + XBYAK_DEFINE_TYPE(24, tINTEL); + XBYAK_DEFINE_TYPE(25, tAMD); + XBYAK_DEFINE_TYPE(26, tENHANCED_REP); // enhanced rep movsb/stosb + XBYAK_DEFINE_TYPE(27, tRDRAND); + XBYAK_DEFINE_TYPE(28, tADX); // adcx, adox + XBYAK_DEFINE_TYPE(29, tRDSEED); // rdseed + XBYAK_DEFINE_TYPE(30, tSMAP); // stac + XBYAK_DEFINE_TYPE(31, tHLE); // xacquire, xrelease, xtest + XBYAK_DEFINE_TYPE(32, tRTM); // xbegin, xend, xabort + XBYAK_DEFINE_TYPE(33, tF16C); // vcvtph2ps, vcvtps2ph + XBYAK_DEFINE_TYPE(34, tMOVBE); // mobve + XBYAK_DEFINE_TYPE(35, tAVX512F); + XBYAK_DEFINE_TYPE(36, tAVX512DQ); + XBYAK_DEFINE_TYPE(37, tAVX512_IFMA); + XBYAK_DEFINE_TYPE(37, tAVX512IFMA);// = tAVX512_IFMA; + XBYAK_DEFINE_TYPE(38, tAVX512PF); + XBYAK_DEFINE_TYPE(39, tAVX512ER); + XBYAK_DEFINE_TYPE(40, tAVX512CD); + XBYAK_DEFINE_TYPE(41, tAVX512BW); + XBYAK_DEFINE_TYPE(42, tAVX512VL); + XBYAK_DEFINE_TYPE(43, tAVX512_VBMI); + XBYAK_DEFINE_TYPE(43, tAVX512VBMI); // = tAVX512_VBMI; // changed by Intel's manual + XBYAK_DEFINE_TYPE(44, tAVX512_4VNNIW); + XBYAK_DEFINE_TYPE(45, tAVX512_4FMAPS); + XBYAK_DEFINE_TYPE(46, tPREFETCHWT1); + XBYAK_DEFINE_TYPE(47, tPREFETCHW); + XBYAK_DEFINE_TYPE(48, tSHA); + XBYAK_DEFINE_TYPE(49, tMPX); + XBYAK_DEFINE_TYPE(50, tAVX512_VBMI2); + XBYAK_DEFINE_TYPE(51, tGFNI); + XBYAK_DEFINE_TYPE(52, tVAES); + XBYAK_DEFINE_TYPE(53, tVPCLMULQDQ); + XBYAK_DEFINE_TYPE(54, tAVX512_VNNI); + XBYAK_DEFINE_TYPE(55, tAVX512_BITALG); + XBYAK_DEFINE_TYPE(56, tAVX512_VPOPCNTDQ); + XBYAK_DEFINE_TYPE(57, tAVX512_BF16); + XBYAK_DEFINE_TYPE(58, tAVX512_VP2INTERSECT); + XBYAK_DEFINE_TYPE(59, tAMX_TILE); + XBYAK_DEFINE_TYPE(60, tAMX_INT8); + XBYAK_DEFINE_TYPE(61, tAMX_BF16); + XBYAK_DEFINE_TYPE(62, tAVX_VNNI); + XBYAK_DEFINE_TYPE(63, tCLFLUSHOPT); + XBYAK_DEFINE_TYPE(64, tCLDEMOTE); + XBYAK_DEFINE_TYPE(65, tMOVDIRI); + XBYAK_DEFINE_TYPE(66, tMOVDIR64B); + XBYAK_DEFINE_TYPE(67, tCLZERO); // AMD Zen + XBYAK_DEFINE_TYPE(68, tAMX_FP16); + XBYAK_DEFINE_TYPE(69, tAVX_VNNI_INT8); + XBYAK_DEFINE_TYPE(70, tAVX_NE_CONVERT); + XBYAK_DEFINE_TYPE(71, tAVX_IFMA); + XBYAK_DEFINE_TYPE(72, tRAO_INT); + XBYAK_DEFINE_TYPE(73, tCMPCCXADD); + XBYAK_DEFINE_TYPE(74, tPREFETCHITI); + XBYAK_DEFINE_TYPE(75, tSERIALIZE); + XBYAK_DEFINE_TYPE(76, tUINTR); + XBYAK_DEFINE_TYPE(77, tXSAVE); + XBYAK_DEFINE_TYPE(78, tSHA512); + XBYAK_DEFINE_TYPE(79, tSM3); + XBYAK_DEFINE_TYPE(80, tSM4); + XBYAK_DEFINE_TYPE(81, tAVX_VNNI_INT16); + +#undef XBYAK_SPLIT_ID +#undef XBYAK_DEFINE_TYPE Cpu() - : type_(NONE) + : type_() , x2APIC_supported_(false) , numCores_() , dataCacheSize_() , coresSharignDataCache_() , dataCacheLevels_(0) { - unsigned int data[4] = {}; - const unsigned int& EAX = data[0]; - const unsigned int& EBX = data[1]; - const unsigned int& ECX = data[2]; - const unsigned int& EDX = data[3]; + uint32_t data[4] = {}; + const uint32_t& EAX = data[0]; + const uint32_t& EBX = data[1]; + const uint32_t& ECX = data[2]; + const uint32_t& EDX = data[3]; getCpuid(0, data); - const unsigned int maxNum = EAX; + const uint32_t maxNum = EAX; static const char intel[] = "ntel"; static const char amd[] = "cAMD"; if (ECX == get32bitAsBE(amd)) { @@ -407,7 +511,8 @@ class Cpu { // Extended flags information getCpuid(0x80000000, data); - if (EAX >= 0x80000001) { + const uint32_t maxExtendedNum = EAX; + if (maxExtendedNum >= 0x80000001) { getCpuid(0x80000001, data); if (EDX & (1U << 31)) type_ |= t3DN; @@ -419,15 +524,21 @@ class Cpu { if (ECX & (1U << 8)) type_ |= tPREFETCHW; } + if (maxExtendedNum >= 0x80000008) { + getCpuid(0x80000008, data); + if (EBX & (1U << 0)) type_ |= tCLZERO; + } + getCpuid(1, data); if (ECX & (1U << 0)) type_ |= tSSE3; + if (ECX & (1U << 1)) type_ |= tPCLMULQDQ; if (ECX & (1U << 9)) type_ |= tSSSE3; if (ECX & (1U << 19)) type_ |= tSSE41; if (ECX & (1U << 20)) type_ |= tSSE42; if (ECX & (1U << 22)) type_ |= tMOVBE; if (ECX & (1U << 23)) type_ |= tPOPCNT; if (ECX & (1U << 25)) type_ |= tAESNI; - if (ECX & (1U << 1)) type_ |= tPCLMULQDQ; + if (ECX & (1U << 26)) type_ |= tXSAVE; if (ECX & (1U << 27)) type_ |= tOSXSAVE; if (ECX & (1U << 30)) type_ |= tRDRAND; if (ECX & (1U << 29)) type_ |= tF16C; @@ -460,9 +571,6 @@ class Cpu { if (EBX & (1U << 31)) type_ |= tAVX512VL; if (ECX & (1U << 1)) type_ |= tAVX512_VBMI; if (ECX & (1U << 6)) type_ |= tAVX512_VBMI2; - if (ECX & (1U << 8)) type_ |= tGFNI; - if (ECX & (1U << 9)) type_ |= tVAES; - if (ECX & (1U << 10)) type_ |= tVPCLMULQDQ; if (ECX & (1U << 11)) type_ |= tAVX512_VNNI; if (ECX & (1U << 12)) type_ |= tAVX512_BITALG; if (ECX & (1U << 14)) type_ |= tAVX512_VPOPCNTDQ; @@ -484,20 +592,41 @@ class Cpu { if (EBX & (1U << 18)) type_ |= tRDSEED; if (EBX & (1U << 19)) type_ |= tADX; if (EBX & (1U << 20)) type_ |= tSMAP; + if (EBX & (1U << 23)) type_ |= tCLFLUSHOPT; if (EBX & (1U << 4)) type_ |= tHLE; if (EBX & (1U << 11)) type_ |= tRTM; if (EBX & (1U << 14)) type_ |= tMPX; if (EBX & (1U << 29)) type_ |= tSHA; if (ECX & (1U << 0)) type_ |= tPREFETCHWT1; + if (ECX & (1U << 5)) type_ |= tWAITPKG; + if (ECX & (1U << 8)) type_ |= tGFNI; + if (ECX & (1U << 9)) type_ |= tVAES; + if (ECX & (1U << 10)) type_ |= tVPCLMULQDQ; + if (ECX & (1U << 25)) type_ |= tCLDEMOTE; + if (ECX & (1U << 27)) type_ |= tMOVDIRI; + if (ECX & (1U << 28)) type_ |= tMOVDIR64B; + if (EDX & (1U << 5)) type_ |= tUINTR; + if (EDX & (1U << 14)) type_ |= tSERIALIZE; + if (EDX & (1U << 22)) type_ |= tAMX_BF16; if (EDX & (1U << 24)) type_ |= tAMX_TILE; if (EDX & (1U << 25)) type_ |= tAMX_INT8; - if (EDX & (1U << 22)) type_ |= tAMX_BF16; if (maxNumSubLeaves >= 1) { getCpuidEx(7, 1, data); + if (EAX & (1U << 0)) type_ |= tSHA512; + if (EAX & (1U << 1)) type_ |= tSM3; + if (EAX & (1U << 2)) type_ |= tSM4; + if (EAX & (1U << 3)) type_ |= tRAO_INT; if (EAX & (1U << 4)) type_ |= tAVX_VNNI; if (type_ & tAVX512F) { if (EAX & (1U << 5)) type_ |= tAVX512_BF16; } + if (EAX & (1U << 7)) type_ |= tCMPCCXADD; + if (EAX & (1U << 21)) type_ |= tAMX_FP16; + if (EAX & (1U << 23)) type_ |= tAVX_IFMA; + if (EDX & (1U << 4)) type_ |= tAVX_VNNI_INT8; + if (EDX & (1U << 5)) type_ |= tAVX_NE_CONVERT; + if (EDX & (1U << 10)) type_ |= tAVX_VNNI_INT16; + if (EDX & (1U << 14)) type_ |= tPREFETCHITI; } } setFamily(); @@ -512,9 +641,9 @@ class Cpu { printf("display:family=%X, model=%X\n", displayFamily, displayModel); #endif } - bool has(Type type) const + bool has(const Type& type) const { - return (type & type_) != 0; + return (type & type_) == type; } }; @@ -527,7 +656,7 @@ class Clock { #ifdef _MSC_VER return __rdtsc(); #else - unsigned int eax, edx; + uint32_t eax, edx; __asm__ volatile("rdtsc" : "=a"(eax), "=d"(edx)); return ((uint64_t)edx << 32) | eax; #endif @@ -564,7 +693,7 @@ const int UseRDX = 1 << 7; class Pack { static const size_t maxTblNum = 15; - const Xbyak::Reg64 *tbl_[maxTblNum]; + Xbyak::Reg64 tbl_[maxTblNum]; size_t n_; public: Pack() : tbl_(), n_(0) {} @@ -581,32 +710,36 @@ class Pack { return *this; } Pack(const Xbyak::Reg64& t0) - { n_ = 1; tbl_[0] = &t0; } + { n_ = 1; tbl_[0] = t0; } Pack(const Xbyak::Reg64& t1, const Xbyak::Reg64& t0) - { n_ = 2; tbl_[0] = &t0; tbl_[1] = &t1; } + { n_ = 2; tbl_[0] = t0; tbl_[1] = t1; } Pack(const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0) - { n_ = 3; tbl_[0] = &t0; tbl_[1] = &t1; tbl_[2] = &t2; } + { n_ = 3; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; } Pack(const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0) - { n_ = 4; tbl_[0] = &t0; tbl_[1] = &t1; tbl_[2] = &t2; tbl_[3] = &t3; } + { n_ = 4; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; } Pack(const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0) - { n_ = 5; tbl_[0] = &t0; tbl_[1] = &t1; tbl_[2] = &t2; tbl_[3] = &t3; tbl_[4] = &t4; } + { n_ = 5; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; } Pack(const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0) - { n_ = 6; tbl_[0] = &t0; tbl_[1] = &t1; tbl_[2] = &t2; tbl_[3] = &t3; tbl_[4] = &t4; tbl_[5] = &t5; } + { n_ = 6; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; } Pack(const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0) - { n_ = 7; tbl_[0] = &t0; tbl_[1] = &t1; tbl_[2] = &t2; tbl_[3] = &t3; tbl_[4] = &t4; tbl_[5] = &t5; tbl_[6] = &t6; } + { n_ = 7; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; } Pack(const Xbyak::Reg64& t7, const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0) - { n_ = 8; tbl_[0] = &t0; tbl_[1] = &t1; tbl_[2] = &t2; tbl_[3] = &t3; tbl_[4] = &t4; tbl_[5] = &t5; tbl_[6] = &t6; tbl_[7] = &t7; } + { n_ = 8; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; tbl_[7] = t7; } Pack(const Xbyak::Reg64& t8, const Xbyak::Reg64& t7, const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0) - { n_ = 9; tbl_[0] = &t0; tbl_[1] = &t1; tbl_[2] = &t2; tbl_[3] = &t3; tbl_[4] = &t4; tbl_[5] = &t5; tbl_[6] = &t6; tbl_[7] = &t7; tbl_[8] = &t8; } + { n_ = 9; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; tbl_[7] = t7; tbl_[8] = t8; } Pack(const Xbyak::Reg64& t9, const Xbyak::Reg64& t8, const Xbyak::Reg64& t7, const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0) - { n_ = 10; tbl_[0] = &t0; tbl_[1] = &t1; tbl_[2] = &t2; tbl_[3] = &t3; tbl_[4] = &t4; tbl_[5] = &t5; tbl_[6] = &t6; tbl_[7] = &t7; tbl_[8] = &t8; tbl_[9] = &t9; } + { n_ = 10; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; tbl_[7] = t7; tbl_[8] = t8; tbl_[9] = t9; } + Pack(const Xbyak::Reg64& ta, const Xbyak::Reg64& t9, const Xbyak::Reg64& t8, const Xbyak::Reg64& t7, const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0) + { n_ = 11; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; tbl_[7] = t7; tbl_[8] = t8; tbl_[9] = t9; tbl_[10] = ta; } + Pack(const Xbyak::Reg64& tb, const Xbyak::Reg64& ta, const Xbyak::Reg64& t9, const Xbyak::Reg64& t8, const Xbyak::Reg64& t7, const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0) + { n_ = 12; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; tbl_[7] = t7; tbl_[8] = t8; tbl_[9] = t9; tbl_[10] = ta; tbl_[11] = tb; } Pack& append(const Xbyak::Reg64& t) { if (n_ == maxTblNum) { fprintf(stderr, "ERR Pack::can't append\n"); XBYAK_THROW_RET(ERR_BAD_PARAMETER, *this) } - tbl_[n_++] = &t; + tbl_[n_++] = t; return *this; } void init(const Xbyak::Reg64 *tbl, size_t n) @@ -617,7 +750,7 @@ class Pack { } n_ = n; for (size_t i = 0; i < n; i++) { - tbl_[i] = &tbl[i]; + tbl_[i] = tbl[i]; } } const Xbyak::Reg64& operator[](size_t n) const @@ -626,7 +759,7 @@ class Pack { fprintf(stderr, "ERR Pack bad n=%d(%d)\n", (int)n, (int)n_); XBYAK_THROW_RET(ERR_BAD_PARAMETER, rax) } - return *tbl_[n]; + return tbl_[n]; } size_t size() const { return n_; } /* @@ -649,7 +782,7 @@ class Pack { void put() const { for (size_t i = 0; i < n_; i++) { - printf("%s ", tbl_[i]->toString()); + printf("%s ", tbl_[i].toString()); } printf("\n"); } @@ -716,7 +849,7 @@ class StackFrame { const int allRegNum = pNum + tNum_ + (useRcx_ ? 1 : 0) + (useRdx_ ? 1 : 0); if (tNum_ < 0 || allRegNum > maxRegNum) XBYAK_THROW(ERR_BAD_TNUM) const Reg64& _rsp = code->rsp; - saveNum_ = (std::max)(0, allRegNum - noSaveNum); + saveNum_ = local::max_(0, allRegNum - noSaveNum); const int *tbl = getOrderTbl() + noSaveNum; for (int i = 0; i < saveNum_; i++) { code->push(Reg64(tbl[i])); diff --git a/3rdparty/xz/xz b/3rdparty/xz/xz index 3d566cd519017e..49053c0a649f4c 160000 --- a/3rdparty/xz/xz +++ b/3rdparty/xz/xz @@ -1 +1 @@ -Subproject commit 3d566cd519017eee1a400e7961ff14058dfaf33c +Subproject commit 49053c0a649f4c8bd2b8d97ce915f401fbc0f3d9 diff --git a/README.md b/README.md index 01ffe1d546eea8..99d127cf85d212 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ _Note1: Recommended Single Thread Performance is based on moderately complex gam _Note2: Recommended GPU is based on 3x Internal, ~1080p resolution requirements. Higher resolutions will require stronger cards; 6x Internal, ~4K resolution will require a [PassMark G3D Mark](https://www.videocardbenchmark.net/high_end_gpus.html) rating around 12000 (GeForce RTX 2060 Radeon RX 6600 Intel Arc A750). Just like CPU requirements, this is also highly game dependent. A quick reference for GPU **intensive games**: [Wiki](https://wiki.pcsx2.net/Category:GPU_intensive_games)_ -### Technical Notes +## Technical Notes - You need the [Visual C++ 2019 x64 Redistributables](https://support.microsoft.com/en-us/help/2977003/) to run PCSX2 on Windows. - Windows XP and Direct3D9 support was dropped after stable release 1.4.0. @@ -52,4 +52,9 @@ _Note2: Recommended GPU is based on 3x Internal, ~1080p resolution requirements. - Requirements benchmarks are based on a statistic from the Passmark CPU bench marking software. When we say "STR", we are referring to Passmark's "Single Thread Rating" statistic. You can look up your CPU on [Passmark's website for CPUs](https://cpubenchmark.net) to see how it compares to PCSX2's requirements. - Vulkan requires an up-to-date GPU driver; old drivers may cause graphical problems. +## Contributing / Building +Want to contribute to the development of PCSX2? + +See the [Contributing Guidelines](https://github.com/PCSX2/pcsx2/blob/master/.github/CONTRIBUTING.md) or visit the [GitHub Wiki](https://github.com/PCSX2/pcsx2/wiki) + Want more? [Check out the PCSX2 website](https://pcsx2.net/). diff --git a/bin/resources/GameIndex.yaml b/bin/resources/GameIndex.yaml index aad1298ab50c00..36db2663825604 100644 --- a/bin/resources/GameIndex.yaml +++ b/bin/resources/GameIndex.yaml @@ -1186,6 +1186,9 @@ SCAJ-20068: SCAJ-20069: name: "Gallop Racer - Lucky 7" region: "NTSC-Unk" + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SCAJ-20070: name: "Star Ocean 3 [Director's Cut]" region: "NTSC-Unk" @@ -1445,6 +1448,8 @@ SCAJ-20118: region: "NTSC-J" gameFixes: - VuAddSubHack + clampModes: + eeClampMode: 2 # Fixes incorrect model position. gsHWFixes: alignSprite: 1 # Fixes vertical bars. halfPixelOffset: 2 # Fixes misalignment bloom effects. @@ -1761,11 +1766,15 @@ SCAJ-20167: SCAJ-20168: name: "Rule of Rose" region: "NTSC-Unk" + gsHWFixes: + preloadFrameData: 1 # Fixes Black FMV's. SCAJ-20169: name: "Dirge of Cerberus - Final Fantasy VII" region: "NTSC-Unk" gsHWFixes: - autoFlush: 2 # Fixes lighting. + autoFlush: 1 # Fixes lighting. + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SCAJ-20170: name: "Tourist Trophy" region: "NTSC-C" @@ -1794,6 +1803,8 @@ SCAJ-20173: roundSprite: 1 # Fixes HUD artifacts. alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Better aligns main menu strips, improving font readability. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. memcardFilters: - "SCAJ-20173" - "SLPS-25629" @@ -4085,6 +4096,9 @@ SCES-50410: alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Fixes vertical lines. gpuTargetCLUT: 1 # Fixes broken sun. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. + estimateTextureRegion: 1 # Improves performance and reduces HC size. SCES-50411: name: "Vampire Night" region: "PAL-M5" @@ -5427,6 +5441,8 @@ SCES-54041: roundSprite: 1 # Fixes HUD artifacts. alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Better aligns main menu strips, improving font readability. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. memcardFilters: # Reads AC4 and 5 saves for bonus unlockables. - "SCES-54041" - "SCES-50410" @@ -6490,6 +6506,8 @@ SCKA-20050: SCKA-20051: name: "Minna Daisuki Katamari Damacy" region: "NTSC-K" + gsHWFixes: + halfPixelOffset: 2 # Fixes right edge artifact. roundModes: vu1RoundMode: 0 # Fixes SPS. clampModes: @@ -6631,6 +6649,8 @@ SCKA-20070: roundSprite: 1 # Fixes HUD artifacts. alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Better aligns main menu strips, improving font readability. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. patches: 2799A4E5: content: |- @@ -6878,6 +6898,14 @@ SCKA-20134: SCKA-20135: name: "Minna Daisuki Katamari Damacy" region: "NTSC-K" + gsHWFixes: + halfPixelOffset: 2 # Fixes right edge artifact. + roundModes: + vu1RoundMode: 0 # Fixes SPS. + clampModes: + vu1ClampMode: 3 # Fixes SPS. + speedHacks: + mvuFlag: 0 # Fixes performance and falling through floor and other gameplay. SCKA-20136: name: "Super Robot Taisen Z - Special Disc" region: "NTSC-J-K" @@ -7909,6 +7937,8 @@ SCPS-15093: name-en: "Rule of Rose" region: "NTSC-J" compat: 5 + gsHWFixes: + preloadFrameData: 1 # Fixes Black FMV's. SCPS-15094: name: アイトーイ プレイ2 name-sort: あいとーい ぷれい2 @@ -11359,6 +11389,9 @@ SLAJ-25045: SLAJ-25046: name: "NBA Live 2005" region: "NTSC-Unk" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLAJ-25047: name: "Dororo" region: "NTSC-C-J" @@ -11531,6 +11564,9 @@ SLAJ-25080: SLAJ-25081: name: "FIFA World Cup - Germany 2006" region: "NTSC-Unk" + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLAJ-25084: name: "Sengoku Musou 2 - Empires" region: "NTSC-Unk" @@ -11919,9 +11955,7 @@ SLED-52736: region: "PAL-E" gsHWFixes: recommendedBlendingLevel: 3 # Improves reflection quality and map opacity. - halfPixelOffset: 1 # Fixes misaligned post-processing. - gameFixes: - - SoftwareRendererFMVHack # Workaround for strange HPO Normal screen shake. + halfPixelOffset: 2 # Fixes depth lines. SLED-52851: name: "TOCA Race Driver 2" region: "PAL-Unk" @@ -12109,6 +12143,10 @@ SLED-53719: SLED-53723: name: "Peter Jackson's King Kong [Demo]" region: "PAL-E" + gsHWFixes: + recommendedBlendingLevel: 2 # Increases image brightness. + autoFlush: 1 # Corrects vignette to match software. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. SLED-53731: name: "Battlefield 2 - Modern Combat [Demo]" region: "PAL-E" @@ -16698,6 +16736,10 @@ SLES-51893: SLES-51896: name: "Attheraces Presents Gallop Racer" region: "PAL-E" + gsHWFixes: + recommendedBlendingLevel: 2 # Improves lighting, maximum blending is needed for full accuracy. + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLES-51897: name: "The Simpsons - Hit & Run" name-sort: "Simpsons, The - Hit & Run" @@ -16911,6 +16953,8 @@ SLES-51973: SLES-51974: name: "XS Junior League Soccer" region: "PAL-M5" + speedHacks: + eeCycleRate: -1 # Fixes FMV playback. SLES-51976: name: "Tom Clancy's Ghost Recon - Jungle Storm" region: "PAL-M5" @@ -17014,6 +17058,9 @@ SLES-52022: SLES-52023: name: "Manhunt" region: "PAL-M5" + gsHWFixes: + halfPixelOffset: 1 # Helps with light occlusion problems when upscaling. + autoFlush: 2 # Fixes light occlusion draws which mistakenly get all drawn at once, so wrong texture data is picked. SLES-52025: name: "NFL Street" region: "PAL-E" @@ -18662,6 +18709,9 @@ SLES-52711: SLES-52713: name: "NBA Live 2005" region: "PAL-M3" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLES-52714: name: "Board Games Gallery" region: "PAL-E" @@ -18692,15 +18742,19 @@ SLES-52725: compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Improves reflection quality and map opacity. - halfPixelOffset: 1 # Fixes misaligned post-processing. - gameFixes: - - SoftwareRendererFMVHack # Workaround for strange HPO Normal screen shake. + halfPixelOffset: 2 # Fixes depth lines. SLES-52726: name: "NBA Live 2005" region: "PAL-F" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLES-52727: name: "NBA Live 2005" region: "PAL-S" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLES-52729: name: "Animaniacs - The Great Edgar Hunt" region: "PAL-M5" @@ -19477,6 +19531,9 @@ SLES-53009: SLES-53011: name: "Gallop Racer 2" region: "PAL-E" + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLES-53012: name: "Tenchu - Fatal Shadows" region: "PAL-E" @@ -21501,12 +21558,24 @@ SLES-53703: name: "King Kong, Peter Jackson's - The Official Game of the Movie" region: "PAL-M10" compat: 5 + gsHWFixes: + recommendedBlendingLevel: 2 # Increases image brightness. + autoFlush: 1 # Corrects vignette to match software. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. SLES-53704: name: "King Kong, Peter Jackson's - The Official Game of the Movie" region: "PAL-R" + gsHWFixes: + recommendedBlendingLevel: 2 # Increases image brightness. + autoFlush: 1 # Corrects vignette to match software. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. SLES-53705: name: "King Kong, Peter Jackson's - The Official Game of the Movie" region: "PAL-PL-E" + gsHWFixes: + recommendedBlendingLevel: 2 # Increases image brightness. + autoFlush: 1 # Corrects vignette to match software. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. SLES-53706: name: "The Chronicles of Narnia - The Lion Witch and The Wardrobe" name-sort: "Chronicles of Narnia, The - The Lion, The Witch and The Wardrobe" @@ -21908,6 +21977,8 @@ SLES-53827: SLES-53828: name: "We Love Katamari" region: "PAL-M4" + gsHWFixes: + halfPixelOffset: 2 # Fixes right edge artifact. roundModes: vu1RoundMode: 0 # Fixes SPS. clampModes: @@ -22449,15 +22520,27 @@ SLES-54061: name: "FIFA World Cup - Germany '06" region: "PAL-E" compat: 5 + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLES-54062: name: "FIFA World Cup - Germany '06" region: "PAL-F-G" + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLES-54063: name: "FIFA World Cup 2006" region: "PAL-M3" + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLES-54064: name: "FIFA World Cup 2006" region: "PAL-M3" + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLES-54066: name: "X-Men - The Official Game" region: "PAL-M4" @@ -22475,6 +22558,9 @@ SLES-54080: SLES-54081: name: "FIFA World Cup 2006" region: "PAL-PL" + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLES-54083: name: "Pirates of the Caribbean - The Legend of Jack Sparrow" region: "PAL-E" @@ -22814,7 +22900,9 @@ SLES-54185: region: "PAL-M5" compat: 5 gsHWFixes: - autoFlush: 2 # Fixes lighting. + autoFlush: 1 # Fixes lighting. + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLES-54186: name: "Devil May Cry 3 - Dante's Awakening [Special Edition]" region: "PAL-M5" @@ -22898,7 +22986,9 @@ SLES-54217: region: "PAL-E" SLES-54218: name: "Rule of Rose" - region: "PAL-F" + region: "PAL-M5" + gsHWFixes: + preloadFrameData: 1 # Fixes Black FMV's. SLES-54221: name: "LEGO Star Wars II - The Original Trilogy" region: "PAL-M6" @@ -24810,7 +24900,7 @@ SLES-54915: region: "PAL-M5" SLES-54917: name: "Agent Hugo - Lemoon Twist" - region: "PAL-M5" + region: "PAL-SC" SLES-54918: name: "Agent Hugo - Lemoon Twist" region: "PAL-M7" @@ -25543,6 +25633,8 @@ SLES-55191: region: "PAL-E" roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. + gsHWFixes: + textureInsideRT: 1 # Crowd textures. SLES-55192: name: "Steam Express" region: "PAL-M5" @@ -25596,6 +25688,8 @@ SLES-55200: region: "PAL-M4" roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. + gsHWFixes: + textureInsideRT: 1 # Crowd textures. SLES-55201: name: "Riding Star" region: "PAL-M4" @@ -25883,15 +25977,27 @@ SLES-55332: SLES-55334: name: "NBA Live 09" region: "PAL-E-I-A" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLES-55335: name: "NBA Live 09" region: "PAL-E-G" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLES-55336: name: "NBA Live 09" region: "PAL-F" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLES-55337: name: "NBA Live 09" region: "PAL-S" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLES-55338: name: "NHL 09" region: "PAL-M6" @@ -25998,7 +26104,7 @@ SLES-55359: region: "PAL-A" SLES-55364: name: "Agent Hugo - Hula Holiday" - region: "PAL-M5" + region: "PAL-SC" SLES-55365: name: "Agent Hugo - Hula Holiday" region: "PAL-M7" @@ -26172,7 +26278,7 @@ SLES-55444: roundModes: eeRoundMode: 0 # Fixes "Fall through floor" bug when approaching chests. gsHWFixes: - roundSprite: 1 # Fixes textboxes and character portraits. + roundSprite: 2 # Fixes textboxes and character portraits. beforeDraw: "OI_ArTonelico2" SLES-55448: name: "Indiana Jones and the Staff of Kings" @@ -26326,6 +26432,8 @@ SLES-55517: SLES-55518: name: "Guitar Hero - Van Halen" region: "PAL-A" + gsHWFixes: + preloadFrameData: 1 # Fixes icons. roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. SLES-55520: @@ -26659,6 +26767,7 @@ SLES-82009: - InstantDMAHack # Fixes broken half-bottom artifacts. gsHWFixes: roundSprite: 2 # Fixes font artifacts. + autoFlush: 1 # Fixes depth of field blur. recommendedBlendingLevel: 3 # Fixes broken skin colour on Vlad and others. SLES-82010: name: "Metal Gear Solid 2, Document of" @@ -27483,6 +27592,9 @@ SLKA-25109: SLKA-25110: name: "NBA Live 2005" region: "NTSC-K" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLKA-25111: name: "The King of Fighters 2001" name-sort: "King of Fighters 2001, The" @@ -27989,9 +28101,7 @@ SLKA-25241: region: "NTSC-K" gsHWFixes: recommendedBlendingLevel: 3 # Improves reflection quality and map opacity. - halfPixelOffset: 1 # Fixes misaligned post-processing. - gameFixes: - - SoftwareRendererFMVHack # Workaround for strange HPO Normal screen shake. + halfPixelOffset: 2 # Fixes depth lines. SLKA-25242: name: "Fight Night Round 2" region: "NTSC-K" @@ -28372,6 +28482,10 @@ SLKA-25335: SLKA-25337: name: "Peter Jackson's King Kong - The Official Game of the Movie" region: "NTSC-K" + gsHWFixes: + recommendedBlendingLevel: 2 # Increases image brightness. + autoFlush: 1 # Corrects vignette to match software. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. SLKA-25338: name: "The Godfather" name-sort: "Godfather, The" @@ -28834,6 +28948,7 @@ SLKA-35001: - InstantDMAHack # Fixes broken half-bottom artifacts. gsHWFixes: roundSprite: 2 # Fixes font artifacts. + autoFlush: 1 # Fixes depth of field blur. recommendedBlendingLevel: 3 # Fixes broken skin colour on Vlad and others. SLKA-35003: name: "Sakura Taisen - Atsuki Chishioni" @@ -29202,6 +29317,9 @@ SLPM-55096: SLPM-55097: name: "NBA Live 09" region: "NTSC-J" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLPM-55098: name: "Koi suru Otome to Shugo no Tate - The Shield of AIGIS" region: "NTSC-J" @@ -29972,6 +30090,9 @@ SLPM-60149: alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Fixes vertical lines. gpuTargetCLUT: 1 # Fixes broken sun. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. + estimateTextureRegion: 1 # Improves performance and reduces HC size. SLPM-60150: name: "Tamamayu Monogatari 2 - Horobi no Mushi" region: "NTSC-J" @@ -30220,9 +30341,7 @@ SLPM-60250: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves reflection quality and map opacity. - halfPixelOffset: 1 # Fixes misaligned post-processing. - gameFixes: - - SoftwareRendererFMVHack # Workaround for strange HPO Normal screen shake. + halfPixelOffset: 2 # Fixes depth lines. SLPM-60251: name: "Devil May Cry 3 [Trial Version]" region: "NTSC-J" @@ -30294,6 +30413,14 @@ SLPM-60267: SLPM-60268: name: "Minna Daisuki Katamari Damacy" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 2 # Fixes right edge artifact. + roundModes: + vu1RoundMode: 0 # Fixes SPS. + clampModes: + vu1ClampMode: 3 # Fixes SPS. + speedHacks: + mvuFlag: 0 # Fixes performance and falling through floor and other gameplay. SLPM-60270: name: "D1 Professional Drift Grand Prix Series 2005 [Trial]" region: "NTSC-J" @@ -30479,7 +30606,9 @@ SLPM-61046: name: "Dennou Senki - Virtual-On Marz [Trial]" region: "NTSC-J" gsHWFixes: - cpuCLUTRender: 2 # Fixes CLUT colours. + cpuSpriteRenderBW: 1 # Fixes CLUT colours. + cpuSpriteRenderLevel: 2 # Needed for above. + gpuPaletteConversion: 2 # Improves FPS and reduces HC size. SLPM-61048: name: "Dengeki PS2 PlayStation D60" region: "NTSC-J" @@ -33346,7 +33475,9 @@ SLPM-62547: region: "NTSC-J" compat: 5 gsHWFixes: - cpuCLUTRender: 2 # Fixes CLUT colours. + cpuSpriteRenderBW: 1 # Fixes CLUT colours. + cpuSpriteRenderLevel: 2 # Needed for above. + gpuPaletteConversion: 2 # Improves FPS and reduces HC size. SLPM-62548: name: SuperLite 2000パズル 平成博徒伝 name-sort: SuperLite 2000ぱずる へいせいばくとでん @@ -33644,7 +33775,9 @@ SLPM-62606: region: "NTSC-J" compat: 5 gsHWFixes: - cpuCLUTRender: 2 # Fixes CLUT colours. + cpuSpriteRenderBW: 1 # Fixes CLUT colours. + cpuSpriteRenderLevel: 2 # Needed for above. + gpuPaletteConversion: 2 # Improves FPS and reduces HC size. SLPM-62607: name: "Shikigami no Shiro III [Taito The Best]" region: "NTSC-J" @@ -34020,7 +34153,9 @@ SLPM-62687: name-en: "Sega Ages 2500 Series Vol.24 - Last Bronx" region: "NTSC-J" gsHWFixes: - cpuCLUTRender: 2 # Fixes CLUT colours. + cpuSpriteRenderBW: 1 # Fixes CLUT colours. + cpuSpriteRenderLevel: 2 # Needed for above. + gpuPaletteConversion: 2 # Improves FPS and reduces HC size. SLPM-62689: name: ラングリッサーIII name-sort: らんぐりっさーIII @@ -34099,7 +34234,9 @@ SLPM-62703: region: "NTSC-J" compat: 5 gsHWFixes: - cpuCLUTRender: 2 # Fixes CLUT colours. + cpuSpriteRenderBW: 1 # Fixes CLUT colours. + cpuSpriteRenderLevel: 2 # Needed for above. + gpuPaletteConversion: 2 # Improves FPS and reduces HC size. SLPM-62704: name: オレたちゲーセン族 クォース name-sort: おれたちげーせんぞく くぉーす @@ -34387,7 +34524,9 @@ SLPM-62767: clampModes: eeClampMode: 2 # Fixes white shadows. gsHWFixes: - cpuCLUTRender: 2 # Fixes CLUT colours. + cpuSpriteRenderBW: 1 # Fixes CLUT colours. + cpuSpriteRenderLevel: 2 # Needed for above. + gpuPaletteConversion: 2 # Improves FPS and reduces HC size. SLPM-62768: name: "Sengoku Musou 2 & Sengoku Musou 2 - Empires Saikyou Data" region: "NTSC-J" @@ -36198,7 +36337,9 @@ SLPM-65303: name-en: "Dennou Senki - Virtual-On Marz" region: "NTSC-J" gsHWFixes: - cpuCLUTRender: 2 # Fixes CLUT colours. + cpuSpriteRenderBW: 1 # Fixes CLUT colours. + cpuSpriteRenderLevel: 2 # Needed for above. + gpuPaletteConversion: 2 # Improves FPS and reduces HC size. SLPM-65305: name: 幻想水滸伝 III KONAMI THE BEST name-sort: げんそうすいこでん III KONAMI THE BEST @@ -38669,9 +38810,7 @@ SLPM-65766: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves reflection quality and map opacity. - halfPixelOffset: 1 # Fixes misaligned post-processing. - gameFixes: - - SoftwareRendererFMVHack # Workaround for strange HPO Normal screen shake. + halfPixelOffset: 2 # Fixes depth lines. SLPM-65767: name: NBA STARTINGFIVE 2005 name-sort: NBA STARTINGFIVE 2005 @@ -38761,6 +38900,9 @@ SLPM-65787: name-sort: NBAらいぶ2005 name-en: "NBA Live 2005" region: "NTSC-J" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLPM-65788: name: ワールドサッカーウイニングイレブン8 ライヴウエアエヴォリューション name-sort: わーるどさっかーういにんぐいれぶん8 らいゔうえあえゔぉりゅーしょん @@ -38857,6 +38999,8 @@ SLPM-65800: region: "NTSC-J" gameFixes: - VuAddSubHack + clampModes: + eeClampMode: 2 # Fixes incorrect model position. gsHWFixes: alignSprite: 1 # Fixes vertical bars. halfPixelOffset: 2 # Fixes misalignment bloom effects. @@ -40218,9 +40362,7 @@ SLPM-66051: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves reflection quality and map opacity. - halfPixelOffset: 1 # Fixes misaligned post-processing. - gameFixes: - - SoftwareRendererFMVHack # Workaround for strange HPO Normal screen shake. + halfPixelOffset: 2 # Fixes depth lines. SLPM-66052: name: 巫女舞 〜永遠の想い〜 name-sort: みこまい 〜えいえんのおもい〜 @@ -40607,6 +40749,9 @@ SLPM-66116: name-sort: NBA らいぶ 2005 [EA BEST HITS] name-en: "NBA Live 2005 [EA Best Hits]" region: "NTSC-J" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLPM-66117: name: METAL GEAR SOLID 3 SUBSISTENCE [ヘッドセット同梱版] [ディスク1/3] name-sort: METAL GEAR SOLID 3 SUBSISTENCE [へっどせっとどうこんばん] [でぃすく1/3] @@ -41186,6 +41331,10 @@ SLPM-66211: name-sort: PETER JACKSON’S きんぐ・こんぐ おふぃしゃる げーむ おぶ ざ むーびー name-en: "King Kong, Peter Jackson's - The Official Game of the Movie" region: "NTSC-J" + gsHWFixes: + recommendedBlendingLevel: 2 # Increases image brightness. + autoFlush: 1 # Corrects vignette to match software. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. SLPM-66212: name: セガラリー2006 name-sort: せがらりー2006 @@ -41573,7 +41722,9 @@ SLPM-66271: region: "NTSC-J" compat: 5 gsHWFixes: - autoFlush: 2 # Fixes lighting. + autoFlush: 1 # Fixes lighting. + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLPM-66272: name: I/O name-sort: I/O @@ -42228,6 +42379,9 @@ SLPM-66386: name-sort: 2006 FIFA わーるどかっぷ どいつたいかい name-en: "FIFA World Cup - Germany 2006" region: "NTSC-J" + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLPM-66387: name: 真・爆走デコトラ伝説 〜天下統一頂上決戦〜 [Spike The Best] name-sort: しん・ばくそうでことらでんせつ 〜てんかとういつちょうじょうけっせん〜 [Spike The Best] @@ -43654,7 +43808,9 @@ SLPM-66629: name-en: "Dirge of Cerberus - Final Fantasy VII International" region: "NTSC-J" gsHWFixes: - autoFlush: 2 # Fixes lighting. + autoFlush: 1 # Fixes lighting. + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLPM-66630: name: メルヘヴン ARM FIGHT DREAM コナミ・ザ・ベスト name-sort: めるへゔん ARM FIGHT DREAM こなみ・ざ・べすと @@ -45502,9 +45658,7 @@ SLPM-66960: region: "NTSC-J" gsHWFixes: recommendedBlendingLevel: 3 # Improves reflection quality and map opacity. - halfPixelOffset: 1 # Fixes misaligned post-processing. - gameFixes: - - SoftwareRendererFMVHack # Workaround for strange HPO Normal screen shake. + halfPixelOffset: 2 # Fixes depth lines. SLPM-66961: name: EA:SY!1980 BLACK name-sort: EA:SY!1980 BLACK @@ -45717,6 +45871,7 @@ SLPM-67002: - InstantDMAHack # Fixes broken half-bottom artifacts. gsHWFixes: roundSprite: 2 # Fixes font artifacts. + autoFlush: 1 # Fixes depth of field blur. recommendedBlendingLevel: 3 # Fixes broken skin colour on Vlad and others. SLPM-67003: name: サクラ大戦 〜熱き血潮に〜 @@ -45757,6 +45912,7 @@ SLPM-67008: - InstantDMAHack # Fixes broken half-bottom artifacts. gsHWFixes: roundSprite: 2 # Fixes font artifacts. + autoFlush: 1 # Fixes depth of field blur. recommendedBlendingLevel: 3 # Fixes broken skin colour on Vlad and others. SLPM-67009: name: サクラ大戦V 〜さらば愛しき人よ〜 @@ -46025,8 +46181,12 @@ SLPM-68014: SLPM-68016: name: ダージュ・オブ・ケルベロス -ファイナルファンタジーVII- name-sort: だーじゅ・おぶ・けるべろす -ふぁいなるふぁんたじーVII- - name-en: "Dirge of Cerberus - Final Fantasy VII" + name-en: "Dirge of Cerberus - Final Fantasy VII Beta Version" region: "NTSC-J" + gsHWFixes: + autoFlush: 1 # Fixes lighting. + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLPM-68017: name: "Shin Onimusha - Dawn of Dreams [Saikyou Save Data]" region: "NTSC-J" @@ -46731,7 +46891,9 @@ SLPM-74421: name-en: "Dennou Senki - Virtual-On Marz [PS2 The Best]" region: "NTSC-J" gsHWFixes: - cpuCLUTRender: 2 # Fixes CLUT colours. + cpuSpriteRenderBW: 1 # Fixes CLUT colours. + cpuSpriteRenderLevel: 2 # Needed for above. + gpuPaletteConversion: 2 # Improves FPS and reduces HC size. SLPM-74901: name: "Metal Gear Solid 2 - Substance" region: "NTSC-J" @@ -46739,6 +46901,7 @@ SLPM-74901: - InstantDMAHack # Fixes broken half-bottom artifacts. gsHWFixes: roundSprite: 2 # Fixes font artifacts. + autoFlush: 1 # Fixes depth of field blur. recommendedBlendingLevel: 3 # Fixes broken skin colour on Vlad and others. SLPM-84075: name: "Anubis Zone of Enders Special Edition [Konami Dendou Selection]" @@ -46799,7 +46962,7 @@ SLPS-20007: clampModes: vuClampMode: 3 # Fixes missing geometry. gameFixes: - - EETimingHack # Garbage in FMVs. + - InstantDMAHack # Garbage in FMVs. - VUSyncHack # Fixes missing geometry. gsHWFixes: textureInsideRT: 1 @@ -48606,6 +48769,8 @@ SLPS-20443: name-sort: ぶろっくすくらぶ withばんぴーとろっと name-en: "Blokus Club with Bumpy Trot" region: "NTSC-J" + gsHWFixes: + recommendedBlendingLevel: 4 # Fixes water reflections. SLPS-20444: name: SIMPLE2000シリーズ Vol.90 THE お姉チャンバラ2 name-sort: SIMPLE2000しりーず Vol.90 THE おあねちゃんばら2 @@ -49307,6 +49472,9 @@ SLPS-25052: alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Fixes vertical lines. gpuTargetCLUT: 1 # Fixes broken sun. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. + estimateTextureRegion: 1 # Improves performance and reduces HC size. SLPS-25053: name: 栄冠は君に 甲子園の覇者 name-sort: えいかんはきみに こうしえんのはしゃ @@ -49966,6 +50134,10 @@ SLPS-25177: name-sort: Gallop Racer 6 -Revolution- name-en: "Gallop Racer 6 - Revolution" region: "NTSC-J" + gsHWFixes: + recommendedBlendingLevel: 2 # Improves lighting, maximum blending is needed for full accuracy. + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLPS-25178: name: アルゴスの戦士 name-sort: あるごすのせんし @@ -50760,6 +50932,9 @@ SLPS-25333: name-sort: ぎゃろっぷれーさー らっきー7 name-en: "Gallop Racer Lucky 7" region: "NTSC-J" + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLPS-25334: name: シャドウハーツ II [通常版] [ディスク1/2] name-sort: しゃどうはーつ II [つうじょうばん] [でぃすく1/2] @@ -51601,6 +51776,8 @@ SLPS-25467: name-en: "Minna Daisuki Katamari Damacy" region: "NTSC-J" compat: 5 + gsHWFixes: + halfPixelOffset: 2 # Fixes right edge artifact. roundModes: vu1RoundMode: 0 # Fixes SPS. clampModes: @@ -52464,6 +52641,8 @@ SLPS-25629: roundSprite: 1 # Fixes HUD artifacts. alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Better aligns main menu strips, improving font readability. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. memcardFilters: - "SCAJ-20173" - "SLPS-25629" @@ -53578,7 +53757,7 @@ SLPS-25819: roundModes: eeRoundMode: 0 # Fixes "Fall through floor" bug when approaching chests. gsHWFixes: - roundSprite: 1 # Fixes textboxes and character portraits. + roundSprite: 2 # Fixes textboxes and character portraits. beforeDraw: "OI_ArTonelico2" SLPS-25820: name: 家庭教師ヒットマンREBORN! Let’s暗殺!? 狙われた10代目! @@ -53918,6 +54097,8 @@ SLPS-25886: region: "NTSC-J" roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. + gsHWFixes: + textureInsideRT: 1 # Crowd textures. SLPS-25887: name: スーパーロボット大戦Z name-sort: すーぱーろぼっとたいせんZ @@ -53944,6 +54125,8 @@ SLPS-25889: region: "NTSC-J" roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. + gsHWFixes: + textureInsideRT: 1 # Crowd textures. SLPS-25890: name: ギターヒーロー3 レジェンドオブロック name-sort: ぎたーひーろー3 れじぇんどおぶろっく @@ -54512,6 +54695,9 @@ SLPS-73205: alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Fixes vertical lines. gpuTargetCLUT: 1 # Fixes broken sun. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. + estimateTextureRegion: 1 # Improves performance and reduces HC size. SLPS-73206: name: 第2次スーパーロボット大戦α PS2 the Best name-sort: だい2じすーぱーろぼっとたいせんあるふぁ PS2 the Best @@ -54804,6 +54990,8 @@ SLPS-73241: name-sort: みんなだいすきかたまりたましい PS2 the Best name-en: "Minna Daisuki Katamari Damacy [PS2 The Best]" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 2 # Fixes right edge artifact. roundModes: vu1RoundMode: 0 # Fixes SPS. clampModes: @@ -54890,6 +55078,8 @@ SLPS-73250: roundSprite: 1 # Fixes HUD artifacts. alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Better aligns main menu strips, improving font readability. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. memcardFilters: - "SCAJ-20173" - "SLPS-25629" @@ -54966,7 +55156,7 @@ SLPS-73263: roundModes: eeRoundMode: 0 # Fixes "Fall through floor" bug when approaching chests. gsHWFixes: - roundSprite: 1 # Fixes textboxes and character portraits. + roundSprite: 2 # Fixes textboxes and character portraits. beforeDraw: "OI_ArTonelico2" SLPS-73264: name: "Suzumiya Haruhi no Tomadoi" @@ -55063,6 +55253,9 @@ SLPS-73410: alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Fixes vertical lines. gpuTargetCLUT: 1 # Fixes broken sun. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. + estimateTextureRegion: 1 # Improves performance and reduces HC size. SLPS-73411: name: "Armored Core 2 - Another Age [PS2 The Best]" region: "NTSC-J" @@ -55087,6 +55280,10 @@ SLPS-73415: name-sort: Gallop Racer 6 -Revolution- PS2 the Best name-en: "Gallop Racer 6 - Revolution [PS2 The Best]" region: "NTSC-J" + gsHWFixes: + recommendedBlendingLevel: 2 # Improves lighting, maximum blending is needed for full accuracy. + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLPS-73416: name: スーパーロボット大戦IMPACT PS2 the Best name-sort: すーぱーろぼっとたいせんIMPACT PS2 the Best @@ -55761,6 +55958,9 @@ SLUS-20152: alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Fixes vertical lines. gpuTargetCLUT: 1 # Fixes broken sun. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. + estimateTextureRegion: 1 # Improves performance and reduces HC size. patches: A32F7CD0: content: |- @@ -57674,6 +57874,7 @@ SLUS-20554: - InstantDMAHack # Fixes broken half-bottom artifacts. gsHWFixes: roundSprite: 2 # Fixes font artifacts. + autoFlush: 1 # Fixes depth of field blur. recommendedBlendingLevel: 3 # Fixes broken skin colour on Vlad and others. SLUS-20555: name: "Reel Fishing 3" @@ -58232,6 +58433,10 @@ SLUS-20661: SLUS-20662: name: "Gallop Racer 2003 - A New Breed" region: "NTSC-U" + gsHWFixes: + recommendedBlendingLevel: 2 # Improves lighting, maximum blending is needed for full accuracy. + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLUS-20663: name: "Naval Ops - Warship Gunner" region: "NTSC-U" @@ -59070,6 +59275,9 @@ SLUS-20827: name: "Manhunt" region: "NTSC-U" compat: 5 + gsHWFixes: + halfPixelOffset: 1 # Helps with light occlusion problems when upscaling. + autoFlush: 2 # Fixes light occlusion draws which mistakenly get all drawn at once, so wrong texture data is picked. SLUS-20828: name: "ShellShock - Nam '67" region: "NTSC-U" @@ -60250,6 +60458,9 @@ SLUS-21030: SLUS-21031: name: "Gallop Racer 2004" region: "NTSC-U" + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLUS-21032: name: "Marc Ecko's Getting Up - Contents Under Pressure" region: "NTSC-U" @@ -60400,6 +60611,9 @@ SLUS-21057: SLUS-21058: name: "NBA Live 2005" region: "NTSC-U" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLUS-21059: name: "Tekken 5" region: "NTSC-U" @@ -60433,9 +60647,7 @@ SLUS-21065: compat: 5 gsHWFixes: recommendedBlendingLevel: 3 # Improves reflection quality and map opacity. - halfPixelOffset: 1 # Fixes misaligned post-processing. - gameFixes: - - SoftwareRendererFMVHack # Workaround for strange HPO Normal screen shake. + halfPixelOffset: 2 # Fixes depth lines. SLUS-21066: name: "The Urbz - Sims in the City" name-sort: "Urbz, The - Sims in the City" @@ -61309,6 +61521,8 @@ SLUS-21230: name: "We Love Katamari" region: "NTSC-U" compat: 5 + gsHWFixes: + halfPixelOffset: 2 # Fixes right edge artifact. roundModes: vu1RoundMode: 0 # Fixes SPS. clampModes: @@ -61536,6 +61750,8 @@ SLUS-21262: compat: 5 gameFixes: - VuAddSubHack + clampModes: + eeClampMode: 2 # Fixes incorrect model position. gsHWFixes: alignSprite: 1 # Fixes vertical bars. halfPixelOffset: 2 # Fixes misalignment bloom effects. @@ -61849,6 +62065,10 @@ SLUS-21311: name: "King Kong, Peter Jackson's - The Official Game of the Movie" region: "NTSC-U" compat: 5 + gsHWFixes: + recommendedBlendingLevel: 2 # Increases image brightness. + autoFlush: 1 # Corrects vignette to match software. + estimateTextureRegion: 1 # Improves performance and reduces hash cache size. SLUS-21312: name: "Wallace & Gromit - The Curse of the Were-Rabbit" region: "NTSC-U" @@ -62073,6 +62293,8 @@ SLUS-21346: roundSprite: 1 # Fixes HUD artifacts. alignSprite: 1 # Fixes vertical lines. mergeSprite: 1 # Better aligns main menu strips, improving font readability. + cpuSpriteRenderBW: 2 # Fixes broken terrain rendering (See #10271 for details). + cpuSpriteRenderLevel: 2 # Needed for above. memcardFilters: - "SLUS-21346" - "SLUS-20152" @@ -62308,6 +62530,8 @@ SLUS-21380: clampModes: vuClampMode: 3 # Fixes bad textures and missing geometry. gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 halfPixelOffset: 2 # Fixes fog line. patches: 213DCAC9: @@ -62480,6 +62704,9 @@ SLUS-21408: name: "FIFA World Cup Germany '06" region: "NTSC-U" compat: 5 + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLUS-21409: name: "LEGO Star Wars II - The Original Trilogy" region: "NTSC-U" @@ -62562,7 +62789,9 @@ SLUS-21419: region: "NTSC-U" compat: 5 gsHWFixes: - autoFlush: 2 # Fixes lighting. + autoFlush: 1 # Fixes lighting. + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLUS-21420: name: "Disney's Chicken Little - Ace in Action" region: "NTSC-U" @@ -62728,6 +62957,8 @@ SLUS-21448: name: "Rule of Rose" region: "NTSC-U" compat: 5 + gsHWFixes: + preloadFrameData: 1 # Fixes Black FMV's. SLUS-21449: name: "The Fast and the Furious" name-sort: "Fast and the Furious, The" @@ -64105,6 +64336,8 @@ SLUS-21740: compat: 5 roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. + gsHWFixes: + textureInsideRT: 1 # Crowd textures. SLUS-21741: name: "Sea Monsters - A Prehistoric Adventure" region: "NTSC-U" @@ -64302,6 +64535,9 @@ SLUS-21776: SLUS-21777: name: "NBA Live '09" region: "NTSC-U" + gsHWFixes: + cpuSpriteRenderBW: 2 # Fixes broken sprite rendering and crowd rendering. + cpuSpriteRenderLevel: 2 # Needed for above. SLUS-21778: name: "Dokapon Kingdom" region: "NTSC-U" @@ -64363,7 +64599,7 @@ SLUS-21788: roundModes: eeRoundMode: 0 # Fixes "Fall through floor" bug when approaching chests. gsHWFixes: - roundSprite: 1 # Fixes textboxes and character portraits. + roundSprite: 2 # Fixes textboxes and character portraits. beforeDraw: "OI_ArTonelico2" SLUS-21789: name: "Cabela's Legendary Adventures" @@ -64693,6 +64929,8 @@ SLUS-21867: name: "Guitar Hero - Van Halen" region: "NTSC-U" compat: 5 + gsHWFixes: + preloadFrameData: 1 # Fixes icons. roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. SLUS-21868: @@ -64952,6 +65190,8 @@ SLUS-21923: SLUS-21924: name: "Guitar Hero - Van Halen" region: "NTSC-U" + gsHWFixes: + preloadFrameData: 1 # Fixes icons. roundModes: vu1RoundMode: 0 # Fixes VU size spam and potential graphical issues with GH3 engine. SLUS-21926: @@ -65265,6 +65505,8 @@ SLUS-28062: SLUS-28063: name: "Rule of Rose [Trade Demo]" region: "NTSC-U" + gsHWFixes: + preloadFrameData: 1 # Fixes Black FMV's. SLUS-28064: name: "Shin Megami Tensei - Devil Summoner [Trade Demo]" region: "NTSC-U" @@ -65660,9 +65902,7 @@ SLUS-29118: region: "NTSC-U" gsHWFixes: recommendedBlendingLevel: 3 # Improves reflection quality and map opacity. - halfPixelOffset: 1 # Fixes misaligned post-processing. - gameFixes: - - SoftwareRendererFMVHack # Workaround for strange HPO Normal screen shake. + halfPixelOffset: 2 # Fixes depth lines. SLUS-29123: name: "Ghost in the Shell - Stand Alone Complex [Demo]" region: "NTSC-U" @@ -65947,6 +66187,9 @@ SLUS-29188: SLUS-29189: name: "FIFA World Cup - Germany 2006 [Demo]" region: "NTSC-U" + gsHWFixes: + mipmap: 2 # Mipmap + trilinear, improves ground textures to match sw renderer. + trilinearFiltering: 1 SLUS-29191: name: "Hitman - Blood Money & Urban Chaos [Demo]" region: "NTSC-U" diff --git a/bin/resources/game_controller_db.txt b/bin/resources/game_controller_db.txt index b8739d5b82de0c..72bb5a157a01b1 100644 --- a/bin/resources/game_controller_db.txt +++ b/bin/resources/game_controller_db.txt @@ -429,6 +429,8 @@ 03000000f70600000100000000000000,N64 Adaptoid,+rightx:b2,+righty:b1,-rightx:b4,-righty:b5,a:b0,b:b3,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,platform:Windows, 030000006b140000010c000000000000,Nacon GC 400ES,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, 030000006b1400001106000000000000,Nacon Revolution 3 PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +0300000085320000170d000000000000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +0300000085320000190d000000000000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, 030000006b140000100d000000000000,Nacon Revolution Infinity PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, 030000006b140000080d000000000000,Nacon Revolution Unlimited Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, 03000000bd12000001c0000000000000,Nebular,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b3,y:b0,platform:Windows, @@ -1218,7 +1220,6 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 06000000adde0000efbe000002010000,Hidromancer Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 03000000d81400000862000011010000,HitBox PS3 PC Analog Mode,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b12,x:b0,y:b3,platform:Linux, 03000000c9110000f055000011010000,HJC Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, -03000000632500002605000010010000,HJDX,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 030000000d0f00000d00000000010000,Hori,a:b0,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b3,rightshoulder:b7,start:b9,x:b1,y:b2,platform:Linux, 030000000d0f00006d00000020010000,Hori EDGE 301,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:+a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 030000000d0f00008400000011010000,Hori Fighting Commander,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, @@ -1528,9 +1529,10 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2, 03000000b40400000a01000000010000,Sega Saturn,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Linux, 030000001f08000001e4000010010000,SFC Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux, 03000000632500002305000010010000,ShanWan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000632500002605000010010000,Shanwan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000632500007505000010010000,Shanwan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000bc2000000055000010010000,Shanwan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000f025000021c1000010010000,Shanwan Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, -03000000632500007505000010010000,Shanwan PS3 PC,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, -03000000bc2000000055000010010000,Shanwan PS3 PC ,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, 03000000341a00000908000010010000,SL6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, 050000004c050000cc09000001000000,Sony DualShock 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, 03000000ff000000cb01000010010000,Sony PlayStation Portable,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux, diff --git a/cmake/Pcsx2Utils.cmake b/cmake/Pcsx2Utils.cmake index e9fa821a3c4abc..1e32097a9cdf5b 100644 --- a/cmake/Pcsx2Utils.cmake +++ b/cmake/Pcsx2Utils.cmake @@ -197,6 +197,36 @@ function(source_groups_from_vcxproj_filters file) endforeach() endfunction() +# Extracts a translation with the given type ("source" or "translation") from the given category of the given ts file +# (If there's multiple strings under the same category, which one it extracts is implementation defined. Just don't do it.) +function(extract_translation_from_ts file type category output) + file(READ "${file}" filecontent) + # Don't you love it when the best parser your language has to offer is regex? + set(regex_search "(<[^\\/>]+>[^<>]+<\\/[^>\\/]+>|<\\/?context>)") + set(regex_extract "<[^\\/>]+>([^<>]+)<\\/([^>\\/]+)>") + string(REGEX MATCHALL "${regex_search}" pieces "${filecontent}") + foreach(piece IN LISTS pieces) + if (piece STREQUAL "") + set(found "") + set(name_match FALSE) + elseif (piece STREQUAL "") + if (name_match) + set(${output} "${found}" PARENT_SCOPE) + break() + endif() + else() + string(REGEX REPLACE "${regex_extract}" "\\1" content "${piece}") + string(REGEX REPLACE "${regex_extract}" "\\2" tag "${piece}") + if (tag STREQUAL "name" AND content STREQUAL "${category}") + set(name_match TRUE) + endif() + if (tag STREQUAL "${type}") + set(found "${content}") + endif() + endif() + endforeach() +endfunction() + function(fixup_file_properties target) get_target_property(SOURCES ${target} SOURCES) if(APPLE) diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake index df3c44e34de3bc..f605185b9ee287 100644 --- a/cmake/SearchForStuff.cmake +++ b/cmake/SearchForStuff.cmake @@ -114,6 +114,9 @@ if(GCC_VERSION VERSION_GREATER_EQUAL "9.0" AND GCC_VERSION VERSION_LESS "9.2") This text being in a compile log in an open issue may cause it to be closed.") endif() +# Prevent fmt from being built with exceptions, or being thrown at call sites. +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DFMT_EXCEPTIONS=0") + add_subdirectory(3rdparty/fmt/fmt EXCLUDE_FROM_ALL) add_subdirectory(3rdparty/rapidyaml/rapidyaml EXCLUDE_FROM_ALL) add_subdirectory(3rdparty/lzma EXCLUDE_FROM_ALL) @@ -156,7 +159,7 @@ disable_compiler_warnings_for_target(cubeb) disable_compiler_warnings_for_target(speex) # Find the Qt components that we need. -find_package(Qt6 6.6.0 COMPONENTS CoreTools Core GuiTools Gui WidgetsTools Widgets Network LinguistTools REQUIRED) +find_package(Qt6 6.6.0 COMPONENTS CoreTools Core GuiTools Gui WidgetsTools Widgets LinguistTools REQUIRED) if(WIN32) add_subdirectory(3rdparty/rainterface EXCLUDE_FROM_ALL) diff --git a/common/HTTPDownloader.cpp b/common/HTTPDownloader.cpp index 8821782b7a31f9..144286206f5b6d 100644 --- a/common/HTTPDownloader.cpp +++ b/common/HTTPDownloader.cpp @@ -18,6 +18,7 @@ #include "common/HTTPDownloader.h" #include "common/Assertions.h" #include "common/Console.h" +#include "common/ProgressCallback.h" #include "common/StringUtil.h" #include "common/Timer.h" #include "common/Threading.h" @@ -47,13 +48,14 @@ void HTTPDownloader::SetMaxActiveRequests(u32 max_active_requests) m_max_active_requests = max_active_requests; } -void HTTPDownloader::CreateRequest(std::string url, Request::Callback callback) +void HTTPDownloader::CreateRequest(std::string url, Request::Callback callback, ProgressCallback* progress) { Request* req = InternalCreateRequest(); req->parent = this; req->type = Request::Type::Get; req->url = std::move(url); req->callback = std::move(callback); + req->progress = progress; req->start_time = Common::Timer::GetCurrentValue(); std::unique_lock lock(m_pending_http_request_lock); @@ -66,7 +68,7 @@ void HTTPDownloader::CreateRequest(std::string url, Request::Callback callback) LockedAddRequest(req); } -void HTTPDownloader::CreatePostRequest(std::string url, std::string post_data, Request::Callback callback) +void HTTPDownloader::CreatePostRequest(std::string url, std::string post_data, Request::Callback callback, ProgressCallback* progress) { Request* req = InternalCreateRequest(); req->parent = this; @@ -74,6 +76,7 @@ void HTTPDownloader::CreatePostRequest(std::string url, std::string post_data, R req->url = std::move(url); req->post_data = std::move(post_data); req->callback = std::move(callback); + req->progress = progress; req->start_time = Common::Timer::GetCurrentValue(); std::unique_lock lock(m_pending_http_request_lock); @@ -107,8 +110,8 @@ void HTTPDownloader::LockedPollRequests(std::unique_lock& lock) continue; } - if (req->state == Request::State::Started && current_time >= req->start_time && - Common::Timer::ConvertValueToSeconds(current_time - req->start_time) >= m_timeout) + if ((req->state == Request::State::Started || req->state == Request::State::Receiving) && + current_time >= req->start_time && Common::Timer::ConvertValueToSeconds(current_time - req->start_time) >= m_timeout) { // request timed out Console.Error("Request for '%s' timed out", req->url.c_str()); @@ -117,7 +120,24 @@ void HTTPDownloader::LockedPollRequests(std::unique_lock& lock) m_pending_http_requests.erase(m_pending_http_requests.begin() + index); lock.unlock(); - req->callback(HTTP_STATUS_TIMEOUT, req->content_type, Request::Data()); + req->callback(HTTP_STATUS_TIMEOUT, std::string(), Request::Data()); + + CloseRequest(req); + + lock.lock(); + continue; + } + else if ((req->state == Request::State::Started || req->state == Request::State::Receiving) && req->progress && + req->progress->IsCancelled()) + { + // request timed out + Console.Error("Request for '%s' cancelled", req->url.c_str()); + + req->state.store(Request::State::Cancelled); + m_pending_http_requests.erase(m_pending_http_requests.begin() + index); + lock.unlock(); + + req->callback(HTTP_STATUS_CANCELLED, std::string(), Request::Data()); CloseRequest(req); @@ -127,6 +147,17 @@ void HTTPDownloader::LockedPollRequests(std::unique_lock& lock) if (req->state != Request::State::Complete) { + if (req->progress) + { + const u32 size = static_cast(req->data.size()); + if (size != req->last_progress_update) + { + req->last_progress_update = size; + req->progress->SetProgressRange(req->content_length); + req->progress->SetProgressValue(req->last_progress_update); + } + } + active_requests++; index++; continue; diff --git a/common/HTTPDownloader.h b/common/HTTPDownloader.h index 1c3de16730b9c4..f1b241a0f17247 100644 --- a/common/HTTPDownloader.h +++ b/common/HTTPDownloader.h @@ -1,5 +1,5 @@ /* PCSX2 - PS2 Emulator for PCs - * Copyright (C) 2002-2022 PCSX2 Dev Team + * Copyright (C) 2002-2023 PCSX2 Dev Team * * PCSX2 is free software: you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Found- @@ -14,15 +14,20 @@ */ #pragma once + #include "common/Pcsx2Defs.h" + #include #include #include #include #include #include +#include #include +class ProgressCallback; + class HTTPDownloader { public: @@ -56,6 +61,7 @@ class HTTPDownloader HTTPDownloader* parent; Callback callback; + ProgressCallback* progress; std::string url; std::string post_data; std::string content_type; @@ -63,6 +69,7 @@ class HTTPDownloader u64 start_time; s32 status_code = 0; u32 content_length = 0; + u32 last_progress_update = 0; Type type = Type::Get; std::atomic state{State::Pending}; }; @@ -70,7 +77,7 @@ class HTTPDownloader HTTPDownloader(); virtual ~HTTPDownloader(); - static std::unique_ptr Create(const char* user_agent = DEFAULT_USER_AGENT); + static std::unique_ptr Create(std::string user_agent = DEFAULT_USER_AGENT); static std::string URLEncode(const std::string_view& str); static std::string URLDecode(const std::string_view& str); static std::string GetExtensionForContentType(const std::string& content_type); @@ -78,8 +85,8 @@ class HTTPDownloader void SetTimeout(float timeout); void SetMaxActiveRequests(u32 max_active_requests); - void CreateRequest(std::string url, Request::Callback callback); - void CreatePostRequest(std::string url, std::string post_data, Request::Callback callback); + void CreateRequest(std::string url, Request::Callback callback, ProgressCallback* progress = nullptr); + void CreatePostRequest(std::string url, std::string post_data, Request::Callback callback, ProgressCallback* progress = nullptr); void PollRequests(); void WaitForAllRequests(); bool HasAnyRequests(); diff --git a/common/HTTPDownloaderCurl.cpp b/common/HTTPDownloaderCurl.cpp index 07e63bea8c1814..58b1555f993c0c 100644 --- a/common/HTTPDownloaderCurl.cpp +++ b/common/HTTPDownloaderCurl.cpp @@ -39,10 +39,10 @@ HTTPDownloaderCurl::~HTTPDownloaderCurl() curl_multi_cleanup(m_multi_handle); } -std::unique_ptr HTTPDownloader::Create(const char* user_agent) +std::unique_ptr HTTPDownloader::Create(std::string user_agent) { std::unique_ptr instance(std::make_unique()); - if (!instance->Initialize(user_agent)) + if (!instance->Initialize(std::move(user_agent))) return {}; return instance; @@ -51,7 +51,7 @@ std::unique_ptr HTTPDownloader::Create(const char* user_agent) static bool s_curl_initialized = false; static std::once_flag s_curl_initialized_once_flag; -bool HTTPDownloaderCurl::Initialize(const char* user_agent) +bool HTTPDownloaderCurl::Initialize(std::string user_agent) { if (!s_curl_initialized) { @@ -79,7 +79,7 @@ bool HTTPDownloaderCurl::Initialize(const char* user_agent) return false; } - m_user_agent = user_agent; + m_user_agent = std::move(user_agent); return true; } @@ -90,7 +90,16 @@ size_t HTTPDownloaderCurl::WriteCallback(char* ptr, size_t size, size_t nmemb, v const size_t transfer_size = size * nmemb; const size_t new_size = current_size + transfer_size; req->data.resize(new_size); + req->start_time = Common::Timer::GetCurrentValue(); std::memcpy(&req->data[current_size], ptr, transfer_size); + + if (req->content_length == 0) + { + curl_off_t length; + if (curl_easy_getinfo(req->handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, &length) == CURLE_OK) + req->content_length = static_cast(length); + } + return nmemb; } @@ -174,8 +183,9 @@ bool HTTPDownloaderCurl::StartRequest(HTTPDownloader::Request* request) curl_easy_setopt(req->handle, CURLOPT_USERAGENT, m_user_agent.c_str()); curl_easy_setopt(req->handle, CURLOPT_WRITEFUNCTION, &HTTPDownloaderCurl::WriteCallback); curl_easy_setopt(req->handle, CURLOPT_WRITEDATA, req); - curl_easy_setopt(req->handle, CURLOPT_NOSIGNAL, 1); + curl_easy_setopt(req->handle, CURLOPT_NOSIGNAL, 1L); curl_easy_setopt(req->handle, CURLOPT_PRIVATE, req); + curl_easy_setopt(req->handle, CURLOPT_FOLLOWLOCATION, 1L); if (request->type == Request::Type::Post) { diff --git a/common/HTTPDownloaderCurl.h b/common/HTTPDownloaderCurl.h index 2ab84195ccf1a2..6778cf908639aa 100644 --- a/common/HTTPDownloaderCurl.h +++ b/common/HTTPDownloaderCurl.h @@ -28,7 +28,7 @@ class HTTPDownloaderCurl final : public HTTPDownloader HTTPDownloaderCurl(); ~HTTPDownloaderCurl() override; - bool Initialize(const char* user_agent); + bool Initialize(std::string user_agent); protected: Request* InternalCreateRequest() override; diff --git a/common/HTTPDownloaderWinHTTP.cpp b/common/HTTPDownloaderWinHTTP.cpp index 8a7fabe837b1e3..a6ba8d7b21bffa 100644 --- a/common/HTTPDownloaderWinHTTP.cpp +++ b/common/HTTPDownloaderWinHTTP.cpp @@ -20,6 +20,7 @@ #include "common/Console.h" #include "common/StringUtil.h" #include "common/Timer.h" + #include #include @@ -39,16 +40,16 @@ HTTPDownloaderWinHttp::~HTTPDownloaderWinHttp() } } -std::unique_ptr HTTPDownloader::Create(const char* user_agent) +std::unique_ptr HTTPDownloader::Create(std::string user_agent) { std::unique_ptr instance(std::make_unique()); - if (!instance->Initialize(user_agent)) + if (!instance->Initialize(std::move(user_agent))) return {}; return instance; } -bool HTTPDownloaderWinHttp::Initialize(const char* user_agent) +bool HTTPDownloaderWinHttp::Initialize(std::string user_agent) { const DWORD dwAccessType = WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY; diff --git a/common/HTTPDownloaderWinHTTP.h b/common/HTTPDownloaderWinHTTP.h index 6a12e15c0362c6..1373a0afd807f4 100644 --- a/common/HTTPDownloaderWinHTTP.h +++ b/common/HTTPDownloaderWinHTTP.h @@ -26,7 +26,7 @@ class HTTPDownloaderWinHttp final : public HTTPDownloader HTTPDownloaderWinHttp(); ~HTTPDownloaderWinHttp() override; - bool Initialize(const char* user_agent); + bool Initialize(std::string user_agent); protected: Request* InternalCreateRequest() override; @@ -46,5 +46,7 @@ class HTTPDownloaderWinHttp final : public HTTPDownloader static void CALLBACK HTTPStatusCallback(HINTERNET hInternet, DWORD_PTR dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength); + static bool CheckCancelled(Request* request); + HINTERNET m_hSession = NULL; }; diff --git a/common/SmallString.h b/common/SmallString.h index 1366ed8c25d87b..5b3d2adcc1892c 100644 --- a/common/SmallString.h +++ b/common/SmallString.h @@ -321,3 +321,25 @@ __fi void SmallStringBase::fmt(fmt::format_string fmt, T&&... args) clear(); fmt::vformat_to(std::back_inserter(*this), fmt, fmt::make_format_args(args...)); } + +#define MAKE_FORMATTER(type) \ + template <> \ + struct fmt::formatter \ + { \ + template \ + constexpr auto parse(ParseContext& ctx) \ + { \ + return ctx.begin(); \ + } \ +\ + template \ + auto format(const type& str, FormatContext& ctx) \ + { \ + return fmt::format_to(ctx.out(), "{}", str.view()); \ + } \ + }; + +MAKE_FORMATTER(TinyString); +MAKE_FORMATTER(SmallString); + +#undef MAKE_FORMATTER \ No newline at end of file diff --git a/common/vsprops/QtCompile.props b/common/vsprops/QtCompile.props index ff2e4b63eb23a0..a9e902175697fc 100644 --- a/common/vsprops/QtCompile.props +++ b/common/vsprops/QtCompile.props @@ -32,7 +32,7 @@ $(QtLibDir);%(AdditionalLibraryDirectories) - Qt6Core$(QtLibSuffix).lib;Qt6Gui$(QtLibSuffix).lib;Qt6Widgets$(QtLibSuffix).lib;Qt6Network$(QtLibSuffix).lib;Qt6Concurrent$(QtLibSuffix).lib;%(AdditionalDependencies) + Qt6Core$(QtLibSuffix).lib;Qt6Gui$(QtLibSuffix).lib;Qt6Widgets$(QtLibSuffix).lib;Qt6Concurrent$(QtLibSuffix).lib;%(AdditionalDependencies) @@ -118,24 +118,21 @@ - + - - - $(QtBinaryOutputDir)qt.conf + Inputs="@(QtDlls);@(QtPlugins)" + Outputs="@(QtDlls -> '$(QtBinaryOutputDir)%(RecursiveDir)%(Filename)%(Extension)');@(QtPluginsDest)"> - #include #include #include @@ -39,34 +43,34 @@ #include #include #include -#include -#include -#include #include #include #include +// Interval at which HTTP requests are polled. +static constexpr u32 HTTP_POLL_INTERVAL = 10; + // Logic to detect whether we can use the auto updater. // We use tagged commit, because this gets set on nightly builds. #if (defined(_WIN32) || defined(__linux__) || defined(__APPLE__)) && defined(GIT_TAG_LO) - #define AUTO_UPDATER_SUPPORTED 1 +#define AUTO_UPDATER_SUPPORTED 1 - #if defined(_WIN32) - #define UPDATE_PLATFORM_STR "Windows" - #elif defined(__linux__) - #define UPDATE_PLATFORM_STR "Linux" - #elif defined(__APPLE__) - #define UPDATE_PLATFORM_STR "MacOS" - #endif +#if defined(_WIN32) +#define UPDATE_PLATFORM_STR "Windows" +#elif defined(__linux__) +#define UPDATE_PLATFORM_STR "Linux" +#elif defined(__APPLE__) +#define UPDATE_PLATFORM_STR "MacOS" +#endif - #ifdef MULTI_ISA_SHARED_COMPILATION - // #undef UPDATE_ADDITIONAL_TAGS - #elif _M_SSE >= 0x501 - #define UPDATE_ADDITIONAL_TAGS "AVX2" - #else - #define UPDATE_ADDITIONAL_TAGS "SSE4" - #endif +#ifdef MULTI_ISA_SHARED_COMPILATION +// #undef UPDATE_ADDITIONAL_TAGS +#elif _M_SSE >= 0x501 +#define UPDATE_ADDITIONAL_TAGS "AVX2" +#else +#define UPDATE_ADDITIONAL_TAGS "SSE4" +#endif #endif @@ -86,8 +90,6 @@ static const char* UPDATE_TAGS[] = {"stable", "nightly"}; AutoUpdaterDialog::AutoUpdaterDialog(QWidget* parent /* = nullptr */) : QDialog(parent) { - m_network_access_mgr = new QNetworkAccessManager(this); - m_ui.setupUi(this); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); @@ -95,6 +97,10 @@ AutoUpdaterDialog::AutoUpdaterDialog(QWidget* parent /* = nullptr */) connect(m_ui.downloadAndInstall, &QPushButton::clicked, this, &AutoUpdaterDialog::downloadUpdateClicked); connect(m_ui.skipThisUpdate, &QPushButton::clicked, this, &AutoUpdaterDialog::skipThisUpdateClicked); connect(m_ui.remindMeLater, &QPushButton::clicked, this, &AutoUpdaterDialog::remindMeLaterClicked); + + m_http = HTTPDownloader::Create(Host::GetHTTPUserAgent()); + if (!m_http) + Console.Error("Failed to create HTTP downloader, auto updater will not be available."); } AutoUpdaterDialog::~AutoUpdaterDialog() = default; @@ -172,35 +178,66 @@ void AutoUpdaterDialog::reportError(const char* msg, ...) QMessageBox::critical(this, tr("Updater Error"), QString::fromStdString(full_msg)); } +bool AutoUpdaterDialog::ensureHttpReady() +{ + if (!m_http) + return false; + + if (!m_http_poll_timer) + { + m_http_poll_timer = new QTimer(this); + m_http_poll_timer->connect(m_http_poll_timer, &QTimer::timeout, this, &AutoUpdaterDialog::httpPollTimerPoll); + } + + if (!m_http_poll_timer->isActive()) + { + m_http_poll_timer->setSingleShot(false); + m_http_poll_timer->setInterval(HTTP_POLL_INTERVAL); + m_http_poll_timer->start(); + } + + return true; +} + +void AutoUpdaterDialog::httpPollTimerPoll() +{ + pxAssert(m_http); + m_http->PollRequests(); + + if (!m_http->HasAnyRequests()) + { + Console.WriteLn("(AutoUpdaterDialog) All HTTP requests done."); + m_http_poll_timer->stop(); + } +} + void AutoUpdaterDialog::queueUpdateCheck(bool display_message) { m_display_messages = display_message; #ifdef AUTO_UPDATER_SUPPORTED - connect(m_network_access_mgr, &QNetworkAccessManager::finished, this, &AutoUpdaterDialog::getLatestReleaseComplete); + if (!ensureHttpReady()) + { + emit updateCheckCompleted(); + return; + } - QUrl url(QStringLiteral(LATEST_RELEASE_URL).arg(getCurrentUpdateTag())); - QNetworkRequest request(url); - m_network_access_mgr->get(request); + m_http->CreateRequest(QStringLiteral(LATEST_RELEASE_URL).arg(getCurrentUpdateTag()).toStdString(), + std::bind(&AutoUpdaterDialog::getLatestReleaseComplete, this, std::placeholders::_1, std::placeholders::_3)); #else emit updateCheckCompleted(); #endif } -void AutoUpdaterDialog::getLatestReleaseComplete(QNetworkReply* reply) +void AutoUpdaterDialog::getLatestReleaseComplete(s32 status_code, std::vector data) { #ifdef AUTO_UPDATER_SUPPORTED - // this might fail due to a lack of internet connection - in which case, don't spam the user with messages every time. - m_network_access_mgr->disconnect(this); - reply->deleteLater(); - bool found_update_info = false; - if (reply->error() == QNetworkReply::NoError) + if (status_code == HTTPDownloader::HTTP_STATUS_OK) { - const QByteArray reply_json(reply->readAll()); QJsonParseError parse_error; - QJsonDocument doc(QJsonDocument::fromJson(reply_json, &parse_error)); + QJsonDocument doc(QJsonDocument::fromJson(QByteArray(reinterpret_cast(data.data()), data.size()), &parse_error)); if (doc.isObject()) { const QJsonObject doc_object(doc.object()); @@ -304,7 +341,7 @@ void AutoUpdaterDialog::getLatestReleaseComplete(QNetworkReply* reply) } else { - reportError("Failed to download latest release info: %d", static_cast(reply->error())); + reportError("Failed to download latest release info: %d", status_code); } if (found_update_info) @@ -317,29 +354,21 @@ void AutoUpdaterDialog::getLatestReleaseComplete(QNetworkReply* reply) void AutoUpdaterDialog::queueGetChanges() { #ifdef AUTO_UPDATER_SUPPORTED - connect(m_network_access_mgr, &QNetworkAccessManager::finished, this, &AutoUpdaterDialog::getChangesComplete); + if (!ensureHttpReady()) + return; - const QString url_string(QStringLiteral(CHANGES_URL).arg(GIT_HASH).arg(m_latest_version)); - QUrl url(url_string); - QNetworkRequest request(url); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); -#endif - m_network_access_mgr->get(request); + m_http->CreateRequest(QStringLiteral(CHANGES_URL).arg(GIT_HASH).arg(m_latest_version).toStdString(), + std::bind(&AutoUpdaterDialog::getChangesComplete, this, std::placeholders::_1, std::placeholders::_3)); #endif } -void AutoUpdaterDialog::getChangesComplete(QNetworkReply* reply) +void AutoUpdaterDialog::getChangesComplete(s32 status_code, std::vector data) { #ifdef AUTO_UPDATER_SUPPORTED - m_network_access_mgr->disconnect(this); - reply->deleteLater(); - - if (reply->error() == QNetworkReply::NoError) + if (status_code == HTTPDownloader::HTTP_STATUS_OK) { - const QByteArray reply_json(reply->readAll()); QJsonParseError parse_error; - QJsonDocument doc(QJsonDocument::fromJson(reply_json, &parse_error)); + QJsonDocument doc(QJsonDocument::fromJson(QByteArray(reinterpret_cast(data.data()), data.size()), &parse_error)); if (doc.isObject()) { const QJsonObject doc_object(doc.object()); @@ -400,7 +429,7 @@ void AutoUpdaterDialog::getChangesComplete(QNetworkReply* reply) } else { - reportError("Failed to download change list: %d", static_cast(reply->error())); + reportError("Failed to download change list: %d", status_code); } #endif @@ -427,61 +456,53 @@ void AutoUpdaterDialog::downloadUpdateClicked() } m_display_messages = true; - QUrl url(m_download_url); - QNetworkRequest request(url); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); -#endif - QNetworkReply* reply = m_network_access_mgr->get(request); - QProgressDialog progress(tr("Downloading %1...").arg(m_download_url), tr("Cancel"), 0, 1); - progress.setWindowTitle(tr("Automatic Updater")); - progress.setWindowIcon(windowIcon()); - progress.setAutoClose(false); + std::optional download_result; + QtModalProgressCallback progress(this); + progress.SetTitle(tr("Automatic Updater").toUtf8().constData()); + progress.SetStatusText(tr("Downloading %1...").arg(m_latest_version).toUtf8().constData()); + progress.GetDialog().setWindowIcon(windowIcon()); + progress.SetCancellable(true); - connect(reply, &QNetworkReply::downloadProgress, [&progress](quint64 received, quint64 total) { - progress.setRange(0, static_cast(total)); - progress.setValue(static_cast(received)); - }); + m_http->CreateRequest( + m_download_url.toStdString(), + [this, &download_result, &progress](s32 status_code, const std::string&, std::vector data) { + if (status_code == HTTPDownloader::HTTP_STATUS_CANCELLED) + return; - connect(m_network_access_mgr, &QNetworkAccessManager::finished, [this, &progress](QNetworkReply* reply) { - m_network_access_mgr->disconnect(); - - if (reply->error() != QNetworkReply::NoError) - { - reportError("Download failed: %s", reply->errorString().toUtf8().constData()); - progress.done(-1); - return; - } + if (status_code != HTTPDownloader::HTTP_STATUS_OK) + { + reportError("Download failed: %d", status_code); + download_result = false; + return; + } - const QByteArray data = reply->readAll(); - if (data.isEmpty()) - { - reportError("Download failed: Update is empty"); - progress.done(-1); - return; - } + if (data.empty()) + { + reportError("Download failed: Update is empty"); + download_result = false; + return; + } - if (processUpdate(data, progress)) - progress.done(1); - else - progress.done(-1); - }); + download_result = processUpdate(data, progress.GetDialog()); + }, + &progress); - const int result = progress.exec(); - if (result == 0) + // Block until completion. + while (m_http->HasAnyRequests()) { - // cancelled - reply->abort(); + QApplication::processEvents(QEventLoop::AllEvents, HTTP_POLL_INTERVAL); + m_http->PollRequests(); } - else if (result == 1) + + if (download_result.value_or(false)) { // updater started. since we're a modal on the main window, we have to queue this. QMetaObject::invokeMethod(g_main_window, "requestExit", Qt::QueuedConnection, Q_ARG(bool, true)); done(0); } - reply->deleteLater(); + // download error or cancelled } void AutoUpdaterDialog::checkIfUpdateNeeded() @@ -490,8 +511,8 @@ void AutoUpdaterDialog::checkIfUpdateNeeded() QString::fromStdString(Host::GetBaseStringSettingValue("AutoUpdater", "LastVersion"))); Console.WriteLn(Color_StrongGreen, "Current version: %s", GIT_TAG); - Console.WriteLn(Color_StrongYellow, "Latest SHA: %s", m_latest_version.toUtf8().constData()); - Console.WriteLn(Color_StrongOrange, "Last Checked SHA: %s", last_checked_version.toUtf8().constData()); + Console.WriteLn(Color_StrongYellow, "Latest version: %s", m_latest_version.toUtf8().constData()); + Console.WriteLn(Color_StrongOrange, "Last checked version: %s", last_checked_version.toUtf8().constData()); if (m_latest_version == GIT_TAG || m_latest_version == last_checked_version) { Console.WriteLn(Color_StrongGreen, "No update needed."); @@ -522,7 +543,9 @@ void AutoUpdaterDialog::checkIfUpdateNeeded() m_ui.downloadSize->setText(tr("Download Size: %1 MB").arg(static_cast(m_download_size) / 1048576.0, 0, 'f', 2)); m_ui.updateNotes->setText(tr("Loading...")); queueGetChanges(); - exec(); + + // We have to defer this, because it comes back through the timer/HTTP callback... + QMetaObject::invokeMethod(this, "exec", Qt::QueuedConnection); } void AutoUpdaterDialog::skipThisUpdateClicked() @@ -539,7 +562,7 @@ void AutoUpdaterDialog::remindMeLaterClicked() #if defined(_WIN32) -bool AutoUpdaterDialog::processUpdate(const QByteArray& update_data, QProgressDialog&) +bool AutoUpdaterDialog::processUpdate(const std::vector& data, QProgressDialog&) { const QString update_directory = QCoreApplication::applicationDirPath(); const QString update_zip_path = QStringLiteral("%1" FS_OSPATH_SEPARATOR_STR "%2").arg(update_directory).arg(UPDATER_ARCHIVE_NAME); @@ -555,7 +578,8 @@ bool AutoUpdaterDialog::processUpdate(const QByteArray& update_data, QProgressDi { QFile update_zip_file(update_zip_path); - if (!update_zip_file.open(QIODevice::WriteOnly) || update_zip_file.write(update_data) != update_data.size()) + if (!update_zip_file.open(QIODevice::WriteOnly) || + update_zip_file.write(reinterpret_cast(data.data()), static_cast(data.size())) != static_cast(data.size())) { reportError("Writing update zip to '%s' failed", update_zip_path.toUtf8().constData()); return false; @@ -615,7 +639,7 @@ void AutoUpdaterDialog::cleanupAfterUpdate() #elif defined(__linux__) -bool AutoUpdaterDialog::processUpdate(const QByteArray& update_data, QProgressDialog&) +bool AutoUpdaterDialog::processUpdate(const std::vector& data, QProgressDialog&) { const char* appimage_path = std::getenv("APPIMAGE"); if (!appimage_path || !FileSystem::FileExists(appimage_path)) @@ -655,7 +679,9 @@ bool AutoUpdaterDialog::processUpdate(const QByteArray& update_data, QProgressDi QFile old_file(qappimage_path); const QFileDevice::Permissions old_permissions = old_file.permissions(); QFile new_file(new_appimage_path); - if (!new_file.open(QIODevice::WriteOnly) || new_file.write(update_data) != update_data.size() || !new_file.setPermissions(old_permissions)) + if (!new_file.open(QIODevice::WriteOnly) || + new_file.write(reinterpret_cast(data.data()), static_cast(data.size())) != static_cast(data.size()) || + !new_file.setPermissions(old_permissions)) { QFile::remove(new_appimage_path); reportError("Failed to write new destination AppImage: %s", new_appimage_path.toUtf8().constData()); @@ -725,7 +751,7 @@ static QString UpdateVersionNumberInName(QString name, QStringView new_version) return name; } -bool AutoUpdaterDialog::processUpdate(const QByteArray& update_data, QProgressDialog& progress) +bool AutoUpdaterDialog::processUpdate(const std::vector& data, QProgressDialog& progress) { std::optional path = CocoaTools::GetNonTranslocatedBundlePath(); if (!path.has_value()) @@ -754,20 +780,21 @@ bool AutoUpdaterDialog::processUpdate(const QByteArray& update_data, QProgressDi return false; } - constexpr qsizetype chunk_size = 65536; + constexpr size_t chunk_size = 65536; progress.setLabelText(QStringLiteral("Unpacking update...")); progress.reset(); - progress.setRange(0, static_cast((update_data.size() + chunk_size - 1) / chunk_size)); + progress.setRange(0, static_cast((data.size() + chunk_size - 1) / chunk_size)); QProcess untar; untar.setProgram(QStringLiteral("/usr/bin/tar")); untar.setArguments({QStringLiteral("xC"), temp_dir.path()}); untar.start(); - for (qsizetype i = 0; i < update_data.size(); i += chunk_size) + for (size_t i = 0; i < data.size(); i += chunk_size) { progress.setValue(static_cast(i / chunk_size)); - const qsizetype amt = std::min(update_data.size() - i, chunk_size); - if (progress.wasCanceled() || untar.write(update_data.data() + i, amt) != amt) + const size_t amt = std::min(data.size() - i, chunk_size); + if (progress.wasCanceled() || + untar.write(reinterpret_cast(data.data() + i), static_cast(amt)) != static_cast(amt)) { if (!progress.wasCanceled()) reportError("Failed to unpack update (write stopped short)"); @@ -796,7 +823,7 @@ bool AutoUpdaterDialog::processUpdate(const QByteArray& update_data, QProgressDi } QFileInfoList temp_dir_contents = QDir(temp_dir.path()).entryInfoList(QDir::Filter::Dirs | QDir::Filter::NoDotAndDotDot); - auto new_app = std::find_if(temp_dir_contents.begin(), temp_dir_contents.end(), [](const QFileInfo& file){ return file.suffix() == QStringLiteral("app"); }); + auto new_app = std::find_if(temp_dir_contents.begin(), temp_dir_contents.end(), [](const QFileInfo& file) { return file.suffix() == QStringLiteral("app"); }); if (new_app == temp_dir_contents.end()) { reportError("Couldn't find application in update package"); @@ -814,7 +841,7 @@ bool AutoUpdaterDialog::processUpdate(const QByteArray& update_data, QProgressDi { QFile::rename(QString::fromStdString(*trashed_path), info.filePath()); reportError("Failed to move new application into place (couldn't rename '%s' to '%s')", - new_app->absoluteFilePath().toUtf8().constData(), open_path.toUtf8().constData()); + new_app->absoluteFilePath().toUtf8().constData(), open_path.toUtf8().constData()); return false; } QDir(QString::fromStdString(*trashed_path)).removeRecursively(); diff --git a/pcsx2-qt/AutoUpdaterDialog.h b/pcsx2-qt/AutoUpdaterDialog.h index da3654f55280ac..b5bb56cb0a8e69 100644 --- a/pcsx2-qt/AutoUpdaterDialog.h +++ b/pcsx2-qt/AutoUpdaterDialog.h @@ -1,5 +1,5 @@ /* PCSX2 - PS2 Emulator for PCs - * Copyright (C) 2002-2022 PCSX2 Dev Team + * Copyright (C) 2002-2023 PCSX2 Dev Team * * PCSX2 is free software: you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Found- @@ -14,14 +14,20 @@ */ #pragma once + +#include "common/Pcsx2Defs.h" + #include "ui_AutoUpdaterDialog.h" + +#include #include + #include #include +#include #include -class QNetworkAccessManager; -class QNetworkReply; +class HTTPDownloader; class QProgressDialog; class AutoUpdaterDialog final : public QDialog @@ -46,28 +52,33 @@ public Q_SLOTS: void queueUpdateCheck(bool display_message); private Q_SLOTS: - void getLatestReleaseComplete(QNetworkReply* reply); - - void queueGetChanges(); - void getChangesComplete(QNetworkReply* reply); - + void httpPollTimerPoll(); void downloadUpdateClicked(); void skipThisUpdateClicked(); void remindMeLaterClicked(); private: void reportError(const char* msg, ...); + + bool ensureHttpReady(); + void checkIfUpdateNeeded(); QString getCurrentUpdateTag() const; - bool processUpdate(const QByteArray& update_data, QProgressDialog& progress); + void getLatestReleaseComplete(s32 status_code, std::vector data); + + void queueGetChanges(); + void getChangesComplete(s32 status_code, std::vector data); + + bool processUpdate(const std::vector& data, QProgressDialog& progress); #if defined(_WIN32) bool doUpdate(const QString& zip_path, const QString& updater_path, const QString& destination_path); #endif Ui::AutoUpdaterDialog m_ui; - QNetworkAccessManager* m_network_access_mgr = nullptr; + std::unique_ptr m_http; + QTimer* m_http_poll_timer = nullptr; QString m_latest_version; QDateTime m_latest_version_timestamp; QString m_download_url; diff --git a/pcsx2-qt/CMakeLists.txt b/pcsx2-qt/CMakeLists.txt index 7fbf1de96f16aa..697221e11951ce 100644 --- a/pcsx2-qt/CMakeLists.txt +++ b/pcsx2-qt/CMakeLists.txt @@ -193,7 +193,6 @@ target_link_libraries(pcsx2-qt PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets - Qt6::Network ) # Our Qt builds may have exceptions on, so force them off. @@ -222,6 +221,7 @@ elseif(APPLE) set_source_files_properties(${QM_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/translations/) endforeach() copy_base_translations(pcsx2-qt) + extract_translation_from_ts(Translations/pcsx2-qt_en.ts source PermissionsDialogMicrophone PCSX2_MICROPHONE_USAGE_DESCRIPTION) else() qt_add_lrelease(pcsx2-qt TS_FILES ${TS_FILES} QM_FILES_OUTPUT_VARIABLE QM_FILES) set(QM_OUTPUT_DIR "$/translations") diff --git a/pcsx2-qt/Debugger/CpuWidget.cpp b/pcsx2-qt/Debugger/CpuWidget.cpp index d9d569c12a58e9..19e3ab53ac8e1c 100644 --- a/pcsx2-qt/Debugger/CpuWidget.cpp +++ b/pcsx2-qt/Debugger/CpuWidget.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include "demangler/demangler.h" @@ -100,8 +101,12 @@ CpuWidget::CpuWidget(QWidget* parent, DebugInterface& cpu) connect(m_ui.btnRefreshFunctions, &QPushButton::clicked, [this] { updateFunctionList(); }); connect(m_ui.txtFuncSearch, &QLineEdit::textChanged, [this] { updateFunctionList(); }); + m_ui.listSearchResults->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_ui.btnSearch, &QPushButton::clicked, this, &CpuWidget::onSearchButtonClicked); - connect(m_ui.listSearchResults, &QListWidget::itemDoubleClicked, [this](QListWidgetItem* item) { m_ui.memoryviewWidget->gotoAddress(item->data(256).toUInt()); }); + connect(m_ui.btnFilterSearch, &QPushButton::clicked, this, &CpuWidget::onSearchButtonClicked); + connect(m_ui.listSearchResults, &QListWidget::itemDoubleClicked, [this](QListWidgetItem* item) { m_ui.memoryviewWidget->gotoAddress(item->text().toUInt(nullptr, 16)); }); + connect(m_ui.listSearchResults->verticalScrollBar(), &QScrollBar::valueChanged, this, &CpuWidget::onSearchResultsListScroll); + connect(m_ui.listSearchResults, &QListView::customContextMenuRequested, this, &CpuWidget::onListSearchResultsContextMenu); connect(m_ui.cmbSearchType, &QComboBox::currentIndexChanged, [this](int i) { if (i < 4) m_ui.chkSearchHex->setEnabled(true); @@ -122,6 +127,11 @@ CpuWidget::CpuWidget(QWidget* parent, DebugInterface& cpu) m_ui.listFunctions->setVisible(false); } this->repaint(); + + // Ensures we don't retrigger the load results function unintentionally + m_resultsLoadTimer.setInterval(100); + m_resultsLoadTimer.setSingleShot(true); + connect(&m_resultsLoadTimer, &QTimer::timeout, this, &CpuWidget::loadSearchResults); } CpuWidget::~CpuWidget() = default; @@ -474,6 +484,30 @@ void CpuWidget::contextBPListPasteCSV() } } +void CpuWidget::contextSearchResultGoToDisassembly() +{ + const QItemSelectionModel* selModel = m_ui.listSearchResults->selectionModel(); + if (!selModel->hasSelection()) + return; + + m_ui.disassemblyWidget->gotoAddress(m_ui.listSearchResults->selectedItems().first()->data(256).toUInt()); +} + +void CpuWidget::contextRemoveSearchResult() +{ + const QItemSelectionModel* selModel = m_ui.listSearchResults->selectionModel(); + if (!selModel->hasSelection()) + return; + + const int selectedResultIndex = m_ui.listSearchResults->row(m_ui.listSearchResults->selectedItems().first()); + auto* rowToRemove = m_ui.listSearchResults->takeItem(selectedResultIndex); + if (m_searchResults.size() > selectedResultIndex && m_searchResults.at(selectedResultIndex) == rowToRemove->data(256).toUInt()) + { + m_searchResults.erase(m_searchResults.begin() + selectedResultIndex); + } + delete rowToRemove; +} + void CpuWidget::updateFunctionList(bool whenEmpty) { if (!m_cpu.isAlive()) @@ -768,6 +802,25 @@ void CpuWidget::updateStackFrames() m_stackModel.refreshData(); } +void CpuWidget::onListSearchResultsContextMenu(QPoint pos) +{ + QMenu* contextMenu = new QMenu(tr("Search Results List Context Menu"), m_ui.listSearchResults); + const QItemSelectionModel* selModel = m_ui.listSearchResults->selectionModel(); + + if (selModel->hasSelection()) + { + QAction* goToDisassemblyAction = new QAction(tr("Go to in Disassembly"), m_ui.listSearchResults); + connect(goToDisassemblyAction, &QAction::triggered, this, &CpuWidget::contextSearchResultGoToDisassembly); + contextMenu->addAction(goToDisassemblyAction); + + QAction* removeResultAction = new QAction(tr("Remove Result"), m_ui.listSearchResults); + connect(removeResultAction, &QAction::triggered, this, &CpuWidget::contextRemoveSearchResult); + contextMenu->addAction(removeResultAction); + } + + contextMenu->popup(m_ui.listSearchResults->viewport()->mapToGlobal(pos)); +} + void CpuWidget::onStackListContextMenu(QPoint pos) { if (!m_ui.stackList->selectionModel()->hasSelection()) @@ -816,114 +869,145 @@ void CpuWidget::onStackListDoubleClick(const QModelIndex& index) } template -static std::vector searchWorker(DebugInterface* cpu, u32 start, u32 end, T value) +static bool checkAddressValueMatches(DebugInterface* cpu, u32 addr, T value) { - std::vector hitAddresses; - for (u32 addr = start; addr < end; addr += sizeof(T)) + T val = 0; + switch (sizeof(T)) { - T val = 0; - switch (sizeof(T)) + case sizeof(u8): + val = cpu->read8(addr); + break; + case sizeof(u16): + val = cpu->read16(addr); + break; + case sizeof(u32): { - case sizeof(u8): - val = cpu->read8(addr); - break; - case sizeof(u16): - val = cpu->read16(addr); - break; - case sizeof(u32): + if (std::is_same_v) { - if (std::is_same_v) - { - const float fTop = value + 0.00001f; - const float fBottom = value - 0.00001f; - const float memValue = std::bit_cast(cpu->read32(addr)); - if (fBottom < memValue && memValue < fTop) - { - hitAddresses.emplace_back(addr); - } - continue; - } - - val = cpu->read32(addr); - break; + const float fTop = value + 0.00001f; + const float fBottom = value - 0.00001f; + const float memValue = std::bit_cast(cpu->read32(addr)); + return (fBottom < memValue && memValue < fTop); } - case sizeof(u64): - { - if (std::is_same_v) - { - const double dTop = value + 0.00001f; - const double dBottom = value - 0.00001f; - const double memValue = std::bit_cast(cpu->read64(addr)); - if (dBottom < memValue && memValue < dTop) - { - hitAddresses.emplace_back(addr); - } - continue; - } - val = cpu->read64(addr); - break; + val = cpu->read32(addr); + break; + } + case sizeof(u64): + { + if (std::is_same_v) + { + const double dTop = value + 0.00001f; + const double dBottom = value - 0.00001f; + const double memValue = std::bit_cast(cpu->read64(addr)); + return (dBottom < memValue && memValue < dTop); } - default: - Console.Error("Debugger: Unknown type when doing memory search!"); - return hitAddresses; - break; + val = cpu->read64(addr); + break; } - if (val == value) + default: + Console.Error("Debugger: Unknown type when doing memory search!"); + return false; + break; + } + + return val == value; +} + +template +static std::vector searchWorker(DebugInterface* cpu, std::vector searchAddresses, u32 start, u32 end, T value) +{ + std::vector hitAddresses; + const bool isSearchingRange = searchAddresses.size() <= 0; + if (isSearchingRange) + { + for (u32 addr = start; addr < end; addr += sizeof(T)) + { + if (checkAddressValueMatches(cpu, addr, value)) + { + hitAddresses.push_back(addr); + } + } + } + else + { + for (const u32 addr : searchAddresses) { - hitAddresses.push_back(addr); + if (checkAddressValueMatches(cpu, addr, value)) + { + hitAddresses.push_back(addr); + } + } } return hitAddresses; } -static std::vector searchWorkerByteArray(DebugInterface* cpu, u32 start, u32 end, QByteArray value) +static bool compareByteArrayAtAddress(DebugInterface* cpu, u32 addr, QByteArray value) +{ + for (qsizetype i = 0; i < value.length(); i++) + { + if (static_cast(cpu->read8(addr + i)) != value[i]) + { + return false; + } + } + return true; +} + +static std::vector searchWorkerByteArray(DebugInterface* cpu, std::vector searchAddresses, u32 start, u32 end, QByteArray value) { + std::vector hitAddresses; - for (u32 addr = start; addr < end; addr += 1) + const bool isSearchingRange = searchAddresses.size() <= 0; + if (isSearchingRange) { - bool hit = true; - for (qsizetype i = 0; i < value.length(); i++) + for (u32 addr = start; addr < end; addr += 1) { - if (static_cast(cpu->read8(addr + i)) != value[i]) + if (compareByteArrayAtAddress(cpu, addr, value)) { - hit = false; - break; + hitAddresses.emplace_back(addr); + addr += value.length() - 1; } } - if (hit) + } + else + { + for (u32 addr : searchAddresses) { - hitAddresses.emplace_back(addr); - addr += value.length() - 1; + if (compareByteArrayAtAddress(cpu, addr, value)) + { + hitAddresses.emplace_back(addr); + } } } return hitAddresses; } -std::vector startWorker(DebugInterface* cpu, int type, u32 start, u32 end, QString value, int base) +std::vector startWorker(DebugInterface* cpu, int type, std::vector searchAddresses, u32 start, u32 end, QString value, int base) { const bool isSigned = value.startsWith("-"); switch (type) { case 0: - return isSigned ? searchWorker(cpu, start, end, value.toShort(nullptr, base)) : searchWorker(cpu, start, end, value.toUShort(nullptr, base)); + return isSigned ? searchWorker(cpu, searchAddresses, start, end, value.toShort(nullptr, base)) : searchWorker(cpu, searchAddresses, start, end, value.toUShort(nullptr, base)); case 1: - return isSigned ? searchWorker(cpu, start, end, value.toShort(nullptr, base)) : searchWorker(cpu, start, end, value.toUShort(nullptr, base)); + return isSigned ? searchWorker(cpu, searchAddresses, start, end, value.toShort(nullptr, base)) : searchWorker(cpu, searchAddresses, start, end, value.toUShort(nullptr, base)); case 2: - return isSigned ? searchWorker(cpu, start, end, value.toInt(nullptr, base)) : searchWorker(cpu, start, end, value.toUInt(nullptr, base)); + return isSigned ? searchWorker(cpu, searchAddresses, start, end, value.toInt(nullptr, base)) : searchWorker(cpu, searchAddresses, start, end, value.toUInt(nullptr, base)); case 3: - return isSigned ? searchWorker(cpu, start, end, value.toLong(nullptr, base)) : searchWorker(cpu, start, end, value.toULongLong(nullptr, base)); + return isSigned ? searchWorker(cpu, searchAddresses, start, end, value.toLong(nullptr, base)) : searchWorker(cpu, searchAddresses, start, end, value.toULongLong(nullptr, base)); case 4: - return searchWorker(cpu, start, end, value.toFloat()); + return searchWorker(cpu, searchAddresses, start, end, value.toFloat()); case 5: - return searchWorker(cpu, start, end, value.toDouble()); + return searchWorker(cpu, searchAddresses, start, end, value.toDouble()); case 6: - return searchWorkerByteArray(cpu, start, end, value.toUtf8()); + return searchWorkerByteArray(cpu, searchAddresses, start, end, value.toUtf8()); case 7: - return searchWorkerByteArray(cpu, start, end, QByteArray::fromHex(value.toUtf8())); + return searchWorkerByteArray(cpu, searchAddresses, start, end, QByteArray::fromHex(value.toUtf8())); default: Console.Error("Debugger: Unknown type when doing memory search!"); break; @@ -1024,16 +1108,53 @@ void CpuWidget::onSearchButtonClicked() m_ui.listSearchResults->clear(); const auto& results = workerWatcher->future().result(); - for (const auto& address : results) - { - QListWidgetItem* item = new QListWidgetItem(QtUtils::FilledQStringFromValue(address, 16)); - item->setData(256, address); - m_ui.listSearchResults->addItem(item); - } + m_searchResults = results; + loadSearchResults(); + m_ui.btnFilterSearch->setDisabled(m_ui.listSearchResults->count() == 0); + }); m_ui.btnSearch->setDisabled(true); + QPushButton* senderButton = qobject_cast(sender()); + bool isFilterSearch = senderButton == m_ui.btnFilterSearch; + std::vector addresses; + if (isFilterSearch) + { + addresses = m_searchResults; + } QFuture> workerFuture = - QtConcurrent::run(startWorker, &m_cpu, searchType, searchStart, searchEnd, searchValue, searchHex ? 16 : 10); + QtConcurrent::run(startWorker, &m_cpu, searchType, addresses, searchStart, searchEnd, searchValue, searchHex ? 16 : 10); workerWatcher->setFuture(workerFuture); } + +void CpuWidget::onSearchResultsListScroll(u32 value) +{ + bool hasResultsToLoad = static_cast(m_ui.listSearchResults->count()) < m_searchResults.size(); + bool scrolledSufficiently = value > (m_ui.listSearchResults->verticalScrollBar()->maximum() * 0.95); + + if (!m_resultsLoadTimer.isActive() && hasResultsToLoad && scrolledSufficiently) + { + // Load results once timer ends, allowing us to debounce repeated requests and only do one load. + m_resultsLoadTimer.start(); + } +} + +void CpuWidget::loadSearchResults() { + const u32 numLoaded = m_ui.listSearchResults->count(); + const u32 amountLeftToLoad = m_searchResults.size() - numLoaded; + if (amountLeftToLoad < 1) + return; + + const bool isFirstLoad = numLoaded == 0; + const u32 maxLoadAmount = isFirstLoad ? m_initialResultsLoadLimit : m_numResultsAddedPerLoad; + const u32 numToLoad = amountLeftToLoad > maxLoadAmount ? maxLoadAmount : amountLeftToLoad; + + for (u32 i = 0; i < numToLoad; i++) + { + u32 address = m_searchResults.at(numLoaded + i); + QListWidgetItem* item = new QListWidgetItem(QtUtils::FilledQStringFromValue(address, 16)); + item->setData(256, address); + m_ui.listSearchResults->addItem(item); + } +} + diff --git a/pcsx2-qt/Debugger/CpuWidget.h b/pcsx2-qt/Debugger/CpuWidget.h index 22d54ad6bb0ca1..f61922600627b5 100644 --- a/pcsx2-qt/Debugger/CpuWidget.h +++ b/pcsx2-qt/Debugger/CpuWidget.h @@ -30,6 +30,7 @@ #include #include #include +#include #include @@ -94,9 +95,15 @@ public slots: }; void onSearchButtonClicked(); + void onSearchResultsListScroll(u32 value); + void loadSearchResults(); + void contextSearchResultGoToDisassembly(); + void contextRemoveSearchResult(); + void onListSearchResultsContextMenu(QPoint pos); private: std::vector m_registerTableViews; + std::vector m_searchResults; QMenu* m_stacklistContextMenu = 0; QMenu* m_funclistContextMenu = 0; @@ -110,7 +117,10 @@ public slots: ThreadModel m_threadModel; QSortFilterProxyModel m_threadProxyModel; StackModel m_stackModel; + QTimer m_resultsLoadTimer; bool m_demangleFunctions = true; bool m_moduleView = true; + u32 m_initialResultsLoadLimit = 20000; + u32 m_numResultsAddedPerLoad = 10000; }; diff --git a/pcsx2-qt/Debugger/CpuWidget.ui b/pcsx2-qt/Debugger/CpuWidget.ui index b04725c671ac69..d4c94bb84cb603 100644 --- a/pcsx2-qt/Debugger/CpuWidget.ui +++ b/pcsx2-qt/Debugger/CpuWidget.ui @@ -183,14 +183,14 @@ - + End - + 0x00 @@ -207,28 +207,28 @@ - + Start - + 0x2000000 - + Type - + @@ -272,14 +272,14 @@ - + Hex - + @@ -296,6 +296,16 @@ + + + + false + + + Filter Search + + + diff --git a/pcsx2-qt/Debugger/DisassemblyWidget.cpp b/pcsx2-qt/Debugger/DisassemblyWidget.cpp index de93c18fae3e5c..588c53fc9d07ef 100644 --- a/pcsx2-qt/Debugger/DisassemblyWidget.cpp +++ b/pcsx2-qt/Debugger/DisassemblyWidget.cpp @@ -234,6 +234,11 @@ void DisassemblyWidget::contextAddFunction() } } +void DisassemblyWidget::contextCopyFunctionName() +{ + QGuiApplication::clipboard()->setText(QString::fromStdString(m_cpu->GetSymbolMap().GetLabelName(m_selectedAddressStart))); +} + void DisassemblyWidget::contextRemoveFunction() { u32 curFuncAddr = m_cpu->GetSymbolMap().GetFunctionStart(m_selectedAddressStart); @@ -665,6 +670,11 @@ void DisassemblyWidget::customMenuRequested(QPoint pos) connect(action, &QAction::triggered, this, &DisassemblyWidget::contextCopyInstructionHex); contextMenu->addAction(action = new QAction(tr("Copy Instruction Text"), this)); connect(action, &QAction::triggered, this, &DisassemblyWidget::contextCopyInstructionText); + if (m_selectedAddressStart == m_cpu->GetSymbolMap().GetFunctionStart(m_selectedAddressStart)) + { + contextMenu->addAction(action = new QAction(tr("Copy Function Name"), this)); + connect(action, &QAction::triggered, this, &DisassemblyWidget::contextCopyFunctionName); + } contextMenu->addSeparator(); if (AddressCanRestore(m_selectedAddressStart, m_selectedAddressEnd)) { diff --git a/pcsx2-qt/Debugger/DisassemblyWidget.h b/pcsx2-qt/Debugger/DisassemblyWidget.h index a238c84ec0a3bf..6c7586f4446b97 100644 --- a/pcsx2-qt/Debugger/DisassemblyWidget.h +++ b/pcsx2-qt/Debugger/DisassemblyWidget.h @@ -54,6 +54,7 @@ public slots: void contextCopyAddress(); void contextCopyInstructionHex(); void contextCopyInstructionText(); + void contextCopyFunctionName(); void contextAssembleInstruction(); void contextNoopInstruction(); void contextRestoreInstruction(); diff --git a/pcsx2-qt/DisplayWidget.cpp b/pcsx2-qt/DisplayWidget.cpp index 81ffa91de3668a..2ad8c09e7ff02e 100644 --- a/pcsx2-qt/DisplayWidget.cpp +++ b/pcsx2-qt/DisplayWidget.cpp @@ -148,7 +148,9 @@ void DisplayWidget::handleCloseEvent(QCloseEvent* event) { // Closing the separate widget will either cancel the close, or trigger shutdown. // In the latter case, it's going to destroy us, so don't let Qt do it first. - if (QtHost::IsVMValid()) + // Treat a close event while fullscreen as an exit, that way ALT+F4 closes PCSX2, + // rather than just the game. + if (QtHost::IsVMValid() && !isActuallyFullscreen()) { QMetaObject::invokeMethod(g_main_window, "requestShutdown", Q_ARG(bool, true), Q_ARG(bool, true), Q_ARG(bool, false)); @@ -170,12 +172,19 @@ void DisplayWidget::destroy() // See Qt documentation, entire application is in full screen state, and the main // window will get reopened fullscreen instead of windowed if we don't close the // fullscreen window first. - if (isFullScreen()) + if (isActuallyFullscreen()) close(); #endif deleteLater(); } +bool DisplayWidget::isActuallyFullscreen() const +{ + // I hate you QtWayland... have to check the parent, not ourselves. + QWidget* container = qobject_cast(parent()); + return container ? container->isFullScreen() : isFullScreen(); +} + void DisplayWidget::updateCenterPos() { #ifdef _WIN32 diff --git a/pcsx2-qt/DisplayWidget.h b/pcsx2-qt/DisplayWidget.h index 0371865d10678d..1327248152e1d7 100644 --- a/pcsx2-qt/DisplayWidget.h +++ b/pcsx2-qt/DisplayWidget.h @@ -51,6 +51,7 @@ class DisplayWidget final : public QWidget bool event(QEvent* event) override; private: + bool isActuallyFullscreen() const; void updateCenterPos(); QPoint m_relative_mouse_start_pos{}; diff --git a/pcsx2-qt/MainWindow.cpp b/pcsx2-qt/MainWindow.cpp index 6f6a31c495b544..5c646e65aa78e5 100644 --- a/pcsx2-qt/MainWindow.cpp +++ b/pcsx2-qt/MainWindow.cpp @@ -457,8 +457,15 @@ void MainWindow::connectVMThreadSignals(EmuThread* thread) void MainWindow::recreate() { - if (s_vm_valid) - requestShutdown(false, true, EmuConfig.SaveStateOnShutdown); + const bool was_display_created = m_display_created; + if (was_display_created) + { + g_emu_thread->setSurfaceless(true); + while (m_display_widget || !g_emu_thread->isSurfaceless()) + QApplication::processEvents(QEventLoop::ExcludeUserInputEvents, 1); + + m_display_created = false; + } // We need to close input sources, because e.g. DInput uses our window handle. g_emu_thread->closeInputSources(); @@ -467,6 +474,7 @@ void MainWindow::recreate() g_main_window = nullptr; MainWindow* new_main_window = new MainWindow(); + pxAssert(g_main_window == new_main_window); new_main_window->initialize(); new_main_window->refreshGameList(false); new_main_window->show(); @@ -474,6 +482,13 @@ void MainWindow::recreate() // Reload the sources we just closed. g_emu_thread->reloadInputSources(); + + if (was_display_created) + { + g_emu_thread->setSurfaceless(false); + g_main_window->updateEmulationActions(false, s_vm_valid, Achievements::IsHardcoreModeActive()); + g_main_window->onFullscreenUIStateChange(g_emu_thread->isRunningFullscreenUI()); + } } void MainWindow::recreateSettings() @@ -958,7 +973,8 @@ bool MainWindow::shouldHideMainWindow() const { // NOTE: We can't use isRenderingToMain() here, because this happens post-fullscreen-switch. return Host::GetBoolSettingValue("UI", "HideMainWindowWhenRunning", false) || - (g_emu_thread->shouldRenderToMain() && isRenderingFullscreen()) || QtHost::InNoGUIMode(); + (g_emu_thread->shouldRenderToMain() && (isRenderingFullscreen() || m_is_temporarily_windowed)) || + QtHost::InNoGUIMode(); } void MainWindow::switchToGameListView() @@ -1823,10 +1839,10 @@ void MainWindow::showEvent(QShowEvent* event) void MainWindow::closeEvent(QCloseEvent* event) { // If there's no VM, we can just exit as normal. - if (!s_vm_valid) + if (!s_vm_valid || !m_display_created) { saveStateToConfig(); - if (m_display_widget) + if (m_display_created) g_emu_thread->stopFullscreenUI(); destroySubWindows(); QMainWindow::closeEvent(event); @@ -2021,7 +2037,10 @@ std::optional MainWindow::acquireRenderWindow(bool recreate_window, } else { - restoreDisplayWindowGeometryFromConfig(); + if (m_is_temporarily_windowed && g_emu_thread->shouldRenderToMain()) + container->setGeometry(geometry()); + else + restoreDisplayWindowGeometryFromConfig(); container->showNormal(); } @@ -2107,7 +2126,10 @@ void MainWindow::createDisplayWidget(bool fullscreen, bool render_to_main) } else if (!render_to_main) { - restoreDisplayWindowGeometryFromConfig(); + if (m_is_temporarily_windowed && g_emu_thread->shouldRenderToMain()) + container->setGeometry(geometry()); + else + restoreDisplayWindowGeometryFromConfig(); container->showNormal(); } else if (s_use_central_widget) @@ -2570,7 +2592,7 @@ void MainWindow::populateLoadStateMenu(QMenu* menu, const QString& filename, con QAction* action = menu->addAction(is_right_click_menu ? tr("Load State File...") : tr("Load From File...")); connect(action, &QAction::triggered, [this, filename]() { - const QString path(QFileDialog::getOpenFileName(this, tr("Select Save State File"), QString(), tr("Save States (*.p2s)"))); + const QString path(QFileDialog::getOpenFileName(this, tr("Select Save State File"), QString(), tr("Save States (*.p2s *.p2s.backup)"))); if (path.isEmpty()) return; @@ -2759,9 +2781,19 @@ MainWindow::VMLock MainWindow::pauseAndLockVM() // However, we do not want to switch back to render-to-main, the window might have generated this event. if (was_fullscreen) { + // m_is_temporarily_windowed needs to be set, so that we don't show the main window just for this popup. + pxAssertRel(!g_main_window->m_is_temporarily_windowed, "Not already temporarily windowed"); + g_main_window->m_is_temporarily_windowed = true; + g_emu_thread->setFullscreen(false, false); - while (QtHost::IsVMValid() && g_emu_thread->isFullscreen()) - QApplication::processEvents(QEventLoop::ExcludeUserInputEvents, 1); + + // Container could change... thanks Wayland. + QWidget* container; + while (QtHost::IsVMValid() && (g_emu_thread->isFullscreen() || + !(container = getDisplayContainer()) || container->isFullScreen())) + { + QApplication::processEvents(QEventLoop::ExcludeUserInputEvents); + } } // Now we'll either have a borderless window, or a regular window (if we were exclusive fullscreen). @@ -2795,7 +2827,10 @@ MainWindow::VMLock::VMLock(VMLock&& lock) MainWindow::VMLock::~VMLock() { if (m_was_fullscreen) + { + g_main_window->m_is_temporarily_windowed = false; g_emu_thread->setFullscreen(true, true); + } if (!m_was_paused) g_emu_thread->setVMPaused(false); @@ -2805,6 +2840,7 @@ void MainWindow::VMLock::cancelResume() { m_was_paused = true; m_was_fullscreen = false; + g_main_window->m_is_temporarily_windowed = false; } bool QtHost::IsVMValid() diff --git a/pcsx2-qt/MainWindow.h b/pcsx2-qt/MainWindow.h index 688c69124bbaa9..3481fd34f95680 100644 --- a/pcsx2-qt/MainWindow.h +++ b/pcsx2-qt/MainWindow.h @@ -311,6 +311,7 @@ private Q_SLOTS: bool m_was_paused_on_surface_loss = false; bool m_was_disc_change_request = false; bool m_is_closing = false; + bool m_is_temporarily_windowed = false; QString m_last_fps_status; diff --git a/pcsx2-qt/QtHost.cpp b/pcsx2-qt/QtHost.cpp index 363768d6719ff6..01a7ca6cfc370d 100644 --- a/pcsx2-qt/QtHost.cpp +++ b/pcsx2-qt/QtHost.cpp @@ -391,48 +391,14 @@ void EmuThread::run() // Main CPU thread loop. while (!m_shutdown_flag.load()) - { - if (!VMManager::HasValidVM()) - { - m_event_loop->exec(); - continue; - } - - executeVM(); - } - - // Teardown in reverse order. - stopBackgroundControllerPollTimer(); - destroyBackgroundControllerPollTimer(); - VMManager::Internal::CPUThreadShutdown(); - - // Move back to the UI thread, since we're no longer running. - moveToThread(m_ui_thread); - deleteLater(); -} - -void EmuThread::destroyVM() -{ - m_last_speed = 0.0f; - m_last_game_fps = 0.0f; - m_last_video_fps = 0.0f; - m_last_internal_width = 0; - m_last_internal_height = 0; - m_was_paused_by_focus_loss = false; - VMManager::Shutdown(m_save_state_on_shutdown); - m_save_state_on_shutdown = false; -} - -void EmuThread::executeVM() -{ - for (;;) { switch (VMManager::GetState()) { case VMState::Initializing: - pxFailRel("Shouldn't be in the starting state state"); + pxFailRel("Shouldn't be in the starting state"); continue; + case VMState::Shutdown: case VMState::Paused: m_event_loop->exec(); continue; @@ -448,13 +414,33 @@ void EmuThread::executeVM() case VMState::Stopping: destroyVM(); - m_event_loop->processEvents(QEventLoop::AllEvents); - return; + continue; default: continue; } } + + // Teardown in reverse order. + stopBackgroundControllerPollTimer(); + destroyBackgroundControllerPollTimer(); + VMManager::Internal::CPUThreadShutdown(); + + // Move back to the UI thread, since we're no longer running. + moveToThread(m_ui_thread); + deleteLater(); +} + +void EmuThread::destroyVM() +{ + m_last_speed = 0.0f; + m_last_game_fps = 0.0f; + m_last_video_fps = 0.0f; + m_last_internal_width = 0; + m_last_internal_height = 0; + m_was_paused_by_focus_loss = false; + VMManager::Shutdown(m_save_state_on_shutdown); + m_save_state_on_shutdown = false; } void EmuThread::createBackgroundControllerPollTimer() diff --git a/pcsx2-qt/QtHost.h b/pcsx2-qt/QtHost.h index 5f88aaafdddee4..9a50b171daa422 100644 --- a/pcsx2-qt/QtHost.h +++ b/pcsx2-qt/QtHost.h @@ -194,7 +194,6 @@ public Q_SLOTS: static constexpr u32 FULLSCREEN_UI_CONTROLLER_POLLING_INTERVAL = 8; void destroyVM(); - void executeVM(); void createBackgroundControllerPollTimer(); void destroyBackgroundControllerPollTimer(); diff --git a/pcsx2-qt/QtProgressCallback.cpp b/pcsx2-qt/QtProgressCallback.cpp index 44554465059b7f..3f1956a7186872 100644 --- a/pcsx2-qt/QtProgressCallback.cpp +++ b/pcsx2-qt/QtProgressCallback.cpp @@ -34,16 +34,12 @@ QtModalProgressCallback::QtModalProgressCallback(QWidget* parent_widget, float s m_dialog.setModal(parent_widget != nullptr); m_dialog.setAutoClose(false); m_dialog.setAutoReset(false); + connect(&m_dialog, &QProgressDialog::canceled, this, &QtModalProgressCallback::dialogCancelled); checkForDelayedShow(); } QtModalProgressCallback::~QtModalProgressCallback() = default; -bool QtModalProgressCallback::IsCancelled() const -{ - return m_dialog.wasCanceled(); -} - void QtModalProgressCallback::SetCancellable(bool cancellable) { if (m_cancellable == cancellable) @@ -123,6 +119,11 @@ void QtModalProgressCallback::ModalInformation(const char* message) QMessageBox::information(&m_dialog, tr("Information"), QString::fromUtf8(message)); } +void QtModalProgressCallback::dialogCancelled() +{ + m_cancelled = true; +} + void QtModalProgressCallback::checkForDelayedShow() { if (m_dialog.isVisible()) diff --git a/pcsx2-qt/QtProgressCallback.h b/pcsx2-qt/QtProgressCallback.h index 0916d2e01dfab3..3cac211c346e29 100644 --- a/pcsx2-qt/QtProgressCallback.h +++ b/pcsx2-qt/QtProgressCallback.h @@ -29,7 +29,7 @@ class QtModalProgressCallback final : public QObject, public BaseProgressCallbac QtModalProgressCallback(QWidget* parent_widget, float show_delay = 0.0f); ~QtModalProgressCallback(); - bool IsCancelled() const override; + QProgressDialog& GetDialog() { return m_dialog; } void SetCancellable(bool cancellable) override; void SetTitle(const char* title) override; @@ -46,6 +46,9 @@ class QtModalProgressCallback final : public QObject, public BaseProgressCallbac bool ModalConfirmation(const char* message) override; void ModalInformation(const char* message) override; +private Q_SLOTS: + void dialogCancelled(); + private: void checkForDelayedShow(); diff --git a/pcsx2-qt/Settings/AchievementLoginDialog.cpp b/pcsx2-qt/Settings/AchievementLoginDialog.cpp index 59b8414c772cdb..9062e7016dac8c 100644 --- a/pcsx2-qt/Settings/AchievementLoginDialog.cpp +++ b/pcsx2-qt/Settings/AchievementLoginDialog.cpp @@ -91,6 +91,48 @@ void AchievementLoginDialog::processLoginResult(bool result, const QString& mess return; } + if (m_reason == Achievements::LoginRequestReason::UserInitiated) + { + if (!Host::GetBaseBoolSettingValue("Achievements", "Enabled", false) && + QMessageBox::question(this, tr("Enable Achievements"), + tr("Achievement tracking is not currently enabled. Your login will have no effect until " + "after tracking is enabled.\n\nDo you want to enable tracking now?"), + QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) + { + Host::SetBaseBoolSettingValue("Achievements", "Enabled", true); + Host::CommitBaseSettingChanges(); + g_emu_thread->applySettings(); + } + + if (!Host::GetBaseBoolSettingValue("Achievements", "ChallengeMode", false) && + QMessageBox::question( + this, tr("Enable Hardcore Mode"), + tr("Hardcore mode is not currently enabled. Enabling hardcore mode allows you to set times, scores, and " + "participate in game-specific leaderboards.\n\nHowever, hardcore mode also prevents the usage of save " + "states, cheats and slowdown functionality.\n\nDo you want to enable hardcore mode?"), + QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) + { + Host::SetBaseBoolSettingValue("Achievements", "ChallengeMode", true); + Host::CommitBaseSettingChanges(); + g_emu_thread->applySettings(); + + bool has_active_game; + { + auto lock = Achievements::GetLock(); + has_active_game = Achievements::HasActiveGame(); + } + + if (has_active_game && + QMessageBox::question(this, tr("Reset System"), + tr("Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now?")) == + QMessageBox::Yes) + { + g_emu_thread->resetVM(); + } + } + + } + done(0); } diff --git a/pcsx2-qt/Settings/AchievementSettingsWidget.cpp b/pcsx2-qt/Settings/AchievementSettingsWidget.cpp index 5bf1400b3bded6..cca925d4b715df 100644 --- a/pcsx2-qt/Settings/AchievementSettingsWidget.cpp +++ b/pcsx2-qt/Settings/AchievementSettingsWidget.cpp @@ -194,6 +194,19 @@ void AchievementSettingsWidget::onLoginLogoutPressed() return; updateLoginState(); + + // Login can enable achievements/hardcore. + if (!m_ui.enable->isChecked() && Host::GetBaseBoolSettingValue("Achievements", "Enabled", false)) + { + QSignalBlocker sb(m_ui.enable); + m_ui.enable->setChecked(true); + updateEnableState(); + } + if (!m_ui.hardcoreMode->isChecked() && Host::GetBaseBoolSettingValue("Achievements", "ChallengeMode", false)) + { + QSignalBlocker sb(m_ui.hardcoreMode); + m_ui.hardcoreMode->setChecked(true); + } } void AchievementSettingsWidget::onViewProfilePressed() diff --git a/pcsx2-qt/Settings/GameCheatSettingsWidget.cpp b/pcsx2-qt/Settings/GameCheatSettingsWidget.cpp index 22a23391f1be6d..50295b6527cf2b 100644 --- a/pcsx2-qt/Settings/GameCheatSettingsWidget.cpp +++ b/pcsx2-qt/Settings/GameCheatSettingsWidget.cpp @@ -42,7 +42,7 @@ GameCheatSettingsWidget::GameCheatSettingsWidget(SettingsWindow* dialog, QWidget connect(m_ui.enableCheats, &QCheckBox::stateChanged, this, &GameCheatSettingsWidget::updateListEnabled); connect(m_ui.cheatList, &QTreeWidget::itemDoubleClicked, this, &GameCheatSettingsWidget::onCheatListItemDoubleClicked); connect(m_ui.cheatList, &QTreeWidget::itemChanged, this, &GameCheatSettingsWidget::onCheatListItemChanged); - connect(m_ui.reloadCheats, &QPushButton::clicked, this, &GameCheatSettingsWidget::reloadList); + connect(m_ui.reloadCheats, &QPushButton::clicked, this, &GameCheatSettingsWidget::onReloadClicked); connect(m_ui.enableAll, &QPushButton::clicked, this, [this]() { setStateForAll(true); }); connect(m_ui.disableAll, &QPushButton::clicked, this, [this]() { setStateForAll(false); }); } diff --git a/pcsx2-qt/Settings/GamePatchSettingsWidget.cpp b/pcsx2-qt/Settings/GamePatchSettingsWidget.cpp index 3e1b7ed68f7d7e..7b0b35013cd8d3 100644 --- a/pcsx2-qt/Settings/GamePatchSettingsWidget.cpp +++ b/pcsx2-qt/Settings/GamePatchSettingsWidget.cpp @@ -68,6 +68,8 @@ GamePatchSettingsWidget::GamePatchSettingsWidget(SettingsWindow* dialog, QWidget m_ui.scrollArea->setFrameShape(QFrame::WinPanel); m_ui.scrollArea->setFrameShadow(QFrame::Sunken); + setUnlabeledPatchesWarningVisibility(false); + connect(m_ui.reload, &QPushButton::clicked, this, &GamePatchSettingsWidget::onReloadClicked); reloadList(); @@ -86,10 +88,12 @@ void GamePatchSettingsWidget::onReloadClicked() void GamePatchSettingsWidget::reloadList() { // Patches shouldn't have any unlabelled patch groups, because they're new. - std::vector patches = Patch::GetPatchInfo(m_dialog->getSerial(), m_dialog->getDiscCRC(), false, nullptr); + u32 number_of_unlabeled_patches = 0; + std::vector patches = Patch::GetPatchInfo(m_dialog->getSerial(), m_dialog->getDiscCRC(), false, &number_of_unlabeled_patches); std::vector enabled_list = m_dialog->getSettingsInterface()->GetStringList(Patch::PATCHES_CONFIG_SECTION, Patch::PATCH_ENABLE_CONFIG_KEY); + setUnlabeledPatchesWarningVisibility(number_of_unlabeled_patches > 0); delete m_ui.scrollArea->takeWidget(); QWidget* container = new QWidget(m_ui.scrollArea); @@ -130,3 +134,7 @@ void GamePatchSettingsWidget::reloadList() m_ui.scrollArea->setWidget(container); } + +void GamePatchSettingsWidget::setUnlabeledPatchesWarningVisibility(bool visible) { + m_ui.unlabeledPatchWarning->setVisible(visible); +} \ No newline at end of file diff --git a/pcsx2-qt/Settings/GamePatchSettingsWidget.h b/pcsx2-qt/Settings/GamePatchSettingsWidget.h index 323942f5b53cd0..158be13977caae 100644 --- a/pcsx2-qt/Settings/GamePatchSettingsWidget.h +++ b/pcsx2-qt/Settings/GamePatchSettingsWidget.h @@ -60,6 +60,7 @@ private Q_SLOTS: private: void reloadList(); + void setUnlabeledPatchesWarningVisibility(bool visible); Ui::GamePatchSettingsWidget m_ui; SettingsWindow* m_dialog; diff --git a/pcsx2-qt/Settings/GamePatchSettingsWidget.ui b/pcsx2-qt/Settings/GamePatchSettingsWidget.ui index ca59c6e7931a57..16e9796634911a 100644 --- a/pcsx2-qt/Settings/GamePatchSettingsWidget.ui +++ b/pcsx2-qt/Settings/GamePatchSettingsWidget.ui @@ -33,6 +33,13 @@ + + + + Any patches bundled with PCSX2 for this game will be disabled since you have unlabeled patches loaded. + + + diff --git a/pcsx2-qt/Settings/GraphicsSettingsWidget.ui b/pcsx2-qt/Settings/GraphicsSettingsWidget.ui index 25b67ee04000f9..8a85a8e1a8fc9a 100644 --- a/pcsx2-qt/Settings/GraphicsSettingsWidget.ui +++ b/pcsx2-qt/Settings/GraphicsSettingsWidget.ui @@ -1104,6 +1104,11 @@ Special (Texture - Aggressive) + + + Align To Native + + diff --git a/pcsx2-qt/SetupWizardDialog.ui b/pcsx2-qt/SetupWizardDialog.ui index 51f9e1f1cf9015..34ee1826f2d314 100644 --- a/pcsx2-qt/SetupWizardDialog.ui +++ b/pcsx2-qt/SetupWizardDialog.ui @@ -147,6 +147,12 @@ true + + true + + + Qt::TextBrowserInteraction + diff --git a/pcsx2-qt/Translations.cpp b/pcsx2-qt/Translations.cpp index 8b949ec6edecc3..0aa187065cf8db 100644 --- a/pcsx2-qt/Translations.cpp +++ b/pcsx2-qt/Translations.cpp @@ -22,6 +22,7 @@ #include "common/StringUtil.h" #include "pcsx2/ImGui/ImGuiManager.h" +#include "pcsx2/MTGS.h" #include "fmt/format.h" #include "imgui.h" @@ -48,6 +49,10 @@ QT_TRANSLATE_NOOP("MAC_APPLICATION_MENU", "Show All") QT_TRANSLATE_NOOP("MAC_APPLICATION_MENU", "Preferences...") QT_TRANSLATE_NOOP("MAC_APPLICATION_MENU", "Quit %1") QT_TRANSLATE_NOOP("MAC_APPLICATION_MENU", "About %1") + +// Strings that will be parsed out by our build system and sent to fun places +QT_TRANSLATE_NOOP("PermissionsDialogMicrophone", "PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2") +QT_TRANSLATE_NOOP("PermissionsDialogCamera", "PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2") #endif namespace QtHost @@ -65,8 +70,6 @@ namespace QtHost static void UpdateGlyphRanges(const std::string_view& language); static const GlyphInfo* GetGlyphInfo(const std::string_view& language); - static std::vector s_glyph_ranges; - static QLocale s_current_locale; static QCollator s_current_collator; } // namespace QtHost @@ -191,10 +194,18 @@ void QtHost::InstallTranslator() s_translators.push_back(translator); } - UpdateGlyphRanges(language.toStdString()); - - // Clear translation cache after installing translators, to prevent races. - Host::ClearTranslationCache(); + // We end up here both on language change, and on startup. + if (g_emu_thread) + { + Host::RunOnCPUThread([language = language.toStdString()]() { + UpdateGlyphRanges(language); + Host::ClearTranslationCache(); + }); + } + else + { + UpdateGlyphRanges(language.toStdString()); + } } static std::string QtHost::GetFontPath(const GlyphInfo* gi) @@ -303,10 +314,10 @@ void QtHost::UpdateGlyphRanges(const std::string_view& language) const GlyphInfo* gi = GetGlyphInfo(language); std::string font_path; - s_glyph_ranges.clear(); + std::vector glyph_ranges; // Base Latin range is always included. - s_glyph_ranges.insert(s_glyph_ranges.begin(), std::begin(s_base_latin_range), std::end(s_base_latin_range)); + glyph_ranges.insert(glyph_ranges.begin(), std::begin(s_base_latin_range), std::end(s_base_latin_range)); if (gi) { @@ -317,8 +328,8 @@ void QtHost::UpdateGlyphRanges(const std::string_view& language) { // Always should be in pairs. pxAssert(ptr[0] != 0 && ptr[1] != 0); - s_glyph_ranges.push_back(*(ptr++)); - s_glyph_ranges.push_back(*(ptr++)); + glyph_ranges.push_back(*(ptr++)); + glyph_ranges.push_back(*(ptr++)); } } @@ -328,16 +339,25 @@ void QtHost::UpdateGlyphRanges(const std::string_view& language) // If we don't have any specific glyph range, assume Central European, except if English, then keep the size down. if ((!gi || !gi->used_glyphs) && language != "en") { - s_glyph_ranges.insert( - s_glyph_ranges.begin(), std::begin(s_central_european_ranges), std::end(s_central_european_ranges)); + glyph_ranges.insert( + glyph_ranges.begin(), std::begin(s_central_european_ranges), std::end(s_central_european_ranges)); } // List terminator. - s_glyph_ranges.push_back(0); - s_glyph_ranges.push_back(0); + glyph_ranges.push_back(0); + glyph_ranges.push_back(0); - ImGuiManager::SetFontPath(std::move(font_path)); - ImGuiManager::SetFontRange(s_glyph_ranges.data()); + // Called on CPU thread, so we need to do this on the GS thread if it's active. + if (MTGS::IsOpen()) + { + MTGS::RunOnGSThread([font_path = std::move(font_path), glyph_ranges = std::move(glyph_ranges)]() mutable { + ImGuiManager::SetFontPathAndRange(std::move(font_path), std::move(glyph_ranges)); + }); + } + else + { + ImGuiManager::SetFontPathAndRange(std::move(font_path), std::move(glyph_ranges)); + } } // clang-format off diff --git a/pcsx2-qt/Translations/pcsx2-qt_af-ZA.ts b/pcsx2-qt/Translations/pcsx2-qt_af-ZA.ts index 8a33ceb7a2e4f2..ff34b7bf670b1a 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_af-ZA.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_af-ZA.ts @@ -80,32 +80,38 @@ Gereed... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. - + &Login &TekenAan - + Logging in... Besig om aan te teken... - + Login Error Aantekeningsfout - - Login failed. Please check your username and password, and try again. - Aantekening het gefaal. Kontroleer asseblief jou gebruikersnaam en wagwoord, en probeer weer. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login failed. +Error: %1 + +Please check your username and password, and try again. - + Login failed. Aantekening het gefaal. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Globale Instellings - - - - + + Enable Achievements Aktiveer Prestasies - - - Show Challenge Indicators - Wys Uitdagings Aanwysers - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Aktiveer RA's Ryk Teenwoordigheid - - - - + + Enable Hardcore Mode - Aktiveer Hardcore Mode - - - - - Enable Leaderboards - Aktiveer Ranglyste + Aktiveer Hardcore Modus - + Test Unofficial Achievements Toets Onamptelike Prestasies - - - Enable Test Mode - Aktiveer Toets Mode - - - - + + Enable Sound Effects Aktiveer Klankeffekte - + Notifications Kennisgewings - - - Show Notifications - Wys Kennisgewings - - - - Duration - Tydsduur - - - - - - + + 5 seconds 5 sekondes - + Account Rekening - - + + Login... Teken Aan... - + View Profile... Beskou Profiel... - - Game Info - Game inligting + + Settings + Settings - - <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> - <html><head/><body><p align="justify">PCSX2 gebruik Retro-Prestasies vir 'n prestasiedatabasis en vir opvolging van vordering. Om Prestasies te gebruik, skep asseblief 'n profiel op <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Om die lys van prestasies te beskou in 'n speletjie, druk die snelknoppie vir <span style=" font-weight:600;">Maak die Pouse Blad oop</span> en kies <span style=" font-weight:600;">Prestasies</span> vanaf die blad.</p></body></html> + + + Enable Spectator Mode + Enable Spectator Mode - - seconds - sekondes + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Show Achievement Notifications + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + - - - - Unchecked - Nie gekontroleer nie + Enable In-Game Overlays + Enable In-Game Overlays - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Wanneer jy aangeteken is, en dit is geaktiveer, PCSX2 sal vir prestasies deursoek op speletjie laai. + + Username: +Login token generated at: + Username: +Login token generated at: + + + + Game Info + Speletjie inligting + + + + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + <html><head/><body><p align="justify">PCSX2 gebruik Retro-Prestasies vir 'n prestasiedatabasis en vir opvolging van vordering. Om Prestasies te gebruik, skep asseblief 'n profiel op <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Om die lys van prestasies te beskou in 'n speletjie, druk die snelknoppie vir <span style=" font-weight:600;">Maak die Pouse Blad oop</span> en kies <span style=" font-weight:600;">Prestasies</span> vanaf die blad.</p></body></html> + + + + + Unchecked + Nie gekontroleer nie + + + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Wanneer geaktiveer, sal PCSX2 aanneem dat alle prestasies gesluit is en nie enige bereiking-kennisgewings vir die bediener stuur nie. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Wanneer geaktiveer, sal PCSX2 alle prestasies van die onamptelike stelle lys. Neem asseblief kennis dat hierdie prestasies nie opgevolg is deur RetroAchievements nie, so dit word elke keer herbereik. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Wanneer geaktiveer, sal ryk teenwoordigheid ingesamel en na die RetroAchievements bediener gestuur word waar dit ondersteun word. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Uitdaging" mode vir prestasies, opvolging van ranglyste ingesluit. Dit deaktiveer save state, kulle en vertragingsfunksies. - - - - + + + + Checked Gekontroleer - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - - - - Notification Duration - Notification Duration + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - The duration, in seconds, an achievement popup notification will remain on screen. + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? + + + + %n seconds + + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Username: %1 Login token generated on %2. - + Logout Logout - + Not Logged In. Not Logged In. - - - %1 seconds - %1 seconds - Achievements - + Hardcore mode will be enabled on system reset. Hardcore mode will be enabled on system reset. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - + Hardcore mode is now enabled. Hardcore mode is now enabled. - + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Unofficial) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. Hardcore mode is now disabled. - + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (Hardcore Mode) - - You have earned {0} of {1} achievements, and {2} of {3} points. - You have earned {0} of {1} achievements, and {2} of {3} points. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - This game has no achievements. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points - - Leaderboard submission is enabled. - Leaderboard submission is enabled. + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) - + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Unknown + + + + Locked + Locked + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + Unofficial + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Unlocked: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Name + + + + Time + Time + + + + Score + Score + + + + Value + Value + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + Loading... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + This game has no achievements. + + + Failed to read executable from disc. Achievements disabled. Failed to read executable from disc. Achievements disabled. @@ -578,220 +815,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Rounding Mode: - - - + + + Nearest Nearest - - - + + + Negative Negative - - - + + + Positive Positive - - - + + + Chop / Zero (Default) Chop / Zero (Default) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Clamping Mode: - - + + None None - - - + + + Normal (Default) Normal (Default) - + None ClampMode None - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preserve Sign - + Full Full - + Wait Loop Detection Wait Loop Detection - - + + Enable Recompiler Enable Recompiler - + Enable Fast Memory Access Enable Fast Memory Access - + Enable Cache (Slow) Enable Cache (Slow) - + INTC Spin Detection INTC Spin Detection - + Pause On TLB Miss Pause On TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: VU1 Rounding Mode: - + mVU Flag Hack mVU Flag Hack - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - - + + Extra Extra - + VU0 Clamping Mode: VU0 Clamping Mode: - + VU0 Rounding Mode: VU0 Rounding Mode: - + VU1 Clamping Mode: VU1 Clamping Mode: - + I/O Processor (IOP, MIPS-I) I/O Processor (IOP, MIPS-I) - + Game Settings Game Settings - + Enable Game Fixes Enable Game Fixes - + Enable Compatibility Patches Enable Compatibility Patches - + Frame Rate Control Frame Rate Control - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL Frame Rate: - + NTSC Frame Rate: NTSC Frame Rate: - + PINE Settings PINE Settings - + Slot: Slot: - + Enable Enable @@ -799,182 +1036,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings Timestretch Settings - + Sequence Length: Sequence Length: - + 30 30 - + Seekwindow Size: Seekwindow Size: - + 20 20 - + Overlap: Overlap: - + 10 10 - + Restore Defaults Restore Defaults - + Volume Volume - + 100% 100% - + Mixing Settings Mixing Settings - + Synchronization: Synchronization: - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Expansion: Expansion: - + Stereo (None, Default) Stereo (None, Default) - + Quadraphonic Quadraphonic - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Level: - + None (Default) None (Default) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Decoding (basic) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II Decoding (gigaherz) - + Target Latency: Target Latency: - + 60 ms 60 ms - + Output Settings Output Settings - + Output Module: Output Module: - + Output Latency: Output Latency: - + 20 ms 20 ms - + Minimal Minimal - + Output Backend: Output Backend: - + Maximum Latency: Maximum Latency: - + Output Device: Output Device: @@ -1162,17 +1399,22 @@ Login token generated on %2. New Version: - + + Download Size: + Download Size: + + + Download and Install... Download and Install... - + Skip This Update Skip This Update - + Remind Me Later Remind Me Later @@ -1182,17 +1424,17 @@ Login token generated on %2. Updater Error - + <h2>Changes:</h2> <h2>Changes:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> @@ -1233,6 +1475,11 @@ Login token generated on %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... Loading... @@ -1240,63 +1487,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory BIOS Directory - + PCSX2 will search for BIOS images in this directory. PCSX2 will search for BIOS images in this directory. - + Browse... Browse... - + Reset Reset - + BIOS Selection BIOS Selection - - Open in Explorer... - Open in Explorer... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List Refresh List - + Filename Filename - + Version Version - + Options and Patches Options and Patches - + Fast Boot Fast Boot - + Fast Forward Boot Fast Forward Boot @@ -1424,91 +1671,84 @@ Login token generated on %2. BreakpointModel - + Execute Execute - - No Condition - No Condition - - - - + + -- -- - - + Enabled Enabled - - + Disabled Disabled - + Read Read - + Write(C) (C) = changes, as in "look for changes". Write(C) - + Write Write - + TYPE Warning: limited space available. Abbreviate if needed. TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. SIZE / LABEL - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCTION - + CONDITION Warning: limited space available. Abbreviate if needed. CONDITION - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1519,7 +1759,7 @@ Login token generated on %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - + Saving CDVD block dump to '{}'. Saving CDVD block dump to '{}'. @@ -1555,32 +1795,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type Virtual Controller Type - + Bindings Bindings - + Settings Settings - + Macros Macros - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -1620,146 +1860,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. D-Pad - - - + + + Down Down - - - + + + Left Left - - - + + + Up Up - - - + + + Right Right - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Left Analog - + Large Motor Large Motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Face Buttons - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cross - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Square - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangle - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Circle - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Right Analog - + Small Motor Small Motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Pressure Modifier - + Analog Analog @@ -1767,77 +2007,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow Yellow - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start Start - + Red Red - + Green Green - + Orange Orange - + Select Select - + Strum Up Strum Up - + Strum Down Strum Down - + Blue Blue - + Whammy Bar Whammy Bar - + Tilt Tilt @@ -1863,123 +2098,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL Input Source - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - + Enable SDL Input Source Enable SDL Input Source - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense Enhanced Mode - + XInput Source XInput Source - + Enable XInput Input Source Enable XInput Input Source - + DInput Source DInput Source - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - + Enable DInput Input Source Enable DInput Input Source - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Profile Settings - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - + Use Per-Profile Hotkeys Use Per-Profile Hotkeys - - + + Controller LED Settings Controller LED Settings - + Enable SDL Raw Input Enable SDL Raw Input - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - + Controller Multitap Controller Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - + Multitap on Console Port 1 Multitap on Console Port 1 - + Multitap on Console Port 2 Multitap on Console Port 2 - + Mouse/Pointer Source Mouse/Pointer Source - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 allows you to use your mouse to simulate analog stick movement. - + Settings... Settings... - + Enable Mouse Mapping Enable Mouse Mapping - + Detected Devices Detected Devices @@ -2015,58 +2260,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons Binds/Buttons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - + Pressure Pressure - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - - + + 100% 100% - + Trigger Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: Deadzone: - + Frequency Frequency - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Set... @@ -2169,46 +2414,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller Settings - + Editing Profile: Editing Profile: - + New Profile New Profile - + Load Profile Load Profile - + Delete Profile Delete Profile - - + + Restore Defaults Restore Defaults - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2464,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Error - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2505,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2519,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2537,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2551,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2560,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2406,204 +2651,242 @@ You cannot undo this action. Functions - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Refresh - + Filter Filter - + Memory Search Memory Search - + End End - + Value Value - + Start Start - + Type Type - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Search - + Memory Memory - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New New - + Edit Edit - - - + + + Copy Copy - + Delete Delete - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2659,22 +2942,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet Device: - + Ethernet Device Type: Ethernet Device Type: - + Intercept DHCP Intercept DHCP @@ -2684,135 +2967,130 @@ You cannot undo this action. Enabled - + Enabled InterceptDHCP Enabled - + Subnet Mask: Subnet Mask: - + Gateway Address: Gateway Address: - - + + Auto Auto - + Intercept DHCP: Intercept DHCP: - + PS2 Address: PS2 Address: - + DNS1 Address: DNS1 Address: - + DNS2 Address: DNS2 Address: - + Internal DNS Internal DNS - + Add Add - + Delete Delete - + Export Export - + Import Import - + Per game Per game - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Enabled - + Hard Disk Drive Hard Disk Drive - + HDD File: HDD File: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD Enabled - + Browse Browse - + Create Image Create Image - - - - - PCAP Bridged @@ -2845,7 +3123,7 @@ You cannot undo this action. - + Use Global Setting [%1] Use Global Setting [%1] @@ -2865,78 +3143,78 @@ You cannot undo this action. Address - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Exported Successfully - + Failed to open file Failed to open file - + No Hosts in file No Hosts in file - + Imported Successfully Imported Successfully - - + + Per Game Host list Per Game Host list - + Copy global settings? Copy global settings? - + Delete per game host list? Delete per game host list? - + HDD Image File HDD Image File - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Overwrite File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3223,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2968,69 +3246,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Browse... - - + + Open... Open... @@ -3043,29 +3321,53 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run Run - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Pause @@ -3078,149 +3380,174 @@ Do you want to overwrite? Disassembly - + Copy Address Copy Address - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3228,17 +3555,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games Scan For New Games @@ -3246,48 +3573,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3295,192 +3618,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled Disabled - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3568,12 +3891,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3637,45 +3970,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3683,79 +4011,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3763,2082 +4091,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection BIOS Selection - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT + + + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - VU XGkick Sync - VU XGkick Sync + + Half Pixel Offset + Half Pixel Offset - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Texture Offset X + Texture Offset X + + + + Texture Offset Y + Texture Offset Y + + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync - - Use Blit for internal FPS - Use Blit for internal FPS + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. - - Quadraphonic - Quadraphonic + + VU XGKick Sync + VU XGKick Sync - - Load State - Load State + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5847,2221 +6195,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications - + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} + + Game: {0} ({1}) + Game: {0} ({1}) - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8074,7 +8323,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8129,12 +8378,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8190,7 +8439,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8201,266 +8450,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8468,74 +8859,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8544,12 +8961,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8557,32 +8974,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8608,17 +9025,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8636,7 +9053,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8655,399 +9072,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9055,62 +9483,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9120,12 +9548,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9136,92 +9564,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9229,355 +9657,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9585,79 +10018,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9668,606 +10096,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10277,69 +10715,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10408,8 +10840,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10461,6 +10893,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10520,11 +10953,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10576,6 +11019,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10591,11 +11089,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10633,7 +11126,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10722,8 +11215,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10865,11 +11358,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10920,11 +11408,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11042,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11082,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11135,29 +11623,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11165,405 +11663,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11692,34 +12190,124 @@ Right click to clear binding Edit - - View - View + + View + View + + + + Open + Open + + + + Close + Close + + + + %1 %2 + %1 %2 + + + + %1 + %1 + + + + %1 [%2] + %1 [%2] + + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ - - Open - Open + + D-Pad Up️ + D-Pad Up️ - - Close - Close + + D-Pad Left️ + D-Pad Left️ - - %1 %2 - %1 %2 + + L3 + L3 - - %1 - %1 + + R3 + R3 - - %1 [%2] - %1 [%2] + + Select + Select + + + + Start + Start @@ -11748,137 +12336,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12071,7 +12659,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12128,14 +12716,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12640,13 +13228,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12658,7 +13246,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12669,7 +13257,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12684,27 +13272,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12717,168 +13305,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12893,97 +13486,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12992,12 +13585,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13010,70 +13603,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13082,42 +13675,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13125,8 +13718,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13207,6 +13800,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13257,11 +13851,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13387,103 +13976,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13653,58 +14243,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13754,10 +14344,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13953,6 +14548,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13969,14 +14574,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14023,13 +14628,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14100,40 +14698,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14151,13 +14772,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14362,7 +14983,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14412,278 +15032,281 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Gebruik Globale Instellings [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Gebruik Globale Instellings [Disabled] + + + + + Use Global Setting [%1] + Gebruik Globale Instellings [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings - PCSX2 Settings + PCSX2 Instellings - + Restore Defaults - Restore Defaults + Herstel Verstekwaardes - + Copy Global Settings - Copy Global Settings + Kopieer Globale Instellings - + Clear Settings - Clear Settings + Verwyder Instellings - + Close - Close + Maak toe - - - Summary - Summary + + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. + <strong>Opsomming</strong><hr>Die bladsy wys besonderhede oor die gekiesde speletjie. Verandering van die Inset Profiel sal die kontroleerder binding skema vir hierdie speletjie stel na enige gekiesde profiel, in plaas van die verstek (Gedeelde) konfigurasie. Die spoorlys en dump verifikasie kan gebruik word om te bepaal of U se skyfbeeld 'n bekende goeie dump pas. As dit nie pas nie, mag die speletjie stukkend wees. - - <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. + + + Summary + Opsomming - + Summary is unavailable for files not present in game list. - Summary is unavailable for files not present in game list. + Opsomming is nie beskikbaar vir lêers wat nie teenwoordig in die speletjie lys is nie. - + Interface - Interface + Koppelvlak - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. + <strong>Koppelvlak Instellings</strong><hr>Hierdie opsies beheer hoe die sagteware lyk en optree.<br><br> Sweef die muis oor 'n opsie vir adisionele inligting. - + Game List - Game List + Speletjie Lys - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. + <strong>Speletjie Lys Instellings</strong><hr>Die lys bo wys die gidse wat gesoek sal word deur PCSX2 om die speletjie lys te vul. Soek gidse kan bygevoeg, verwyder, en oorgeskakel word na rekursief/nie-rekursief. - + BIOS - BIOS + BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. + <strong>BIOS Instellings</strong><hr>Konfigureer U se BIOS hier.<br><br>Sweef die muis oor 'n opsie vir adisionele inligting. - + Emulation - Emulation + Emulasie - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. + <strong>Emulasie Instellings</strong><hr>Hierdie opsies bepaal die konfigurasie van raam tempo en speletjie instellings.<br><br>Sweef die muis oor 'n opsie vir adisionele inligting. - + Patches - Patches + Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. + <strong>Patches</strong><hr>Hierdie afdeling laat U toe om opsionele patches te kies om op die speletjie toe te pas, wat werkverrigting, visuele, of speel verbeterings mag voorsien. - + Cheats - Cheats + Kroeke - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. + <strong>Kroeke</strong><hr>Die afdeling laat U toe om te kies watter kroeke U wens on te aktiveer. U kan nie kroeke aktiveer/deaktiveer sonder etikette vir ou-formaat pnach lêers, dit sal outomaties aktiveer as die hoof kroek aktiveer opsie gemerk is. - + Game Fixes - Game Fixes + Speletjie Regstellings - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. + <strong>Speletjie Regstellings Instellings</strong><hr>Speletjie Regstellings kan rondom verkeerde emulasie in sommige titels werk.<br>Alhoewel, dit kan ook probleme veroorsaak in speletjies as dit verkeerd gebruik word.<br>Dit is beste om alles gedeaktiveerd te los behalwe as anders geadviseer word. - + Graphics - Graphics + Grafika - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. + <strong>Grafika Instellings</strong><hr>Hierdie opsies bepaal die konfigurasie van die grafiese uitset.<br><br>Sweef die muis oor 'n opsie vir adisionele inligting. - + Audio - Audio + Oudio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. + <strong>Oudio Instellings</strong><hr>Hierdie opsies beheer die oudio uitset van die konsole.<br><br>Sweef die muis oor 'n opsie vir adisionele inligting. - + Memory Cards - Memory Cards + Geheue Kaarte - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. + <strong>Geheue Kaart Instellings</strong><hr>Skep en konfigureer Geheue Kaarte hier.<br><br>Sweef die muis oor 'n opsie vir adisionele inligting. - + Network & HDD - Network & HDD + Netwerk & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. + <strong>Netwerk & HDD Instellings</strong><hr>Hierdie opsies beheer die netwerk konnektiwiteit en interne HDD stoor van die konsole.<br><br>Sweef die muis oor 'n opsie vir adisionele inligting. - + Folders - Folders + Gidse - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. + <strong>Gids Instellings</strong><hr>Hierdie instellings beheer waar PCSX2 looptyd data lêers sal stoor. - + Achievements - Achievements + Prestasies - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. + <strong>Prestasie Instellings</strong><hr>Hierdie opsies beheer die RetroAchievements implementering in PCSX2, wat U toelaat om prestasies te verdien in U se speletjies. - + RAIntegration is being used, built-in RetroAchievements support is disabled. - RAIntegration is being used, built-in RetroAchievements support is disabled. + RAintegrasie word gebruik, ingeboude RetroAchievements ondersteuning is gedeaktiveer. - + Advanced - Advanced + Gevorderde - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. + <strong>Gevorderde Instellings</strong><hr>Die is gevorderde instellings om die konfigurasie van die gesimuleerde konsole te bepaal.<br><br>Sweef die muis oor 'n opsie vir adisionele inligting. - + Debug - Debug + Ontfout - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. + <strong>Ontfout Instellings</strong><hr>Hierdie is opsies wat gebruik kan word om interne inligting oor die program te log. <strong>Moenie verander nie behalwe as U weet wat U doen</strong>, dit sal ernstige afname in spoed veroorsaak, en kan groot hoeveelhede skyf spasie mors. - + Confirm Restore Defaults - Confirm Restore Defaults + Bevestig Herstel Verstek - + Are you sure you want to restore the default settings? Any preferences will be lost. - Are you sure you want to restore the default settings? Any preferences will be lost. + Is U seker U wil die verstek instellings herstel? Enige voorkeure sal verloor word. - + Reset UI Settings - Reset UI Settings + Stel terug UI Instellings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. Do you want to continue? - The configuration for this game will be replaced by the current global settings. + Die konfigurasie vir die speletjie sal vervang word met die huidige globale instellings. -Any current setting values will be overwritten. +Enige huidige instelling waardes sal oorskryf word. -Do you want to continue? +Wil U voortgaan? - + Per-game configuration copied from global settings. - Per-game configuration copied from global settings. + Per-speletjie konfigurasie gekopieer van globale instellings. - + The configuration for this game will be cleared. Any current setting values will be lost. Do you want to continue? - The configuration for this game will be cleared. + Die konfigurasie vir die speletjie sal verwyder word. -Any current setting values will be lost. +Enige huidige instelling waardes sal verlore gaan. -Do you want to continue? +Wil U voortgaan? - + Per-game configuration cleared. - Per-game configuration cleared. + Per-speletjie konfigurasie verwyder. - + Recommended Value - Recommended Value - - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] + Aanbevole Waarde @@ -14691,267 +15314,267 @@ Do you want to continue? PCSX2 Setup Wizard - PCSX2 Setup Wizard + PCSX2 Opstel Assistent Language - Language + Taal BIOS Image - BIOS Image + BIOS Beeld Game Directories - Game Directories + Speletjie Gidse Controller Setup - Controller Setup + Kontroleerder Opstelling Complete - Complete + Voltooid <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Welcome to PCSX2!</span></h1><p>This wizard will help guide you through the configuration steps required to use the application. It is recommended if this is your first time installing PCSX2 that you view the setup guide at <a href="https://pcsx2.net/docs/usage/setup/">https://pcsx2.net/docs/usage/setup/</a>.</p><p>By default, PCSX2 will connect to the server at <a href="https://pcsx2.net/">pcsx2.net</a> to check for updates, and if available and confirmed, download update packages from <a href="https://github.com/">github.com</a>. If you do not wish for PCSX2 to make any network connections on startup, you should uncheck the Automatic Updates option now. The Automatic Update setting can be changed later at any time in Interface Settings.</p><p>Please choose a language and theme to begin.</p></body></html> - <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Welcome to PCSX2!</span></h1><p>This wizard will help guide you through the configuration steps required to use the application. It is recommended if this is your first time installing PCSX2 that you view the setup guide at <a href="https://pcsx2.net/docs/usage/setup/">https://pcsx2.net/docs/usage/setup/</a>.</p><p>By default, PCSX2 will connect to the server at <a href="https://pcsx2.net/">pcsx2.net</a> to check for updates, and if available and confirmed, download update packages from <a href="https://github.com/">github.com</a>. If you do not wish for PCSX2 to make any network connections on startup, you should uncheck the Automatic Updates option now. The Automatic Update setting can be changed later at any time in Interface Settings.</p><p>Please choose a language and theme to begin.</p></body></html> + <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Welkom na PCSX2!</span></h1><p>Die assistent sal U help lei deur die konfigurasie stappe benodig om die program te gebruik. Dit word aanbeveel as dit U se eerste PCSX2 installasie is om die opstel leiding te sien by <a href="https://pcsx2.net/docs/usage/setup/">https://pcsx2.net/docs/usage/setup/</a>.</p><p>By verstek, sal PCSX2 konnekteer na die bediener by <a href="https://pcsx2.net/">pcsx2.net</a> on te kyk vir opdaterings, en as beskikbaar en bevestig, opdatering pakette aflaai van <a href="https://github.com/">github.com</a>. As U nie wil hê PCSX2 moet enige netwerk verbindings maak op opstart nie, moet U die Outomatiese Opdateerings opsie nou ontmerk. Die Outomatiese Opdateering instelling kan later enige tyd verander word in Koppelvlak Instellings.</p><p>Asseblief kies 'n taal en tema om te begin.</p></body></html> Language: - Language: + Taal: Theme: - Theme: + Tema: Enable Automatic Updates - Enable Automatic Updates + Aktiveer Outomatiese Opdaterings <html><head/><body><p>PCSX2 requires a PS2 BIOS in order to run.</p><p>For legal reasons, you must obtain a BIOS <strong>from an actual PS2 unit that you own</strong> (borrowing doesn't count).</p><p>Once dumped, this BIOS image should be placed in the bios folder within the data directory shown below, or you can instruct PCSX2 to scan an alternative directory.</p><p>A guide for dumping your BIOS can be found at <a href="https://pcsx2.net/docs/usage/setup/#how-to-dump-your-ps2-bios">pcsx2.net</a>.</p></body></html> - <html><head/><body><p>PCSX2 requires a PS2 BIOS in order to run.</p><p>For legal reasons, you must obtain a BIOS <strong>from an actual PS2 unit that you own</strong> (borrowing doesn't count).</p><p>Once dumped, this BIOS image should be placed in the bios folder within the data directory shown below, or you can instruct PCSX2 to scan an alternative directory.</p><p>A guide for dumping your BIOS can be found at <a href="https://pcsx2.net/docs/usage/setup/#how-to-dump-your-ps2-bios">pcsx2.net</a>.</p></body></html> + <html><head/><body><p>PCSX2 benodig 'n PS2 BIOS om te hardloop.</p><p>Om wettige redes, moet U 'n BIOS <strong>van 'n werklike PS2 eenheid wat U besit kry</strong> (leening tel nie).</p><p>Wanneer dit klaar gedump is, moet die BIOS beeld in die bios gids binne die data gids hieronder getoon geplaas word, of U kan PCSX2 'n alternatiewe gids laat skandeer.</p><p>Instruksies om U se BIOS te dump kan gevind word by <a href="https://pcsx2.net/docs/usage/setup/#how-to-dump-your-ps2-bios">pcsx2.net</a>.</p></body></html> BIOS Directory: - BIOS Directory: + BIOS Gids: Browse... - Browse... + Blaai... Reset - Reset + Terugstel Filename - Filename + Leêrnaam Version - Version + Weergawe - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Maak BIOS Gids Oop... Refresh List - Refresh List + Herlaai Lys <html><head/><body><p>PCSX2 will automatically scan and identify games from the selected directories below, and populate the game list.<br>These games should be dumped from discs you own. Guides for dumping discs can be found at <a href="https://pcsx2.net/docs/usage/setup/#dumping-ps2-discs-via-imgburn">pcsx2.net</a>.</p><p>Supported formats for dumps include:</p><p><ul><li>.bin/.iso (ISO Disc Images)</li><li>.mdf (Media Descriptor File)</li><li>.chd (Compressed Hunks of Data)</li><li>.cso (Compressed ISO)</li><li>.gz (Gzip Compressed ISO)</li></ul></p></p></body></html> - <html><head/><body><p>PCSX2 will automatically scan and identify games from the selected directories below, and populate the game list.<br>These games should be dumped from discs you own. Guides for dumping discs can be found at <a href="https://pcsx2.net/docs/usage/setup/#dumping-ps2-discs-via-imgburn">pcsx2.net</a>.</p><p>Supported formats for dumps include:</p><p><ul><li>.bin/.iso (ISO Disc Images)</li><li>.mdf (Media Descriptor File)</li><li>.chd (Compressed Hunks of Data)</li><li>.cso (Compressed ISO)</li><li>.gz (Gzip Compressed ISO)</li></ul></p></p></body></html> + <html><head/><body><p>PCSX2 sal outomaties speletjies skandeer en identifiseer van die gekiesde gidse onder, en die speletjie lys invul.<br>Hierdie speletjies behoort gedump word van skywe wat U besit. Leidings om skywe te dump kan gevind word by <a href="https://pcsx2.net/docs/usage/setup/#dumping-ps2-discs-via-imgburn">pcsx2.net</a>.</p><p>Ondersteunde formate vir dumps sluit in:</p><p><ul><li>.bin/.iso (ISO Skyf Beelde)</li><li>.mdf (Media beskrywer lêer)</li><li>.chd (Saamgeperste Stukke Data)</li><li>.cso (Saamgeperste ISO)</li><li>.gz (Gzip Saamgeperste ISO)</li></ul></p></p></body></html> Search Directories (will be scanned for games) - Search Directories (will be scanned for games) + Soek Gidse (sal geskandeer word vir speletjies) Add... - Add... + Voeg by... Remove - Remove + Verwyder Search Directory - Search Directory + Soek Gids Scan Recursively - Scan Recursively + Skandeer Rekursief <html><head/><body><p>By default, PCSX2 will map your keyboard to the virtual PS2 controller.</p><p><span style=" font-weight:700;">To use an external controller, you must map it first. </span>On this screen, you can automatically map any controller which is currently connected. If your controller is not currently connected, you can plug it in now.</p><p>To change controller bindings in more detail, or use multi-tap, open the Settings menu and choose Controllers once you have completed the Setup Wizard.</p></body></html> - <html><head/><body><p>By default, PCSX2 will map your keyboard to the virtual PS2 controller.</p><p><span style=" font-weight:700;">To use an external controller, you must map it first. </span>On this screen, you can automatically map any controller which is currently connected. If your controller is not currently connected, you can plug it in now.</p><p>To change controller bindings in more detail, or use multi-tap, open the Settings menu and choose Controllers once you have completed the Setup Wizard.</p></body></html> + <html><head/><body><p>By verstek, sal PCSX2 U se sleutelbord karteer na die virtuele PS2 kontroleerder.</p><p><span style=" font-weight:700;">Om 'n eksterne kontroleerder te gebruik, moet U dit eers karteer.</span>Op die skerm, kan U enige kontroleerder wat gekoppel is, outomaties karteer. As U se kontroleerder nie gekoppel is nie, kan U dit nou inprop.</p><p>Om kontroleerder bindings te verander in meer detail, of multi-tap te gebruik, maak die Instellings kieslys oop en kies Kotroleerders wanneer U die Opstel Assistent voltooi het.</p></body></html> Controller Port 1 - Controller Port 1 + Kontroleerder Poort 1 Controller Mapped To: - Controller Mapped To: + Kontroleerder Gekarteer Na: Controller Type: - Controller Type: + Kontroleerder Tipe: Default (Keyboard) - Default (Keyboard) + Verstek (Sleutelbord) Automatic Mapping - Automatic Mapping + Outomatiese Kartering Controller Port 2 - Controller Port 2 + Kontroleerder Poort 2 <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Setup Complete!</span></h1><p>You are now ready to run games.</p><p>Further options are available under the settings menu. You can also use the Big Picture UI for navigation entirely with a gamepad.</p><p>We hope you enjoy using PCSX2.</p></body></html> - <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Setup Complete!</span></h1><p>You are now ready to run games.</p><p>Further options are available under the settings menu. You can also use the Big Picture UI for navigation entirely with a gamepad.</p><p>We hope you enjoy using PCSX2.</p></body></html> + <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Opstelling Voltooi!</span></h1><p>U is nou reg om speletjies te hardloop.</p><p>Verdere opsies is beskikbaar onder die instellings kieslys. U kan ook gebruik maak van die Groot Prent UI vir navigasie heeltemal met 'n kontroleerder.</p><p>Ons hoop U geniet PCSX2.</p></body></html> &Back - &Back + &Terug &Next - &Next + &Volgende &Cancel - &Cancel + &Kanselleer Warning - Warning + Waarskuwing A BIOS image has not been selected. PCSX2 <strong>will not</strong> be able to run games without a BIOS image.<br><br>Are you sure you wish to continue without selecting a BIOS image? - A BIOS image has not been selected. PCSX2 <strong>will not</strong> be able to run games without a BIOS image.<br><br>Are you sure you wish to continue without selecting a BIOS image? + 'n BIOS beeld is nie gekies nie. PCSX2 <strong> sal nie</strong> speletjies kan hardloop sonder 'n BIOS beeld nie.<br><br> Is U seker U wil voortgaan sonder om 'n BIOS beeld te kies? No game directories have been selected. You will have to manually open any game dumps you want to play, PCSX2's list will be empty. Are you sure you want to continue? - No game directories have been selected. You will have to manually open any game dumps you want to play, PCSX2's list will be empty. + Geen speletjie gidse is gekies nie. U sal enige speletjie dumps handmatig moet oopmaak om te speel, PCSX2 se lys sal leeg wees. -Are you sure you want to continue? +Is U seker U wil voortgaan? &Finish - &Finish + &Voltooi Cancel Setup - Cancel Setup + Kanselleer Opstelling Are you sure you want to cancel PCSX2 setup? Any changes have been saved, and the wizard will run again next time you start PCSX2. - Are you sure you want to cancel PCSX2 setup? + Is U seker U wil die PCSX2 opstelling kanselleer? -Any changes have been saved, and the wizard will run again next time you start PCSX2. +Enige verandering is gestoor, en die opstel assistent sal weer hardloop volgende keer U PCSX2 oopmaak. Open Directory... - Open Directory... + Maak Gids Oop... Select Search Directory - Select Search Directory + Kies Soek Gids Scan Recursively? - Scan Recursively? + Skandeer Rekursief? Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. - Would you like to scan the directory "%1" recursively? + Wil U die gids "%1" rekursief skandeer? -Scanning recursively takes more time, but will identify files in subdirectories. +Om rekursief te skandeer neem langer, maar sal lêers identifiseer in ondergidse. Default (None) - Default (None) + Verstek (Geen) No devices available - No devices available + Geen toestelle beskikbaar nie Automatic Binding - Automatic Binding + Outomatiese Binding No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. + Geen generiese bindings was gegenereer vir toestel '%1'. Die kontroleerder/bron mag dalk nie outomatiese bindings ondersteun nie. @@ -14960,37 +15583,37 @@ Scanning recursively takes more time, but will identify files in subdirectories. ENTRY Warning: short space limit. Abbreviate if needed. - ENTRY + INSKRYWING LABEL Warning: short space limit. Abbreviate if needed. - LABEL + ETIKET PC Warning: short space limit. Abbreviate if needed. PC = Program Counter (location where the CPU is executing). - PC + PC INSTRUCTION Warning: short space limit. Abbreviate if needed. - INSTRUCTION + INSTRUKSIE STACK POINTER Warning: short space limit. Abbreviate if needed. - STACK POINTER + STAPEL WYSER SIZE Warning: short space limit. Abbreviate if needed. - SIZE + GROOTTE @@ -14999,139 +15622,139 @@ Scanning recursively takes more time, but will identify files in subdirectories. INVALID - INVALID + ONGELDIG ID Warning: short space limit. Abbreviate if needed. - ID + ID PC Warning: short space limit. Abbreviate if needed. PC = Program Counter (location where the CPU is executing). - PC + PC ENTRY Warning: short space limit. Abbreviate if needed. - ENTRY + INSKRYWING PRIORITY Warning: short space limit. Abbreviate if needed. - PRIORITY + PRIORITEIT STATE Warning: short space limit. Abbreviate if needed. - STATE + STAAT WAIT TYPE Warning: short space limit. Abbreviate if needed. - WAIT TYPE + WAG TIPE - + BAD Refers to a Thread State in the Debugger. - BAD + SLEG - + RUN Refers to a Thread State in the Debugger. - RUN + HARDLOOP - + READY Refers to a Thread State in the Debugger. - READY + REG - + WAIT Refers to a Thread State in the Debugger. - WAIT + WAG - + SUSPEND Refers to a Thread State in the Debugger. - SUSPEND + OPSKORT - + WAIT SUSPEND Refers to a Thread State in the Debugger. - WAIT SUSPEND + WAG OPSKORT - + DORMANT Refers to a Thread State in the Debugger. - DORMANT + RUSTEND - + NONE Refers to a Thread Wait State in the Debugger. - NONE + GEEN - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. - WAKEUP REQUEST + ONTWAKING VERSOEK - + SEMAPHORE Refers to a Thread Wait State in the Debugger. - SEMAPHORE + SEMAFOOR - + SLEEP Refers to a Thread Wait State in the Debugger. - SLEEP + SLAAP - + DELAY Refers to a Thread Wait State in the Debugger. - DELAY + VERSUIM - + EVENTFLAG Refers to a Thread Wait State in the Debugger. - EVENTFLAG + EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. - MBOX + MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. - VPOOL + VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. - FIXPOOL + FIXPOOL @@ -15139,72 +15762,72 @@ Scanning recursively takes more time, but will identify files in subdirectories. Webcam (EyeToy) - Webcam (EyeToy) + Webkamera (EyeToy) Sony EyeToy - Sony EyeToy + Sony EyeToy Konami Capture Eye - Konami Capture Eye + Konami Capture Eye Device Name - Device Name + Toestel Naam Selects the device to capture images from. - Selects the device to capture images from. + Kies die toestel om beelde van te kry. HID Keyboard - HID Keyboard + HID Sleutelbord Keyboard - Keyboard + Sleutelbord HID Mouse - HID Mouse + HID Muis Pointer - Pointer + Wyser Left Button - Left Button + Linker Knoppie Right Button - Right Button + Regter Knoppie Middle Button - Middle Button + Middel Knoppie Konami Keyboard - Konami Keyboard + Konami Sleutelbord GunCon 2 - GunCon 2 + GunCon 2 @@ -15213,7 +15836,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Up - D-Pad Up + D-Pad Op @@ -15222,7 +15845,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Down - D-Pad Down + D-pad Af @@ -15231,7 +15854,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Left - D-Pad Left + D-pad Links @@ -15240,42 +15863,42 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Right - D-Pad Right + D-Pad Regs Trigger - Trigger + Sneller Shoot Offscreen - Shoot Offscreen + Skiet Afskerm Calibration Shot - Calibration Shot + Kalibrasie Skoot A - A + A B - B + B C - C + C @@ -15286,7 +15909,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Select - Select + Select @@ -15297,147 +15920,170 @@ Scanning recursively takes more time, but will identify files in subdirectories. Start - Start + Start Relative Left - Relative Left + Relatief Links Relative Right - Relative Right + Relatief Regs Relative Up - Relative Up + Relatief Op Relative Down - Relative Down + Relatief Af Sets the crosshair image that this lightgun will use. Setting a crosshair image will disable the system cursor. - Sets the crosshair image that this lightgun will use. Setting a crosshair image will disable the system cursor. + Stel die kruispunt beeld wat die liggeweer sal gebruik. Om 'n kruispunt beeld te stel sal die sisteem wyser afskakel. Cursor Scale - Cursor Scale + Wyser Skaal Scales the crosshair image set above. - Scales the crosshair image set above. + Skaal die kruispunt beeld bo gestel. + + + + %.0f%% + %.0f%% Cursor Color - Cursor Color + Wyser Kleur Applies a color to the chosen crosshair images, can be used for multiple players. Specify in HTML/CSS format (e.g. #aabbcc) - Applies a color to the chosen crosshair images, can be used for multiple players. Specify in HTML/CSS format (e.g. #aabbcc) + Stel 'n kleur na die gekiesde kruispunt beelde, kan gebruik word vir verskeie spelers. Spesifiseer in HTML/CSS formaat (bv. #aabbcc) Manual Screen Configuration - Manual Screen Configuration + Handmatige Skerm Konfigurasie Forces the use of the screen parameters below, instead of automatic parameters if available. - Forces the use of the screen parameters below, instead of automatic parameters if available. + Dwing die gebruik van die skerm parameters onder, in plaas van outomatiese parameters as beskikbaar. X Scale (Sensitivity) - X Scale (Sensitivity) + X Skaal (Sensitiwiteit) Scales the position to simulate CRT curvature. - Scales the position to simulate CRT curvature. + Skaal die posisie om die CRT kurwe te simuleer. + + + + + %.2f%% + %.2f%% Y Scale (Sensitivity) - Y Scale (Sensitivity) + Y Skaal (Sensitiwiteit) Center X - Center X + Middelpunt X Sets the horizontal center position of the simulated screen. - Sets the horizontal center position of the simulated screen. + Stel die horisontale middelpunt posisie van die gesimuleerde skerm. + + + + + %.0fpx + %.0fpx Center Y - Center Y + Middelpunt Y Sets the vertical center position of the simulated screen. - Sets the vertical center position of the simulated screen. + Stel die vertikale middelpunt posisie van die gesimuleerde skerm. Screen Width - Screen Width + Skerm Wydte Sets the width of the simulated screen. - Sets the width of the simulated screen. + Stel die wydte van die gesimuleerde skerm. + + + + + %dpx + %dpx Screen Height - Screen Height + Skerm Hoogte Sets the height of the simulated screen. - Sets the height of the simulated screen. + Stel die hoogte van die gesimuleerde skerm. Logitech USB Headset - Logitech USB Headset + Logitech USB Oorfone Input Device - Input Device + Invoertoestel Selects the device to read audio from. - Selects the device to read audio from. + Kies die toestel om oudio van te lees. Output Device - Output Device + Uitvoer Toestel Selects the device to output audio to. - Selects the device to output audio to. + Kies die toestel om oudio uit te voer. @@ -15445,7 +16091,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Input Latency - Input Latency + Invoer Latensie @@ -15453,699 +16099,734 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. - Specifies the latency to the host input device. + Spesifiseer die latensie na die bediener invoer toestel. + + + + + + + + %dms + %dms Output Latency - Output Latency + Uitvoer Latensie Specifies the latency to the host output device. - Specifies the latency to the host output device. + Spesifiseer die latensie na die bediener uitvoer toestel. USB-Mic: Neither player 1 nor 2 is connected. - USB-Mic: Neither player 1 nor 2 is connected. + USB-Mikrofoon: Nie speler 1 of 2 is gekoppel nie. USB-Mic: Failed to start player {} audio stream. - USB-Mic: Failed to start player {} audio stream. + USB-Mikrofoon: Kon nie speler {} oudio stroom begin nie. Singstar - Singstar + Singstar Player 1 Device - Player 1 Device + Speler 1 Toestel Selects the input for the first player. - Selects the input for the first player. + Kies die invoer vir die eerste speler. Player 2 Device - Player 2 Device + Speler 2 Toestel Selects the input for the second player. - Selects the input for the second player. + Kies die invoer vir die tweede speler. Logitech USB Mic - Logitech USB Mic + Logitech USB Mikrofoon usb-msd: Could not open image file '{}' - usb-msd: Could not open image file '{}' + usb-msd: Kon nie beeld lêer '{}' oopmaak nie Mass Storage Device - Mass Storage Device + Massa Stoor Toestel Modification time to USB mass storage image changed, reattaching. - Modification time to USB mass storage image changed, reattaching. + Wysiging tyd na USB massa stoor beeld verander, dit word herkoppel. Image Path - Image Path + Beeld Pad Sets the path to image which will back the virtual mass storage device. - Sets the path to image which will back the virtual mass storage device. + Stel die pad na beeld wat die virtuele massa stoor toestel sal ondersteun. Steering Left - Steering Left + Stuur Links Steering Right - Steering Right + Stuur Regs Throttle - Throttle + Versneller Brake - Brake + Rem Cross - Cross + Kruis Square - Square + Vierkant Circle - Circle + Sirkel Triangle - Triangle + Driehoek L1 - L1 + L1 R1 - R1 + R1 L2 - L2 + L2 R2 - R2 + R2 Force Feedback - Force Feedback + Kragterugvoer Shift Up / R1 - Shift Up / R1 + Wissel Op / R1 Shift Down / L1 - Shift Down / L1 + Wissel Af / L1 L3 - L3 + L3 R3 - R3 + R3 Menu Up - Menu Up + Kieslys Op Menu Down - Menu Down + Kieslys Af X - X + X Y - Y + Y + + + + Off + Af + + + + Low + Laag + + + + Medium + Medium + + + + High + Hoog Steering Smoothing - Steering Smoothing + Stuur Gladmaak Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. - Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + Maak verandering in stuur gladder na die gespesifiseerde persent per peiling. Benoodig vir die gebruik van sleutelborde. + + + + + %d%% + %d%% Steering Deadzone - Steering Deadzone + Stuur Doodsone Steering axis deadzone for pads or non self centering wheels. - Steering axis deadzone for pads or non self centering wheels. + Stuur asse doodsone vir pads of nie-self sentrering wiele. Steering Damping - Steering Damping + Stuur Demping Applies power curve filter to steering axis values. Dampens small inputs. - Applies power curve filter to steering axis values. Dampens small inputs. + Toepas krag kurwe filter na stuur asse waardes. Versag klein insette. Wheel Device - Wheel Device + Wiel Toestel Driving Force - Driving Force + Driving Force Driving Force Pro - Driving Force Pro + Driving Force Pro Driving Force Pro (rev11.02) - Driving Force Pro (rev11.02) + Driving Force Pro (rev11.02) GT Force - GT Force + GT Force Rock Band Drum Kit - Rock Band Drum Kit + Rock Band Drom Stel Blue - Blue + Blou Green - Green + Groen Red - Red + Rooi Yellow - Yellow + Geel Orange - Orange + Oranje Buzz Controller - Buzz Controller + Buzz Kontroleerder Player 1 Red - Player 1 Red + Speler 1 Rooi Player 1 Blue - Player 1 Blue + Speler 1 Blou Player 1 Orange - Player 1 Orange + Speler 1 Oranje Player 1 Green - Player 1 Green + Speler 1 Groen Player 1 Yellow - Player 1 Yellow + Speler 1 Geel Player 2 Red - Player 2 Red + Speler 2 Rooi Player 2 Blue - Player 2 Blue + Speler 2 Blou Player 2 Orange - Player 2 Orange + Speler 2 Oranje Player 2 Green - Player 2 Green + Speler 2 Groen Player 2 Yellow - Player 2 Yellow + Speler 2 Geel Player 3 Red - Player 3 Red + Speler 3 Rooi Player 3 Blue - Player 3 Blue + Speler 3 Blou Player 3 Orange - Player 3 Orange + Speler 3 Oranje Player 3 Green - Player 3 Green + Speler 3 Groen Player 3 Yellow - Player 3 Yellow + Speler 3 Geel Player 4 Red - Player 4 Red + Speler 4 Rooi Player 4 Blue - Player 4 Blue + Speler 4 Blou Player 4 Orange - Player 4 Orange + Speler 4 Oranje Player 4 Green - Player 4 Green + Speler 4 Groen Player 4 Yellow - Player 4 Yellow + Speler 4 Geel KeyboardMania - KeyboardMania + KeyboardMania C 1 - C 1 + C 1 C# 1 - C# 1 + C# 1 D 1 - D 1 + D 1 D# 1 - D# 1 + D# 1 E 1 - E 1 + E 1 F 1 - F 1 + F 1 F# 1 - F# 1 + F# 1 G 1 - G 1 + G 1 G# 1 - G# 1 + G# 1 A 1 - A 1 + A 1 A# 1 - A# 1 + A# 1 B 1 - B 1 + B 1 C 2 - C 2 + C 2 C# 2 - C# 2 + C# 2 D 2 - D 2 + D 2 D# 2 - D# 2 + D# 2 E 2 - E 2 + E 2 F 2 - F 2 + F 2 F# 2 - F# 2 + F# 2 G 2 - G 2 + G 2 G# 2 - G# 2 + G#2 A 2 - A 2 + A 2 A# 2 - A# 2 + A# 2 B 2 - B 2 + B 2 Wheel Up - Wheel Up + Wiel Op Wheel Down - Wheel Down + Wiel Af Sega Seamic - Sega Seamic + Sega Seamic Stick Left - Stick Left + Stok Links Stick Right - Stick Right + Stok Regs Stick Up - Stick Up + Stok Op Stick Down - Stick Down + Stok Af Z - Z + Z L - L + L R - R + R Failed to open '{}' for printing. - Failed to open '{}' for printing. + Kon nie '{}' oopmaak vir drukwerk nie. Printer saving to '{}'... - Printer saving to '{}'... + Drukker stoor na '{}'... Printer - Printer + Drukker None - None + Geen Not Connected - Not Connected + Nie Verbind nie Default Input Device - Default Input Device + Verteke Inset Toestel Default Output Device - Default Output Device + Versteke Uitset Toestel DJ Hero Turntable - DJ Hero Turntable + DJ Hero Draaitafel Triangle / Euphoria - Triangle / Euphoria + Driehoek / Euforie Crossfader Left - Crossfader Left + Kruisdemper Links Crossfader Right - Crossfader Right + Kruisdemper Regs Left Turntable Clockwise - Left Turntable Clockwise + Linker Draaitafel Kloksgewys Left Turntable Counterclockwise - Left Turntable Counterclockwise + Linker Draaitafel Antikloksgewys Right Turntable Clockwise - Right Turntable Clockwise + Regter Draaitafel Kloksgewys Right Turntable Counterclockwise - Right Turntable Counterclockwise + Regter Draaitafel Antikloksgewys Left Turntable Green - Left Turntable Green + Linker Draaitafel Groen Left Turntable Red - Left Turntable Red + Linker Draaitafel Rooi Left Turntable Blue - Left Turntable Blue + Linker Draaitafel Blou Right Turntable Green - Right Turntable Green + Regter Draaitafel Groen Right Turntable Red - Right Turntable Red + Regter Draaitafel Rooi Right Turntable Blue - Right Turntable Blue + Regter Draaitafel Blou Apply a multiplier to the turntable - Apply a multiplier to the turntable + Toepas 'n vermenigvuldiger na die draaitafel Effects Knob Left - Effects Knob Left + Effekte Knop Links Effects Knob Right - Effects Knob Right + Effekte Knop Regs Turntable Multiplier - Turntable Multiplier + Draaitafel Vermenigvuldiger @@ -16153,390 +16834,390 @@ Scanning recursively takes more time, but will identify files in subdirectories. Axes - Axes + Asse Buttons - Buttons + Knoppies USBBindingWidget_DrivingForce - + Hints - Hints + Wenke - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. + Om stuur te bind aan meeste moderne 900 grade wiele, draai die wiel een rotasie in die gewenste rigting, dan weer terug na die middelpunt toe. - + Force Feedback - Force Feedback + Kragterugvoer - + D-Pad - D-Pad + D-Pad - + Down - Down + Af - + Left - Left + Links - + Up - Up + Op - + Right - Right + Regs - + L1 - L1 + L1 - + L2 - L2 + L2 - + Brake - Brake + Rem - + Steering Left - Steering Left + Stuur Links - + Steering Right - Steering Right + Stuur Regs - + Select - Select + Select - + Start - Start + Start - + Face Buttons - Face Buttons + Gesig Knoppies - + Circle - Circle + Sirkel - + Cross - Cross + Kruis - + Triangle - Triangle + Driehoek - + Square - Square + Vierkant - + R1 - R1 + R1 - + R2 - R2 + R2 - + Accelerator - Accelerator + Versneller USBBindingWidget_GTForce - + Hints - Hints + Wenke - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. + Om stuur te bind aan meeste moderne 900 grade wiele, draai die wiel een rotasie in die gewenste rigting, dan weer terug na die middelpunt toe. - + Force Feedback - Force Feedback + Kragterugvoer - + X - X + X - + A - A + A - + Brake - Brake + Rem - + Steering Left - Steering Left + Stuur Links - + Steering Right - Steering Right + Stuur Regs - + Left Paddle - Left Paddle + Linker Paddel - + Right Paddle - Right Paddle + Regter Paddel - + Y - Y + Y - + B - B + B - + Accelerator - Accelerator + Versneller USBBindingWidget_GunCon2 - + Buttons - Buttons + Knoppies - + A - A + A - + C - C + C - + Start - Start + Start - + Select - Select + Select - + B - B + B - + D-Pad - D-Pad + D-Pad - - + + Down - Down + Af - - + + Left - Left + Links - - + + Up - Up + Op - - + + Right - Right + Regs - + Pointer Setup - Pointer Setup + Wyser Opstel - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> + <p>By verstek, GunCon2 sal die muis wyser gebruik. Om die muis te gebruik, hoef U <strong> nie</strong> enige bindings in te stel nie behalwe die sneller en knoppies nie.</p> -<p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> +<p>As U 'n kontroleerder wil gebruik, of liggeweer wat n kontroleerder simuleer in plaas van 'n muis, dan moet U dit bind aan Relatiewe Mikking. Andersins, moet Relatiewe Mikking <strong> ongebind gelos word</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Relative Aiming + Relatiewe Mikking - - + + Trigger - Trigger + Sneller - + Shoot Offscreen - Shoot Offscreen + Skiet Afskerm - + Calibration Shot - Calibration Shot + Kalibrasie Skoot - + Calibration shot is required to pass the setup screen in some games. - Calibration shot is required to pass the setup screen in some games. + Kalibrasie skoot is vereis om die opstel skerm te slaag in party speletjies. USBDeviceWidget - + Device Type - Device Type + Toestel Tipe - + Bindings - Bindings + Bindings - + Settings - Settings + Instellings - + Automatic Mapping - Automatic Mapping + Outomatiese Kartering - + Clear Mapping - Clear Mapping + Verwyder Kartering USB Port %1 - USB Port %1 + USB Poort %1 No devices available - No devices available + Geen toestelle beskikbaar nie Clear Bindings - Clear Bindings + Verwyder Bindings Are you sure you want to clear all bindings for this device? This action cannot be undone. - Are you sure you want to clear all bindings for this device? This action cannot be undone. + Is U seker U wil al die bindings vir die toestel uitvee? Die aksie kan nie ontdoen word nie. Automatic Binding - Automatic Binding + Outomatiese Binding No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. + Geen generiese bindings was gegenereer vir toestel '%1'. Die kontroleerder/bron mag dalk nie outomatiese bindings ondersteun nie. VMManager - + Failed to back up old save state {}. - Failed to back up old save state {}. + Kon nie ou stoor staat rugsteun nie {}. - + Failed to save save state: {}. - Failed to save save state: {}. + Kon nie stoor staat stoor nie: {}. - + PS2 BIOS ({}) - PS2 BIOS ({}) + PS2 BIOS ({}) - + Unknown Game - Unknown Game + Onbekende Speletjie - + Error - Error + Fout - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16544,208 +17225,228 @@ For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own Once dumped, this BIOS image should be placed in the bios folder within the data directory (Tools Menu -> Open Data Directory). Please consult the FAQs and Guides for further instructions. - PCSX2 requires a PS2 BIOS in order to run. + PCSX2 benodig a PS2 BIOS om te hardloop. -For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). +Om wettige redes, *moet* U 'n BIOS van 'n werklike PS2 eenheid wat U besit kry (leening tel nie). -Once dumped, this BIOS image should be placed in the bios folder within the data directory (Tools Menu -> Open Data Directory). +Wanneer dit klaar gedump is, moet die BIOS beeld in die bios gids wat binne die data gids is, geplaas word. (Gereedskap Kieslys -> Maak Data Gids Oop). -Please consult the FAQs and Guides for further instructions. +Raadpleeg asseblief die FAQs en Guides vir verdere instruksies. + + + + Resuming state + Besig om staat te hervat - + State saved to slot {}. - State saved to slot {}. + Staat gestoor na gleuf {}. - + Failed to save save state to slot {}. - Failed to save save state to slot {}. + Kon nie stoor staat stoor na gleuf {}. - + + + Loading state + Besig om staat te laai + + + There is no save state in slot {}. - There is no save state in slot {}. + Daar is geen stoor staat in gleuf {}. - + Loading state from slot {}... - Loading state from slot {}... + Besig om staat te laai van gleuf {}... - + Saving state to slot {}... - Saving state to slot {}... + Besig om staat te stoor na gleuf {}... - + + Frame advancing + Raam bevordering + + + Disc removed. - Disc removed. + Skyf verwyder. - + Disc changed to '{}'. - Disc changed to '{}'. + Skyf verander na '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Kon nie nuwe skyfbeeld '{}' oopmaak nie. Ou beeld word teruggekeur. +Fout was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Kon nie terug skakel na ou skyfbeeld nie. Skyf word verwyder. +Fout was: {} - + Cheats have been disabled due to achievements hardcore mode. - Cheats have been disabled due to achievements hardcore mode. + Kroeke is gedeaktiveer as gevolg van prestasies hardcore modus. - + Fast CDVD is enabled, this may break games. - Fast CDVD is enabled, this may break games. + Vinnige CDVD is geaktiveer, dit kan speletjies breek. - + Cycle rate/skip is not at default, this may crash or make games run too slow. - Cycle rate/skip is not at default, this may crash or make games run too slow. + Siklus tempo/oorslaan is nie op verstek nie, dit mag speletjies laat omval of te stadig hardloop. - + Audio is using async mix, expect desynchronization in FMVs. - Audio is using async mix, expect desynchronization in FMVs. + Oudio gebruik asinkroniseer mengsel, verwag desinkronisasie in FMVs. - + Upscale multiplier is below native, this will break rendering. - Upscale multiplier is below native, this will break rendering. + Opskaal vermenigvuldiger is onder plaaslik, dit sal vertooning breek. - + Mipmapping is not set to automatic. This may break rendering in some games. - Mipmapping is not set to automatic. This may break rendering in some games. + Mipmapping is nie op outomaties gestel nie. Dit mag vertooning in party speletjies breek. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. + Tekstuur filtrering is nie op Bilineêr (PS2) gestel nie. Dit sal vertooning breek in party speletjies. - + Trilinear filtering is not set to automatic. This may break rendering in some games. - Trilinear filtering is not set to automatic. This may break rendering in some games. + Trilinêre filtrering is nie op outomaties gestel nie. Dit mag vertooning in party speletjies breek. - + Blending is below basic, this may break effects in some games. - Blending is below basic, this may break effects in some games. + Vermenging is onder basies, dit mag effekte breek in party speletjies. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. - Hardware Download Mode is not set to Accurate, this may break rendering in some games. + Hardeware Aflaai Modus is nie op Akkuraat gestel nie, dit mag vertooning in party speletjies breek. - + EE FPU Round Mode is not set to default, this may break some games. - EE FPU Round Mode is not set to default, this may break some games. + EE FPU Afrond Modus is nie op verstek gestel nie, dit mag party speletjies breek. - + EE FPU Clamp Mode is not set to default, this may break some games. - EE FPU Clamp Mode is not set to default, this may break some games. + EE FPU Klamp Modus is nie op verstek gestel nie, dit mag party speletjies breek. - + VU Round Mode is not set to default, this may break some games. - VU Round Mode is not set to default, this may break some games. + VU Afrond Modus is nie op verstek gestel nie, dit mag party speletjies breek. - + VU Clamp Mode is not set to default, this may break some games. - VU Clamp Mode is not set to default, this may break some games. + VU Klamp Modus is nie op verstek gestel nie, dit mag party speletjies breek. - + Game Fixes are not enabled. Compatibility with some games may be affected. - Game Fixes are not enabled. Compatibility with some games may be affected. + Speletjie Regstellings is nie geaktiveer nie. Versoenbaarheid met party speletjies mag geaffekteer word. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. - Compatibility Patches are not enabled. Compatibility with some games may be affected. + Versoenbaarheid Patches is nie geaktiveer nie. Versoenbaarheid met party speletjies mag geaffekteer word. - + Frame rate for NTSC is not default. This may break some games. - Frame rate for NTSC is not default. This may break some games. + Beeldkoers vir NTSC is nie verstek nie. Dit mag party speletjies breek. - + Frame rate for PAL is not default. This may break some games. - Frame rate for PAL is not default. This may break some games. + Beeldkoers vir PAL is nie verstek nie. Dit mag party speletjies breek. - + EE Recompiler is not enabled, this will significantly reduce performance. - EE Recompiler is not enabled, this will significantly reduce performance. + EE herkompileerder is nie geaktiveer nie, dit sal werkverrigting ernstig verminder. - + VU0 Recompiler is not enabled, this will significantly reduce performance. - VU0 Recompiler is not enabled, this will significantly reduce performance. + VU0 herkompileerder is nie geaktiveer nie, dit sal werkverrigting ernstig verminder. - + VU1 Recompiler is not enabled, this will significantly reduce performance. - VU1 Recompiler is not enabled, this will significantly reduce performance. + VU1 herkompileerder is nie geaktiveer nie, dit sal werkverrigting ernstig verminder. - + IOP Recompiler is not enabled, this will significantly reduce performance. - IOP Recompiler is not enabled, this will significantly reduce performance. + IOP Herkompileerder is nie geaktiveer nie, dit sal werkverrigting ernstig verminder. - + EE Cache is enabled, this will significantly reduce performance. - EE Cache is enabled, this will significantly reduce performance. + EE kasgeheue is geaktiveer, dit sal werkverrigting ernstig verminder. - + EE Wait Loop Detection is not enabled, this may reduce performance. - EE Wait Loop Detection is not enabled, this may reduce performance. + EE Wag Lus Opsporing is nie geaktiveer nie, dit mag werkverrigting verminder. - + INTC Spin Detection is not enabled, this may reduce performance. - INTC Spin Detection is not enabled, this may reduce performance. + INTC Draai Opsporing is nie geaktiveer nie, dit mag werkverrigting verminder. - + Instant VU1 is disabled, this may reduce performance. - Instant VU1 is disabled, this may reduce performance. + Onmiddellike VU1 is gedeaktiveer, dit mag werkverrigting verminder. - + mVU Flag Hack is not enabled, this may reduce performance. - mVU Flag Hack is not enabled, this may reduce performance. + mVU Vlag Hack is nie geaktiveer nie, dit mag werkverrigting verminder. - + GPU Palette Conversion is enabled, this may reduce performance. - GPU Palette Conversion is enabled, this may reduce performance. + GPU Palet bekering is geaktiveer, dit mag werkverrigting verminder. - + Texture Preloading is not Full, this may reduce performance. - Texture Preloading is not Full, this may reduce performance. + Tekstuur Voorlaaiing is nie Vol nie, dit mag werkverrigting verminder. - + Estimate texture region is enabled, this may reduce performance. - Estimate texture region is enabled, this may reduce performance. + Reken tekstuur streek is geaktiveer, dit mag werkverrigting verminder. diff --git a/pcsx2-qt/Translations/pcsx2-qt_ar-SA.ts b/pcsx2-qt/Translations/pcsx2-qt_ar-SA.ts index 23a02076390e2a..bee4896bea74c2 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_ar-SA.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_ar-SA.ts @@ -42,7 +42,7 @@ License - الترخيص + الرخصة @@ -51,7 +51,7 @@ RetroAchievements Login Window title - سجل الدخول لـ(RetroAchievements) + تسجيل الدخول لRetroAchievements @@ -80,32 +80,38 @@ جاهز... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong> توكن الـRetroAchievements الخاص بك لم يعد صالحاً.</strong> عليك إعادة إدخال معلومات الدخول لكي تعمل الإنجازات, كلمة المرور الخاصّة بك لن تُحفظ في PCSX2, سيتم إنشاء توكن وصول وسيتم استخدامه بدلاً من ذلك. - + &Login &تسجيل الدخول - + Logging in... جاري تسجيل الدخول... - + Login Error خطأ في تسجيل الدخول - - Login failed. Please check your username and password, and try again. - فشل التسجيل. تحقق اسم المستخدم و كلمة المرور، و حاول مرة أخرى. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + فشل تسجيل الدخول. + الخطأ: %1 + + يرجى التحقق من اسم المستخدم وكلمة المرور الخاصة بك وحاول مرة أخرى. - + Login failed. فشل تسجيل الدخول. @@ -113,270 +119,507 @@ AchievementSettingsWidget - - Global Settings - الإعدادات العامة - - - - + + Enable Achievements - مكن الإنجازات - - - - - Show Challenge Indicators - عرض مؤشرات التحدي - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - تمكين التواجد الغني لـ RAapos + تفعيل الإنجازات - - + + Enable Hardcore Mode - مَكِنْ الوضع الصعب - - - - - Enable Leaderboards - مَكِنْ لائحة المتصدرين + تفعيل الوضع الصعب - + Test Unofficial Achievements - اختبار الإنجازات الغير رسمية - - - - - Enable Test Mode - تمكين وضع الاختبار + اختبر الجوائز الغير رسمية - - + + Enable Sound Effects - تمكين المؤثرات الصوتية + تفعيل المؤثرات الصوتية - + Notifications الإشعارَات - - - Show Notifications - أظهر الإشعارات - - - - Duration - المدة - - - - - - + + 5 seconds 5 ثواني - + Account الحساب - - + + Login... تسجيل الدخول... - + View Profile... عرض الملف الشخصي... - - Game Info - معلومات اللعبة + + Settings + إعدادات - - <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> - <html><head/><body><p align="justify">PCSX2 يستخدم RetroAchievements كقاعدة بيانات للانجازات ولتتبع آداء اللاعب. لاستخدام الانجازات يرجى انشاء حساب في <a href="https://retroachievements.org/"><span style=" text-decoration: underline; color:#4169e1;">retroachievements.org</span></a>.</p><p align="justify">لعرض قائمة الانجازات داخل اللعبة اضغط على مفتاح الاختصار لـ<span style=" font-weight:600;">فتح قائمة الايقاف</span> و اختر <span style=" font-weight:600;">الانجازات</span> من القائمة.</p></body></html> + + + Enable Spectator Mode + تمكين وضع المشاهد - - seconds - ثواني + + + Enable Encore Mode + تفعيل وضع الظهور + + + Show Achievement Notifications + عرض إشعارات الإنجاز + + + + Show Leaderboard Notifications + عرض إشعارات المتصدرين + + + - - - - Unchecked - غير محدد + Enable In-Game Overlays + تمكين التراكبات داخل اللعبة - - When enabled and logged in, PCSX2 will scan for achievements on game load. - عند التمكين وتسجيل الدخول، سيقوم PCSX2 بالبحث عن الإنجازات عند بدء التشغيل. + + Username: +Login token generated at: + اسم المستخدم: + تم إنشاء رمز تسجيل الدخول في: + + + + Game Info + معلومات اللعبة + + + + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + <html><head/><body><p align="justify">PCSX2 يستخدم RetroAchievements كقاعدة بيانات للانجازات ولتتبع آداء اللاعب. لاستخدام الانجازات يرجى انشاء حساب في <a href="https://retroachievements.org/"><span style=" text-decoration: underline; color:#4169e1;">retroachievements.org</span></a>.</p><p align="justify">لعرض قائمة الانجازات داخل اللعبة اضغط على مفتاح الاختصار لـ<span style=" font-weight:600;">فتح قائمة الايقاف</span> و اختر <span style=" font-weight:600;">الانجازات</span> من القائمة.</p></body></html> + + + + + Unchecked + لم يتم التحقق + + + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - عند التمكين، سيفترض PCSX2 أن جميع الإنجازات مقفلة ولن يرسل أي إشعارات فتح إلى الخادم. + عند تفعيل هذا الخيار، سيفترض PCSX2 أن جميع الإنجازات مقفلة ولن يرسل أي إشعارات فتح إلى الخادم. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. عند التمكين، سوف يعرض PCSX2 الإنجازات من مجموعات الإنجازات الغير رسمية. يرجى ملاحظة أن هذه الإنجازات لا يتم تتبعها بواسطة RetroAchievements، لذلك يتم فتحها من جديد في كل مرة. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - عند التمكين، سيتم جمع معلومات بشكل واسع عن مكان التواجد وإرسالها إلي خوادم RetroAchievements حيث يتم دعمها. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - وضع "التحدي" للإنجازات يشمل تتبع لائحة المتصدرين. يُعطل مميزات حالات الحفظ والغش والحركة البطيئة. + تفعيل وضع التحدي للإنجازات, يشمل تتبع لائحة المتصدرين. يُعطل ميزة حفظ الحاله والغش والحركة البطيئة. - - - - + + + + Checked - محدد + تم التحقق - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - تمكين تتبع لوائح المتصدرين والاشتراك بها في الألعاب المدعومة. في حالة تعطيل لوائح المتصدرين سوف تظل تستطيع عرض لوائح المتصدرين، لكن لن يتم الاشتراك بها. + + Plays sound effects for events such as achievement unlocks and leaderboard submissions. + تشغيل المؤثرات الصوتية عند فتح الإنجازات وتقديم الدرجات على لائحة المتصدرين. - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - عرض رسائل منبثقة حول أحداث مثل فتح الإنجازات والتقدم على لائحة المتصدرين. + + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + عرض أيقونات في الزاوية اليمنى السفلى من الشاشة عندما يكون هناك تحدي أو إنجاز نشط. - - Plays sound effects for events such as achievement unlocks and leaderboard submissions. - تشغيل مؤثرات صوتية عند أحداث مثل فتح الإنجازات والتقدم على لائحة المتصدرين. + + When enabled and logged in, PCSX2 will scan for achievements on startup. + عند التمكين وتسجيل الدخول، سيقوم PCSX2 بالبحث عن الإنجازات عند بدء التشغيل. - - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - عرض أيقونات في الزاوية اليمنى السفلى من الشاشة عندما يكون هناك تحدي أو إنجاز نشط. + + Displays popup messages on events such as achievement unlocks and game completion. + يعرض رسائل منبثقة حول أحداث مثل فتح الإنجازات وإكمال اللعبة. - - - - Notification Duration - مدة الإشعارات + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + يعرض الرسائل المنبثقة عند البدء، أو التقديم، أو فشل تحدي لوحة المتصدرين. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - المدة ، في ثوانٍ ، سوف يبقى إشعار منبثق للإنجازات على الشاشة. + + When enabled, each session will behave as if no achievements have been unlocked. + عند التمكين، ستعمل كل جلسة كما لو لم يتم فتح أي إنجازات. - + Reset System إعادة تعيين النظام - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? لن يتم تمكين الوضع الصعب حتى يتم إعادة تعيين النظام. هل تريد إعادة تعيين النظام الآن؟ + + + + %n seconds + + واحد + %n ثانية + واحد + %n ثانية + %n seconds + %n seconds + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. اسم المستخدم: %1 رمز تسجيل الدخول تم إنشاؤه في %2 - + Logout تسجيل الخروج - + Not Logged In. لم يتم تسجيل الدخول. - - - %1 seconds - %1 ثانية - Achievements - + Hardcore mode will be enabled on system reset. - سيتم تمكين الوضع الصعب عند إعادة تعيين النظام. + سيتم تفعيل الوضع الصعب عند إعادة تشغيل النظام. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} لا يمكن القيام به بينما الوضع المتشدد نشط. هل تريد تعطيل الوضع المتشدد؟ سيتم إلغاء {0} إذا اخترت لا. - + Hardcore mode is now enabled. - تم الآن تمكين الوضع الصعب. + تم الآن تفعيل الوضع الصعب. + + + + {} (Hardcore Mode) + {} (الوضع المتشدد) - + + {} (Unofficial) + {} (غير رسمي) + + + + Mastered {} + متقن {} + + + + Leaderboard attempt started. + بدأت محاولة المتصدرين. + + + + Leaderboard attempt failed. + فشلت محاولة المتصدرين. + + + + Your Time: {}{} + الوقت الخاص بك: {}{} + + + + Your Score: {}{} + النتيجة الخاصة بك: {}{} + + + + Your Value: {}{} + القيمة الخاصة بك: {}{} + + + + (Submitting) + (تقديم) + + + + Achievements Disconnected + الإنجازات معطلة + + + + An unlock request could not be completed. We will keep retrying to submit this request. + تعذر إكمال طلب إلغاء القفل. سوف نواصل محاولة إرسال هذا الطلب. + + + + Achievements Reconnected + تم إعادة الاتصال بالإنجازات + + + + All pending unlock requests have completed. + لقد اكتملت جميع طلبات إلغاء القفل المعلقة. + + + Hardcore mode is now disabled. - تم الآن تعطيل الوضع الصعب. + تم تعطيل الوضع الصعب. + + + + Confirm Hardcore Mode + تأكيد الوضع الصعب + + + + Active Challenge Achievements + إنجازات التحدي النشط - + (Hardcore Mode) (الوضع المتشدد) - - You have earned {0} of {1} achievements, and {2} of {3} points. - لقد حصلت علي {0} من {1} إنجازات، و {2} من {3} نِقَاط. + + You have unlocked all achievements and earned {} points! + لقد قمت بفتح جميع الإنجازات وحصلت على {} نقاط! + + + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + لقد فتحت {0} من انجازات {1} وحصلت على {2} من {3} نقاط. - - This game has no achievements. - هذه اللعبة ليس لها إنجازات. + + {0} achievements, {1} points + انجازات {0} ، نقاط {1} + + + + Your Time: {0} (Best: {1}) + وقتك: {0} (الأفضل: {1}) + + + + Your Score: {0} (Best: {1}) + نتيجتك: {0} (الأفضل: {1}) + + + + Your Value: {0} (Best: {1}) + القيمة الخاصة بك: {0} (أفضل: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +مركز المتصدرين: {1} من {2} + + + + Server error in {0}: +{1} + خطأ في الخادم {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + لقد قمت بفتح {0} من انجازات {1} ، وكسب {2} من {3} نقاط ممكنة. + + + + Unknown + غير معروف + + + + Locked + مقفل + + + + Unlocked + إلغاء القفل + + + + Unsupported + غير متوافق + + + + Unofficial + غير رسمي + + + + Recently Unlocked + تم فتحه مؤخرا + + + + Active Challenges + التحديات النشطة + + + + Almost There + اوشكت على الوصول + + + + {} points + {} نقاط + + + + {} point + {} نقطة + + + + XXX points + نقاط XXX + + + + Unlocked: {} + إلغاء القفل: {} + + + + This game has {} leaderboards. + تحتوي هذه اللعبة على {} لوحة صدارة. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + يتم تعطيل تقديم النقاط بسبب وضع المتشدد. لوحة المتصدرين مقروءة فقط. + + + + Show Best + عرض الأفضل + + + + Show Nearby + عرض قريب + + + + Rank + الترتيب + + + + Name + إسم + + + + Time + الوقت + + + + Score + النتيجة + + + + Value + القيمة + + + + Date Submitted + تاريخ التقديم + + + + Downloading leaderboard data, please wait... + تحميل بيانات لوحة المتصدرين، يرجى الانتظار... + + + + + Loading... + جارٍ التحميل... + + + + + Leaderboard download failed + فشل تنزيل لوحة المتصدرين - - Leaderboard submission is enabled. - تم تمكين تقديم لوحة المتصدرين. + + This game has no achievements. + هذه اللعبة ليس لها إنجازات. - + Failed to read executable from disc. Achievements disabled. - فشل في قراءة مِلَفّ التشغيل من القرص، تم تعطيل الإنجازات. + فشل في قراءة الـ EXE من القرص، تم تعطيل الإنجازات. @@ -557,7 +800,7 @@ Login token generated on %2. Enable Game Fixes - تمكين إصلاحات الألعاب + تفعيل إصلاحات الألعاب @@ -567,7 +810,7 @@ Login token generated on %2. Enable Compatibility Patches - تمكين تصويبات التوافق + تفعيل تصحيحات التوافق @@ -578,403 +821,403 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. قد يتسبب تغيير هذه الخيارات في مشاكل في الألعاب. قم بالتعديل على مسؤوليتك الخاصة، لن يوفر فريق PCSX2 الدعم أثناء استخدام هذه الإعدادات. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. وضع التقريب: - - - + + + Nearest الأقرب - - - + + + Negative سلبي - - - + + + Positive إيجابي - - - + + + Chop / Zero (Default) Chop / Zero (Default) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. وضع حد الأرقام: - - + + None لا شيء - - - + + + Normal (Default) عادي (إفتراضي) - + None ClampMode لا شيء - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). إضافي + حفظ العلامة - + Full كامل - + Wait Loop Detection اكتشاف حلقات الانتظار - - + + Enable Recompiler تمكين مُعيد البناء - + Enable Fast Memory Access تمكين الوصول السريع للذاكرة - + Enable Cache (Slow) تمكين ذاكرة التخزين المؤقت (بطيء) - + INTC Spin Detection اكتشاف استخدام INTC - + Pause On TLB Miss توقف في حالة فقد TLB - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: وضع تقريب VU1: - + mVU Flag Hack تسريع mVU Flag Hack - + Enable VU1 Recompiler تمكين مُعيد بناء برامج VU1 - + Enable VU0 Recompiler (Micro Mode) تمكين مُعيد بناء برامج VU0 (في وضع المايكرو) - - + + Extra إضافي - + VU0 Clamping Mode: وضع حد الأرقام لوحدة VU0: - + VU0 Rounding Mode: وضع التقريب لوحدة VU0: - + VU1 Clamping Mode: وضع حد الأرقام لوحدة VU1: - + I/O Processor (IOP, MIPS-I) معالج IOP (MIPS-I) - + Game Settings إعدادات اللعبة - + Enable Game Fixes - تمكين إصلاحات الألعاب + تفعيل إصلاحات الألعاب - + Enable Compatibility Patches - تمكين تصويبات التوافق + تفعيل تصحيحات التوافق - + Frame Rate Control التحكم في معدل الإطارات - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. هرتز - + PAL Frame Rate: معدل إطارات PAL: - + NTSC Frame Rate: معدل إطارات NTSC: - + PINE Settings إعدادات PINE - + Slot: خانة: - + Enable - تمكين + تفعيل AudioSettingsWidget - + Timestretch Settings إعدادات تمطيط الوقت - + Sequence Length: طول المدة: - + 30 30 - + Seekwindow Size: حجم نافذة البحث: - + 20 20 - + Overlap: التداخل: - + 10 10 - + Restore Defaults استعادة الافتراضيات - + Volume مستوى الصوت - + 100% 100٪ - + Mixing Settings إعدادات المزج - + Synchronization: المزامنة: - + TimeStretch (Recommended) تمطيط الوقت (مستحسن) - + Async Mix (Breaks some games!) المزيج الغير متزامن (يعطل بعض الألعاب!) - + None (Audio can skip.) لا شيء (قد يتسبب في تقطع الصوت) - + Expansion: التوزيع: - + Stereo (None, Default) ستيريو (لا شيء، افتراضي) - + Quadraphonic - Quadraphonic + صوت رباعي - + Surround 5.1 صوت محيطي 5.1 - + Surround 7.1 صوت محيطي 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. مستوى ProLogic: - + None (Default) لا شيء (افتراضي) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. فك تشفير ProLogic (أساسي) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. فك تشفير ProLogic II (غيغاهرتز) - + Target Latency: وقت استجابة الهدف: - + 60 ms 60 ملي ثانية - + Output Settings إعدادات الإخراج - + Output Module: وحدة الإخراج: - + Output Latency: وقت استجابة الإخراج: - + 20 ms 20 ملي ثانية - + Minimal الحد الأدنى - + Output Backend: محرك الإخراج: - + Maximum Latency: الحد الأقصى للاستجابة: - + Output Device: جهاز الإخراج: @@ -1162,17 +1405,22 @@ Login token generated on %2. الإصدار الجديد: - + + Download Size: + حجم التحميل: + + + Download and Install... التحميل والتثبيت... - + Skip This Update تخطى هذا التحديث - + Remind Me Later ذكرني لاحقا @@ -1182,17 +1430,17 @@ Login token generated on %2. خطأ فى التحديث - + <h2>Changes:</h2> <h2>التغييرات:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>تحذير حفظ الحالة </h2><p>تثبيت هذا التحديث سيجعل حفظك <b>غير متوافق</b>. الرجاء التأكد من أنك حفظت ألعابك في بطاقة الذاكرة قبل تثبيت هذا التحديث وإلا سوف تفقد تقدمك في اللعبة</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>تحذير الإعدادات</h2><p>تثبيت هذا التحديث سيعيد تعيين الإعدادات إلى الافتراضيات. يرجى ملاحظة أنه سيتعين عليك إعادة ضبط الإعدادات الخاصة بك بعد هذا التحديث</p> @@ -1233,6 +1481,11 @@ Login token generated on %2. + Download Size: %1 MB + حجم التحميل: %1 MB + + + Loading... جارٍ التحميل... @@ -1240,63 +1493,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory مجلد BIOS - + PCSX2 will search for BIOS images in this directory. سيبحث PCSX2 عن ملفات BIOS في هذا المجلد. - + Browse... تصفح‫... - + Reset إعادة تعيين - + BIOS Selection اختيار BIOS - - Open in Explorer... - فتح في مدير الملفات... + + Open BIOS Folder... + فتح مجلد BIOS... - + Refresh List تحديث القائمة - + Filename إسم الملف - + Version الإصدار - + Options and Patches الخيارات والتصحيحات - + Fast Boot - بدء سريع + تمهيد سريع - + Fast Forward Boot تسريع الإقلاع @@ -1394,7 +1647,7 @@ Login token generated on %2. Enable - تمكين + تفعيل @@ -1424,91 +1677,84 @@ Login token generated on %2. BreakpointModel - + Execute تنفيذ - - No Condition - لا شرط - - - - + + -- -- - - + Enabled مفعّل - - + Disabled معطَّل - + Read قراءة - + Write(C) (C) = changes, as in "look for changes". كتابة(حالي) - + Write كتابة - + TYPE Warning: limited space available. Abbreviate if needed. النوع - + OFFSET Warning: limited space available. Abbreviate if needed. إزاحة - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. الحجم / الاسم - + INSTRUCTION Warning: limited space available. Abbreviate if needed. التعليمات - + CONDITION Warning: limited space available. Abbreviate if needed. الشرط - + HITS Warning: limited space available. Abbreviate if needed. التطابقات - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ممَكن + X @@ -1519,7 +1765,7 @@ Login token generated on %2. موقع قرص اللعبة على محرك أقراص قابل للإزالة، قد تحدث مشاكل في الأداء مثل التقطع والتجميد. - + Saving CDVD block dump to '{}'. حفظ قالب CDVD إلى '{}'. @@ -1555,39 +1801,39 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type - نوع وحدة التحكم الافتراضية + نوع ذراع التحكم الافتراضية - + Bindings ارتباطات الأزرار - + Settings الإعدادات - + Macros وحدات الماكرو - + Automatic Mapping تعيين تلقائي - + Clear Mapping مسح التعيين Controller Port %1 - منفذ وحدة التحكم %1 + منفذ ذراع التحكم %1 @@ -1620,146 +1866,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. أزرار الاتجاهات - - - + + + Down - Down + تحت - - - + + + Left - Left + يسار - - - + + + Up - Up + فوق - - - + + + Right - Right + يمين - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. عصا التحكم اليسرى - + Large Motor المحرك الكبير - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Face Buttons - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cross - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Square - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangle - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Circle - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. عصا التحكم اليمنى - + Small Motor المحرك الصغير - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier معدل الضغط - + Analog Analog @@ -1767,77 +2013,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - شكل - - - + Yellow أصفر - - - - - - - - - - - + + + + + + + + + + + PushButton زر الدفع - + Start Start - + Red أحمر - + Green أخضر - + Orange برتقالي - + Select Select - + Strum Up - Strum Up + دقّ على الوتر لأعلى - + Strum Down - Strum Down + دقّ على الوتر لأسفل - + Blue أزرق - + Whammy Bar - Whammy Bar + ذراع هزازة - + Tilt إمالة @@ -1863,123 +2104,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source مصدر إدخال SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). يدعم مصدر مدخلات SDL معظم أجهزة التحكم، ويوفر وظائف متقدمة لجهازي DualShock 4 و DualSense في وضع البلوتوث مثل: الاهتزاز والتحكم في LED. - + Enable SDL Input Source - تمكين مصدر إدخال SDL + تفعيل مصدر إدخال SDL - + DualShock 4 / DualSense Enhanced Mode الوضع المُحسن لجهازي DualShock 4 و DualSense - + XInput Source مصدر إدخال XInput - + Enable XInput Input Source - تمكين مصدر إدخال XInput + تفعيل مصدر إدخال XInput - + DInput Source مصدر إدخال DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. يدعم مصدر إدخال DInput أجهزة التحكم القديمة التي لا تدعم XInput. يُستحسن استخدام SDL عوضاً عن هذا، إلا في حالة عدم دعم جهاز التحكم على SDL. - + Enable DInput Input Source - تمكين مصدر إدخال DInput + تفعيل مصدر إدخال DInput + + + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + تجاهل عكس الاتجاه - + Profile Settings إعدادات ملف التعريف - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. عند تمكين هذا الخيار، يمكن تعيين مفاتيح الاختصار في ملف التعريف هذا، وسيتم استخدامها بدلاً من مفاتيح الاختصار العامة. الافتراضي هو استخدام مفاتيح الاختصار العامة دائماً. - + Use Per-Profile Hotkeys استخدام مفاتيح الاختصار في ملف التعريف - - + + Controller LED Settings - إعدادات LED وحدة التحكم + إعدادات LED ذراع التحكم - + Enable SDL Raw Input تمكين المدخل الخام لـ SDL - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. يوفر مصدر Xinput الدعم لأجهزة تحكم Xbox 360 و Xbox One و Xbox Series ، وأجهزة التحكم الأخرى التي تدعم بروتوكول XInput. - + Controller Multitap مُشترك أجهزة التحكم - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. تُتيح المشتركات عدد يصل إلى 8 أجهزة تحكم. كل مشترك بوفر 4 منافذ. لا تدعم جميع الألعاب المشتركات. - + Multitap on Console Port 1 تمكين المشترك في المنفذ: 1 - + Multitap on Console Port 2 تمكين المشترك في المنفذ: 2 - + Mouse/Pointer Source مصدر الماوس/المؤشر - + PCSX2 allows you to use your mouse to simulate analog stick movement. يسمح لك PCSX2 باستخدام الماوس لمحاكاة حركة العصا التناظرية. - + Settings... الإعدادات... - + Enable Mouse Mapping - تمكين تعيين الماوس + تفعيل تعيين الماوس - + Detected Devices أجهزة تم اكتشافها @@ -1989,7 +2240,7 @@ Login token generated on %2. Controller LED Settings - إعدادات LED لوحدة التحكم + إعدادات LED ذراع التحكم @@ -2015,58 +2266,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons الارتباطات/الأزرار - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. حدد الأزرار التي تريد تشغيلها مع هذا الماكرو. يتم تنشيط جميع الأزرار معاً. - + Pressure الضغط - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. بالنسبة للأزرار الحساسة للضغط، هذا الشريط يتحكم في مقدار القوة التي سيتم محاكاتها عندما يكون الماكرو نشطاً. - - + + 100% ٪۱۰۰ - + Trigger المشغّل - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. حدد المشغل لتفعيل هذا الماكرو. يمكن أن يكون هذا زرًا واحداً, أو مزيجًا من الأزرار. انقر مع الضغط على مفتاح Shift للحصول على العديد من المشغلات. - + Deadzone: المنطقة الميتة: - + Frequency التردد - + Macro will toggle every N frames. الماكرو سيتم تفعيله كل عدد س من الإطارات. - + Set... تعيين... @@ -2169,46 +2420,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings إعدادات أذرع تحكم PCSX2 - + Editing Profile: تعديل مَلف التعريف: - + New Profile ملف تعريف جديد - + Load Profile تحميل ملف تعريف - + Delete Profile حذف ملف التعريف - - + + Restore Defaults استعادة الافتراضيات - - + + Create Input Profile أنشئ ملف تعريف - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2470,35 @@ Enter the name for the new input profile: أدخل اسم الملف الشخصي الجديد للمدخلات: - - - - + + + + Error خطأ - + A profile with the name '%1' already exists. يوجد بالفعل ملف تعريف باسم '%1'. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. هل تريد نسخ جميع الارتباطات من ملف التعريف المحدد حاليا إلى ملف التعريف الجديد؟ اختيار \"لا\" سيؤدي إلى إنشاء ملف تعريف فارغ تماما. - + Failed to save the new profile to '%1'. فشل في حفظ ملف التعريف الجديد إلى '%1'. - + Load Input Profile - أنشئ ملف تعريف + تحميل ملف تعريف الإدخال - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2511,12 @@ You cannot undo this action. لا يمكن التراجع عن هذا. - + Delete Input Profile - حذف ملف التعريف + حذف ملف تعريف الإدخال - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2525,12 @@ You cannot undo this action. لا يمكنك التراجع عن هذا الإجراء. - + Failed to delete '%1'. فشل في حذف '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,49 +2543,49 @@ You cannot undo this action. لا يمكنك التراجع عن هذا الإجراء. - + Global Settings الإعدادات العامة - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - منفذ وحدة التحكم %1%2 + منفذ ذراع التحكم %1%2 %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - منفذ وحدة التحكم %1 + منفذ ذراع التحكم %1 %2 - - + + USB Port %1 %2 منفذ USB %1 %2 - + Hotkeys مفاتيح الاختصار - + Shared "Shared" refers here to the shared input profile. مشترك - + The input profile named '%1' cannot be found. لا يمكن العثور على ملف الإدخال المسمى '%1'. @@ -2406,204 +2657,242 @@ You cannot undo this action. Functions - + + Module + Module + + + + Version + الإصدار + + + + Count + Count + + + Refresh تحديث - + Filter فلتر - + Memory Search البحث في الذاكرة - + End النهاية - + Value القيمة - + Start البداية - + Type النوع - + 1 Byte (8 bits) 1 بايت (8 بت) - + 2 Bytes (16 bits) 2 بايت (16 بت) - + 4 Bytes (32 bits) 4 بايت (32 بت) - + 8 Bytes (64 bits) 8 بايت (64 بت) - + Float Float - + Double Double - + String String - + Array of byte مصفوفة من البايت - + Hex Hex - + Search البحث - + Memory الذاكرة - + Breakpoints نقاط التوقف - + Threads خيوط المعالجة - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New جديد - + Edit تعديل - - - + + + Copy نسخ - + Delete حذف - + + + + Copy all as CSV + نسخ الكل كـ CSV + + + + Paste from CSV + لصق من CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name نسخ اسم الوظيفة - + + Copy Function Address نسخة عنوان الوظيفة - + + Go to in Disassembly اذهب إلى التفكيك - + + Go to in Memory View انتقل إلى عرض الذاكرة - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger مصصح الأخطاء - + Invalid start address عنوان البدء غير صحيح - + Invalid end address العنوان النهاية غير صحيح - + Start address can't be equal to or greater than the end address لا يمكن لعنوان البدء أن يكون مساوٍ أو أكبر من عنوان النهاية - + Invalid search value قيمة البحث غير صالحة - + Value is larger than type Value is larger than type @@ -2659,22 +2948,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet اتصال Ethernet - + Ethernet Device: جهاز Ethernet: - + Ethernet Device Type: نوع جهاز Ethernet: - + Intercept DHCP اعتراض DHCP @@ -2684,135 +2973,130 @@ You cannot undo this action. مفعّل - + Enabled InterceptDHCP مفعّل - + Subnet Mask: قناع الشبكة الفرعية: - + Gateway Address: عنوان البوابة: - - + + Auto تلقائي - + Intercept DHCP: اعتراض DHCP: - + PS2 Address: عنوان PS2: - + DNS1 Address: عنوان DNS1: - + DNS2 Address: عنوان DNS2: - + Internal DNS DNS الداخلي - + Add إضافة - + Delete حذف - + Export تصدير - + Import استيراد - + Per game للألعاب المخصصة - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 يمكن اختيار DNS الداخلي باستخدام قائمة إسقاط DNS1 أو2 أو بتعيينها إلى 192.0.2.1 - + Enabled InternalDNSTable مفعّل - + Hard Disk Drive محرك القرص صلب - + HDD File: ملف القرص الصلب: - + 40 40 - + 120 120 - + HDD Size (GiB): حجم القرص الصلب (غيغيبايت): - + Enabled HDD مفعّل - + Browse تصفّح - + Create Image إنشاء صورة - - - - - PCAP Bridged @@ -2845,7 +3129,7 @@ You cannot undo this action. - + Use Global Setting [%1] استخدام الإعدادات العامة [%1] @@ -2865,78 +3149,78 @@ You cannot undo this action. العنوان - - + + Hosts File ملفات المستضيف - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts مضيفي DNS - + Exported Successfully تم التصدير بنجاح - + Failed to open file فشل فتح الملف - + No Hosts in file لا يوجد مضيفين في الملف - + Imported Successfully تم الاستيراد بنجاح - - + + Per Game Host list قائمة مضيفين للألعاب المخصصة - + Copy global settings? نسخ الإعدادات العامة؟ - + Delete per game host list? حذف قائمة المضيفين للألعاب المخصصة؟ - + HDD Image File ملف صورة محرك القرص الصلب - + HDD (*.raw) HDD (*.raw) - + Overwrite File? استبدال الملف؟ - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3229,22 @@ Do you want to overwrite? هل تريد استبدالها؟ - + HDD Creator منشئ القرص الصلب - + HDD image created تم إنشاء صورة القرص الصلب - + Use Global استخدم العام - + Override تجاوز @@ -2968,69 +3252,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping تفريغ الرسم - + Dump GS Draws تفريغ رسوم GS - + Save RT حفظ مدة العرض - + Save Frame حفظ الإطار - + Save Texture حفظ النسيج - + Save Depth حفظ العمق - + Start Draw Number: - رقم بدء الرسم: + رقم بدء السحب: - + Draw Dump Count: تلقي تفريغ العد: - + Hardware Dump Directory: مكان اخراج تفريغ الرسومات (هاردوير): - + Software Dump Directory: مكان اخراج تفريغ الرسومات (سوفتوير): - - + + Browse... تصفح‫... - - + + Open... فتح... @@ -3043,29 +3327,53 @@ Do you want to overwrite? مصحح PCSX2 - - - + + Run تشغيل - + Step Into انتقال إلى - + + F11 + F11 + + + Step Over تجاوز - + + F10 + F10 + + + Step Out خروج - + + Shift+F11 + Shift+F11 + + + + Always On Top + دائما في مقدمة النوافذ المفتوحة + + + + Show this window on top + عرض هذه النافذة في الأعلى + + + Pause إيقاف مؤقت @@ -3078,149 +3386,174 @@ Do you want to overwrite? تفكيك - + Copy Address نسخ العنوان - + Copy Instruction Hex نسخ التعليمات (Hex) - + Copy Instruction Text نسخ نص التعليمات - + Assemble new Instruction(s) بناء تعليمات جديدة - + NOP Instruction(s) تعليمات NOP - + Run to Cursor تشغيل إلى المؤشر - + Jump to Cursor القفز إلى المؤشر - + Toggle Breakpoint - تمكين/تعطيل نقطة توقف + تبديل نقطة التوقف - + Follow Branch تتبع الفرع - + Go to Address الذهاب إلى عنوان - + Go to in Memory View الذهاب إلى طريقة عرض الذاكرة - - + + Add Function إضافة وظيفة - - + + Rename Function إعادة تسمية الوظيفة - + Remove Function حذف الوظيفة - - + + Assemble Error خطأ في البناء - + Unable to change assembly while core is running غير قادر على تغيير البناء (assembly) أثناء تشغيل النواة - + Assemble Instruction بناء تعليمات - + Go to address الذهاب إلى عنوان - + Go to address error خطأ في الذهاب إلى العنوان - + Invalid address العنوان غير صحيح - + Add Function Error خطأ في إضافة الوظيفة - + A function entry point already exists here. Consider renaming instead. يوجد بالفعل نقطة دخول إلى الوظيفة. فكّر في إعادة تسمية بدلاً من ذلك. - - + + Function will be (0x%1) instructions long. Enter function name سيكون طول الوظيفة (0x%1) تعليمات. أدخل اسم الوظيفة - + Function name اسم الوظيفة - - + + Rename Function Error خطأ في إعادة تسمية الوظيفة - + Function name cannot be nothing. اسم الدالة لا يمكن أن يكون لا شيء. - + No function / symbol is currently selected. لا توجد وظيفة / رمز محدد حاليا. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + إستعادة التعليمات + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 ليس عنوان قابل للاستخدام @@ -3228,17 +3561,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">لم يتم العثور على أية لعبة بصيغة مدعومة.</span></p><p>يُرجى إضافة مجلد يحتوي على ألعب للبدء.</p><p>سوف يتم فحص وإضافة الألعاب بالصيغ الآتية:</p></body></html> - + Add Game Directory... إضافة مجلد ألعاب... - + Scan For New Games البحث عن ألعاب جديدة @@ -3246,52 +3579,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + الخانة: %1 | %2 | EE: %3 % | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + الخانة:%1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS اللعبة: %1 FPS - + Video: %1 FPS (%2%) فيديو: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - معرف اللعبة: %1 -اسم اللعبة: %2 -الإنجازات: %5 (%6) - + اللعبة: %1 (%2) - - - %n points - - %n نقطة - نُقَط %n - %n points - %n points - %n points - %n points - - - + Rich presence inactive or unsupported. خاصية Discord Rich Presence غير نشطة أو غير مدعومة. - + Game not loaded or no RetroAchievements available. اللعبة لم يتم تحميلها أو لا توجد إنجازات RetroAchievements متوفرة. @@ -3299,192 +3624,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control التحكم بالسرعة - + Normal Speed: السرعة العادية: - + Enable Speed Limiter - تمكين محدد السرعة + تفعيل محدد السرعة - + System Settings إعدادات النظام - + Enable Instant VU1 تمكين VU1 الفوري - + Enable Cheats - تمكين الشفرات + تفعيل الشفرات - + Slow-Motion Speed: سرعة التبطيء: - + Fast-Forward Speed: - سرعة التقدم: + سرعة التقدم السريع: - + Enable Multithreaded VU1 (MTVU) تمكين تعدد مهام وحدة VU1 (MTVU) - + Enable Host Filesystem تمكين نظام ملفات المضيف - + Enable Fast CDVD - تمكين CDVD السريع + تفعيل CDVD السريع - + EE Cycle Skipping: تخطي دورات EE: - - + + Disabled معطَّل - + Mild Underclock تخفيض خفيف لتردد التشغيل - + Moderate Underclock تخفيض متوسط لتردد التشغيل - + Maximum Underclock تخفيض أقصى لتردد التشغيل - + EE Cycle Rate: معدل دورات EE: - + 50% (Underclock) 50% (تقليل التردد) - + 60% (Underclock) 60% (تقليل التردد) - + 75% (Underclock) 75% (تقليل التردد) - + 100% (Normal Speed) 100% (سرعة عادية) - + 130% (Overclock) 130% (زيادة التردد) - + 180% (Overclock) 180% (زيادة التردد) - + 300% (Overclock) 300% (زيادة التردد) - + Affinity Control: التحكم في الارتباط: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control سرعة الإطارات / التحكم في التأخير - + frames This string will appear next to the amount of frames selected, in a dropdown box. إطارات - + Maximum Frame Latency: الحد الأقصى لتأخر الإطارات: - + Optimal Frame Pacing سرعة الإطارات المثلى - + Scale To Host Refresh Rate مزامنة مع معدل تحديث شاشة المضيف @@ -3572,11 +3897,21 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. يسمح للألعاب و الـ homebrew بالوصول إلى الملفات / المجلدات مباشرة على جهاز الكمبيوتر المضيف. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" - سرعة التقدم + سرعة التقدم السريع + + + + 100% + ٪۱۰۰ @@ -3641,45 +3976,40 @@ Achievements: %5 (%6) يُحدد الحد الأقصى لعدد الأُطر التي سيتم معالجتها من قِبل وحدة الGS، قبل أن تستمر وحدة المعالجة المركزية في عملها. ستساعد القيم الأعلى في تحسين الأداء وجعله أكثر استقراراً، لكن سوف يُزيد مدة استجابة الإدخال. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - يُعدل سرعة المحاكاة ليتطابق معدل التحديث الخاص بالجهاز المُحاكى مع الجهاز المضيف، عند تفعيل خياري VSync واعادة أخذ عينات الصوت. هذا يتسبب في أكبر سلاسة في الحركة ممكنة، على حساب احتمال زيادة معدل المحاكة بمعدل لا يزيد عن 1%. هذا الخيار لن يُعطي أي مفعول في حالة اختلاف معدل أُطر الجهاز المحاكى عن الجهاز المضيف بشكل شاسع. يجب على أصحاب شاشات معدل التحديث المتغير تعطيل هذا الخيار. - - - + Use Global Setting [%1%] استخدام الإعدادات العامة [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. غير محدود - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. مُخصّص - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] مخصص [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed سرعة مخصصة - + Enter Custom Speed أدخل السرعة المخصصة @@ -3687,79 +4017,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory مجلد ذاكرة التخزين المؤقت - - - - - + + + + + Browse... تصفح‫... - - - - - + + + + + Open... فتح... - - - - - + + + + + Reset إعادة تعيين - + Used for storing shaders, game list, and achievement data. تستخدم لتخزين الشادرز، وقائمة اللعبة، وبيانات الإنجاز. - + Cheats Directory مجلد الشفرات - + Used for storing .pnach files containing game cheats. تستخدم لتخزين ملفات pnach التي تحتوي على شفرات الألعاب. - + Covers Directory مجلد الأغلفة - + Used for storing covers in the game grid/Big Picture UIs. تستخدم لتخزين الأغلفة في نظام عرض شبكة اللعبة أو واجهة استخدام الصورة الكبيرة. - + Snapshots Directory مجلد لقطات الشاشة - + Used for screenshots and saving GS dumps. يُستخدم لحفظ لقطات الشاشة. - + Save States Directory مجلد حالات الحفظ - + Used for storing save states. يستخدم لتخزين حالات الحفظ. @@ -3767,2082 +4097,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. تعذر العثور على أي أجهزة CD/DVD-ROM. الرجاء التأكد من أن لديك أذونات متصلة بالقرص و كافية للوصول إليه. - + Use Global Setting استخدام الإعدادات العامة - + Automatic binding failed, no devices are available. فشل الربط التلقائي، لا توجد أجهزة متاحة. - + Game title copied to clipboard. تم نسخ عنوان اللعبة إلى الحافظة. - + Game serial copied to clipboard. تم نسخ تسلسل اللعبة إلى الحافظة. - + Game CRC copied to clipboard. تم نسخ CRC اللعبة إلى الحافظة. - + Game type copied to clipboard. تم نسخ نوع اللعبة إلى الحافظة. - + Game region copied to clipboard. تم نسخ منطقة اللعبة إلى الحافظة. - + Game compatibility copied to clipboard. تم نسخ توافق اللعبة إلى الحافظة. - + Game path copied to clipboard. تم نسخ مسار اللعبة إلى الحافظة. - + Per-game controller configuration initialized with global settings. - تتم تهيئة تكوين وحدة التحكم لكل لعبة باستخدام الإعدادات العامة. + تتم تهيئة تكوين ذراع التحكم لكل لعبة باستخدام الإعدادات العامة. - + Controller settings reset to default. - إعادة تعيين إعدادات وحدة التحكم إلى الافتراضي. + إعادة تعيين إعدادات ذراع التحكم إلى الافتراضي. - + No input profiles available. لا توجد ملفات تعريف للمدخلات المتاحة. - + Create New... إنشاء جديدة... - + Enter the name of the input profile you wish to create. أدخل اسم الملف الشخصي للمدخل الذي ترغب في إنشائه. - + Are you sure you want to restore the default settings? Any preferences will be lost. هل أنت متأكد من أنك تريد استعادة الإعدادات الافتراضية؟ سيتم فقدان أي تفضيلات. - + Settings reset to defaults. إعادة تعيين الإعدادات إلى الإعدادات الافتراضية. - - Quick Save Slot - فتحة الحفظ السريع - - - + No save present in this slot. لا يوجد حفظ في هذه الخانة. - + No save states found. لم يتم العثور على حالات حفظ. - + Failed to delete save state. فشل حذف حالة الحفظ. - + Failed to copy text to clipboard. فشل نسخ النص إلى الحافظة. - + This game has no achievements. هذه اللعبة ليس لها إنجازات. - + This game has no leaderboards. هذه اللعبة ليس لديها المتصدرين. - + Reset System إعادة تعيين النظام - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? لن يتم تمكين الوضع الصعب حتى يتم إعادة تعيين النظام. هل تريد إعادة تعيين النظام الآن؟ - + Launch a game from images scanned from your game directories. ابدأ لعبة من الصور الممسوحة ضوئيا من أدلة اللعبة الخاصة بك. - + Launch a game by selecting a file/disc image. بدء لعبة عن طريق اختيار صورة ملف/قرص مدمج. - + Start the console without any disc inserted. بدء تشغيل وحدة التحكم دون إدخال أي قرص. - + Start a game from a disc in your PC's DVD drive. ابدأ لعبة من قرص في محرك الأقراص DVD الخاص بك على جهاز الكمبيوتر'. - + Change settings for the emulator. تغيير إعدادات المحاكي. - + Exits the program. الخروج من البرنامج. - + No Binding لا يوجد ربط - + Setting %s binding %s. إعداد %s ربط %s. - + Push a controller button or axis now. اضغط على زر أو محور وحدة تحكم الآن. - + Timing out in %.0f seconds... مهلة في %.0f ثانية... - + Unknown غير معروف - + OK حسناً - + Select Device اختيار الجهاز - + Details تفاصيل - + Options خيارات - + Copies the current global settings to this game. نسخ الإعدادات العامة الحالية إلى هذه اللعبة. - + Clears all settings set for this game. مسح جميع الإعدادات التي تم تعيينها لهذه اللعبة. - + Behaviour السُلوك - + Prevents the screen saver from activating and the host from sleeping while emulation is running. يمنع موفر الشاشة من التفعيل والمضيف من السكون أثناء تشغيل المحاكاة. - + Shows the game you are currently playing as part of your profile on Discord. يعرض اللعبة التي تلعبها حاليا كجزء من ملفك الشخصي على ديسكورد. - + Pauses the emulator when a game is started. إيقاف المحاكي عند بَدْء اللعبة. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. يوقف المحاكي عند تصغير النافذة أو التبديل إلى تطبيق آخر، ويتوقف عند عودتك إلى العمل. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. يوقف المحاكي عند فتح القائمة السريعة، ويتوقف عند إغلاقه. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. يحدد ما إذا كان سيتم عرض توجيه لتأكيد إغلاق المحاكي/اللعبة عند الضغط على المفتاح الساخن. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. يحفظ تلقائياً حالة المحاكي عندما تنخفض الطاقة أو تخرج. يمكنك بعد ذلك الاستئناف مباشرة من حيث توقفت في المرة القادمة. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - تمكين تحميل تراكبات ini من إعدادات الألعاب، أو إعدادات مخصصة لكل لعبة. - - - + Uses a light coloured theme instead of the default dark theme. يستخدم سمة خفيفة ملونة بدلاً من السمة المظلمة الافتراضية. - + Game Display عرض اللعبة - - Automatically switches to fullscreen mode when the program is started. - التبديل تلقائياً إلى وضع ملء الشاشة عند بدء اللعبة. - - - + Switches between full screen and windowed when the window is double-clicked. التبديل بين ملء الشاشة و النافذة عند النقر على النافذة مرتين. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. إخفاء مؤشر الماوس / المؤشر عندما يكون المحاكي في وضع ملء الشاشة. - + Determines how large the on-screen messages and monitor are. يحدد حجم الرسائل على الشاشة والمراقبة. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. يعرض إشعارات على الشاشة عندما تحدث أحداث مثل إنشاء أو تحميل حالات الحفظ، أخذ لقطات الشاشة، إلخ. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. يظهر سرعة المحاكاة الحالية للنظام في الزاوية العلوية اليمنى من العرض كنسبة مئوية. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. يعرض عدد إطارات الفيديو (أو المزامنة v-syncs) المعروضة لكل ثانية من قبل النظام في الزاوية العلوية اليمنى من العرض. - + Shows the CPU usage based on threads in the top-right corner of the display. يعرض استخدام CPU على أساس خيوط المعالجة في الزاوية العلوية اليمنى من العرض. - + Shows the host's GPU usage in the top-right corner of the display. يعرض المضيف'المستخدم GPU في الزاوية العلوية اليمنى من العرض. - - Shows the resolution the game is rendering at in the top-right corner of the display. - يعرض الدقة التي تقدمها اللعبة في الزاوية العلوية اليمنى من العرض. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. يعرض إحصائيات حول GS (البدائية، ارسم المكالمات) في الزاوية اليمنى العليا من العرض. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. إظهار المؤشرات عند سرعة الإرسال والتوقف المؤقت وغير ذلك من الحالات غير العادية نشطة. - + Shows the current configuration in the bottom-right corner of the display. يعرض التكوين الحالي في الزاوية اليمنى السفلى من العرض. - + Shows the current controller state of the system in the bottom-left corner of the display. - يعرض حالة وحدة التحكم الحالية للنظام في الزاوية اليسرى السفلى من العرض. + يعرض حالة ذراع التحكم الحالية للنظام في الزاوية اليسرى السفلى من العرض. - + Shows a visual history of frame times in the upper-left corner of the display. يعرض سجلا مرئيا لأوقات الإطار في الزاوية العلوية اليسرى من العرض. - + Displays warnings when settings are enabled which may break games. يعرض تحذيرات عند تمكين الإعدادات التي يمكن أن تكسر الألعاب. - + Resets configuration to defaults (excluding controller settings). - إعادة تعيين الإعدادات إلى الإعدادات الافتراضية (باستثناء إعدادات وحدة التحكم). + إعادة تعيين الإعدادات إلى الإعدادات الافتراضية (باستثناء إعدادات ذراع التحكم). - + Changes the BIOS image used to start future sessions. يغير صورة BIOS المستخدمة لبدء الجلسات المقبلة. - + Automatic تلقائي - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + افتراضي + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + عند التمكين، سيتم تطبيق إعدادات مخصصة لكل لعبة. قم بتعطيل لاستخدام إعدادات العامة دائما. + + + + Automatically switches to fullscreen mode when a game is started. + سيتم تبديل تلقائيًا إلى وضع ملء الشاشة عند بدء تشغيل اللعبة. + + + On-Screen Display - On-Screen Display + عارض المعلومات على الشاشه + + + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + يعرض مستوى دقة الشاشة للعبة في الزاوية العلوية اليمنى من العرض. - + BIOS Configuration - BIOS Configuration + إعدادات BIOS - + BIOS Selection اختيار BIOS - + Options and Patches - Options and Patches + الخيارات والتصحيحات - + Skips the intro screen, and bypasses region checks. تخطي شاشة المقدمة، وتجاوز التحقق من المنطقة. - + Speed Control التحكم بالسرعة - + Normal Speed السرعة العادية - + Sets the speed when running without fast forwarding. يضبط السرعة عند التشغيل دون التقديم السريع. - + Fast Forward Speed سرعة التقديم السريع - + Sets the speed when using the fast forward hotkey. تعيين السرعة عند استخدام المفتاح الساخن السريع إلى الأمام. - + Slow Motion Speed سرعة الحركة البطيئة - + Sets the speed when using the slow motion hotkey. تعيين السرعة عند استخدام مفتاح الحركة الساخن البطيء. - + Enable Speed Limiter تمكين محدد السرعة - + When disabled, the game will run as fast as possible. عند التعطيل، سيتم تشغيل اللعبة بأسرع ما يمكن. - + System Settings إعدادات النظام - + EE Cycle Rate - EE Cycle Rate + معدل دورات EE - + Underclocks or overclocks the emulated Emotion Engine CPU. - Underclocks or overclocks the emulated Emotion Engine CPU. + إما كسر وإما خفض سرعة معالج EE الذي يحاكى. - + EE Cycle Skipping - EE Cycle Skipping - - - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. + تخطي دورات EE - + Affinity Control Mode وضع التحكم بالارتباط - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. تثبيت محاكاة المواضيع إلى نواة وحدة المعالجة المركزية لتحسين الأداء / الفرق الزمني. - + Enable MTVU (Multi-Threaded VU1) - Enable MTVU (Multi-Threaded VU1) - - - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. + تشغيل MTVU (VU1 المتعدد المسارات) - + Enable Instant VU1 - Enable Instant VU1 + تشغيل VU1 الفوري - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats تمكين الشفرات - + Enables loading cheats from pnach files. - Enables loading cheats from pnach files. + تمكين تحميل كود الغش من ملفات pnach. - + Enable Host Filesystem - تمكين نظام ملفات المضيف + تفعيل نظام ملفات المضيف - + Enables access to files from the host: namespace in the virtual machine. تمكين الوصول إلى الملفات من المضيف: مساحة الاسم في الجهاز الافتراضي. - + Enable Fast CDVD - تمكين CDVD السريع + تفعيل CDVD السريع - + Fast disc access, less loading times. Not recommended. قراءة القرص بسرعة أكبر، يؤدي إلى أوقات تحميل أقل. غير مستحسن. - + Frame Pacing/Latency Control سرعة الإطار/التحكم في زمن الوصول - + Maximum Frame Latency الحد الأقصى لتأخر الإطارات - + Sets the number of frames which can be queued. يعين عدد الأطر التي يمكن أن تكون في قائمة الانتظار. - + Optimal Frame Pacing سرعة الإطارات المثلى - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - ضبط إلى معدل تحديث المضيف - - - + Speeds up emulation so that the guest refresh rate matches the host. تسريع المحاكاة بحيث يتطابق معدل تحديث الضيف مع المضيف. - + Renderer العارض - + Selects the API used to render the emulated GS. يختار API المستخدم لتقديم نظام GS المحاكاة. - + Sync To Host Refresh (VSync) المزامنة إلى المضيف التحديث (VSync) - + Synchronizes frame presentation with host refresh. مزامنة عرض الإطارات مع معدل تحديث شاشة الجهاز. - + Display الشاشة - + Aspect Ratio تناسب الأبعاد - + Selects the aspect ratio to display the game content at. يحدد نسبة العرض لعرض محتوى اللعبة. - + FMV Aspect Ratio تناسب أبعاد الأفلام (FMV) - + Selects the aspect ratio for display when a FMV is detected as playing. يحدد نسبة العرض للعرض عندما يتم الكشف عن عنصر FMV كمشغل. - + Deinterlacing تصحيح تشابك الصورة - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. يحدد الخوارزمية المستخدمة لتحويل PS2's المخرجات المتداخلة إلى متقدمة للعرض. - + Screenshot Size حجم لقطة الشاشة - + Determines the resolution at which screenshots will be saved. يحدد الدقة التي سيتم حفظ لقطات الشاشة. - + Screenshot Format صيغة لقطة الشاشة - + Selects the format which will be used to save screenshots. يحدد التنسيق الذي سيتم استخدامه لحفظ لقطات الشاشة. - + Screenshot Quality جودة لقطة الشاشة - + Selects the quality at which screenshots will be compressed. يحدد الجودة التي سيتم فيها ضغط لقطات الشاشة. - + Vertical Stretch تمدد عمودي - + Increases or decreases the virtual picture size vertically. يزيد أو يقلل حجم الصورة الافتراضية عمودياً. - + Crop اقتصاص - + Crops the image, while respecting aspect ratio. تقطع الصورة، مع احترام نسبة الجوانب. - + + %dpx + %dpx + + + Enable Widescreen Patches - تمكين شفرات الشاشة العريضة + تفعيل شفرات الشاشة العريضة - + Enables loading widescreen patches from pnach files. تمكين تحميل لتصحيحات الشاشة العريضة من ملفات pnach. - + Enable No-Interlacing Patches - تمكين شفرات إلغاء التداخل + تفعيل شفرات إلغاء التداخل - + Enables loading no-interlacing patches from pnach files. تمكين تحميل التصحيحات غير المتشابكة من ملفات pnach. - + Bilinear Upscaling - Bilinear Upscaling + تكبير مع تنعيم - + Smooths out the image when upscaling the console to the screen. يُنعم الصورة عند تكبيرها عن الحجم الأصلي. - + Integer Upscaling ترقية عدد صحيح - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. قد يقلل منطقة العرض للتأكد من أن النسبة بين البكسل على شاشة الجهاز إلى البكسل في جهاز الPS2 هي عدد صحيح. قد يؤدي إلى صورة أكثر وضوحا في بعض الألعاب ثنائية الأبعاد. - + Screen Offsets إزاحة الشاشة - + Enables PCRTC Offsets which position the screen as the game requests. تمكين إزاحة PCRTC التي تضع الشاشة كطلبات اللعبة. - + Show Overscan عرض Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. يمكن إظهار منطقة المسح الزائد (overscan) مع الألعاب التي ترسم أكثر من المنطقة الآمنة من الشاشة. - + Anti-Blur مضاد الضبابية - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. تمكين الاختراقات المضادة للضبابية الداخلية. أقل دقة لتقديم PS2 ولكن ستجعل الكثير من الألعاب تبدو أقل وضوحا. - + Rendering معالجة الرسم - + Internal Resolution الدقة الداخلية - + Multiplies the render resolution by the specified factor (upscaling). يضرب دقة العرض بالعامل المحدد (ترقية). - + Mipmapping الإكساءات المصغرة Mipmapping - + Determines how mipmaps are used when rendering textures. يحدد كيفية استخدام الخرائط عند تقديم النصوص. - + Bilinear Filtering تصفية ثنائية الأسلوب - + Selects where bilinear filtering is utilized when rendering textures. يحدد المكان الذي يستخدم فيه التصفية البيانية عند تقديم النصوص. - + Trilinear Filtering فلترة ثلاثية الخط Trilinear - + Selects where trilinear filtering is utilized when rendering textures. يحدد المكان الذي يستخدم فيه التصفية الثلاثية عند تقديم النصوص. - + Anisotropic Filtering تصفية متباين الخواص - - Selects where anistropic filtering is utilized when rendering textures. - يحدد المكان الذي يتم فيه استخدام التصفية عند تقديم النصوص. - - - + Dithering التشويش (Dithering) - + Selects the type of dithering applies when the game requests it. يحدد نوع الربط الذي ينطبق عندما تطلب اللعبة ذلك. - + Blending Accuracy دقة المزج - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. يحدد مستوى الدقة عند محاكاة أوضاع المزج غير مدعومة بواسطة API الرسومات المضيفة. - + Texture Preloading التحميل المسبق للTextures - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. تحميل الTextures كاملة إلى الGPU عند الاستخدام، بدلاً من المناطق المستخدمة فقط. يمكن أن يؤدي إلى تحسين الأداء في بعض الألعاب. - + Software Rendering Threads عدد خيوط معالجة رسم وضع Software - + Number of threads to use in addition to the main GS thread for rasterization. عدد المواضيع المراد استخدامها بالإضافة إلى الموضوع الرئيسي GS للتعويض. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes إصلاح الأجهزة - + Manual Hardware Fixes إصلاحات يدوية للأجهزة - + Disables automatic hardware fixes, allowing you to set fixes manually. تعطيل إصلاحات الأجهزة التلقائية، مما يسمح لك بتعيين الإصلاحات يدوياً. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start تخطي بداية السحب - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End تخطي نهاية السحب - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. تحويل الإطارات المؤقتة من نوع 4 بت و 8 بت على الCPU بدلا من الGPU. - - Disable Depth Support - تعطيل دعم العمق - - - - Disable the support of depth buffer in the texture cache. - قم بتعطيل دعم المخزن المؤقت للعمق في ذاكرة التخزين المؤقت للنسيج. - - - + Disable Safe Features تعطيل الميزات الآمنة - + This option disables multiple safe features. هذا الخيار يعطل ميزات آمنة متعددة. - - Disable Render Features - تعطيل ميزات العرض - - - + This option disables game-specific render fixes. هذا الخيار يعطل الإصلاحات الخاصة باللعبة. - - Preload Frame - إطار التحميل المسبق - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. تحميل بيانات GS عند تقديم إطار جديد لتقليد بعض التأثيرات بدقة. - + Disable Partial Invalidation تعطيل التحقق الجزئي - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. يُزيل ذاكرة التخزين المؤقت للرسومات textures بأكملها عند العثور على أية خطأ، بدلا من إزالة الخطأ بمفرده. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. يسمح لذاكرة التخزين المؤقت للنُسج (textures) بإعادة استخدام الجزء الداخلي من الإطار المؤقت السابق كنسيج (texture) مُدخل. - + Read Targets When Closing قراءة الأهداف عند الغلق - + Flushes all targets in the texture cache back to local memory when shutting down. دفع جميع الأهداف في ذاكرة التخزين المؤقت للنسيج إلى الذاكرة المحلية عند الإغلاق. - + Estimate Texture Region تقدير منطقة النُسج (Textures) - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). يحاول تقليل حجم النُسج عندما لا تقوم الألعاب بتعيينه بنفسها (مثل ألعاب محرك Snowblind). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - إزاحة نصف بكسل + إصلاحات تكبير الدقة - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. تعديل موازنة النسيج المستهدف. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. يُصلح المشكلات التي تحدث مع تكبير دقة الصورة (مشكلة الخطوط العمودية) في بعض الألعاب. - + Merge Sprite - Merge Sprite + دمج صورة نقطية - + Replaces multiple post-processing sprites with a larger single sprite. يستبدل كائنات متعددة ما بعد المعالجة بكائن واحد أكبر. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. يقلل من دقة GS لتجنب الفجوات بين البكسلات عند الترقية. يصلح النص على لعبة Wild Arms. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. يمكن إصلاح بعض التأثيرات المكسورة التي تعتمد على دقة البكسل الكاملة. - + Texture Replacement استبدال النُسج (Textures) - + Load Textures تحميل النُسج (Textures) - + Loads replacement textures where available and user-provided. يحمّل النسيج البديل حيثما كان متاحا وموفرا للمستخدم. - + Asynchronous Texture Loading تحميل النُسج الغير المتزامن - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. تحميل المنسوجات البديلة على خيوط العمال، وتقليل المواد الدقيقة عند تمكين الاستبدال. - + Precache Replacements استبدال Precache - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. تحميل جميع المنسوجات البديلة إلى الذاكرة. غير ضروري مع تحميل غير متزامن. - + Replacements Directory مجلد استبدال النسيج - + Folders المجلدات - + Texture Dumping إغراق النسيج - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps - Dump Mipmaps + حفظ Mipmap - + Includes mipmaps when dumping textures. - Includes mipmaps when dumping textures. + يشمل Mipmaps مع تحفيض الصورة نقطية. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing فلاتر ما بعد المعالجة - + FXAA FXAA - + Enables FXAA post-processing shader. تمكين FXAA ظل ما بعد المعالجة. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters عوامل التصفية - + Shade Boost تعزيز الظل - + Enables brightness/contrast/saturation adjustment. تمكين تعديل السطوع/التباين/التشبع. - + Shade Boost Brightness زيادة سطوع الظل - + Adjusts brightness. 50 is normal. سطوع التعديلات. 50 أمر طبيعي. - + Shade Boost Contrast تباين تعزيز الظل - + Adjusts contrast. 50 is normal. التعديلات متناقضة. 50 أمر طبيعي. - + Shade Boost Saturation تعزيز التظليل - + Adjusts saturation. 50 is normal. تشبع التعديلات. 50 أمر طبيعي. - + TV Shaders ظلال التلفزيون - - Selects post-processing TV shader. - يحدد ظل التلفزيون بعد المعالجة. - - - + Advanced إعدادات متقدمة - + Skip Presenting Duplicate Frames تخطي عرض الإطارات المكررة - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - تخطي أطر عرض التي تغيرها don't في ألعاب 25/30fps. يمكن أن تحسن السرعة ولكن تزيد من تأخير الإدخال/تجعل الإطار بوتيرة أسوأ. - - - + Disable Threaded Presentation تعطيل Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode وضع تحميل الHardware - + Changes synchronization behavior for GS downloads. تغيير سلوك المزامنة لتنزيلات GS. - + Allow Exclusive Fullscreen السماح بملء الشاشة الحصري - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch تعطيل إحضار الإطار المؤقت "frame buffer" - + Prevents the usage of framebuffer fetch when supported by host GPU. يمنع استخدام جلب المخزن المؤقت عندما يكون مدعوماً من GPU. - + Disable Dual-Source Blending تعطيل مزج المصدر المزدوج - + Prevents the usage of dual-source blending when supported by host GPU. يمنع استخدام المزج ذو المصدر المزدوج عندما يدعمه مضيف GPU. - + Disable Shader Cache تعطيل Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. يمنع تحميل الظل وخطوط الأنابيب وحفظها على القرص. - + Disable Vertex Shader Expand تعطيل توسيع Vertex Shader - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings إعدادات وقت التشغيل - + Applies a global volume modifier to all sound produced by the game. تطبيق تعديل مستوى الصوت العالمي على جميع الأصوات التي تنتجها اللعبة. - + Mixing Settings إعدادات المزج - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings إعدادات الإخراج - + Determines which API is used to play back audio samples on the host. يحدد أي API يستخدم لتشغيل عينات صوتية على المضيف. - + Sets the average output latency when using the cubeb backend. تعيين متوسط زمن تأخير الإخراج عند استخدام خلفية المكعب. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings إعدادات تمطيط الوقت - + Affects how the timestretcher operates when not running at 100% speed. يؤثر على كيفية تشغيل أفضل توقيت عندما لا تعمل بسرعة 100٪. - + + %d ms + %d ملي ثانية + + + Settings and Operations الإعدادات والعمليات - + Creates a new memory card file or folder. إنشاء ملف أو مجلد بطاقة ذاكرة جديد. - + Simulates a larger memory card by filtering saves only to the current game. محاكاة بطاقة ذاكرة أكبر عن طريق التصفية يحفظ فقط على اللعبة الحالية. - + Automatically ejects Memory Cards when they differ after loading a state. يطرد تلقائياً بطاقات الذاكرة عندما تختلف بعد تحميل الحالة. - + If not set, this card will be considered unplugged. إذا لم يتم تعيين، هذه البطاقة ستعتبر غير موصولة. - + The selected memory card image will be used for this slot. سيتم استخدام صورة بطاقة الذاكرة المحددة لهذه الفتحة. - + Resets the card name for this slot. إعادة تعيين اسم البطاقة لهذه الفتحة. - + Create Memory Card إنشاء بطاقة ذاكرة - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. أدخل اسم بطاقة الذاكرة التي ترغب في إنشائها، واختيار الحجم. نوصي إما باستخدام بطاقات ذاكرة 8 ميغابايت، أو مجلد بطاقات ذاكرة أفضل توافق. - + Card Name: اسم البطاقة: - + Configuration التكوين - + Uses game-specific settings for controllers for this game. يستخدم إعدادات خاصة بلعبة للتحكم لهذه اللعبة. - + Copies the global controller configuration to this game. - ينسخ التكوين العام لوحدة التحكم إلى هذه اللعبة. + ينسخ التكوين العام ذراع التحكم إلى هذه اللعبة. - + Resets all configuration to defaults (including bindings). إعادة تعيين كافة الإعدادات إلى الإعدادات الافتراضية (بما في ذلك الارتباطات). - + Replaces these settings with a previously saved input profile. يستبدل هذه الإعدادات بملف تعريف للمدخل محفوظ مسبقاً. - + Stores the current settings to an input profile. يخزن الإعدادات الحالية إلى ملف تعريف الإدخال. - + Input Sources مصادر الإدخال - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. يوفر الإهتزاز ودعم تحكم LED على البلوتوث. - + Allow SDL to use raw access to input devices. السماح لـ SDL باستخدام الوصول الخام إلى أجهزة الإدخال. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. يوفر مصدر Xinput الدعم لأجهزة تحكم XBox 360/XBox One/XBox. - + Multitap ضغطة متعددة - + Enables an additional three controller slots. Not supported in all games. - تمكين ثلاثة فتحات إضافية لوحدة التحكم غير مدعومة في جميع الألعاب. + تمكين ثلاثة فتحات إضافية ذراع التحكم غير مدعومة في جميع الألعاب. - + Attempts to map the selected port to a chosen controller. محاولات لرسم خريطة المنفذ المحدد إلى وحدة تحكم مختارة. - + No Buttons Selected لم يتم تحديد أزرار - + Determines how much pressure is simulated when macro is active. يحدد مقدار الضغط الذي يتم محاكاته عندما يكون الماكرو نشطاً. - + Determines the pressure required to activate the macro. يحدد الضغط المطلوب لتفعيل الكلي. - + Toggle every %d frames تبديل كل إطارات %d - + Clears all bindings for this USB controller. مسح جميع الارتباطات لوحدة تحكم USB هذه. - + Data Save Locations موقع حفظ البيانات - + Show Advanced Settings إظهار الإعدادات المتقدمة - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. قد يتسبب تغيير هذه الخيارات في مشاكل في الألعاب. قم بالتعديل على مسؤوليتك الخاصة، لن يوفر فريق PCSX2 الدعم أثناء استخدام هذه الإعدادات. - + Logging - Logging + تسجيل الدخول - + System Console وحدة تحكم النظام - + Writes log messages to the system console (console window/standard output). كتابة رسائل السجل إلى وحدة تحكم النظام (نافذة وحدة التحكم / الإخراج القياسي). - + File Logging تسجيل الملف - + Writes log messages to emulog.txt. كتابة رسائل تسجيل الرسائل إلى emulog.txt. - + Verbose Logging التسجيل المطول - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps سِجِل الطوابع الزمنية - + Writes timestamps alongside log messages. يكتب الطوابع الزمنية إلى جانب رسائل السجل. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. يكتب رسائل تصحيح الأخطاء من اللعبة's EE code إلى وحدة التحكم. - + IOP Console وحدة التحكم IOP - + Writes debug messages from the game's IOP code to the console. يكتب رسائل التصحيح من اللعبة'رمز IOP إلى وحدة التحكم. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. سجلات القرص مقروء من الألعاب. - + Emotion Engine محرك الحركة - + Rounding Mode وضع التقريب - + Determines how the results of floating-point operations are rounded. Some games need specific settings. يحدد كيفية تدوير نتائج عمليات النقاط العائمة. بعض الألعاب تحتاج إلى إعدادات محددة. - + Clamping Mode وضع حد الأرقام - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. يحدد كيفية التعامل مع أرقام النقاط العائمة خارج النطاق. بعض الألعاب تحتاج إلى إعدادات محددة. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. يترجم كود الآلة لبرامج MIPS-IV 64-bit عند وقت التنفيذ إلى كود الآلة الذي يعمل على معالج الجهاز. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. تمكين محاكاة ذاكرة التخزين المؤقت EE's. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. تسريع كبير لبعض الألعاب، يكاد لا يكون له آثار جانبية على التوافق. - + Enable Wait Loop Detection تمكين الكشف عن حلقة الانتظار - + Moderate speedup for some games, with no known side effects. تسريع معتدل لبعض الألعاب، بدون آثار جانبية معروفة. - + Enable Fast Memory Access تمكين الوصول السريع للذاكرة - + Uses backpatching to avoid register flushing on every memory access. يستخدم الترقيع المرجعي (BackPatching) لتجنب تنظيف ذاكرة المعالج عند كل عملية وصول للذاكرة. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. إعادة تجميع وحدة Vu الجديدة مع تحسين التوافق. موصى به. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. تسريع جيد ونسبة توافق عالية، قد يسبب أخطاء في الرسوم. - + I/O Processor معالج I/O - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics الرسومات - + Use Debug Device استخدام جهاز التصحيح - - Enables API-level validation of graphics commands - تمكين التحقق من صحة أوامر الرسومات على مستوى واجهة برمجة التطبيقات (API) - - - + Settings - إعدادات + الإعدادات - + No cheats are available for this game. لا تتوفر الغش لهذه اللعبة. - + Cheat Codes رموز الغش - + No patches are available for this game. لا توجد أي تصحيحات متاحة لهذه اللعبة. - + Game Patches تصحيحات اللعبة - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. تنشيط الغش يمكن أن يتسبب في سلوك لا يمكن التنبؤ به، أو تحطم، أو قفل ناعم، أو كسر الألعاب المحفوظة. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. تنشيط تعديلات اللعبة يمكن أن يسبب سلوكا لا يمكن التنبؤ به، أو تحطمه، أو قفل ناعم، أو كسر الألعاب المحفوظة. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. استخدام التصحيحات على مسؤوليتك الخاصة، فريق PCSX2 لن يقدم أي دعم للمستخدمين الذين قاموا بتمكين تصفيحات اللعبة. - + Game Fixes إصلاحات اللعبة - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. لا ينبغي تعديل إصلاحات اللعبة إلا إذا كنت على علم بما يفعله كل خيار وما يترتب على ذلك من آثار. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. لألعاب Gundam. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack تخطي اختراق MPEG - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - التعامل مع DMAC يكتب عندما يكون مشغولاً. + + For SOCOM 2 HUD and Spy Hunter loading hang. + لمعلق تحميل SOCOM 2 HUD و Spy Hunter. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - فرض نقل GIF PATH3 عبر FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - محاكاة VIFO للقراءة المقبلة. إصلاح ألعاب التحميل البطيء. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - لمعلق تحميل SOCOM 2 HUD و Spy Hunter. + + Quadraphonic + صوت رباعي - - VU Add Hack - VU Add Hack + + Load State + تحميل الحالة - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - الألعاب التي تحتاج إلى هذا الاختراق لتشغيل: Str Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack تجنب إعادة التجميع المستمرة في بعض الألعاب + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - لتجنب مشكلات المزامنة عند القراءة أو كتابة سجلات VU. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - تحميل الحالة + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - + Save State حفظ الحالة - + Load Resume State تحميل حالة الاستئناف - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5851,2221 +6201,2122 @@ Do you want to load this save and continue? هل تريد تحميل هذا الحفظ والمتابعة؟ - + Region: المنطقة: - + Compatibility: التوافق: - + No Game Selected لم يتم إختيار لعبة - + Search Directories مجلد البحث - + Adds a new directory to the game search list. إضافة دليل جديد إلى قائمة البحث في اللعبة. - + Scanning Subdirectories البحث في المجلدات الفرعية - + Not Scanning Subdirectories عدم فحص المجلدات الفرعية - + List Settings إعدادات القوائم - + Sets which view the game list will open to. تعيين أي عرض لقائمة اللعبة سيتم فتحها. - + Determines which field the game list will be sorted by. يحدد الحقل الذي سيتم فرز قائمة اللعبة به. - + Reverses the game list sort order from the default (usually ascending to descending). يعكس ترتيب قائمة اللعبة من الافتراضي (عادة صعودا إلى نزول). - + Cover Settings إعدادات الغلاف - + Downloads covers from a user-specified URL template. أغلفة التنزيلات من قالب URL المحدد من المستخدم. - + Operations العمليات - + + Selects where anisotropic filtering is utilized when rendering textures. + يحدد مكان استخدام الترشيح متباين الخواص عند عرض الأنسجة. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + استخدم طريقة بديلة لحساب FPS الداخلية لتجنب قراءات خاطئة في بعض الألعاب. - + Identifies any new files added to the game directories. تحديد أي ملفات جديدة تضاف إلى أدلّة اللعبة. - + Forces a full rescan of all games previously identified. يفرض إعادة فحص كاملة لجميع الألعاب التي تم تحديدها مسبقا. - + Download Covers تحميل الأغلفة - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - يمكن لـ PCSX2 تنزيل الأغلفة تلقائيا للألعاب التي لا تحتوي حاليا على مجموعة غلاف. نحن لا نستضيف أي صور غلاف، يجب على المستخدم أن يوفر مصدره الخاص للصور. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - في النموذج أدناه، حدد عناوين URL لتنزيل الأغلفة من خلال عنوان URL قالب واحد لكل سطر. المتغيرات التالية متوفرة: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: عنوان اللعبة. -${filetitle}: عنصر الاسم في اللعبة's اسم الملف. -${serial}: تسلسل اللعبة. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - مثال: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - استخدم الأرقام التسلسلية في اسم الملف - - - + About PCSX2 حول PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 هو محاكي PlayStation 2 مجاني ومفتوح المصدر. هدفه محاكاة جهاز PlayStation 2 باستخدام مزيج من مترجمات أو معيدي بناء برامج MIPS وآلة افتراضية لادارة حالات معدات PlayStation 2 الافتراضية، مما يتيح لك لعب ألعاب PlayStation 2 على حاسوبك الخاص، بالاضافة إلى العديد من المميزات الاضافية. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 وPS2 علامات مسجلة لشركة Sony Interactive Entertainment. هذا البرنامج ليس له علاقة بشركة Sony Interactive Entertainment بأي شكل. - - XXX points - نقاط XXX - - - - Unlocked Achievements - الإنجازات المفتوحة - - - - Locked Achievements - الإنجازات المقفلة - - - - Active Challenge Achievements - منجزات التحدي النشطة - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - يتم تعطيل تقديم العلامات بسبب وضع المتشدد. لوحة المتصدرين مقروءة فقط. - - - - Rank - Rank - - - - Name - إسم - - - - Time - الوقت - - - - Score - نتيجة - - - - Downloading leaderboard data, please wait... - تحميل بيانات لوحة المتصدرين، يرجى الانتظار... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. عند تمكين وتسجيل الدخول، سيقوم PCSX2 بفحص الإنجازات عند بدء التشغيل. - - When enabled, rich presence information will be collected and sent to the server where supported. - عند التمكين، سيتم جمع معلومات خاصية Discord Rich Presence وإرسالها إلى الخادم الخاص بها. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. وضع "التحدي" للإنجازات يشمل تتبع لائحة المتصدرين. يُعطل مميزات حالات الحفظ والغش والحركة البطيئة. - - Enables tracking and submission of leaderboards in supported games. - تمكين تتبع وتقديم مجالس المتصدرين في الألعاب المدعومة. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. عرض رسائل منبثقة حول أحداث مثل فتح الإنجازات والتقدم على لائحة المتصدرين. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. تشغيل مؤثرات صوتية عند أحداث مثل فتح الإنجازات والتقدم على لائحة المتصدرين. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. عرض أيقونات في الزاوية اليمنى السفلى من الشاشة عندما يكون هناك تحدي أو إنجاز نشط. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. عند التمكين، سيتضمن PCSX2 قائمة بالإنجازات من مجموعات غير رسمية. لا يتم تتبع هذه الإنجازات بواسطة Retroieves. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. عند التمكين، سيفترض PCSX2 أن جميع الإنجازات مقفلة ولن يرسل أي إشعارات فتح إلى الخادم. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account - Account + حساب - + Logs out of RetroAchievements. تسجيل الخروج من الإنجازات التراجعية. - + Logs in to RetroAchievements. تسجيل الدخول إلى RetroAchievements. - + Current Game - Current Game - - - - Achievements Login - تسجيل الدخول للإنجازات - - - - Please enter your user name and password for retroachievements.org. - يرجى إدخال اسم المستخدم وكلمة المرور الخاصة بك من أجل retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - لن يتم حفظ كلمة المرور الخاصة بك في PCSX2، سيتم إنشاء رمز الوصول واستخدامه بدلا من ذلك. - - - - User Name: - اسم المستخدم: - - - - Password: - كلمة المرور: + اللعبة الحالية - + {} is not a valid disc image. {} ليست صورة قرص غير صالحة. - + Automatic mapping completed for {}. تم تعيين تلقائي لـ {}. - + Automatic mapping failed for {}. فشل تعيين تلقائي لـ {}. - + Game settings initialized with global settings for '{}'. تم تهيئة إعدادات اللعبة مع الإعدادات العامة ل '{}'. - + Game settings have been cleared for '{}'. تم مسح إعدادات اللعبة ل '{}'. - + Console Port {} - Console Port {} + منفذ وحدة التحكم {} - + {} (Current) {} (الحالية) - + {} (Folder) {} (مجلد) - + Memory card name '{}' is not valid. اسم بطاقة الذاكرة '{}' غير صالح. - + Memory Card '{}' created. تم إنشاء بطاقة الذاكرة '{}'. - + Failed to create memory card '{}'. فشل إنشاء بطاقة الذاكرة '{}'. - + A memory card with the name '{}' already exists. توجد بالفعل بطاقة ذاكرة تحمل الاسم '{}'. - + Failed to load '{}'. فشل في تحميل '{}'. - + Input profile '{}' loaded. ملف الإدخال '{}' تم تحميله. - + Input profile '{}' saved. تم حفظ ملف الإدخال '{}'. - + Failed to save input profile '{}'. فشل حفظ ملف تعريف الإدخال '{}'. - + Port {} Controller Type نوع التحكم في المنفذ {} - + Select Macro {} Binds حدد ماكرو {} ربط - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. الماكرو سيقوم بتبديل كل {} إطار. - + Port {} Device منفذ {} الجهاز - + Port {} Subtype المنفذ {} النوع الفرعي - + {} unlabelled patch codes will automatically activate. {} سيتم تفعيل رموز التصحيح غير المسماة تلقائيًا. - + {} unlabelled patch codes found but not enabled. {} تم العثور على رموز التصحيح غير المسماة ولكن لم يتم تمكينها. - + This Session: {} هذه الجلسة: {} - + All Time: {} كل الوقت: {} - + Save Slot {0} حفظ الخانة {0} - + Saved {} تم الحفظ {} - + {} does not exist. {0} غير موجود. - + {} deleted. {} حذف. - + Failed to delete {}. فشل في حذف {}. - + File: {} ملف: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} المدة التي لعبتها: {} - + Last Played: {} لعبت آخر مرة: {} - + Size: {:.2f} MB الحجم: {:.2f} MB - - {} points - {} نقاط - - - - {} (Hardcore Mode) - {} (الوضع المتشدد) + + Left: + يسار: - - You have unlocked all achievements and earned {} points! - لقد قمت بفتح جميع الإنجازات وحصلت على {} نقاط! + + Top: + أعلى: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - لقد فتحت {} منجزات {}، وكسبت {} من {} نقاط ممكنة. + + Right: + يمين: - - This game has {} leaderboards. - تحتوي هذه اللعبة على {} لوحة صدارة. + + Bottom: + أسفل: - + Summary ملخص - + Interface Settings إعدادات الواجهة - + BIOS Settings إعدادات BIOS - + Emulation Settings إعدادات المحاكاة - + Graphics Settings إعدادات الرسومات - + Audio Settings إعدادات الصوت - + Memory Card Settings إعدادات بطاقات الذاكرة - + Controller Settings إعدادات ذراع التحكم - + Hotkey Settings إعدادات مفتاح الاختصار - + Achievements Settings إعدادات الانجازات - + Folder Settings - إعدادات المجلد + إعدادات المجلدات - + Advanced Settings الإعدادات المُتقدّمة - + Patches التصحيحات - + Cheats الغش - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed سرعة 50% - + 60% Speed سرعة 60% - + 75% Speed سرعة 75% - + 100% Speed (Default) سرعة 100% (افتراضي) - + 130% Speed سرعة 130% - + 180% Speed سرعة 180% - + 300% Speed سرعة 300% - + Normal (Default) عادي (إفتراضي) - + Mild Underclock تخفيض خفيف لتردد التشغيل - + Moderate Underclock تخفيض متوسط لتردد التشغيل - + Maximum Underclock تخفيض أقصى لتردد التشغيل - + Disabled تعطيل - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame إطار واحد - + 2 Frames إطارين - + 3 Frames 3 إطارات - + None لا شيء - + Extra + Preserve Sign إضافي + حفظ العلامة - + Full كامل - + Extra إضافي - + Automatic (Default) تلقائي (افتراضي) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null لا شيء - + Off إيقاف - + On تشغيل - + Adaptive متكيف - + Bilinear (Smooth) ثنائي الخط (أملس) - + Bilinear (Sharp) ثنائي الخط (حاد) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) متكيف (الحقل العلوي أولا) - + Adaptive (Bottom Field First) متكيف (الحقل السفلي أولا) - + Native (PS2) دقة (PS2) - + 1.25x Native 1.25x الدقة - + 1.5x Native 1.5x الدقة - + 1.75x Native 1.75x الدقة - + 2x Native (~720p) 2x الدقة (~720p) - + 2.25x Native 2.25x الدقة - + 2.5x Native 2.5x الدقة - + 2.75x Native 2.75x الدقة - + 3x Native (~1080p) 3x الدقة (~1080p) - + 3.5x Native 3.5x الدَّقَّة - + 4x Native (~1440p/2K) 4x الدقة (~1440p/2K) - + 5x Native (~1620p) 5x الدقة (~1620p) - + 6x Native (~2160p/4K) 6x الدقة (~2160p/4K) - + 7x Native (~2520p) 7x الدقة (~2520p) - + 8x Native (~2880p) 8x الدقة (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) كامل (PS2 Mipmaps) - + Nearest الأقرب - + Bilinear (Forced) ثنائي الخط (إجبار) - + Bilinear (PS2) ثنائي الخط (مثل الPS2) - + Bilinear (Forced excluding sprite) ثنائي الخط (إجبار لكل الإكساءات إلا Sprites) - + Off (None) متوقف (لا شيء) - + Trilinear (PS2) ثلاثي الخط (مثل الPS2) - + Trilinear (Forced) ثلاثي الخط (إجبار) - + Scaled مُكبر - + Unscaled (Default) غير مُكبر (افتراضي) - + Minimum الحد الادنى - + Basic (Recommended) أساسي (مستحسن) - + Medium متوسط - + High عالي - + Full (Slow) كامل (بطيء) - + Maximum (Very Slow) الحد الأقصى (بطيء جدا) - + Off (Default) إيقاف (الافتراضي) - + 2x 2x - + 4x - + 8x 8x - + 16x 16x - + Partial جزئي - + Full (Hash Cache) كامل (ذاكرة التخزين المؤقت) - + Force Disabled تعطيل إجباري - + Force Enabled - تمكين إجباري + تفعيل إجباري - + Accurate (Recommended) الدقة (مستحسن) - + Disable Readbacks (Synchronize GS Thread) تعطيل قرائة ذاكرة vram (مزامنة خيط معالجة GS) - + Unsynchronized (Non-Deterministic) غير متزامن (غير حتمي) - + Disabled (Ignore Transfers) معطل (تجاهل عمليات النقل) - + Screen Resolution دقة الشاشة - - Internal Resolution (Uncorrected) - الدقة الداخلية (ليس له علاقة بتناسب الأبعاد) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + تمهيد كامل + + + + Achievement Notifications + إشعارات الإنجاز + + + + Leaderboard Notifications + إشعارات المتصدرين + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (معطل) - + 1 (64 Max Width) 1 (64 عرض أقصى) - + 2 (128 Max Width) 2 (128 عرض أقصى) - + 3 (192 Max Width) 3 (192 عرض أقصى) - + 4 (256 Max Width) 4 (256 عرض أقصى) - + 5 (320 Max Width) 5 (320 عرض أقصى) - + 6 (384 Max Width) 6 (384 عرض أقصى) - + 7 (448 Max Width) 7 (448 عرض أقصى) - + 8 (512 Max Width) 8 (512 عرض أقصى) - + 9 (576 Max Width) 9 (576 عرض أقصى) - + 10 (640 Max Width) 10 (640 عرض أقصى) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (عادي) - + 2 (Aggressive) 2 (عنيف) - + Inside Target داخل الهدف - + Merge Targets دمج الأهداف - + Normal (Vertex) عادي (Vertex) - + Special (Texture) خاص (Texture) - + Special (Texture - Aggressive) خاص (Texture - Aggressive) - + Half نصف - + Force Bilinear فرض الصورة ثنائية الخط - + Force Nearest فرض الأقرب - + Disabled (Default) معطل (افتراضي) - + Enabled (Sprites Only) تمكين الرسوم (المتحركة فقط) - + Enabled (All Primitives) تمكين (جميع أساسيات الرسم) - + None (Default) لا شيء (افتراضي) - + Sharpen Only (Internal Resolution) زيادة الحدة فقط (الدقة الداخلية) - + Sharpen and Resize (Display Resolution) زيادة الحدة والحجم (دقة الشاشة) - + Scanline Filter فلتر Scanline - + Diagonal Filter فلتر Diagonal - + Triangular Filter الفلتر الثلاثي - + Wave Filter فلتر Wave - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed غير مضغوط - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) تمديد الوقت (مستحسن) - + Async Mix (Breaks some games!) المزيج الغير متزامن (يعطل بعض الألعاب!) - + None (Audio can skip.) لا شيء (قد يتسبب في تقطع الصوت) - + Stereo (None, Default) ستيريو (لا شيء، افتراضي) - + Surround 5.1 صوت محيطي 5.1 - + Surround 7.1 صوت محيطي 7.1 - + No Sound (Emulate SPU2 only) لا يوجد صوت (محاكاة SPU2 فقط) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 ميغابايت [الأكثر توافقاً] - + 16 MB 16 ميغابايت - + 32 MB 32 ميغابايت - + 64 MB 64 ميغابايت - + Folder [Recommended] مجلد [مستحسن] - + 128 KB [PS1] 128 كيلوبايت [PS1] - + + Negative + سلبي + + + + Positive + إيجابي + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid شبكة الألعاب - + Game List قائمة الألعاب - + Game List Settings إعدادات قائمة اللعبة - + Type نوع - + Serial سريال - + Title عنوان - + File Title عنوان الملف - + CRC CRC - + Time Played المدة التي لعبتها - + Last Played لعبت آخر مرة - + Size الحجم - + Select Disc Image حدد صورة القرص - + Select Disc Drive حدد محرك الأقراص - + Start File بدء الملف - + Start BIOS بدء BIOS - + Start Disc بدء القرص - + Exit خروج - + Set Input Binding تعيين ربط الإدخال - + Region المنطقة - + Compatibility Rating تقييم التوافق - + Path العنوان - + Disc Path عنوان القرص - + Select Disc Path حدد عنوان القرص - - Details unavailable for game not scanned in game list. - التفاصيل غير متوفرة للعبة غير ممسوحة ضوئيا في قائمة اللعبة. - - - + Copy Settings إنسخ الأعدادات - + Clear Settings مسح الإعدادات - + Inhibit Screensaver منع شاشة التوقف - + + Enable Discord Presence + تفعيل وجود ديسكورد + + + Pause On Start إيقاف مؤقت عند البدء - + Pause On Focus Loss إيقاف عند فقدان التركيز - + Pause On Menu الإيقاف المؤقت على القائمة - + Confirm Shutdown تأكيد إيقاف التشغيل - + Save State On Shutdown حفظ الحالة عند إيقاف التشغيل - + Enable Per-Game Settings تمكين إعدادات اللعبة - + Use Light Theme استخدام قالب فاتح - + Start Fullscreen بدء ملء الشاشة - + Double-Click Toggles Fullscreen - تشغيل النقر المزدوج ملء الشاشة + تشغيل النقر المزدوج لملء الشاشة - + Hide Cursor In Fullscreen إخفاء المؤشر في ملء الشاشة - + OSD Scale حجم عارض المعلومات - + Show Messages عرض الرسائل - + Show Speed عرض السرعة - + Show FPS عرض معدل الإطارات FPS - + Show CPU Usage ‏عرض استخدام CPU - + Show GPU Usage ‏عرض استخدام CPU - + Show Resolution عرض دقة الشاشة - + Show GS Statistics عرض إحصائيات GS - + Show Status Indicators عرض مؤشرات الحالة - + Show Settings عرض الإعدادات - + Show Inputs عرض المدخلات - + Show Frame Times إظهار أوقات الإطار - + Warn About Unsafe Settings تحذير من الإعدادات غير الآمنة - + Reset Settings إعادة تعيين الإعدادات - + Change Search Directory تغيير مجلد البحث - + Fast Boot - بدء سريع + تمهيد سريع - + Output Volume مستوى الصوت - + Synchronization Mode وضع مزامنة الصوت - + Expansion Mode وضع التوسيع - + Output Module وحدة الإخراج - + Latency وقت الإستجابة - + Sequence Length طول المدة - + Seekwindow Size حجم نافذة البحث - + Overlap التداخل - + Memory Card Directory مجلد بطاقة الذاكرة - + Folder Memory Card Filter ترشيح بطاقة الذاكرة التي على هيئة مجلد - + Auto Eject When Loading إخراج تلقائي عند التحميل - + Create إنشاء - + Cancel إلغاء - + Load Profile تحميل ملف تعريف - + Save Profile حفظ الملف الشخصي - + Per-Game Configuration تكوين per-Game - + Copy Global Settings نسخ الإعدادات العامة - + Enable SDL Input Source - تمكين مصدر إدخال SDL + تفعيل مصدر إدخال SDL - + SDL DualShock 4 / DualSense Enhanced Mode الوضع المُحسن لجهازي DualShock 4 و DualSense - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source - تمكين مصدر إدخال XInput + تفعيل مصدر إدخال XInput - + Enable Console Port 1 Multitap تمكين وحدة التحكم في المنفذ 1 متعدد النقرات - + Enable Console Port 2 Multitap تمكين وحدة التحكم في المنفذ 2 متعدد النقرات - + Controller Port {}{} - منفذ وحدة التحكم {}{} + منفذ ذراع التحكم {}{} - + Controller Port {} - منفذ وحدة التحكم {} + منفذ ذراع التحكم {} - + Controller Type - نوع وحدة التحكم + نوع ذراع التحكم - + Automatic Mapping تعيين تلقائي - + Controller Port {}{} Macros منفذ التحكم {}{} ماكرو - + Controller Port {} Macros منفذ التحكم {} ماكرو - + Macro Button {} زر ماكرو {} - + Buttons الأزرار - + Frequency التردد - + Pressure الضغط - + Controller Port {}{} Settings إعدادات منفذ التحكم {}{} - + Controller Port {} Settings منفذ التحكم {}{} إعدادات - + USB Port {} منفذ USB {} - + Device Type نوع الجهاز - + Device Subtype نوع الجهاز الفرعي - + {} Bindings {} الإرتباطات - + Clear Bindings مسح الارتباطات - + {} Settings {} إعدادات - + Cache Directory مجلد ذاكرة التخزين المؤقت - + Covers Directory مجلد الأغلفة - + Snapshots Directory مجلد لقطات الشاشة - + Save States Directory مجلد حالات الحفظ - + Game Settings Directory مجلد إعدادات اللعبة - + Input Profile Directory مجلد ملف تعريف الإدخال - + Cheats Directory مجلد الغش - + Patches Directory دليل التصحيحات - + Texture Replacements Directory مجلد استبدال النسيج - + Video Dumping Directory مجلد الإغراق بالفيديو - + Resume Game استئناف اللعبة - + Toggle Frame Limit - تمكين/تعطيل محدد السرعة + تفعيل/تعطيل محدد السرعة - + Game Properties خصائص اللعبة - + Achievements الإنجازات - + Save Screenshot حفظ لقطة الشاشة - + Switch To Software Renderer التبديل إلى معالج البرنامج - + Switch To Hardware Renderer التبديل إلى عارض الأجهزة - + Change Disc تغيير القرص - + Close Game إغلاق اللعبة - + Exit Without Saving الخروج بدون حفظ - + Back To Pause Menu العودة إلى القائمة إيقاف مؤقت - + Exit And Save State الخروج و حفظ الحالة - + Leaderboards لوائح المتصدرين - + Delete Save حذف الحفظ - + Close Menu إغلاق القائمة - - Clean Boot - بدْأ من جديد - - - + Delete State حذف الحالة - + Default Boot التمهيد الافتراضي - - Slow Boot - التمهيد البطيء - - - + Reset Play Time إعادة تعيين وقت التشغيل - + Add Search Directory إضافة مجلد البحث - + Open in File Browser تشغيله في المتصفح - + Disable Subdirectory Scanning تعطيل فحص الدليل الفرعي - + Enable Subdirectory Scanning - تمكين البحث في المجلد الفرعي + تفعيل البحث في المجلد الفرعي - + Remove From List إزالة من القائمة - + Default View طريقة العرض الافتراضية - + Sort By ترتيب حسب - + Sort Reversed ترتيب معكوس - + Scan For New Games البحث عن ألعاب جديدة - + Rescan All Games إعادة فحص جميع الألعاب - - Start Download - بدء التحميل - - - + Website الموقع الإلكتروني - + Support Forums منتديات الدعم الفني - + GitHub Repository مستودع GitHub - + License الترخيص - + Close إغلاق - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements - تمكين الإنجازات - - - - Rich Presence - Rich Presence + تفعيل الإنجازات - + Hardcore Mode الوضع المتشدد - - Show Notifications - عرض الإشعارات - - - + Sound Effects - تأثيرات صوتية - - - - Show Challenge Indicators - عرض مؤشرات التحدي + تأثيرات صوتية - + Test Unofficial Achievements اختبار الإنجازات غير الرسمية - - Test Mode - وضع الاختبار - - - + Username: {} اسم المستخدم: {} - + Login token generated on {} رمز تسجيل الدخول الذي تم إنشاؤه على {} - + Logout تسجيل الخروج - + Not Logged In لم يتم تسجيل الدخول - + Login تسجيل الدخول - - Achievements are disabled. - الإنجازات معطلة. - - - - Game ID: {} - معرف اللعبة: {} - - - - Game Title: {} - عنوان اللعبة: {} - - - - Achievements: {} ({} points) - الإنجازات: {} ({} نقطة) + + Game: {0} ({1}) + اللعبة: {0} ({1}) - + Rich presence inactive or unsupported. خاصية Discord Rich Presence غير نشطة أو غير مدعومة. - + Game not loaded or no RetroAchievements available. اللعبة لم يتم تحميلها أو لا توجد إنجازات RetroAchievements متوفرة. - + Card Enabled - تمكين البطاقة + تفعيل البطاقة - + Card Name اسم البطاقة - + Eject Card إخراج البطاقة @@ -8078,7 +8329,7 @@ ${serial}: تسلسل اللعبة. تعذّر إعادة الفتح، تجري استعادة الإعدادات القديمة. - + Upscale multiplier set to {}x. ترقية المضاعف إلى {}x. @@ -8133,12 +8384,12 @@ ${serial}: تسلسل اللعبة. تعطيل الخرائط التي تم إنشاؤها تلقائياً على واحد أو أكثر من النسيج البديل المضغوط. الرجاء إنشاء خرائط عند ضغط النسيج الخاص بك. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers. كلاهما غير متاحان, هذا يمكن ان يسبب عطل مظهري. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. تدوير وحدة معالجة الرسوم (GPU) أثناء القراءات مفعل، ولكن لا توجد طوابع زمنية معايرة. قد يكون هذا بطيئا جدا. @@ -8194,7 +8445,7 @@ ${serial}: تسلسل اللعبة. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8205,266 +8456,408 @@ graphical quality, but this will increase system requirements. جودة الرسوم، ولكن هذا سيزيد من متطلبات النظام. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: يتم تمكين إصلاحات عارض GS العتادي يدوياً، ولم يتم تطبيق الإصلاحات التلقائية: - + No tracks provided. لم يتم توفير أي مسار. - + Hash {} is not in database. التجزئة {} ليست في قاعدة البيانات. - + Data track number does not match data track in database. رقم تتبع البيانات لا يتطابق مع مسار البيانات في قاعدة البيانات. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - المسار {} مع هاش {} غير موجود في قاعدة البيانات. + لم يتم العثور على المسار {0} مع التجزئة {1} في قاعدة البيانات. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - المسار {} بتجزئة {} هو لعبة مختلفة ({}). + المسار {0} مع التجزئة {1} مخصص للعبة مختلفة ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - المسار {} مع هاش {} لا يتطابق مع مسار قاعدة البيانات. + المسار {0} مع التجزئة {1} لا يطابق مسار قاعدة البيانات. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) إصلاحات اللعبة (لا يُوصَى بالتغيير على الصعيد العام) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - هاك التقسيم السلبي لـPFU (لألعاب غاندم) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - هاك عمليات الضرب لـFPU (لـTales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - استخدام السوفتوير لعرض أفلام FMV + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - هاك تخطي MPEG (تجاوز الفيديو/ FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - تحميل هاك TLB (لـ Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - هاك وقت معالجة EE (هاك توقيت معالجة عام) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - هاك DMA فوري (جيد لمشاكل محاكاة ذاكرة التخزين المؤقت) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - هاك OPH Flag (لـ Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - محاكاة GIF FIFO (صحيح لكن أبطأ) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - هاك DMA Busy (يمنع الكتابة عندما ينشغل) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - تأخير VIF1 Stalls (لـ SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - محاكاة VIF FIFO (صحيح لكن أبطأ) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - مزامنة VU0 كاملة (صحيح ولكن أبطأ) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (لألعاب Scarface The World is Yours وCrash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (لألعاب Tri-Ace) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (للعبة Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - مزامنة VU (اعمل خلف، ألعاب M-Bit) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - مزامنة VU XGKick (صحيح ولكن أبطأ) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - إجبار الكشف لـ Blit Internal FPS (عند فشل الكشف التلقائي) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + استخدام السوفتوير لعرض أفلام FMV + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never مطلقاً - + Today اليوم - + Yesterday يوم أمس - + {}h {}m {} {}m - + {}h {}m {}s {}} {}m {}s - + {}m {}s {} {}m - + {}s {}s - + {} hours {} ساعة - + {} minutes {} دقائق + + + Downloading cover for {0} [{1}]... + جارٍ تنزيل الغلاف لـ {0} [{1}]... + GameListModel - + Type النوع - + Code الكود - + Title الاسم - + File Title اسم الملف - + CRC CRC - + Time Played وقت اللعب - + Last Played لعبت آخر مرة - + Size الحجم - + Region المنطقة - + Compatibility التوافق @@ -8472,74 +8865,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + البحث عن الألعاب + + + Search Directories (will be scanned for games) مجلدات البحث (سيتم البحث عن الألعاب فيها) - + Add... إضافة... - - - + + + Remove إزالة - + Search Directory مجلد البحث - + Scan Recursively البحث داخل المجلدات الفرعية - + Excluded Paths (will not be scanned) المجلدات المستبعدة (لن يتم البحث فيها) - + Directory... المجلد... - + File... ملف... - + Scan For New Games البحث عن ألعاب جديدة - + Rescan All Games إعادة فحص جميع الألعاب - + + Display + العرض + + + + + Prefer English Titles + تفضيل العناوين الإنجليزية + + + + Unchecked + غير محدد + + + + For games with both a title in the game's native language and one in English, prefer the English title. + بالنسبة للألعاب التي تحمل عنوانا في اللعبة's اللغة الأصلية و واحدة باللغة الإنجليزية، يفضل العنوان الإنجليزي. + + + Open Directory... فتح المجلد... - + Select Search Directory حدد مجلد البحث - + Scan Recursively? البحث داخل المجلدات الفرعية؟ - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8548,12 +8967,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. سيستغرق البحث في المجلدات الفرعية وقتاً أطول لكن سوف يتعرف على الملفات في المجلدات الفرعية. - + Select File اختر ملف - + Select Directory حدد المجلد @@ -8561,32 +8980,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List قائمة الألعاب - + Game Grid شبكة الألعاب - + Show Titles إظهار الأسماء - + All Types كل الأنواع - + All Regions كل المناطق - + Search... البحث... @@ -8612,17 +9031,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">المؤلف: </span>كاتب التصحيح </p><p>سيذهب الوصف هنا</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>المؤلف: </strong>%1<br>%2 - + Unknown غير معروف - + No description provided. لم يتم تقديم وصف. @@ -8640,7 +9059,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. إعادة تحميل التعديلات - + There are no patches available for this game. لا توجد أي تعديلات متاحة لهذه اللعبة. @@ -8659,399 +9078,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore استعادة + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + تصنيف العنوان: + + + + English Title: + العنوان باللغة الانجليزية: + + + Path: العنوان: - + Serial: الرقم التسلسلي: - + CRC: :CRC - + Type: النوع: - + PS2 Disc قرص PS2 - + PS1 Disc قرص PS1 - + ELF (PS2 Executable) ELF (قابل للتنفيذ في PS2) - + Region: المنطقة: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (البرازيل) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (الصين) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (هونغ كونغ) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (اليابان) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (كوريا) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (تايوان) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (الولايات المتحدة) - + Other أخرى - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (أستراليا) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (جنوب أفريقيا) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (أستراليا) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (بلجيكا) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (أوروبا أو أستراليا) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (فرنسا) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (فنلندا) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (ألمانيا) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (اليونان) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (إيطاليا) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (الهند) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (أوروبا أو أستراليا) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (هولندا) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (النرويج) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (البرتغال) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (بولندا) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (روسيا) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (أسبانيا) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (إسكندنافيا) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (السويد) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (سويسرا) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (المملكة المتحدة) - + Compatibility: التوافق: - + Unknown غير معروف - + Not Bootable غير قابل للإقلاع - + Reaches Intro يصل للمقدمة - + Reaches Menu يصل إلى القائمة - + In-Game داخل العبة - + Playable قابلة للعب - + Perfect ممتاز - + Input Profile: أنشئ ملف تعريف الإدخال: - + Shared Refers to the shared settings profile. مشترك - + Disc Path: عنوان القرص: - + Browse... تصفح‫... - + Clear تنظيف - + Verify التحقق - + Search on Redump.org... البحث في Redump.org... - + Select Disc Path حدد عنوان القرص - + Game is not a CD/DVD. اللعبة ليست CD/DVD. - + Track list unavailable while virtual machine is running. قائمة التتبع غير متوفرة أثناء تشغيل الجهاز الافتراضي. - + # # - + Mode الوضع - - + + Start البداية - - + + Sectors القطاعات - - + + Size الحجم - - + + MD5 MD5 - - + + Status الحالة - - - - - - + + + + + + %1 %1 - - + + <not computed> <غير محسوب> - + Error خطأ - + Cannot verify image while a game is running. لا يمكن التحقق من الصورة أثناء تشغيل اللعبة. - + One or more tracks is missing. مسار واحد أو أكثر مفقود. - + Verified as %1 [%2] (Version %3). تم التحقق منه %1 [%2] (الإصدار %3). - + Verified as %1 [%2]. تم التحقق منه %1 [%2]. @@ -9059,62 +9489,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: العارض: - + Adapter: كارت الشاشة: - + Display العرض - + Fullscreen Mode: وضع ملء الشاشة: - + Aspect Ratio: تناسب الأبعاد: - + Fit to Window / Fullscreen تلائم مع النافذة / ملء الشاشة - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) معيار تلقائي (4:3 تداخلي / 3:2 تقدمي) - - + + Standard (4:3) قياسي (4:3) - - + + Widescreen (16:9) شاشة عريضة (16:9) - + FMV Aspect Ratio: تناسب أبعاد الأفلام (FMV): - - - + + + @@ -9124,12 +9554,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. إيقاف (الافتراضي) - - - - - - + + + + + + @@ -9140,92 +9570,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. تلقائي (افتراضي) - + None (Interlaced, also used by Progressive) لا شيء (متداخل، يعمل أيضاً مع المسح التقدمي) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: فلترة ثنائية الخط: - - + + None لا شيء - + Bilinear (Smooth) Smooth: Refers to the texture clarity. ثنائي الخط (أملس) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. ثنائي الخط (حاد) - + Vertical Stretch: التمدد العمودي: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9233,355 +9663,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: اقتطاع: - + Left: Warning: short space constraints. Abbreviate if necessary. يسار: - - - - + + + + px بكسل - + Top: Warning: short space constraints. Abbreviate if necessary. أعلى: - + Right: Warning: short space constraints. Abbreviate if necessary. يمين: - + Bottom: Warning: short space constraints. Abbreviate if necessary. أسفل: - + Screen Offsets إزاحة الشاشة - + VSync VSync - + Show Overscan إظهار Overscan - + Enable Widescreen Patches تمكين شفرات الشاشة العريضة - + Enable No-Interlacing Patches تمكين شفرات إلغاء التداخل - + Anti-Blur مضاد الضبابية - + Ctrl+S Ctrl+S - + Disable Interlace Offset تعطيل إزاحة إطارات المسح المتداخل - + Screenshot Size: حجم لقطة الشاشة: - + Screen Resolution دقة الشاشة - + Internal Resolution الدقة الداخلية - + Internal Resolution (Aspect Uncorrected) الدقة الداخلية (ليس له علاقة بتناسب الأبعاد) - + PNG PNG - + JPEG JPEG - + Quality: الجودة: - - + + Rendering معالجة الرسم - + Internal Resolution: الدقة الداخلية: - + Mipmapping: الإكساءات المصغرة Mipmapping: - - + + Off إيقاف - + Basic (Generated Mipmaps) أساسي (Mipmaps منشئة) - + Full (PS2 Mipmaps) كامل (PS2 Mipmaps) - - + + Texture Filtering: فلترة الإكساءات: - - + + Nearest الأقرب - - + + Bilinear (Forced) ثنائي الخط (إجبار) - - + + Bilinear (PS2) ثنائي الخط (مثل الPS2) - - + + Bilinear (Forced excluding sprite) ثنائي الخط (إجبار لكل الإكساءات إلا Sprites) - + Trilinear Filtering: فلترة ثلاثية الخط Trilinear: - + Off (None) متوقف (لا شيء) - + Trilinear (PS2) ثلاثي الخط (مثل الPS2) - + Trilinear (Forced) ثلاثي الخط (إجبار) - + Anisotropic Filtering: فلترة متباينة Anisotropic: - + Dithering: التشويش (Dithering): - + Scaled مُكبر - + Unscaled (Default) غير مُكبر (افتراضي) - + Blending Accuracy: دقة مزج الألوان: - + Minimum الحد الادنى - + Basic (Recommended) أساسي (مستحسن) - + Medium متوسط - + High عالي - + Full (Slow) كامل (بطيء) - + Maximum (Very Slow) الحد الأقصى (بطيء جدا) - + Texture Preloading: التحميل المسبق للإكساءات: - + Partial جزئي - + Full (Hash Cache) كامل (تخزين للهاشات) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion تحويل خريطة الألوان باستخدام بطاقة الرسومات - + Manual Hardware Renderer Fixes إصلاحات يدوية للمعالج - + Spin GPU During Readbacks تدوير وحدة معالجة الرسومات أثناء القراءة منه - + Spin CPU During Readbacks تدوير وحدة المعالجة المركزية أثناء القراءة - - Extra Rendering Threads: - خيوط معالجة الرسم الإضافية: - - - + threads خيوط المعالجة - + Mipmapping الإكساءات المصغرة Mipmapping - + Auto Flush التنظيف التلقائي - + Hardware Fixes إصلاح الأجهزة - + Force Disabled تعطيل إجباري - + Force Enabled - تمكين إجباري + تفعيل إجباري - + CPU Sprite Render Size: حجم العرض للصور اللتي بالمعالج : - - - + + + 0 (Disabled) @@ -9589,79 +10024,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (معطل) - + 1 (64 Max Width) 1 (64 عرض أقصى) - + 2 (128 Max Width) 2 (128 عرض أقصى) - + 3 (192 Max Width) 3 (192 عرض أقصى) - + 4 (256 Max Width) 4 (256 عرض أقصى) - + 5 (320 Max Width) 5 (320 عرض أقصى) - + 6 (384 Max Width) 6 (384 عرض أقصى) - + 7 (448 Max Width) 7 (448 عرض أقصى) - + 8 (512 Max Width) 8 (512 عرض أقصى) - + 9 (576 Max Width) 9 (576 عرض أقصى) - + 10 (640 Max Width) 10 (640 عرض أقصى) - - Skipdraw Range: - تخطي النطاق: - - - + Frame Buffer Conversion تحويل الإطار المؤقت - + Disable Depth Emulation تعطيل محاكاة العمق - + Disable Safe Features تعطيل الميزات الآمنة - + Preload Frame Data تحميل مسبق لبيانات الإطار @@ -9672,606 +10102,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne تمكين النُسج من داخل هدف الرسم - + 1 (Normal) 1 (عادي) - + 2 (Aggressive) 2 (عنيف) - + Software CLUT Render: استخدام CPU في معالجة جدول الألوان: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. الهدف كجدول الألوان في وضع Hardware: - - - + + + Disabled (Default) معطل (افتراضي) - + Enabled (Exact Match) ممكَّن (مطابق بالضبط) - + Enabled (Check Inside Target) تمكين (تحقق من الهدف الداخلي) - + Upscaling Fixes إصلاحات تكبير الدقة - + Half Pixel Offset: نصف بيكسل إزاحة: - + Normal (Vertex) عادي (Vertex) - + Special (Texture) خاص (Texture) - + Special (Texture - Aggressive) خاص (Texture - Aggressive) - + Round Sprite: تقريب الرسوم المتحركة (Sprites): - + Half نصف - + Full كامل - + Texture Offsets: إزاحة النسيج: - + X: X: - + Y: Y: - + Merge Sprite دمج Sprite - + Align Sprite محاذاة رسوم sprite - + Deinterlacing: إلغاء التداخل: - + Sprites Only الصور فقط - + Sprites/Triangles الرسوم المتحركة (Sprites)/المثلثات - + Blended Sprites/Triangles دمج الصور المقسمة/مثلثات - + Auto Flush: التنظيف التلقائي: - + Enabled (Sprites Only) تمكين الرسوم (المتحركة فقط) - + Enabled (All Primitives) تمكين (جميع أساسيات الرسم) - + Texture Inside RT: تمكين النُسج من داخل هدف الرسم: - + Inside Target داخل الهدف - + Merge Targets دمج الأهداف - + Disable Partial Source Invalidation تعطيل التحقق الجزئي من المصدر - + Read Targets When Closing قراءة الأهداف عند الغلق - + Estimate Texture Region تقدير منطقة النُسج (Textures) - + Disable Render Fixes تعطيل إصلاحات العرض - + Unscaled Palette Texture Draws رسم النُسج بدون تكبير جداول الألوان - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: تكبير الدقة غير النظيف ثنائي الخط: - + Force Bilinear فرض الصورة ثنائية الخط - + Force Nearest فرض الأقرب - + Texture Replacement استبدال النُسج (Textures) - + Search Directory مجلد البحث - - + + Browse... تصفح‫... - - + + Open... فتح... - - + + Reset إعادة تعيين - + PCSX2 will dump and load texture replacements from this directory. سيقوم PCSX2 بحفظ الإكساءات أو تحميل تبديلات الإكساءات من هذا المجلد. - + Options الخيارات - + Dump Textures حفظ الإكساءات - + Dump Mipmaps حفظ الإكساءات المصغرة Mipmaps - + Dump FMV Textures حفظ إكساءات الفيديوهات FMV - - - Async Texture Loading - تحميل الإكساءات الغير المتزامن - - - + Load Textures تحميل الإكساءات - + Precache Textures التخزين المؤقت المسبق للإكساءات - + Post-Processing فلاتر ما بعد المعالجة - + Sharpening/Anti-Aliasing زيادة الحدة/مقاومة التعاريج - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx زيادة الحدة المتأقلم مع التباين: - - + + None (Default) لا شيء (افتراضي) - + Sharpen Only (Internal Resolution) زيادة الحدة فقط (الدقة الداخلية) - + Sharpen and Resize (Display Resolution) زيادة الحدة والحجم (دقة الشاشة) - + Sharpness: الحدة: - + FXAA FXAA - + Filters المرشحات - + TV Shader: ظلال التلفاز: - + Scanline Filter فلتر Scanline - + Diagonal Filter فلتر Diagonal - + Triangular Filter الفلتر الثلاثي - + Wave Filter فلتر Wave - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost تعزيز الظل - + Brightness: السطوع: - + Contrast: التباين: - Saturation التشبع - + OSD عارض المعلومات على الشاشه - + On-Screen Display عارض المعلومات على الشاشه - + OSD Scale: حجم عارض المعلومات: - + Show Indicators عرض المؤشرات - + Show Resolution عرض دقة الشاشة - + Show Inputs عرض المدخلات - + Show GPU Usage - إظهار استخدام GPU + ‏عرض استخدام GPU - + Show Settings عرض الإعدادات - + Show FPS عرض معدل الإطارات FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache تعطيل Shader Cache - + Disable Vertex Shader Expand تعطيل توسيع Vertex Shader - + Show Statistics عرض الإحصاءات - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + التشبع: + + + Show CPU Usage ‏عرض استخدام CPU - + Warn About Unsafe Settings تحذير من الإعدادات غير الآمنة - + Show Frame Times عرض أوقات الإطارات - + Recording التسجيل - + Video Dumping Directory مجلد إغراق الفيديو - + Capture Setup إعدادات التسجيل - + Container: الحاوية: - - + + Codec: الترميز: - - + + Extra Arguments خيارات اضافية - + Capture Audio تسجيل الصوت - + Resolution: الدقة: - + x x - + Auto تلقائي - + Capture Video تسجيل الفيديو - + Advanced Advanced here refers to the advanced graphics options. إعدادات متقدمة - + Advanced Options خيارات متقدمة - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) دقيق (مستحسن) - + Disable Readbacks (Synchronize GS Thread) تعطيل قرائة ذاكرة vram (مزامنة خيط معالجة GS) - + Unsynchronized (Non-Deterministic) غير متزامن (غير حتمي) - + Disabled (Ignore Transfers) معطل (تجاهل عمليات النقل) - + GS Dump Compression: ضغط حفظ GS: - + Uncompressed غير مضغوط - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames تخطي عرض الإطارات المكررة - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10281,69 +10721,63 @@ Swap chain: see Microsoft's Terminology Portal. استعمل Blit Swap Chain - + Disable Threaded Presentation تعطيل Threaded Presentation - - + + Bitrate: معدل البت: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. كيلوبايت - + Allow Exclusive Fullscreen: السماح بملء الشاشة الحصري: - + Disallowed عدم السماح - + Allowed مسموح - + Debugging Options خيارات التصحيح - + Override Texture Barriers: تجاوز Texture Barriers: - + Use Debug Device استخدام جهاز التصحيح - - - Disable Dual Source Blending - تعطيل مزج المصدر المزدوج - - - + Show Speed Percentages - نسبة السرعة + عرض النسب المئوية للسرعة - + Disable Framebuffer Fetch تعطيل إحضار الإطار المؤقت @@ -10412,8 +10846,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] استخدام الإعدادات العامة [%1] @@ -10465,6 +10899,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked غير محدد @@ -10524,11 +10959,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. يتحكم في مستوى دقة مزج الألوان لوحدة GS الافتراضية. <br> كلما كانت قيمة هذا الإعداد أعلى كلما كانت محاكاة مزج الألوان باستخدام المظللات أدق.<br> يرجى العلم بأن دقة مزج الألوان لعارض Direct3D ستكون أقل منها لعارض OpenGL أو Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render استخدام CPU في معالجة جدول الألوان + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10580,6 +11025,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. يصلح بعض المشاكل التي تحدث عند تكبير الدقة (مثل ظهور خطوط عمودية) في ألعاب Namco مثل Ace Combat و Tekken و Soul Calibur ،... الخ. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10595,11 +11095,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. يعرض مختلف الإعدادات والقيم الحالية لتلك الإعدادات، مفيدة لتصحيح الأخطاء. - - - Shows the current controller state of the system in the bottom left corner of the display. - يعرض حالة وحدة التحكم الحالية للنظام في الزاوية اليسرى السفلى من العرض. - Displays a graph showing the average frametimes. @@ -10637,7 +11132,7 @@ Swap chain: see Microsoft's Terminology Portal. مكن هذا الخيار لجعل معدل تحديث الشاشة في PCSX2 متطابق مع معدل تحديث شاشتك الحالية. يتم تعطيل المزامنة العمودية تلقائياً عند عدم إمكان تشغيلها (مثل في حالة عدم العمل عند سرعة 100%). - + Integer Scaling التكبير المتناسق @@ -10726,8 +11221,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen ملء الشاشة بدون حدود @@ -10869,11 +11364,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. يقوم بإجراء عمليات عديمة الفائدة على وحدة معالجة الرسوم أثناء فراءة ذاكرة VRAM لمنعها من الذهاب إلى وضع توفير الطاقة. قد يحسن الأداء ولكن مع زيادة كبيرة في استهلاك الطاقة. - - - Extra Rendering Threads - خيوط معالجة الرسم الإضافية - 2 threads @@ -10924,11 +11414,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End نهاية نطاق تخطي الرسم - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - يعطل دعم Depth buffer في ذاكرة التخزين المؤقت للنُسج (texture cache). يمكن أن يساعد في زيادة السرعة ولكن من المحتمل أن يتسبب في العديد من المشاكل في المرئيات. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11046,7 +11531,7 @@ Swap chain: see Microsoft's Terminology Portal. حجم OSD - + Show OSD Messages عرض رسائل OSD @@ -11086,6 +11571,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. يعرض العدادات لاستخدام الرسوم الداخلية، مفيدة لتصحيح الأخطاء. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11139,29 +11629,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + تمكين جهاز التصحيح + + + + Enables API-level validation of graphics commands. + تمكين التحقق من صحة أوامر الرسومات على مستوى واجهة برمجة التطبيقات (API). + + + GS Download Mode وضع التحميل GS - + Accurate دقة - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. تخطي التزامن مع موضوع GS واستضافة GPU لتنزيلات GS. يمكن أن يؤدي إلى زيادة كبيرة في سرعة الأنظمة البطيئة، على حساب العديد من آثار الرسوم البيانية المكسورة. إذا تم كسر الألعاب و تمكين هذا الخيار، الرجاء تعطيله أولاً. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. افتراضي - - + + (Default) (افتراضي) @@ -11169,405 +11669,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics - القرافيكس + الرسومات - + Save Screenshot حفظ لقطة الشاشة - + Toggle Video Capture التقاط مقطع فيديو - + Save Single Frame GS Dump حفظ الإطار الفردي GS - + Save Multi Frame GS Dump حفظ عدة إطارات GS - + Toggle Software Rendering تمكين/تعطيل الرسم من البرنامج نفسه - + Increase Upscale Multiplier زيادة مضاعف ترقية الجودة - + Decrease Upscale Multiplier تقليل مضاعف ترقية الجودة - + Toggle On-Screen Display تبديل عرض الشاشة - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. تم تعيين نسبة الجوانب إلى '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. تعيين تعيين تخطيط الأجهزة إلى '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. تم تعيين وضع الفصل إلى '{}'. - + Toggle Texture Dumping تمكين حفظ رسمات الصورة - + Texture dumping is now enabled. تم تمكين حفظ رسمات الصورة - + Texture dumping is now disabled. تم تعطيل حفظ رسمات الصورة - + Toggle Texture Replacements تفعيل بدائل للTextures - + Texture replacements are now enabled. بدائل الTextures أصبحت الأن مفعلة. - + Texture replacements are now disabled. بدائل الTextures أصبحت الأن غير مفعلة. - + Reload Texture Replacements اعادة تفعيل بدائل الTextures - + Texture replacements are not enabled. بدائل الTextures ليست مفعلة. - + Reloading texture replacements... اعادة تفعيل بدائل الTextures.... - + Target speed set to {:.0f}%. تم تعيين سرعة الهدف إلى {:.0f}%. - + Volume: Muted الصوت: كتم الصوت - + Volume: {}% الصوت: {}% - - Save slot {} selected (last save: {}). - حفظ الخانة {} المحددة (الحفظ الأخير: {}). + + Save slot {0} selected (last save: {1}). + تم تحديد فتحة الحفظ {0} (آخر حفظ: {1}). - + Save slot {} selected (no save yet). خانة التخزين {} المحددة ( لا يوجد تخزين بعد ). - + No save state found in slot {}. لم يتم العثور على حالة حفظ في الخانة {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System النظام - + Open Pause Menu فتح قائمة الإيقاف المؤقت - + Open Achievements List فتح قائمة الانجازات - + Open Leaderboards List فتح قائمة المتصدرين - + Toggle Pause إيقاف مؤقت - + Toggle Fullscreen تغيير للشاشة الكاملة - + Toggle Frame Limit تمكين/تعطيل محدد السرعة - + Toggle Turbo / Fast Forward تبديل توربو / التقدم السريع - + Toggle Slow Motion تغيير الحركة البطيئة - + Turbo / Fast Forward (Hold) توربو / التقدم السريع (معلق) - + Increase Target Speed زيادة سرعة اللعبة - + Decrease Target Speed إنقاص سرعة اللعبة - + Increase Volume زيادة مستوى الصوت - + Decrease Volume خفض مستوى الصوت - + Toggle Mute كتم الصوت - + Frame Advance تقدم الإطار - + Shut Down Virtual Machine إيقاف تشغيل الآلة الظاهرية - + Reset Virtual Machine إعادة تعيين الآلة الظاهرية - + Toggle Input Recording Mode تبديل وضع تسجيل الإدخال - - - - + + + + Save States حالات الحفظ - + Select Previous Save Slot حدد خانة حفظ السابقة - + Select Next Save Slot حدد خانة حفظ التالية - + Save State To Selected Slot حفظ الحالة إلى خانة مختارة - + Load State From Selected Slot تحميل الحالة إلى خانة مختارة - + Save State To Slot 1 حفظ الحالة إلى خانة 1 - + Load State From Slot 1 تحميل الحالة إلى خانة 1 - + Save State To Slot 2 حفظ الحالة إلى خانة 2 - + Load State From Slot 2 تحميل الحالة إلى خانة 2 - + Save State To Slot 3 حفظ الحالة إلى خانة 3 - + Load State From Slot 3 تحميل الحالة إلى خانة 3 - + Save State To Slot 4 حفظ الحالة إلى خانة 4 - + Load State From Slot 4 تحميل الحالة من خانة 4 - + Save State To Slot 5 حفظ الحالة إلى خانة 5 - + Load State From Slot 5 تحميل الحالة من خانة 5 - + Save State To Slot 6 حفظ الحالة إلى خانة 6 - + Load State From Slot 6 تحميل الحالة من خانة 6 - + Save State To Slot 7 حفظ الحالة إلى خانة 7 - + Load State From Slot 7 تحميل الحالة من خانة 7 - + Save State To Slot 8 حفظ الحالة إلى خانة 8 - + Load State From Slot 8 تحميل الحالة من خانة 8 - + Save State To Slot 9 حفظ الحالة إلى خانة 9 - + Load State From Slot 9 تحميل الحالة من خانة 9 - + Save State To Slot 10 حفظ الحالة إلى خانة 10 - + Load State From Slot 10 تحميل الحالة من خانة 10 @@ -11726,6 +12226,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Analog الأيسر + + + + Right Analog + Analog الأيمن + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + تحت + + + + D-Pad Right️ + يمين + + + + D-Pad Up️ + فوق + + + + D-Pad Left️ + يسار + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11753,137 +12343,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour السلوك - + Pause On Focus Loss إيقاف عند فقدان التركيز - + Inhibit Screensaver منع شاشة التوقف - + Save State On Shutdown حفظ الحالة عند إيقاف التشغيل - + Pause On Start إيقاف مؤقت عند البدء - + Confirm Shutdown تأكيد إيقاف التشغيل - + Create Save State Backups إنشاء نسخ احتياطية لحفظ الحالة - + Enable Discord Presence تفعيل وجود ديسكورد - + Enable Per-Game Settings - تمكين إعدادات اللعبة + تفعيل إعدادات اللعبة - + Game Display عرض اللعبة - + Start Fullscreen بدء ملء الشاشة - + Double-Click Toggles Fullscreen - تشغيل النقر المزدوج ملء الشاشة + تشغيل النقر المزدوج لملء الشاشة - + Render To Separate Window تقديم لنافذة منفصلة - + Hide Main Window When Running إخفاء النافذة الرئيسية عند التشغيل - + Disable Window Resizing تعطيل تغيير حجم النافذة - + Hide Cursor In Fullscreen إخفاء المؤشر في ملء الشاشة - + Preferences الإعدادات - + Language: اللغة: - + Theme: السمة: - + Automatic Updater - المحدث التلقائي + التحديث التلقائي - + Update Channel: قناة التحديث: - + Current Version: الإصدار الحالي: - + Enable Automatic Update Check - تمكين التحديثات التلقائية + تفعيل التحقق التلقائي للتحديث - + Check for Updates... التحقق من وجود تحديثات... @@ -12076,7 +12666,7 @@ Right click to clear binding يعرض اللعبة التي تلعبها حاليا كجزء من ملفك الشخصي في ديسكورد. - + System Language [Default] لغة النظام [افتراضي] @@ -12133,14 +12723,14 @@ Right click to clear binding - - + + Change Disc تغيير القرص - + Load State تحميل الحالة @@ -12227,12 +12817,12 @@ Right click to clear binding Shut Down &Without Saving - إيقاف تشغيل &دون حفظ + إيقاف تشغيل دون حفظ &Reset - إعادة تعيين + إعادة التشغيل @@ -12257,7 +12847,7 @@ Right click to clear binding &Controllers - وحدة التحكم + ذراع التحكم @@ -12438,13 +13028,13 @@ Right click to clear binding Controllers In Toolbar - وحدة التحكم + ذراع التحكم Settings In Toolbar - إعدادات + الإعدادات @@ -12621,7 +13211,7 @@ Right click to clear binding Controller Logs - سجلات وحدة التحكم + سجلات ذراع التحكم @@ -12645,13 +13235,13 @@ Right click to clear binding - + Start Big Picture Mode بدء وضع الصورة الكبيرة - + Big Picture In Toolbar الصور الكبيرة @@ -12663,7 +13253,7 @@ Right click to clear binding - + Show Advanced Settings إظهار الإعدادات المتقدمة @@ -12674,7 +13264,7 @@ Right click to clear binding - + Video Capture التقاط الفيديو @@ -12689,27 +13279,27 @@ Right click to clear binding تحرير التصحيحات... - + Internal Resolution الدقة الداخلية - + %1x Scale %1x Scale - + Select location to save block dump: اختر موقع لحفظ البيانات: - + Do not show again لا تظهر مرة أخرى - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12722,168 +13312,173 @@ Are you sure you want to continue? هل أنت متأكد من أنك تريد المتابعة؟ - + %1 Files (*.%2) %1 ملفات (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown تأكيد إيقاف التشغيل - + Are you sure you want to shut down the virtual machine? هل أنت متأكد من أنك تريد إغلاق الجهاز الافتراضي؟ - + Save State For Resume حفظ الحالة للاستئناف - - - - - - + + + + + + Error خطأ - + You must select a disc to change discs. يجب عليك تحديد قرص لتغيير الأقراص. - + Properties... خصائص... - + Open Containing Directory... Refers to the directory where a game is contained. فتح مجلد المحتوى... - + Set Cover Image... حدد صورة الغلاف... - + Exclude From List استبعاد من القائمة - + Reset Play Time إعادة تعيين وقت التشغيل - + Default Boot التمهيد الافتراضي - + Fast Boot - بدء سريع + تمهيد سريع - + Full Boot - تشغيل كامل + تمهيد كامل - + Boot and Debug تشغيل و تصحيح - + Add Search Directory... إضافة مجلد البحث... - + Start File بدء الملف - + Start Disc بدء القرص - + Select Disc Image حدد صورة القرص - + Updater Error خطأ فى التحديث - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>عذراً، أنت تحاول تحديث إصدار PCSX2 الذي ليس إصدار GitHub الرسمي. لمنع التعارض، يتم تمكين التحديث التلقائي فقط على الإصدارات الرسمية.</p><p>للحصول على بناء رسمي، يرجى التحميل من الرابط أدناه:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. التحديث التلقائي غير مدعوم على المنصة الحالية. - + Confirm File Creation تأكيد إنشاء ملف - + The pnach file '%1' does not currently exist. Do you want to create it? الملف pnach '%1' غير موجود حاليا. هل تريد إنشاءه؟ - + Failed to create '%1'. فشل إنشاء '%1'. - + Input Recording Files (*.p2m2) إدخال ملفات تسجيل (*.p2m2) - + Paused متوقف مؤقتا - + Load State Failed فشل تحميل الحالة - + Cannot load a save state without a running VM. لا يمكن تحميل حالة حفظ بدون تشغيل VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? لا يمكن تحميل ELF الجديد بدون إعادة تعيين الآلة الظاهرية. هل تريد إعادة تعيين الآلة الظاهرية الآن؟ - + Cannot change from game to GS dump without shutting down first. لا يمكن التغيير من اللعبة إلى إغراق GS دون إغلاق أولاً. - + Failed to get window info from widget فشل الحصول على معلومات النافذة من ويدجت @@ -12898,97 +13493,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode إيقاف وضع الصورة الكبيرة - + Exit Big Picture In Toolbar الخروج من الصورة الكبيرة - + Game Properties خصائص اللعبة - + Game properties is unavailable for the current game. خصائص اللعبة غير متوفرة للعبة الحالية. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. تعذر العثور على أي أجهزة CD/DVD-ROM. الرجاء التأكد من أن لديك أذونات متصلة بالقرص و كافية للوصول إليه. - + Select disc drive: حدد محرك الأقراص: - + This save state does not exist. حالة الحفظ هذه غير موجودة. - + Select Cover Image حدد صورة الغلاف - - All Cover Image Types (*.jpg *.jpeg *.png) - جميع أنواع صور الغلاف (*.jpg *.jpeg *.png) - - - + Cover Already Exists الغلاف موجود بالفعل - + A cover image for this game already exists, do you wish to replace it? صورة غلاف لهذه اللعبة موجودة مسبقا، هل ترغب في استبدالها؟ - - - - + + + + Copy Error خطأ في النسخ - + Failed to remove existing cover '%1' فشل في إزالة الغلاف الموجود '%1' - + Failed to copy '%1' to '%2' فشل نسخ '%1' إلى '%2' - + Failed to remove '%1' فشل في إزالة '%1' - - + + Confirm Reset تأكيد إعادة التعيين - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + جميع أنواع صور الغلاف (*.jpg *.jpeg *.png *.webpp) + + + You must select a different file to the current cover image. يجب عليك تحديد ملف مختلف لصورة الغلاف الحالي. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12997,12 +13592,12 @@ This action cannot be undone. لا يمكن التراجع عن هذا الإجراء. - + Load Resume State تحميل حالة الاستئناف - + A resume save state was found for this game, saved at: %1. @@ -13015,70 +13610,70 @@ Do you want to load this state, or start from a fresh boot? هل تريد تحميل هذه الحالة، أو البدء من تشغيل جديد؟ - + Fresh Boot تشغيل نظيف - + Delete And Boot احذف وشغل - + Failed to delete save state file '%1'. فشل في حذف حفظ ملف الحالة '%1'. - + Load State File... تحميل ملف الحالة... - + Load From File... تحميل من ملف... - - + + Select Save State File حدد ملف حفظ الحالة - - + + Save States (*.p2s) حفظ الحالة (*.p2s) - + Delete Save States... حذف حفظ الحالة... - + Undo Load State التراجع عن تحميل الحالة - + Resume (%2) استئناف (%2) - + Load Slot %1 (%2) تحميل الخانة %1 (%2) - - + + Delete Save States حذف حفظ الحالة - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13087,42 +13682,42 @@ The saves will not be recoverable. لن تكون عمليات الحفظ قابلة للاسترداد. - + %1 save states deleted. %1 حفظ الحالات المحذوفة. - + Save To File... حفظ إلى ملف... - + Empty فارغ - + Save Slot %1 (%2) حفظ الخانة %1 (%2) - + Confirm Disc Change تأكيد تغيير القرص - + Do you want to swap discs or boot the new image (via system reset)? هل تريد تبديل الأقراص أو تشغيل الصورة الجديدة (عبر إعادة تعيين النظام)؟ - + Swap Disc تبديل القرص - + Reset إعادة تعيين @@ -13130,8 +13725,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. تم حفظ بطاقة الذاكرة '{}' إلى وحدة التخزين. @@ -13212,6 +13807,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x أكبر من بطاقة الذاكرة القياسية. قد يكون لديه بعض مشاكل التوافق. @@ -13262,11 +13858,6 @@ The saves will not be recoverable. Cannot Convert Memory Card لا يمكن تحويل بطاقة الذاكرة - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x أكبر كبطاقة الذاكرة القياسية. قد يكون لديه بعض مشاكل التوافق. - MemoryCardCreateDialog @@ -13392,103 +13983,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports منافذ وحدة التحكم - + Memory Cards بطاقات الذاكرة - + Folder: مجلد: - + Browse... تصفح‫... - + Open... فتح... - + Reset إعادة تعيين - + Name الاسم - + Type نوع - + Formatted تنسيق - + Last Modified آخر تعديل - + Refresh تحديث - + + Create إنشاء - + Duplicate نسخه مطابقه - + Rename إعادة تسمية - + Convert تحويل - + Delete حذف - + Settings - إعدادات + الإعدادات - + Automatically manage saves based on running game إدارة عمليات الحفظ تلقائيا بناء على تشغيل اللعبة - + Auto-eject Memory Cards when loading save states إخراج بطاقات الذاكرة تِلْقائيًا عند تحميل حالات الحفظ @@ -13658,58 +14250,58 @@ This action cannot be reversed, and you will lose any saves on the card.الذاكرة - + Copy Address نسخ العنوان - + Go to in disassembly الذهاب إلى هذا عند التفكيك - - + + Go to address الذهاب إلى عنوان - + Show as 1 byte إظهار كـ 1 بايت - + Show as 2 bytes إظهار كـ 2 بايت - + Show as 4 bytes إظهار كـ 4 بايت - + Show as 8 bytes إظهار كـ 8 بايت - + Copy Byte نسخ بايت - + Copy Segment نسخ الجزء - + Copy Character نسخ الأحرف - + Paste لصق @@ -13759,10 +14351,15 @@ This action cannot be reversed, and you will lose any saves on the card.أدخل اسم المؤلف - + Input Recording Files (*.p2m2) إدخال ملفات تسجيل (*.p2m2) + + + Select a File + حدد ملف + Pad @@ -13958,6 +14555,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. يعين منطقة العصا التناظرية، أي الجزء من حركة العصا التناظرية التي سيتم تجاهلها. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13974,14 +14581,14 @@ This action cannot be reversed, and you will lose any saves on the card.يضبط المنطقة الميتة لتنشيط الأزرار / المشغلات ، أي جزء المشغل الذي سيتم تجاهله. - - Analog light is now on for port {} / slot {} - ضوء تناظري مفعل الآن للمنفذ {} / فتحة {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - تم إيقاف الضوء التناظري الآن للمنفذ {} / فتحة {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14028,13 +14635,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - منفذ وحدة التحكم {}، تحتوي الفتحة {} على {} متصل ، لكن حالة الحفظ بها {}. -ترك نوع وحدة التحكم الأصلية متصلا ، ولكن قد يتسبب ذلك في حدوث مشكلات. - Strum Up @@ -14105,40 +14705,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar غيتار + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. فشل في فتح {}. لا تتوفر التصحيحات المدمجة للعبة. - + {} GameDB patches {} تصحيحات GameDB - + {}{} game patches {}{} تصحيحات اللعبة - + {}{} cheat patches {}{} تصحيحات الغش - + {} are active. {} نشطة. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. لم يتم العثور على أي غش أو تصحيح (شاش واسع النطاق أو توافق أو غير ذلك) / تمكينه. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14156,13 +14779,13 @@ The URL was: %1 الرابط كان: %1 - + HDD Creator منشئ القرص الصلب - + Failed to create HDD image فشل إنشاء صورة قرص صلب @@ -14367,7 +14990,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14417,222 +15039,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + استخدام الإعدادات العامة [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + استخدام الإعدادات العامة [Disabled] + + + + + Use Global Setting [%1] + استخدام الإعدادات العامة [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings إعدادات PCSX2 - + Restore Defaults استعادة الافتراضيات - + Copy Global Settings - انسخ الإعدادات العالمية + نسخ الإعدادات العامة - + Clear Settings مسح الإعدادات - + Close إغلاق - - - Summary - ملخص - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>الملخص</strong><hr>تعرض هذه الصفحة تفاصيل حول اللعبة المحددة. سيؤدي تغيير الملف الشخصي للمدخل إلى تعيين مخطط ربط وحدة التحكم لهذه اللعبة إلى أي ملف شخصي يتم اختياره، بدلاً من التكوين الافتراضي (المشارك). يمكن استخدام قائمة المسار والتحقق من الإغراق لتحديد ما إذا كانت صورة القرص الخاص بك تتطابق مع إغراق جيد معروف. إذا لم تكن مطابقة، يمكن كسر اللعبة. - + + + Summary + ملخص + + + Summary is unavailable for files not present in game list. الملخص غير متاح للملفات غير الموجودة في قائمة اللعبة. - + Interface واجهة المستخدم - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - <strong>إعدادات الرسوم البيانية</strong><hr>هذه الخيارات تحدد تكوين إخراج الرسوم البيانية.<br><br>الفأرة فوق خيار للحصول على معلومات إضافية. + <strong>إعدادات الواجهة</strong><hr>هذه الخيارات تتحكم في شكل البرمجيات وتصرفاتها.<br><br>الماوس على خيار للحصول على معلومات إضافية. - + Game List قائمة الألعاب - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>إعدادات قائمة اللعبة</strong><hr>تظهر القائمة أعلاه مجلدات التي سيتم بحثها بواسطة PCSX2 لتعبئة قائمة اللعبة. يمكن إضافة مجلد البحث وإزالتها وتحويلها إلى تكرار / غير متكرر. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - <strong>إعدادات بطاقة الذاكرة</strong><hr>إنشاء وتكوين بطاقات الذاكرة هنا.<br><br>الفأرة فوق خيار للحصول على معلومات إضافية. + <strong>إعدادات BIOS</strong><hr>تكوين BIOS الخاص بك هنا.<br><br>الفأرة فوق خيار للحصول على معلومات إضافية. - + Emulation المحاكاة - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - <strong>إعدادات الرسوم البيانية</strong><hr>هذه الخيارات تحدد تكوين إخراج الرسوم البيانية.<br><br>الفأرة فوق خيار للحصول على معلومات إضافية. + <strong>إعدادات المحاكاة</strong><hr>تحدد هذه الخيارات تكوين سرعة الإطار وإعدادات اللعبة.<br><br>مرر الماوس فوق خيار للحصول على معلومات إضافية. - + Patches - تصحيحات الألعاب + التصحيحات - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>التعديلات</strong><hr>هذا القسم يسمح لك بتحديد التصحيحات الاختيارية لتطبيقها على اللعبة، والتي قد توفر تحسينات الأداء أو الرؤية أو اللعبة. - + Cheats اكواد الغش - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>الغش</strong><hr>هذا القسم يسمح لك بتحديد الغش الذي ترغب في تمكينه. لا يمكنك تمكين / تعطيل الغش بدون تسميات لملفات pnach القديمة، سيتم تنشيط هذه الملفات تلقائيًا إذا تم تحديد خيار تمكين الغش الرئيسي. - + Game Fixes إصلاحات اللعبة - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>إعدادات إصلاحات اللعبة</strong><hr>يمكن أن تعمل إصلاحات اللعبة حول المحاكاة غير الصحيحة في بعض العناوين.<br>ومع ذلك، يمكن أيضا أن تسبب مشاكل في الألعاب إذا استخدمت بشكل غير صحيح.<br>من الأفضل تركها كلها معطلة ما لم يُنصح بخلاف ذلك. - + Graphics الرسومات - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - <strong>إعدادات الرسوم البيانية</strong><hr>هذه الخيارات تحدد تكوين إخراج الرسوم البيانية.<br><br>الفأرة فوق خيار للحصول على معلومات إضافية. + <strong>إعدادات الرسومات</strong><hr>تحدد هذه الخيارات تكوين الإخراج الرسومي.<br><br>مرر الماوس فوق خيار للحصول على معلومات إضافية. - + Audio الصوت - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - <strong>إعدادات الرسوم البيانية</strong><hr>هذه الخيارات تحدد تكوين إخراج الرسوم البيانية.<br><br>الفأرة فوق خيار للحصول على معلومات إضافية. + <strong>إعدادات الصوت</strong><hr>هذه الخيارات تتحكم في إخراج الصوت من وحدة التحكم.<br><br>الفأرة على خيار للحصول على معلومات إضافية. - + Memory Cards بطاقات الذاكرة - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>إعدادات بطاقة الذاكرة</strong><hr>إنشاء وتكوين بطاقات الذاكرة هنا.<br><br>الفأرة فوق خيار للحصول على معلومات إضافية. - + Network & HDD الشبكة و القرص الصلب - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - <strong>إعدادات الشبكة و HDD</strong><hr>هذه الخيارات تتحكم في اتصال الشبكة و وحدة تخزين HDD الداخلية للوحدة.<br><br>الفأرة حول خيار الحصول على معلومات إضافية. + <strong>إعدادات الشبكة و القرص الصلب </strong><hr>هذه الخيارات تتحكم في اتصال الشبكة و وحدة تخزين القرص الصلب الداخلية للوحدة.<br><br>الفأرة حول خيار الحصول على معلومات إضافية. - + Folders المجلدات - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - <strong>إعدادات المجلد</strong><hr>هذه الخيارات التحكم حيث سيوفر PCSX2 ملفات بيانات وقت التشغيل. + <strong>إعدادات المجلدات</strong><hr>هذه الخيارات التحكم حيث سيوفر PCSX2 ملفات بيانات وقت التشغيل. - + Achievements الإنجازات - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>إعدادات الإنجازات</strong><hr>هذه الخيارات تتحكم في تنفيذ الإنجازات التراجعية في PCSX2، مما يسمح لك باكتساب إنجازات في الألعاب الخاصة بك. - + RAIntegration is being used, built-in RetroAchievements support is disabled. - ويجري استخدام برنامج التكامل الإقليمي، والدعم المدمج للإنجازات التراجعية معطل. + RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced إعدادات متقدمة - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>الإعدادات المتقدمة</strong><hr>هذه خيارات متقدمة لتحديد تكوين وحدة التحكم المحاكية.<br><br>الفأرة حول خيار الحصول على معلومات إضافية. - + Debug تصحيح الأخطاء - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>إعدادات التصحيح</strong><hr>هذه خيارات يمكن استخدامها لتسجيل المعلومات الداخلية حول التطبيق. <strong>لا تقم بالتعديل إلا إذا كنت تعرف ما تفعله</strong>، وسيسبب تباطؤا كبيرا، ويمكن أن يهدر مساحات كبيرة من القرص. - + Confirm Restore Defaults تأكيد الاستعادة الافتراضية - + Are you sure you want to restore the default settings? Any preferences will be lost. هل أنت متأكد من أنك تريد استعادة الإعدادات الافتراضية؟ سيتم فقدان أي تفضيلات. - + Reset UI Settings - إعادة تعيين الإعدادات + إعادة تعيين إعدادات واجهة المستخدم - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14645,12 +15288,12 @@ Do you want to continue? هل تريد الاستمرار؟ - + Per-game configuration copied from global settings. تم نسخ إعدادات اللعبة من الإعدادات العالمية. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14663,32 +15306,14 @@ Do you want to continue? هل تريد الاستمرار؟ - + Per-game configuration cleared. تم مسح إعدادات اللعبة. - + Recommended Value - القيمة المقترحة - - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - استخدام الإعدادات العامة [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - استخدام الإعدادات العامة [Disabled] - - - - - Use Global Setting [%1] - استخدام الإعدادات العامة [%1] + القيمة الموصى بها @@ -14716,7 +15341,7 @@ Do you want to continue? Controller Setup - إعدادات وحدة التحكم + إعدادات ذراع التحكم @@ -14741,7 +15366,7 @@ Do you want to continue? Enable Automatic Updates - تمكين التحديثات التلقائية + تفعيل التحديثات التلقائية @@ -14761,7 +15386,7 @@ Do you want to continue? Reset - إعادة التشغيل + إعادة تعيين @@ -14775,8 +15400,8 @@ Do you want to continue? - Open in Explorer... - فتح في مدير الملفات... + Open BIOS Folder... + فتح مجلد BIOS... @@ -14822,19 +15447,19 @@ Do you want to continue? Controller Port 1 - وحدة التحكم منفذ 1 + ذراع التحكم منفذ 1 Controller Mapped To: - تم تعيين وحدة التحكم على: + تم تعيين ذراع التحكم على: Controller Type: - نوع وحدة التحكم: + نوع ذراع التحكم: @@ -14852,7 +15477,7 @@ Do you want to continue? Controller Port 2 - وحدة التحكم منفذ 2 + ذراع التحكم منفذ 2 @@ -15043,97 +15668,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. نوع الانتظار - + BAD Refers to a Thread State in the Debugger. سيئ - + RUN Refers to a Thread State in the Debugger. تشغيل - + READY Refers to a Thread State in the Debugger. جاهز - + WAIT Refers to a Thread State in the Debugger. انتظر - + SUSPEND Refers to a Thread State in the Debugger. مشغول - + WAIT SUSPEND Refers to a Thread State in the Debugger. انتظر التعليق - + DORMANT Refers to a Thread State in the Debugger. المحتويات - + NONE Refers to a Thread Wait State in the Debugger. لاشيء - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. طلب إيقاظ - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. السكون - + DELAY Refers to a Thread Wait State in the Debugger. تأخير - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15339,6 +15964,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15370,6 +16000,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. قياس الموضع لمحاكاة منحنى CRT. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15385,6 +16021,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. يعين موقع المركز الأفقي للشاشة المحاكية. + + + + %.0fpx + %.0fpx + Center Y @@ -15405,6 +16047,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. تعيين عرض شاشة المحاكاة. + + + + %dpx + %dpx + Screen Height @@ -15460,6 +16108,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. يحدد زمن التأخير لجهاز الإدخال المضيف. + + + + + + + %dms + %dms + Output Latency @@ -15660,6 +16317,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + إيقاف + + + + Low + منخفض + + + + Medium + متوسط + + + + High + عالي + Steering Smoothing @@ -15670,6 +16347,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. عرض التغييرات في التوجيه إلى النسبة المئوية المحددة لكل استطلاع. تحتاج إلى استخدام لوحات المفاتيح. + + + + %d%% + %d%% + Steering Deadzone @@ -16140,12 +16823,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Effects Knob Left - Effects Knob Left + مِقبض التأثيرات الأيسر Effects Knob Right - Effects Knob Right + مِقبض التأثيرات الأيمن @@ -16169,117 +16852,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints تلميحات - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. للربط بين التوجيه لمعظم عجلات 900 درجة حديثة، قم بتحويل العجلة الواحدة في الاتجاه المطلوب، ثم العودة مرة أخرى إلى المركز. - + Force Feedback Force Feedback - + D-Pad أزرار الاتجاهات - + Down - Down + تحت - + Left - Left + يسار - + Up - Up + فوق - + Right - Right + يمين - + L1 L1 - + L2 L2 - + Brake الفرامل - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator التسارع @@ -16287,67 +16970,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints تلميحات - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. للربط بين التوجيه لمعظم عجلات 900 درجة حديثة، قم بتحويل العجلة الواحدة في الاتجاه المطلوب، ثم العودة مرة أخرى إلى المركز. - + Force Feedback Force Feedback - + X X - + A A - + Brake الفرامل - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16355,71 +17038,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons الأزرار - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad أزرار الاتجاهات - - + + Down تحت - - + + Left يسار - - + + Up فوق - - + + Right يمين - + Pointer Setup إعداد المؤشر - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16428,29 +17111,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. تصويب نسبي - - + + Trigger المشغّل - + Shoot Offscreen اطلاق النار خارج الشاشة - + Calibration Shot طلقة معايرة - + Calibration shot is required to pass the setup screen in some games. لقطة المعايرة مطلوبة لتمرير شاشة الإعداد في بعض الألعاب. @@ -16458,27 +17141,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type نوع الجهاز - + Bindings الإرتباطات - + Settings الإعدادات - + Automatic Mapping تعيين تلقائي - + Clear Mapping مسح التعيين @@ -16516,32 +17199,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. فشل النسخ الاحتياطي لحفظ الحالة القديمة {}. - + Failed to save save state: {}. تعذّر حفظ لقطة الشاشة في: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game لعبة مجهولة - + Error خطأ - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16558,197 +17241,217 @@ Please consult the FAQs and Guides for further instructions. نرجوا منك التوجة إلى صفحة الأسئلة الشائعة 'FAQs' لمزيد من التعليمات. - + + Resuming state + استئناف الحالة + + + State saved to slot {}. تم حفظ الحالة في الفتحة {}. - + Failed to save save state to slot {}. فشل حفظ الحالة إلى فتحة {}. - + + + Loading state + جار تحميل الحالة + + + There is no save state in slot {}. لا توجد حالة حفظ في الفتحة {}. - + Loading state from slot {}... جاري تحميل الحالة من الفتحة {}... - + Saving state to slot {}... حفظ الحالة إلى الفتحة {}... - + + Frame advancing + تقدم الإطار + + + Disc removed. تمت إزالة القرص. - + Disc changed to '{}'. تم تغيير القرص إلى '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - فشل في فتح صورة قرص جديد '{}'. العودة إلى الصورة القديمة. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + فشل فتح صورة القرص الجديدة '{}'. العودة إلى الصورة القديمة. + الخطأ كان: {} - - Failed to switch back to old disc image. Removing disc. - فشل التبديل إلى صورة القرص القديمة. إزالة القرص. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + فشل في العودة إلى صورة القرص القديمة. إزالة القرص. + الخطأ كان: {} - + Cheats have been disabled due to achievements hardcore mode. تم تعطيل الغش بسبب وضع الانجازات الصعبة. - + Fast CDVD is enabled, this may break games. تسريع CDVD يعمل، قد يعطل بعض الألعاب. - + Cycle rate/skip is not at default, this may crash or make games run too slow. معدل الدورة/تخطي الدورة ليس في الوضع الافتراضي، هذا قد يتعطل أو يجعل الألعاب تسير ببطء شديد. - + Audio is using async mix, expect desynchronization in FMVs. ويستخدم الصوت مزيج الـ async ، ويتوقع إزالة التزامن في FMVs. - + Upscale multiplier is below native, this will break rendering. مضاعف الترقية أقل من الأصل، هذا سيكسر العرض. - + Mipmapping is not set to automatic. This may break rendering in some games. لم يتم تعيين رسم الخرائط تلقائياً. قد يكسر هذا في بعض الألعاب. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. لم يتم تعيين تصفية النسيج إلى Bilinear (PS2). هذا سيكسر العرض في بعض الألعاب. - + Trilinear filtering is not set to automatic. This may break rendering in some games. لم يتم تعيين رسم الخرائط تلقائياً. قد يكسر هذا في بعض الألعاب. - + Blending is below basic, this may break effects in some games. المزج تحت الاساسي, هذا قد يؤدي إلى كسر التأثيرات في بعض الألعاب. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. لم يتم ضبط وضع تحميل الأجهزة على الدقة، قد يكسر هذا في بعض الألعاب. - + EE FPU Round Mode is not set to default, this may break some games. لم يتم تعيين وضع جولة EE FPU إلى الافتراضي، قد يؤدي هذا إلى كسر بعض الألعاب. - + EE FPU Clamp Mode is not set to default, this may break some games. لم يتم تعيين وضع مصباح EE FPU إلى الافتراضي، قد يؤدي هذا إلى كسر بعض الألعاب. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. رُقَعْ اللعبة مغلق، قد يُأًثِر هذا على بعض الألعاب. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. تعديلات التوافق غير مفعلة. التوافق مع بعض الألعاب قد يتأثر. - + Frame rate for NTSC is not default. This may break some games. معدل الإطارات لـ(NTSC) ليس بافتراضي، قد يؤدي هذا إلى تسارع بعض الألعاب. - + Frame rate for PAL is not default. This may break some games. معدل الإطارات لـ(PAL) ليس بافتراضي، قد يؤدي هذا إلى تسارع بعض الألعاب. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recpiler غير مفعل، وهذا سوف يقلل الأداء بشكل كبير. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. EE Recpiler غير مفعل، وهذا سوف يقلل الأداء بشكل كبير. - + IOP Recompiler is not enabled, this will significantly reduce performance. لم يتم تمكين موصل IOP ، وهذا سيقلل الأداء بشكل كبير. - + EE Cache is enabled, this will significantly reduce performance. تم تمكين ذاكرة التخزين المؤقت ، وهذا سيقلل الأداء بشكل كبير. - + EE Wait Loop Detection is not enabled, this may reduce performance. لم يتم تمكين الكشف عن حلقة الانتظار، وهذا قد يقلل من الأداء. - + INTC Spin Detection is not enabled, this may reduce performance. الكشف عن الدوران INTC غير مفعل، وهذا قد يقلل من الأداء. - + Instant VU1 is disabled, this may reduce performance. تم تعطيل VU1 الفوري، هذا قد يقلل من اداء الجهاز. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Hack غير مفعل، ، هذا قد يقلل من اداء الجهاز. - + GPU Palette Conversion is enabled, this may reduce performance. GPU تم تمكين تحويل باليت ، قد يقلل من الأداء. - + Texture Preloading is not Full, this may reduce performance. التحميل المسبق للنسخة ليس كاملا، هذا قد يقلل من الأداء. - + Estimate texture region is enabled, this may reduce performance. منطقة النسيج المقدرة ممكنة، وهذا قد يقلل من الأداء. diff --git a/pcsx2-qt/Translations/pcsx2-qt_ca-ES.ts b/pcsx2-qt/Translations/pcsx2-qt_ca-ES.ts index c297cb5fb4ff73..dc453d15ff49be 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_ca-ES.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_ca-ES.ts @@ -80,32 +80,38 @@ A punt... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>El teu token d'accés de RetroAchievements ha deixat d'ésser vàlid.</strong> Has de tornar a introduir les teves credencials per a poder fer el seguimient dels teus assoliments. PCSX2 no enmagatzemarà la teva contrasenya, sinó que generarà i utilizarà un token d'accés. - + &Login &Inici de Sessió - + Logging in... S'està iniciant la sessió... - + Login Error Error d'inici de sessió - - Login failed. Please check your username and password, and try again. - Error d'inici de sessió. Si us plau, comprovi l'usuari i la contrasenya i provi de nou. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login failed. +Error: %1 + +Please check your username and password, and try again. - + Login failed. S'ha produït un error en iniciar la sessió. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Configuració Global - - - - + + Enable Achievements Habilitar Assoliments - - - Show Challenge Indicators - Mostra Indicadors de Repte - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Activar presència en RA - - - - + + Enable Hardcore Mode Activar Mode Extrem - - - Enable Leaderboards - Activar taules de classificació - - - + Test Unofficial Achievements Provar assoliments no oficials - - - Enable Test Mode - Activar el mode de testeig - - - - + + Enable Sound Effects Activar Efectes de So - + Notifications Notificacions - - - Show Notifications - Mostrar Notificacions - - - - Duration - Duració - - - - - - + + 5 seconds 5 segons - + Account Compte - - + + Login... Iniciar sessió... - + View Profile... Veure perfil... - + + Settings + Paràmetres + + + + + Enable Spectator Mode + Enable Spectator Mode + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Show Achievement Notifications + + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info Informació del joc - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 fa ús de RetroAchievements com una base de dades d'assoliments i pel procés de seguiment. Per a fer ús dels assoliments, registreu-vos per a obtenir un compte a <a href="https://retroachievements.org/"><span style=" text-decoration: underline; color:#4169e1;">retroachievements.org</span></a>.</p><p align="justify">Per a veure la llista d'assoliments dins del joc, prem la tecla d'accés ràpid per <span style=" font-weight:600;">Obrir Menu de Pausa</span> i tria <span style=" font-weight:600;">Assoliments</span> des del menú.</p></body></html> + - seconds - segons - - - - + + - - Unchecked Desactivat - - When enabled and logged in, PCSX2 will scan for achievements on game load. - En activar aquesta opció amb la sessió iniciada, PCSX2 buscarà assoliments en iniciar un joc. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. En activar aquesta opció, PCSX2 assumirà que tots els assoliments estan bloquejats i no enviarà cap notificació de desbloqueig al servidor. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. En activar aquesta opció. PCSX2 mostrarà assoliments de col·leccions no oficials. Tingui present que RetroAchievements no fa un seguiment d'aquests assoliments, per tant, es desbloquejaran constantment. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - En activar aquesta opció, es recopilarà informació de presència i s'enviarà als servidors de RetroAchievements quan sigui possible. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. El mode "Repte" per assoliments, incloent-hi el seguiment de la taula de classificació. Deshabilita desar l'estat, les trampes i les funcions de desacceleració. - - - - + + + + Checked Activat - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Activa el seguiment i enviament de taules de classificació en jocs que siguin compatibles. Si les taules de classificació estan desactivades, encara seràs capaç de veure la classificació i puntuació, però no s'enviarà cap puntuació personal. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Mostra missatges emergents en certes situacions, com en desbloquejar assoliments i enviar puntuacions a les taules de classificació. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Reprodueix efectes de so en certes situacions, com en desbloquejar assoliments i enviar puntuacions a les taules de classificació. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Mostra icones a la part inferior dreta de la pantalla quan hi ha un assoliment o un repte actiu. - - - - Notification Duration - Duració de la notificació + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Indica el temps (en segons) que romandrà en pantalla una notificació sobre assoliments. + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Reset System Reiniciar el sistema - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? El mode extrem no s'activarà fins que es reiniciï el sistema. Vol reiniciar el sistema ara? + + + + %n seconds + + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Nom d'usuari: %1 Token d'accès generat a %2. - + Logout Tancar la sessió - + Not Logged In. No s'ha iniciat sessió. - - - %1 seconds - %1 segons - Achievements - + Hardcore mode will be enabled on system reset. El mode Hardcore s'activarà amb el reinici del sistema. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. No es pot executar la característica «{0}» mentrestant el mode «hardcore» està actiu. ¿Desitges desactivar el mode «hardcore»? Si selecciones No, es desactivarà la característica «{0}». - + Hardcore mode is now enabled. El mode «hardcore» està activat. - + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Unofficial) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. El mode «hardcore» està desactivat. - + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (Mode Extrem) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Has aconseguit {0} de {1} assoliments, i {2} de {3} punts. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - Aquest joc no té assoliments. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} - - Leaderboard submission is enabled. - L'enviament de puntuació a les taules de classificació està actiu. + + Server error in {0}: +{1} + Server error in {0}: +{1} - + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Unknown + + + + Locked + Locked + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + Unofficial + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Unlocked: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Name + + + + Time + Time + + + + Score + Score + + + + Value + Value + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + Loading... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + Aquest joc no té assoliments. + + + Failed to read executable from disc. Achievements disabled. Error en llegir l'executable del disc. Assoliments desactivats. @@ -578,220 +815,220 @@ Token d'accès generat a %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Canviar aquestes opcions pot causar que el joc deixi de ser funcional. Modificar sota el seu propi risc. L'equip de PCSX2 no proveirà suport de configuracions si s'han modificat aquestes mateixes. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Mode d'arrodoniment: - - - + + + Nearest Més proper - - - + + + Negative Negatiu - - - + + + Positive Positiu - - - + + + Chop / Zero (Default) Eliminar / Zero (Per defecte) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Mode de limitació: - - + + None Cap - - - + + + Normal (Default) Normal (Per defecte) - + None ClampMode Cap - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preservar firma - + Full Complet - + Wait Loop Detection Detecció de bucles en espera - - + + Enable Recompiler Activar Recompilador - + Enable Fast Memory Access Activar Accés Ràpid a Memòria - + Enable Cache (Slow) Activar Caché (Lent) - + INTC Spin Detection Detecció de valors INTC - + Pause On TLB Miss Pausa en fallada TLB - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Unitats Vectorials (VU) - + VU1 Rounding Mode: Mode d'arrodoniment VU1: - + mVU Flag Hack Correcció de l'indicador de mVU - + Enable VU1 Recompiler Activa el recompilador del VU1 - + Enable VU0 Recompiler (Micro Mode) Activar Recompilador VU0 (Mode Micro) - - + + Extra Extra - + VU0 Clamping Mode: Mode de limitació VU0: - + VU0 Rounding Mode: Mode d'arrodoniment VU0: - + VU1 Clamping Mode: Mode de limitació VU1: - + I/O Processor (IOP, MIPS-I) Processador I/O (IOP, MIPS-I) - + Game Settings Configuració del joc - + Enable Game Fixes Activar Correccions de Joc - + Enable Compatibility Patches Activar Correccions de Compatibilitat - + Frame Rate Control Control de velocitat de fotogrames - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: Velocitat de Fotogrames PAL: - + NTSC Frame Rate: Velocitat de Fotogrames NTSC: - + PINE Settings Configuració PINE - + Slot: Ranura: - + Enable Habilita @@ -799,182 +1036,182 @@ Token d'accès generat a %2. AudioSettingsWidget - + Timestretch Settings Configuració Timestretch - + Sequence Length: Llargada de seqüència: - + 30 30 - + Seekwindow Size: Mida de finestra de cerca: - + 20 20 - + Overlap: Superposició: - + 10 10 - + Restore Defaults Restaurar valors predeterminats - + Volume Volum - + 100% 100% - + Mixing Settings Configuració de mescla - + Synchronization: Sincronització: - + TimeStretch (Recommended) TimeStretch (Recomanat) - + Async Mix (Breaks some games!) Mescla Asíncrona (Trenca alguns jocs!) - + None (Audio can skip.) Cap (Pot haver-hi talls d'àudio.) - + Expansion: Expansió: - + Stereo (None, Default) Estèreo (Cap, Per defecte) - + Quadraphonic - Quadraphonic + So quadrafònic - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Nivell ProLogic: - + None (Default) Cap (Per defecte) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Descodificació ProLogic (bàsica) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Descodificació ProLogic II (gigaherz) - + Target Latency: Latència objectiva: - + 60 ms 60 ms - + Output Settings Configuració de la sortida - + Output Module: Mode de Sortida: - + Output Latency: Latència de Sortida: - + 20 ms 20 ms - + Minimal Mínim - + Output Backend: «Back-end» de sortida: - + Maximum Latency: Latència Màxima: - + Output Device: Dispositiu de sortida: @@ -1162,17 +1399,22 @@ Token d'accès generat a %2. Nova versió: - + + Download Size: + Download Size: + + + Download and Install... Baixa i instal·la... - + Skip This Update Omet aquesta actualització - + Remind Me Later Recorda-m'ho més tard @@ -1182,17 +1424,17 @@ Token d'accès generat a %2. Error de l'actualitzador - + <h2>Changes:</h2> <h2>Canvis:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Advertència sobre els desats ràpids</h2><p>La instalació d'aquesta actualizació farà que els teus desats ràpids <b>deixin d'ésser compatibles</b>. Assegura't d'haver desat els teus avenços en una Memory Card abans d'instal·lar aquesta actualizació, o perdràs els esmentats avenços.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Advertència sobre la configuració</h2><p>La instal·lació d'aquesta actualizació reiniciarà la configuració del programa. Recorda que hauràs de tornar a canviar els ajustaments del programa un cop s'hagi aplicat aquesta actualizació.</p> @@ -1233,6 +1475,11 @@ Token d'accès generat a %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... Carregant... @@ -1240,63 +1487,63 @@ Token d'accès generat a %2. BIOSSettingsWidget - + BIOS Directory Directori de BIOS - + PCSX2 will search for BIOS images in this directory. PCSX2 cercarà imatges de la BIOS en aquest directori. - + Browse... Cercar... - + Reset Reinicia - + BIOS Selection Selecció de BIOS - - Open in Explorer... - Obrir a l'explorador... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List Actualitza la llista - + Filename Nom del Fitxer - + Version Versió - + Options and Patches Opcions i pegats - + Fast Boot Arrencada ràpida - + Fast Forward Boot Accelerar la arrencada @@ -1424,91 +1671,84 @@ Token d'accès generat a %2. BreakpointModel - + Execute Executar - - No Condition - Sense Condició - - - - + + -- -- - - + Enabled Habilitat - - + Disabled Deshabilitat - + Read Llegeix - + Write(C) (C) = changes, as in "look for changes". Escriu(C) - + Write Escriu - + TYPE Warning: limited space available. Abbreviate if needed. TIPUS - + OFFSET Warning: limited space available. Abbreviate if needed. DESPLAÇ. - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. MIDA/ETIQUETA - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCCIÓ - + CONDITION Warning: limited space available. Abbreviate if needed. CONDICIÓ - + HITS Warning: limited space available. Abbreviate if needed. EXECUCIONS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - HABILITAT + X @@ -1519,14 +1759,14 @@ Token d'accès generat a %2. El disc de joc es troba en una unitat extraïble: poden produir-se problemes de rendiment, com estirades i bloquejos. - + Saving CDVD block dump to '{}'. Desant bolcat de bloc del CDVD a «{}». Audio - Àudio + So @@ -1555,32 +1795,32 @@ Token d'accès generat a %2. ControllerBindingWidget - + Virtual Controller Type Tipus de comandament virtual - + Bindings Assignacions - + Settings Configuració - + Macros Macros - + Automatic Mapping Assignació automàtica - + Clear Mapping Esborrar assignacions @@ -1620,146 +1860,146 @@ Token d'accès generat a %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Botons de direcció - - - + + + Down Avall - - - + + + Left Esquerra - - - + + + Up Amunt - - - + + + Right Dreta - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Analògic esquerre - + Large Motor Motor gran - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Botons d'acció - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Creu/X - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Quadrat - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangle - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cercle - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Analògic dret - + Small Motor Motor petit - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Modificador de pressió - + Analog Analògic @@ -1767,77 +2007,72 @@ Token d'accès generat a %2. ControllerBindingWidget_Guitar - - Form - Formulari - - - + Yellow Groc - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start Start - + Red Vermell - + Green Verd - + Orange Taronja - + Select Select - + Strum Up Barra de toc cap amunt - + Strum Down Barra de toc cap avall - + Blue Blau - + Whammy Bar Barra de vibració - + Tilt Inclinació @@ -1863,123 +2098,133 @@ Token d'accès generat a %2. ControllerGlobalSettingsWidget - + SDL Input Source Origen d'entrada SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). L'origen d'entrada SDL és compatible amb la majoria de comandaments i ofereix funcionalitats avançades per als comandaments DualShock 4/DualSense en el mode Bluetooth (vibració/control de la llum led). - + Enable SDL Input Source Habilitar origen d'entrada SDL - + DualShock 4 / DualSense Enhanced Mode Mode millorat per a DualShock 4/DualSense - + XInput Source Origen X-Input - + Enable XInput Input Source Habilitar origen d'entrada X-Input - + DInput Source Origen D-Input - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. L'origen D-Input ofereix compatibilitat per a comandaments obsolets que no són compatibles amb X-Input. Es recomana accedir amb aquests comandaments mitjançant SDL, però si no són compatibles amb SDL, pots emprar DirectInput. - + Enable DInput Input Source Habilitar origen d'entrada D-Input - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Configuració del perfil - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Al activar aquesta opció es podràn assignar tecles d'accés ràpid en aquest perfil d'entrada, que s'utilizaràn en lloc de les tecles globals. Les tecles d'accés ràpid es comparteixen sempre entre tots els perfils de manera predeterminada. - + Use Per-Profile Hotkeys Utilitzar tecles d'accés ràpid específiques per al perfil - - + + Controller LED Settings Configuració LED dels comandaments - + Enable SDL Raw Input Habilitar entrada SDL sense processar - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. L'origen X-Input ofereix compatibilitat per als comandaments de Xbox 360/Xbox One/Xbox Series, així com per aquells comandaments de tercers que tinguin implementat el protocol X-Input. - + Controller Multitap Multitap de comandaments - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Els multitap permeten connectar fins a vuit comandaments a la consola. Un multitap proporciona cuatre ports. No tots els jocs són compatibles amb els multitap. - + Multitap on Console Port 1 Multitap en el port del comandament 1 - + Multitap on Console Port 2 Multitap en el port del comandament 2 - + Mouse/Pointer Source Origen del ratolí/apuntador - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 et permet emprar el ratolí per a simular el moviment dels joysticks analògics. - + Settings... Configuració... - + Enable Mouse Mapping Activar assignacions del ratolí - + Detected Devices Dispositius detectats @@ -2015,58 +2260,58 @@ Token d'accès generat a %2. ControllerMacroEditWidget - + Binds/Buttons Assignacions/Botons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Selecciona els botons que desitges activar amb aquesta macro. S'activaràn tots els botons alhora. - + Pressure Pressió - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Aquest control lliscant ajusta la força simulada en aquells botons sensibles a la pressió quan s'activi la macro. - - + + 100% 100% - + Trigger Disparador - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Selecciona el disparador que activarà aquesta macro. Pot ésser un botó o una combinació de botons (simultànea). Prem el botó mentre mantens pressionada la tecla Mayús per assignar diversos disparadors. - + Deadzone: Zona morta: - + Frequency Freqüència - + Macro will toggle every N frames. La macro s'alternarà cada X fotogrames. - + Set... Establir... @@ -2150,65 +2395,65 @@ Not Configured/Buttons configured <html><head/><body><p><span style=" font-weight:700;">Mouse Mapping Settings</span><br/>These settings fine-tune the behavior when mapping a mouse to the emulated controller.</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">Mouse Mapping Settings</span><br/>These settings fine-tune the behavior when mapping a mouse to the emulated controller.</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Configuració d'assignacions del ratolí </span><br/>Aquestes configuracions permeten calibrar el funcionament del ratolí respecte del comandament emulat.</p></body></html> Inertia - Inertia + Inèrcia X Dead Zone - X Dead Zone + Zona morta X Y Dead Zone - Y Dead Zone + Zona morta Y - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller Settings - + Editing Profile: Editing Profile: - + New Profile New Profile - + Load Profile Load Profile - + Delete Profile Delete Profile - - + + Restore Defaults Restore Defaults - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2464,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error - Error + Error - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2505,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2519,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2537,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2551,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2560,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. - Compartit + Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2406,204 +2651,242 @@ You cannot undo this action. Functions - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Refresh - + Filter Filter - + Memory Search Memory Search - + End End - + Value Value - + Start Start - + Type Tipus - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Search - + Memory Memory - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New Nou - + Edit Edita - - - + + + Copy Copia - + Delete Esborra - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2659,22 +2942,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet Device: - + Ethernet Device Type: Ethernet Device Type: - + Intercept DHCP Intercept DHCP @@ -2684,135 +2967,130 @@ You cannot undo this action. Enabled - + Enabled InterceptDHCP Enabled - + Subnet Mask: Subnet Mask: - + Gateway Address: Gateway Address: - - + + Auto Auto - + Intercept DHCP: Intercept DHCP: - + PS2 Address: PS2 Address: - + DNS1 Address: DNS1 Address: - + DNS2 Address: DNS2 Address: - + Internal DNS Internal DNS - + Add Add - + Delete Delete - + Export Export - + Import Import - + Per game Per game - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Enabled - + Hard Disk Drive Hard Disk Drive - + HDD File: HDD File: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD Enabled - + Browse Browse - + Create Image Create Image - - - - - PCAP Bridged @@ -2845,7 +3123,7 @@ You cannot undo this action. - + Use Global Setting [%1] Use Global Setting [%1] @@ -2865,78 +3143,78 @@ You cannot undo this action. Address - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Exported Successfully - + Failed to open file Failed to open file - + No Hosts in file No Hosts in file - + Imported Successfully Imported Successfully - - + + Per Game Host list Per Game Host list - + Copy global settings? Copy global settings? - + Delete per game host list? Delete per game host list? - + HDD Image File HDD Image File - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Overwrite File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3223,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2968,69 +3246,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Browse... - - + + Open... Open... @@ -3043,31 +3321,55 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run Run - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause - Pause + Pausa @@ -3078,149 +3380,174 @@ Do you want to overwrite? Disassembly - + Copy Address Copy Address - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3228,66 +3555,62 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... - Add Game Directory... + Afegeix un camí... - + Scan For New Games - Scan For New Games + Cerca jocs nous EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3295,192 +3618,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled Disabled - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3568,12 +3891,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3637,45 +3970,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3683,79 +4011,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3763,2082 +4091,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection BIOS Selection - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders - Folders + Carpetes - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics - Graphics + Gràfics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Carrega un estat - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - + Save State - Save State + Desa l'estat - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5847,2221 +6195,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selecciona com s'aplicarà el filtratge anisotròpic per a renderitzar textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List - Game List + Llista de jocs - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File - Start File + Inicia un fitxer - + Start BIOS - Start BIOS + Inicia el BIOS - + Start Disc - Start Disc + Inicia un disc - + Exit - Exit + Surt - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements - Achievements + Assoliments - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc - Change Disc + Canvia el disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games - Scan For New Games + Cerca jocs nous - + Rescan All Games - Rescan All Games - - - - Start Download - Start Download + Torna a cercar tots els jocs - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects - Sound Effects - - - - Show Challenge Indicators - Show Challenge Indicators + Sound Effects - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8074,7 +8323,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8129,12 +8378,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8190,7 +8439,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8201,266 +8450,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Tipus - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8468,74 +8859,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games - Scan For New Games + Cerca jocs nous - + Rescan All Games - Rescan All Games + Torna a cercar tots els jocs + + + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. - + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8544,12 +8961,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8557,32 +8974,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List - Game List + Llista de jocs - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8608,17 +9025,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8636,7 +9053,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8655,399 +9072,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Tipus: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9055,62 +9483,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9120,12 +9548,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9136,92 +9564,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9229,355 +9657,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9585,79 +10018,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9668,606 +10096,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10277,69 +10715,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10408,8 +10840,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10461,6 +10893,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10520,11 +10953,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10576,6 +11019,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10591,11 +11089,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10633,7 +11126,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10722,8 +11215,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10865,11 +11358,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10920,11 +11408,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11042,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11082,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11135,29 +11623,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11165,405 +11663,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics - Graphics + Gràfics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System - System + Sistema - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11721,6 +12219,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11748,137 +12336,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12071,7 +12659,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12128,21 +12716,21 @@ Right click to clear binding - - + + Change Disc - Change Disc + Canvia el disc - + Load State - Load State + Carrega un estat Save State - Save State + Desa l'estat @@ -12192,27 +12780,27 @@ Right click to clear binding Start &File... - Start &File... + Inicia un &fitxer... Start &Disc... - Start &Disc... + Inicia un &disc... Start &BIOS - Start &BIOS + Inicia el &BIOS &Scan For New Games - &Scan For New Games + Cerca &jocs nous &Rescan All Games - &Rescan All Games + &Torna a cercar tots els jocs @@ -12222,12 +12810,12 @@ Right click to clear binding Shut Down &Without Saving - Shut Down &Without Saving + Apaga &sense desar &Reset - &Reset + &Reinicia @@ -12237,37 +12825,37 @@ Right click to clear binding E&xit - E&xit + S&urt &BIOS - &BIOS + &BIOS Emulation - Emulation + Emulació &Controllers - &Controllers + &Comandaments &Hotkeys - &Hotkeys + &Tecles de drecera &Graphics - &Graphics + &Gràfics A&chievements - A&chievements + Asso&liments @@ -12324,27 +12912,27 @@ Right click to clear binding Change Disc... In Toolbar - Change Disc... + Canvia el disc... &Audio - &Audio + &So Game List - Game List + Llista de jocs Interface - Interface + Interfície Add Game Directory... - Add Game Directory... + Afegeix un camí... @@ -12354,22 +12942,22 @@ Right click to clear binding From File... - From File... + Des d'un fitxer... From Device... - From Device... + Des d'un dispositiu... From Game List... - From Game List... + Des de la llista... Remove Disc - Remove Disc + Treu el disc @@ -12385,19 +12973,19 @@ Right click to clear binding Start File In Toolbar - Start File + Inicia un fitxer Start Disc In Toolbar - Start Disc + Inicia un disc Start BIOS In Toolbar - Start BIOS + Inicia el BIOS @@ -12409,7 +12997,7 @@ Right click to clear binding Reset In Toolbar - Reset + Reinicia @@ -12421,19 +13009,19 @@ Right click to clear binding Load State In Toolbar - Load State + Carrega un estat Save State In Toolbar - Save State + Desa l'estat Controllers In Toolbar - Controllers + Comandaments @@ -12450,17 +13038,17 @@ Right click to clear binding &Memory Cards - &Memory Cards + &Memory Cards &Network && HDD - &Network && HDD + &Xarxa i disc dur &Folders - &Folders + &Carpetes @@ -12496,7 +13084,7 @@ Right click to clear binding Game &Properties - Game &Properties + Propietats del &joc @@ -12640,13 +13228,13 @@ Right click to clear binding - + Start Big Picture Mode - Start Big Picture Mode + Inicia el mode Big Picture - + Big Picture In Toolbar Big Picture @@ -12658,7 +13246,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12669,7 +13257,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12684,27 +13272,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12717,168 +13305,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File - Start File + Inicia un fitxer - + Start Disc - Start Disc + Inicia un disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12893,97 +13486,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12992,12 +13585,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13010,70 +13603,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... - Load From File... + Carrega des d'un fitxer... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... - Delete Save States... + Suprimeix les captures d'estat... - + Undo Load State - Undo Load State + Desfés la càrrega de l'estat - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) - Load Slot %1 (%2) + Carrega la ranura %1 (%2) - - + + Delete Save States - Delete Save States + Suprimeix les captures d'estat - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13082,42 +13675,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... - Save To File... + Desa en un fitxer... - + Empty Empty - + Save Slot %1 (%2) - Save Slot %1 (%2) + Desa a la ranura %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13125,8 +13718,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13207,6 +13800,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13257,11 +13851,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13387,103 +13976,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards - Memory Cards + Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Tipus - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings - Settings + Paràmetres - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13653,58 +14243,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13731,7 +14321,7 @@ This action cannot be reversed, and you will lose any saves on the card. Save State Indicates that the input recording that is about to be started will be recorded when an accompanying save state is saved. - Save State + Desa l'estat @@ -13754,10 +14344,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13953,6 +14548,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13969,14 +14574,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14023,13 +14628,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14100,40 +14698,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14151,13 +14772,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14362,7 +14983,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14412,222 +15032,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14640,12 +15281,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14658,33 +15299,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14770,8 +15393,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15038,97 +15661,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15334,6 +15957,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15365,6 +15993,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15380,6 +16014,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15400,6 +16040,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15455,6 +16101,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15655,6 +16310,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15665,6 +16340,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16164,117 +16845,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16282,67 +16963,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16350,71 +17031,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16423,29 +17104,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16453,27 +17134,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Tipus de dispositiu - + Bindings Bindings - + Settings - Settings + Paràmetres - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16511,32 +17192,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16553,197 +17234,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. La Caché EE està activada, això reduirà el rendiment significativament. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_cs-CZ.ts b/pcsx2-qt/Translations/pcsx2-qt_cs-CZ.ts index 1482cce5ae0ecb..80d693a997ef10 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_cs-CZ.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_cs-CZ.ts @@ -80,32 +80,38 @@ Připraveno... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Přihlašovací token RetroAchievements již není platný.</strong> Musíte znovu zadat vaše přihlašovací údaje, aby bylo možné zaznamenat úspěchy. Vaše heslo nebude uloženo v PCSX2, přístupový token bude vygenerován a použit. - + &Login &Přihlášení - + Logging in... Přihlašování... - + Login Error Chyba přihlášení - - Login failed. Please check your username and password, and try again. - Přihlášení se nezdařilo. Zkontrolujte prosím své uživatelské jméno a heslo a zkuste to znovu. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login failed. +Error: %1 + +Please check your username and password, and try again. - + Login failed. Přihlášení se nezdařilo. @@ -113,270 +119,503 @@ AchievementSettingsWidget - - Global Settings - Globální nastavení - - - - + + Enable Achievements Povolit Achievementy - - - Show Challenge Indicators - Zobrazovat indikátor výzvy - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Enable RA's Rich Presence - - - - + + Enable Hardcore Mode Povolit hardcore mód - - - Enable Leaderboards - Povolit žebříčky - - - + Test Unofficial Achievements Testování neoficiálních Achievementů - - - Enable Test Mode - Povolit testovací režim - - - - + + Enable Sound Effects Povolit zvukové efekty - + Notifications Upozornění - - - Show Notifications - Zobrazovat oznámení - - - - Duration - Délka zobrazení - - - - - - + + 5 seconds 5 sekund - + Account Účet - - + + Login... Přihlášení... - + View Profile... Zobrazit Profil... - + + Settings + Settings + + + + + Enable Spectator Mode + Enable Spectator Mode + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Show Achievement Notifications + + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info Informace o Hře - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + - seconds - sekund - - - - + + - - Unchecked Nezaškrtnuto - - When enabled and logged in, PCSX2 will scan for achievements on game load. - PCSX2 vyhledá achievementy při načtení hry, pokud je tato možnost povolená a jste přihlášení. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Pokud je tato možnost povolená, bude PCSX2 předpokládat, že jsou všechny achievementy zamknuté a nebude odesílat žádné upozornění o odemčení na server. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Pokud je povoleno, PCSX2 zobrazí achievementy z neoficiálních sad. Vezměte na vědomí, že tyto achievementy nejsou sledovány RetroAchievements, takže se odemknou pokaždé. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Pokud je povoleno, informace o bohaté přítomnosti budou shromažďovány a odeslány na servery RetroAchievements, kde jsou podporovány. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. + "Režim výzvy" pro úspěchy, včetně sledování žebříčků. Zakáže funkce save state, cheatů a zpomalení. - - - - + + + + Checked Zkontrolováno - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Povolí sledování a odesílaní žebříčkú v podporovaných hrách. Pokud jsou žebříčky zakázány, budete stále moci zobrazovat žebříčky a skóre, ale žádné skóre nebudou nahrávány. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Přehrává zvukové efekty pro události, jako je odemknutí achievementú a přidávání žebříčků. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - - - - Notification Duration - Notification Duration + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - The duration, in seconds, an achievement popup notification will remain on screen. + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - + Reset System Resetovat Systém - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore režim nebude povolen dokud systém nebude restartován. Chcete nyní restartovat systém? + + + + %n seconds + + %n seconds + %n seconds + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. - Username: %1 -Login token generated on %2. + Uživatelské jméno: %1 +Přihlašovací token vygenerován %2. - + Logout Odhlásit se - + Not Logged In. Nepřihlášen. - - - %1 seconds - %1 seconds - Achievements - + Hardcore mode will be enabled on system reset. - Hardcore mode will be enabled on system reset. + Hardcore režim bude zapnut při resetu systému. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. + Akci {0} nelze provést, pokud je aktivní Hardcore režim. Chcete zakázat Hardcore režim? Akce {0} bude zrušena, pokud zvolíte Ne. - + Hardcore mode is now enabled. - Hardcore mode is now enabled. + Hardcore režim je nyní zapnut. + + + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Unofficial) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. - + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. - Hardcore mode is now disabled. + Hardcore režim je nyní vypnut. + + + + Confirm Hardcore Mode + Confirm Hardcore Mode - + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (Hardcore Režim) - - You have earned {0} of {1} achievements, and {2} of {3} points. - You have earned {0} of {1} achievements, and {2} of {3} points. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - Tato hra nemá žádné achievementy. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Unknown + + + + Locked + Locked + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + Unofficial + + + + Recently Unlocked + Recently Unlocked - - Leaderboard submission is enabled. - Leaderboard submission is enabled. + + Active Challenges + Active Challenges - + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Unlocked: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Name + + + + Time + Time + + + + Score + Score + + + + Value + Value + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + Loading... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + Tato hra nemá žádné achievementy. + + + Failed to read executable from disc. Achievements disabled. - Failed to read executable from disc. Achievements disabled. + Nepodařilo se přečíst spustitelný soubor z disku. Achievementy zakázány. @@ -557,17 +796,17 @@ Login token generated on %2. Enable Game Fixes - Enable Game Fixes + Zapnout opravy her Automatically loads and applies fixes to known problematic games on game start. - Automatically loads and applies fixes to known problematic games on game start. + Automaticky načte a použije opravy u problematických her při jejich spuštění. Enable Compatibility Patches - Enable Compatibility Patches + Zapnout záplaty kompatibility @@ -578,220 +817,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). - EmotionEngine (MIPS-IV) + EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Režím Zaokrouhlovaní: - - - + + + Nearest Nearest - - - + + + Negative Negativní - - - + + + Positive Pozitivní - - - + + + Chop / Zero (Default) Chop / Zero (Default) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Clamping Mode: - - + + None - None + Žádný - - - + + + Normal (Default) - Normal (Default) + Normální (výchozí) - + None ClampMode - None + Žádný - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preserve Sign - + Full - Full + Úplný - + Wait Loop Detection - Wait Loop Detection + Detekce čekací smyčky - - + + Enable Recompiler Enable Recompiler - + Enable Fast Memory Access Enable Fast Memory Access - + Enable Cache (Slow) - Enable Cache (Slow) + Povolit Vyrovnávací Paměť (Pomalé) - + INTC Spin Detection INTC Spin Detection - + Pause On TLB Miss Pause On TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: Režím Zaokrouhlovaní VU1: - + mVU Flag Hack Hack mVU značky - + Enable VU1 Recompiler Povolit Rekompilátor VU1 - + Enable VU0 Recompiler (Micro Mode) Povolit Rekompilátor VU0 (Mikro Režim) - - + + Extra Extra - + VU0 Clamping Mode: VU0 Clamping Mode: - + VU0 Rounding Mode: VU0 Rounding Mode: - + VU1 Clamping Mode: Režím Zaokrouhlovaní VU1: - + I/O Processor (IOP, MIPS-I) I/O Procesor (IOP, MIPS-I) - + Game Settings Nastavení hry - + Enable Game Fixes Zapnout opravy her - + Enable Compatibility Patches Zapnout záplaty kompatibility - + Frame Rate Control Ovládání snímkovací frekvence - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL snímkovací frekvence: - + NTSC Frame Rate: NTSC snímkovací frekvence: - + PINE Settings PINE Settings - + Slot: Sloty: - + Enable Zapnout @@ -799,182 +1038,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings Nastavení časového roztažení - + Sequence Length: Délka sekvence: - + 30 30 - + Seekwindow Size: Velikost vyhledávacího okna: - + 20 20 - + Overlap: Přesah: - + 10 10 - + Restore Defaults Obnovit výchozí - + Volume Hlasitost - + 100% 100% - + Mixing Settings Nastavení mixu - + Synchronization: Synchronizace: - + TimeStretch (Recommended) Časové roztažení (doporučeno) - + Async Mix (Breaks some games!) Nesynchronní mixování (Může rozbít některé hry) - + None (Audio can skip.) Žádné (Audio může přeskakovat) - + Expansion: Rozšíření: - + Stereo (None, Default) Stereo (Žádné, Výchozí) - + Quadraphonic Quadraphonic - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Level: - + None (Default) Žádné (Výchozí) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Decoding (basic) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II Decoding (gigaherz) - + Target Latency: Požadovaná latence: - + 60 ms 60 ms - + Output Settings Nastavení výstupu - + Output Module: Výstupní modul: - + Output Latency: Výstupní latence: - + 20 ms 20 ms - + Minimal Minimální - + Output Backend: Výstupní backend: - + Maximum Latency: Maximální latence: - + Output Device: Výstupní zařízení: @@ -1081,60 +1320,60 @@ Login token generated on %2. 30 ms - 30 ms + 30 ms Seek Window Size Seek Window: the region of samples (window) the audio stretching algorithm is allowed to search. - Seek Window Size + Velikost vyhledávacího okna Overlap - Overlap + Přesah 10 ms - 10 ms + 10 ms Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. - Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. + Předem aplikuje modifikátor hlasitosti na zvukový výstup hry před odesláním do vašeho počítače. Use Global Setting [%1] - Use Global Setting [%1] + Použít Globální Nastavení [%1] %1% Variable value that indicates a percentage. Preserve the %1 variable, adapt the latter % (and/or any possible spaces) to your language's ruleset. - %1% + %1% N/A Preserve the %1 variable, adapt the latter ms (and/or any possible spaces in between) to your language's ruleset. - N/A + N/A %1 ms - %1 ms + %1 ms Average Latency: %1 ms (%2 ms buffer + %3 ms output) - Average Latency: %1 ms (%2 ms buffer + %3 ms output) + Průměrná Odezva: %1 ms (výstup%2 ms buffer + %3 ms výstup) Average Latency: %1 ms (minimum output latency unknown) - Average Latency: %1 ms (minimum output latency unknown) + Průměrná odezva: %1 ms (minimální výstupní odezva neznámá) @@ -1144,159 +1383,169 @@ Login token generated on %2. Automatic Updater - Automatic Updater + Automatické aktualizace Update Available - Update Available + Je k dispozici aktualizace Current Version: - Current Version: + Současná verze: New Version: - New Version: + Nová verze: - - Download and Install... - Download and Install... + + Download Size: + Download Size: - Skip This Update - Skip This Update + Download and Install... + Stáhnout a Nainstalovat... + Skip This Update + Přeskočit tuto aktualizaci + + + Remind Me Later - Remind Me Later + Připomenout později Updater Error - Updater Error + Chyba aktualizace - + <h2>Changes:</h2> - <h2>Changes:</h2> + <h2>Změny:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> + <h2>Save State Upozornění</h2><p>Instalace této aktualizace způsobí to, že vaše Save Staty se stanou<b>Nekompatibilními</b>. Ujistěte se prosím, že jste si uložili hru na Paměťovou Kartu před instalovaním této aktualizace. Pokud tak neučiníte, ztratíte postup.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> - <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> + <h2>Varovaní ohledně Nastavení</h2><p>Instalace této aktualizace obnoví výchozí konfigurace programu. Berte prosím na vědomí, že budete muset překonfigurovat své nastavení po aktualizaci.</p> Savestate Warning - Savestate Warning + Varovaní ohledně Save Statů <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> - <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> + <h1>VAROVÁNÍ</h1><p style='font-size:12pt;'>Instalace této aktualizace učiní vaše <b>Save Staty nekompatibilními</b>, <i>Ujistěte se, že před pokračováním</i>uložíte veškerý svůj postup do paměťových karet.</p><p>Přejete si pokračovat?</p> Downloading %1... - Downloading %1... + Stahování %1... Cancel - Cancel + Storno No updates are currently available. Please try again later. - No updates are currently available. Please try again later. + Nejsou k dispozici žádné aktualizace. Zkuste to prosím později. Current Version: %1 (%2) - Current Version: %1 (%2) + Současná verze: %1 (%2) New Version: %1 (%2) - New Version: %1 (%2) + Nová verze: %1 (%2) + Download Size: %1 MB + Download Size: %1 MB + + + Loading... - Loading... + Načítání... BIOSSettingsWidget - + BIOS Directory - BIOS Directory + BIOS Složka - + PCSX2 will search for BIOS images in this directory. - PCSX2 will search for BIOS images in this directory. + PCSX2 bude v této složce hledat BIOS soubory. - + Browse... Procházet... - + Reset Resetovat - + BIOS Selection Výběr BIOSu - - Open in Explorer... - Otevřít v Průzkumníku... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List Aktualizovat seznam - + Filename Název souboru - + Version Verze - + Options and Patches Možnosti a Záplaty - + Fast Boot Rychlé spouštění - + Fast Forward Boot Zrychlený boot @@ -1327,12 +1576,12 @@ Login token generated on %2. Create / Modify Breakpoint - Create / Modify Breakpoint + Vytvořit / Upravit Breakpoint Type - Type + Typ @@ -1344,42 +1593,42 @@ Login token generated on %2. Memory - Memory + Paměť Address - Address + Adresa 0 - 0 + 0 Read - Read + Čtení Write - Write + Zápis Change - Change + Změna Size - Size + Velikost 1 - 1 + 1 @@ -1408,107 +1657,100 @@ Login token generated on %2. Invalid address "%1" - Invalid address "%1" + Neplatná adresa "%1" Invalid condition "%1" - Invalid condition "%1" + Neplatná podmínka "%1" Invalid size "%1" - Invalid size "%1" + Neplatná velikost "%1" BreakpointModel - + Execute Provést - - No Condition - Žádná podmínka - - - - + + -- -- - - + Enabled Zapnuto - - + Disabled Vypnuto - + Read Načíst - + Write(C) (C) = changes, as in "look for changes". - Write(C) + Zápis (C) - + Write Zápis - + TYPE Warning: limited space available. Abbreviate if needed. Typ - + OFFSET Warning: limited space available. Abbreviate if needed. - OFFSET + POSUN - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. - SIZE / LABEL + VELIKOST / POPIS - + INSTRUCTION Warning: limited space available. Abbreviate if needed. - INSTRUCTION + POKYN - + CONDITION Warning: limited space available. Abbreviate if needed. CONDITION - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1519,7 +1761,7 @@ Login token generated on %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - + Saving CDVD block dump to '{}'. Saving CDVD block dump to '{}'. @@ -1555,32 +1797,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type Virtual Controller Type - + Bindings Bindings - + Settings Settings - + Macros Macros - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -1620,146 +1862,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. D-Pad - - - + + + Down Down - - - + + + Left Left - - - + + + Up Up - - - + + + Right Right - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Left Analog - + Large Motor Large Motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Face Buttons - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cross - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Square - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangle - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Circle - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Right Analog - + Small Motor Small Motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Pressure Modifier - + Analog Analog @@ -1767,79 +2009,74 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow Yellow - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start - Start + Start - + Red - Red + Červená - + Green - Green + Zelená - + Orange - Orange + Oranžová - + Select - Select + Select - + Strum Up - Strum Up + Břinknout Směrem Nahoru - + Strum Down - Strum Down + Břinknout Směrem Dolů - + Blue - Blue + Modrá - + Whammy Bar - Whammy Bar + Whammy Bar - + Tilt - Tilt + Naklonění @@ -1847,141 +2084,151 @@ Login token generated on %2. Restore Default Settings - Restore Default Settings + Obnovit výchozí nastavení Browse... - Browse... + Procházet... Select File - Select File + Vybrat Soubor ControllerGlobalSettingsWidget - + SDL Input Source - SDL Input Source + Vstupní zdroj SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). + Vstupní zdroj SDL podporuje většinu controllerů a poskytuje pokročilé funkce pro DualShock 4 / DualSense ovladače v režimu Bluetooth (Vibrace / Ovládaní LED světel). - + Enable SDL Input Source - Enable SDL Input Source + Povolit vstupní zdroj SDL - + DualShock 4 / DualSense Enhanced Mode - DualShock 4 / DualSense Enhanced Mode + DualShock 4 / DualSense Vylepšený režim - + XInput Source - XInput Source + Vstupní zdroj XInput - + Enable XInput Input Source - Enable XInput Input Source + Povolit vstupní zdroj XInput - + DInput Source - DInput Source + Vstupní zdroj DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. + Zdroj DInput poskytuje podporu pro starší ovladače, které nepodporují XInput. Doporučuje se přístup k těmto ovladačům přes SDL, ale DirectInput může být použit, pokud nejsou kompatibilní s SDL. - + Enable DInput Input Source - Enable DInput Input Source + Povolit vstupní zdroj DInput + + + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion - + Profile Settings - Profile Settings + Nastavení profilu - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. + Pokud je tato možnost povolena, klávesové zkratky mohou být nastaveny v tomto vstupním profilu a budou použity namísto globálních zkratek. Ve výchozím nastavení jsou klávesové zkratky vždy sdíleny mezi všemi profily. - + Use Per-Profile Hotkeys - Use Per-Profile Hotkeys + Použití klávesových zkratek pro každý profil zvlášť - - + + Controller LED Settings - Controller LED Settings + Nastavení LED světel ovladače - + Enable SDL Raw Input - Enable SDL Raw Input + Zapnout SDL raw vstup - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. + Zdroj XInput poskytuje podporu pro ovladače Xbox 360 / Xbox One / Xbox Series a ovladače třetích stran, které používají XInput protokol. - + Controller Multitap - Controller Multitap + Multitap pro ovladače - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. + Multitap umožňuje připojení až 8 ovladačů. Každý multitap poskytuje 4 porty. Multitap není podporován všemi hrami. - + Multitap on Console Port 1 - Multitap on Console Port 1 + Multitap na portu konzole 1 - + Multitap on Console Port 2 - Multitap on Console Port 2 + Multitap na portu konzole 2 - + Mouse/Pointer Source - Mouse/Pointer Source + Zdroj myši/ukazatele - + PCSX2 allows you to use your mouse to simulate analog stick movement. - PCSX2 allows you to use your mouse to simulate analog stick movement. + PCSX2 vám umožňuje použít myš k simulaci pohybu analogové páčky. - + Settings... - Settings... + Nastavení... - + Enable Mouse Mapping - Enable Mouse Mapping + Povolit mapování myši - + Detected Devices - Detected Devices + Detekovaná zařízení @@ -1989,84 +2236,84 @@ Login token generated on %2. Controller LED Settings - Controller LED Settings + Nastavení LED světel ovladače SDL-0 LED - SDL-0 LED + SDL-0 LED SDL-1 LED - SDL-1 LED + SDL-1 LED SDL-2 LED - SDL-2 LED + SDL-2 LED SDL-3 LED - SDL-3 LED + SDL-3 LED ControllerMacroEditWidget - + Binds/Buttons - Binds/Buttons + Bindy/Tlačítka - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. + Vyberte tlačítka, která chcete spustit tímto makrem. Všechna tlačítka jsou aktivována současně. - + Pressure - Pressure + Síla stisku - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. + Pro tlačítka, která jsou citlivá na stisk, tento posuvník určuje, kolik síly bude simulováno když bude makro aktivní. - - + + 100% - 100% + 100% - + Trigger - Trigger + Spouštěč - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. + Vyberte spouštěč pro aktivaci tohoto makra. Toto může být jedno tlačítko, nebo kombinace tlačítek. Klikněte při stisku tlačítka Shift pro více spouštěčů. - + Deadzone: - Deadzone: + Mrtvá zóna: - + Frequency Frequency - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Set... @@ -2169,46 +2416,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller Settings - + Editing Profile: Editing Profile: - + New Profile New Profile - + Load Profile Load Profile - + Delete Profile Delete Profile - - + + Restore Defaults Restore Defaults - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2466,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Error - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2507,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2521,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2539,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2553,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2562,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2406,204 +2653,242 @@ You cannot undo this action. Functions - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Refresh - + Filter Filter - + Memory Search Memory Search - + End End - + Value Value - + Start Start - + Type Type - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Search - + Memory Memory - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New New - + Edit Edit - - - + + + Copy Copy - + Delete Delete - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2659,22 +2944,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet Device: - + Ethernet Device Type: Ethernet Device Type: - + Intercept DHCP Intercept DHCP @@ -2684,135 +2969,130 @@ You cannot undo this action. Enabled - + Enabled InterceptDHCP Enabled - + Subnet Mask: Subnet Mask: - + Gateway Address: Gateway Address: - - + + Auto Auto - + Intercept DHCP: Intercept DHCP: - + PS2 Address: PS2 Address: - + DNS1 Address: DNS1 Address: - + DNS2 Address: DNS2 Address: - + Internal DNS Internal DNS - + Add Add - + Delete Delete - + Export Export - + Import Import - + Per game Per game - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Enabled - + Hard Disk Drive Hard Disk Drive - + HDD File: HDD File: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD Enabled - + Browse Browse - + Create Image Create Image - - - - - PCAP Bridged @@ -2845,7 +3125,7 @@ You cannot undo this action. - + Use Global Setting [%1] Use Global Setting [%1] @@ -2865,78 +3145,78 @@ You cannot undo this action. Address - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Exported Successfully - + Failed to open file Failed to open file - + No Hosts in file No Hosts in file - + Imported Successfully Imported Successfully - - + + Per Game Host list Per Game Host list - + Copy global settings? Copy global settings? - + Delete per game host list? Delete per game host list? - + HDD Image File HDD Image File - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Overwrite File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3225,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2968,69 +3248,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Browse... - - + + Open... Open... @@ -3043,29 +3323,53 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run Run - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Pause @@ -3078,149 +3382,174 @@ Do you want to overwrite? Disassembly - + Copy Address Copy Address - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3228,17 +3557,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games Scan For New Games @@ -3246,50 +3575,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3297,192 +3620,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled Disabled - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3570,12 +3893,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3639,45 +3972,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3685,79 +4013,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3765,2082 +4093,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection BIOS Selection - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion - GPU Palette Conversion - - - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. + GPU Palette Conversion - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT + + + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - VU XGkick Sync - VU XGkick Sync + + Half Pixel Offset + Half Pixel Offset - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Texture Offset X + Texture Offset X - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset Y + Texture Offset Y - - Quadraphonic - Quadraphonic + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. - - Load State - Load State + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5849,2221 +6197,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot - Default Boot - - - - Slow Boot - Slow Boot + Default Boot - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8076,7 +8325,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8131,12 +8380,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8192,7 +8441,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8203,266 +8452,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8470,74 +8861,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8546,12 +8963,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8559,32 +8976,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8610,17 +9027,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8638,7 +9055,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8657,399 +9074,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9057,62 +9485,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9122,12 +9550,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9138,92 +9566,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9231,355 +9659,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9587,79 +10020,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9670,606 +10098,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10279,69 +10717,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10410,8 +10842,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10463,6 +10895,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10522,11 +10955,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10578,6 +11021,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10593,11 +11091,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10635,7 +11128,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10724,8 +11217,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10867,11 +11360,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10922,11 +11410,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11044,7 +11527,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11084,6 +11567,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11137,29 +11625,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11167,405 +11665,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11725,6 +12223,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11752,137 +12340,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12075,7 +12663,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12132,14 +12720,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12644,13 +13232,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12662,7 +13250,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12673,7 +13261,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12688,27 +13276,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12721,168 +13309,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12897,97 +13490,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12996,12 +13589,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13014,70 +13607,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13086,42 +13679,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13129,8 +13722,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13211,6 +13804,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13261,11 +13855,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13391,103 +13980,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13657,58 +14247,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13758,10 +14348,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13957,6 +14552,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13973,14 +14578,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14027,13 +14632,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14104,40 +14702,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14155,13 +14776,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14366,7 +14987,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14416,222 +15036,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14644,12 +15285,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14662,33 +15303,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14774,8 +15397,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15042,97 +15665,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15338,6 +15961,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15369,6 +15997,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15384,6 +16018,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15404,6 +16044,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15459,6 +16105,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15659,6 +16314,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15669,6 +16344,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16168,117 +16849,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16286,67 +16967,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16354,71 +17035,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16427,29 +17108,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16457,27 +17138,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings Settings - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16515,32 +17196,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16557,197 +17238,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_da-DK.ts b/pcsx2-qt/Translations/pcsx2-qt_da-DK.ts index e9b49a9d91ab90..969e13968e4465 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_da-DK.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_da-DK.ts @@ -80,32 +80,38 @@ Klar... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. - + &Login &Login - + Logging in... Logger ind... - + Login Error Loginfejl - - Login failed. Please check your username and password, and try again. - Login failed. Please check your username and password, and try again. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login failed. +Error: %1 + +Please check your username and password, and try again. - + Login failed. Login mislykkedes. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Globale indstillinger - - - - + + Enable Achievements Enable Achievements - - - Show Challenge Indicators - Show Challenge Indicators - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Enable RA's Rich Presence - - - - + + Enable Hardcore Mode Enable Hardcore Mode - - - Enable Leaderboards - Enable Leaderboards - - - + Test Unofficial Achievements Test Unofficial Achievements - - - Enable Test Mode - Enable Test Mode - - - - + + Enable Sound Effects Enable Sound Effects - + Notifications Notifications - - - Show Notifications - Show Notifications - - - - Duration - Duration - - - - - - + + 5 seconds 5 seconds - + Account Account - - + + Login... Login... - + View Profile... Se profil... - + + Settings + Settings + + + + + Enable Spectator Mode + Enable Spectator Mode + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Show Achievement Notifications + + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info Spilinfo - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + - seconds - seconds - - - - + + - - Unchecked Ikke markeret - - When enabled and logged in, PCSX2 will scan for achievements on game load. - When enabled and logged in, PCSX2 will scan for achievements on game load. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - - - + + + + Checked Markeret - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - - - - Notification Duration - Notification Duration + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - The duration, in seconds, an achievement popup notification will remain on screen. + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Reset System Genstart system - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? + + + + %n seconds + + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Username: %1 Login token generated on %2. - + Logout Log ud - + Not Logged In. Ikke logget ind. - - - %1 seconds - %1 seconds - Achievements - + Hardcore mode will be enabled on system reset. Hardcore mode will be enabled on system reset. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - + Hardcore mode is now enabled. Hardcore mode is now enabled. - + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Unofficial) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. Hardcore mode is now disabled. - + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (Hardcore Mode) - - You have earned {0} of {1} achievements, and {2} of {3} points. - You have earned {0} of {1} achievements, and {2} of {3} points. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! + + + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. - - This game has no achievements. - This game has no achievements. + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) - - Leaderboard submission is enabled. - Leaderboard submission is enabled. + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Unknown + + + + Locked + Locked + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + Unofficial + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Unlocked: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank - + + Name + Name + + + + Time + Time + + + + Score + Score + + + + Value + Value + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + Loading... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + This game has no achievements. + + + Failed to read executable from disc. Achievements disabled. Failed to read executable from disc. Achievements disabled. @@ -578,220 +815,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Rounding Mode: - - - + + + Nearest Nærmeste - - - + + + Negative Negativ - - - + + + Positive Positiv - - - + + + Chop / Zero (Default) Chop / Zero (Default) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Clamping Mode: - - + + None Ingen - - - + + + Normal (Default) Normal (standard) - + None ClampMode Ingen - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Ekstra + bevar fortegn - + Full Fuld - + Wait Loop Detection Wait Loop Detection - - + + Enable Recompiler Enable Recompiler - + Enable Fast Memory Access Enable Fast Memory Access - + Enable Cache (Slow) Enable Cache (Slow) - + INTC Spin Detection INTC Spin Detection - + Pause On TLB Miss Pause On TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: VU1 Rounding Mode: - + mVU Flag Hack mVU Flag Hack - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - - + + Extra Ekstra - + VU0 Clamping Mode: VU0 Clamping Mode: - + VU0 Rounding Mode: VU0 Rounding Mode: - + VU1 Clamping Mode: VU1 Clamping Mode: - + I/O Processor (IOP, MIPS-I) I/O Processor (IOP, MIPS-I) - + Game Settings Game Settings - + Enable Game Fixes Enable Game Fixes - + Enable Compatibility Patches Enable Compatibility Patches - + Frame Rate Control Frame Rate Control - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL Frame Rate: - + NTSC Frame Rate: NTSC Frame Rate: - + PINE Settings PINE Settings - + Slot: Slot: - + Enable Aktivér @@ -799,182 +1036,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings Timestretch Settings - + Sequence Length: Sequence Length: - + 30 30 - + Seekwindow Size: Seekwindow Size: - + 20 20 - + Overlap: Overlap: - + 10 10 - + Restore Defaults Restore Defaults - + Volume Volume - + 100% 100% - + Mixing Settings Mixing Settings - + Synchronization: Synchronization: - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Expansion: Expansion: - + Stereo (None, Default) Stereo (None, Default) - + Quadraphonic Quadraphonic - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Level: - + None (Default) None (Default) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Decoding (basic) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II Decoding (gigaherz) - + Target Latency: Target Latency: - + 60 ms 60 ms - + Output Settings Output Settings - + Output Module: Output Module: - + Output Latency: Output Latency: - + 20 ms 20 ms - + Minimal Minimal - + Output Backend: Output Backend: - + Maximum Latency: Maximum Latency: - + Output Device: Output Device: @@ -1162,17 +1399,22 @@ Login token generated on %2. Ny version: - + + Download Size: + Download Size: + + + Download and Install... Download og installér... - + Skip This Update Spring denne opdatering over - + Remind Me Later Mind mig om det senere @@ -1182,17 +1424,17 @@ Login token generated on %2. Opdateringsfejl - + <h2>Changes:</h2> <h2>Changes:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> @@ -1233,6 +1475,11 @@ Login token generated on %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... Loading... @@ -1240,63 +1487,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory BIOS Directory - + PCSX2 will search for BIOS images in this directory. PCSX2 will search for BIOS images in this directory. - + Browse... Browse... - + Reset Reset - + BIOS Selection BIOS Selection - - Open in Explorer... - Open in Explorer... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List Refresh List - + Filename Filename - + Version Version - + Options and Patches Options and Patches - + Fast Boot Fast Boot - + Fast Forward Boot Fast Forward Boot @@ -1424,91 +1671,84 @@ Login token generated on %2. BreakpointModel - + Execute Execute - - No Condition - No Condition - - - - + + -- -- - - + Enabled Enabled - - + Disabled Disabled - + Read Read - + Write(C) (C) = changes, as in "look for changes". Write(C) - + Write Write - + TYPE Warning: limited space available. Abbreviate if needed. TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. SIZE / LABEL - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCTION - + CONDITION Warning: limited space available. Abbreviate if needed. CONDITION - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1519,7 +1759,7 @@ Login token generated on %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - + Saving CDVD block dump to '{}'. Saving CDVD block dump to '{}'. @@ -1555,32 +1795,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type Virtual Controller Type - + Bindings Bindings - + Settings Settings - + Macros Macros - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -1620,146 +1860,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. D-Pad - - - + + + Down Down - - - + + + Left Left - - - + + + Up Up - - - + + + Right Right - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Left Analog - + Large Motor Large Motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Face Buttons - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cross - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Square - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangle - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Circle - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Right Analog - + Small Motor Small Motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Pressure Modifier - + Analog Analog @@ -1767,77 +2007,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow Yellow - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start Start - + Red Red - + Green Green - + Orange Orange - + Select Select - + Strum Up Strum Up - + Strum Down Strum Down - + Blue Blue - + Whammy Bar Whammy Bar - + Tilt Tilt @@ -1863,123 +2098,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL Input Source - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - + Enable SDL Input Source Enable SDL Input Source - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense Enhanced Mode - + XInput Source XInput Source - + Enable XInput Input Source Enable XInput Input Source - + DInput Source DInput Source - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - + Enable DInput Input Source Enable DInput Input Source - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Profile Settings - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - + Use Per-Profile Hotkeys Use Per-Profile Hotkeys - - + + Controller LED Settings Controller LED Settings - + Enable SDL Raw Input Enable SDL Raw Input - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - + Controller Multitap Controller Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - + Multitap on Console Port 1 Multitap on Console Port 1 - + Multitap on Console Port 2 Multitap on Console Port 2 - + Mouse/Pointer Source Mouse/Pointer Source - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 allows you to use your mouse to simulate analog stick movement. - + Settings... Settings... - + Enable Mouse Mapping Enable Mouse Mapping - + Detected Devices Detected Devices @@ -2015,58 +2260,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons Binds/Buttons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - + Pressure Pressure - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - - + + 100% 100% - + Trigger Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: Deadzone: - + Frequency Frequency - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Set... @@ -2169,46 +2414,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller Settings - + Editing Profile: Editing Profile: - + New Profile New Profile - + Load Profile Load Profile - + Delete Profile Delete Profile - - + + Restore Defaults Restore Defaults - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2464,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Error - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2505,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2519,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2537,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2551,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2560,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2406,204 +2651,242 @@ You cannot undo this action. Functions - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Refresh - + Filter Filter - + Memory Search Memory Search - + End End - + Value Value - + Start Start - + Type Type - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Search - + Memory Memory - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New New - + Edit Edit - - - + + + Copy Copy - + Delete Delete - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2659,22 +2942,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet Device: - + Ethernet Device Type: Ethernet Device Type: - + Intercept DHCP Intercept DHCP @@ -2684,135 +2967,130 @@ You cannot undo this action. Enabled - + Enabled InterceptDHCP Enabled - + Subnet Mask: Subnet Mask: - + Gateway Address: Gateway Address: - - + + Auto Auto - + Intercept DHCP: Intercept DHCP: - + PS2 Address: PS2 Address: - + DNS1 Address: DNS1 Address: - + DNS2 Address: DNS2 Address: - + Internal DNS Internal DNS - + Add Add - + Delete Delete - + Export Export - + Import Import - + Per game Per game - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Enabled - + Hard Disk Drive Hard Disk Drive - + HDD File: HDD File: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD Enabled - + Browse Browse - + Create Image Create Image - - - - - PCAP Bridged @@ -2845,7 +3123,7 @@ You cannot undo this action. - + Use Global Setting [%1] Use Global Setting [%1] @@ -2865,78 +3143,78 @@ You cannot undo this action. Address - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Exported Successfully - + Failed to open file Failed to open file - + No Hosts in file No Hosts in file - + Imported Successfully Imported Successfully - - + + Per Game Host list Per Game Host list - + Copy global settings? Copy global settings? - + Delete per game host list? Delete per game host list? - + HDD Image File HDD Image File - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Overwrite File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3223,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2968,69 +3246,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Browse... - - + + Open... Open... @@ -3043,29 +3321,53 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run Run - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Pause @@ -3078,149 +3380,174 @@ Do you want to overwrite? Disassembly - + Copy Address Copy Address - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3228,17 +3555,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games Scan For New Games @@ -3246,48 +3573,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3295,192 +3618,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled Disabled - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3568,12 +3891,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3637,45 +3970,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3683,79 +4011,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3763,2082 +4091,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection BIOS Selection - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion - GPU Palette Conversion - - - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. + GPU Palette Conversion - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT + + + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - VU XGkick Sync - VU XGkick Sync + + Half Pixel Offset + Half Pixel Offset - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Texture Offset X + Texture Offset X - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset Y + Texture Offset Y - - Quadraphonic - Quadraphonic + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. - - Load State - Load State + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5847,2221 +6195,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot - Default Boot - - - - Slow Boot - Slow Boot + Default Boot - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8074,7 +8323,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8129,12 +8378,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8190,7 +8439,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8201,266 +8450,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8468,74 +8859,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8544,12 +8961,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8557,32 +8974,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8608,17 +9025,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8636,7 +9053,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8655,399 +9072,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9055,62 +9483,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9120,12 +9548,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9136,92 +9564,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9229,355 +9657,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9585,79 +10018,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9668,606 +10096,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10277,69 +10715,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10408,8 +10840,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10461,6 +10893,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10520,11 +10953,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10576,6 +11019,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10591,11 +11089,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10633,7 +11126,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10722,8 +11215,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10865,11 +11358,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10920,11 +11408,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11042,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11082,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11135,29 +11623,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11165,405 +11663,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11721,6 +12219,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11748,137 +12336,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12071,7 +12659,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12128,14 +12716,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12640,13 +13228,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12658,7 +13246,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12669,7 +13257,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12684,27 +13272,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12717,168 +13305,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12893,97 +13486,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12992,12 +13585,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13010,70 +13603,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13082,42 +13675,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13125,8 +13718,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13207,6 +13800,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13257,11 +13851,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13387,103 +13976,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13653,58 +14243,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13754,10 +14344,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13953,6 +14548,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13969,14 +14574,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14023,13 +14628,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14100,40 +14698,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14151,13 +14772,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14362,7 +14983,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14412,222 +15032,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14640,12 +15281,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14658,33 +15299,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14770,8 +15393,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15038,97 +15661,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15334,6 +15957,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15365,6 +15993,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15380,6 +16014,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15400,6 +16040,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15455,6 +16101,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15655,6 +16310,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15665,6 +16340,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16164,117 +16845,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16282,67 +16963,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16350,71 +17031,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16423,29 +17104,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16453,27 +17134,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings Settings - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16511,32 +17192,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16553,197 +17234,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_de-DE.ts b/pcsx2-qt/Translations/pcsx2-qt_de-DE.ts index fc429e08abdd2a..1ed0cd49a7a97c 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_de-DE.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_de-DE.ts @@ -80,32 +80,38 @@ Bereit... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Dein RetroAchievements-Anmeldetoken ist nicht mehr gültig.</strong> Du musst deine Benutzerdaten neu angeben, damit Erfolge weiter getrackt werden können. Dein Passwort wird nicht in PCSX2 gespeichert, stattdessen wird ein generiertes Zugriffstoken verwendet. - + &Login &Login - + Logging in... Anmeldung läuft... - + Login Error Fehler bei der Anmeldung - - Login failed. Please check your username and password, and try again. - Anmelden fehlgeschlagen. Bitte überprüfe deinen Benutzernamen sowie Passwort und versuche es erneut. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login fehlgeschlagen. +Fehler: %1 + +Bitte überprüfe deinen Benutzernamen und Passwort und versuche es erneut. - + Login failed. Login fehlgeschlagen. @@ -113,270 +119,501 @@ AchievementSettingsWidget - - Global Settings - Globale Einstellungen - - - - + + Enable Achievements - Trophäen aktivieren - - - - - Show Challenge Indicators - Herausforderungs-Indikatoren zeigen - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Aktiviere die Statusanzeige für RetroAchievements + Errungenschaften aktivieren - - + + Enable Hardcore Mode Hardcore-Modus aktivieren - - - Enable Leaderboards - Ranglisten aktivieren - - - + Test Unofficial Achievements Inoffizielle Errungenschaften testen - - - Enable Test Mode - Testmodus aktivieren - - - - + + Enable Sound Effects Soundeffekte aktivieren - + Notifications Benachrichtigungen - - - Show Notifications - Benachrichtigungen anzeigen - - - - Duration - Dauer - - - - - - + + 5 seconds 5 Sekunden - + Account Account - - + + Login... Anmelden... - + View Profile... Profil ansehen... - + + Settings + Einstellungen + + + + + Enable Spectator Mode + Zuschauermodus aktivieren + + + + + Enable Encore Mode + Encore-Modus aktivieren + + + + + Show Achievement Notifications + Zeige Benachrichtigungen bei Erreichen von Errungenschaften + + + + + Show Leaderboard Notifications + Zeige Benachrichtigungen zu Ranglisten + + + + + Enable In-Game Overlays + In-Game Overlays aktivieren + + + + Username: +Login token generated at: + Benutzername: +Anmelde-Token generiert: + + + Game Info Spiel-Information - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 verwendet RetroAchievements als Trophäendatenbank und zur Verfolgung von Fortschritten. Um Trophäen zu nutzen, melde dich bitte für ein Konto unter <a href="https://retroachievements.org/">retroachievements.org</a>an.</p><p align="justify">Um die Trophäenliste im Spiel anzusehen drücke die Taste für <span style=" font-weight:600;">Pause-Menü</span> und wähle <span style=" font-weight:600;">Leistungen</span> aus dem Menü.</p></body></html> + - seconds - sekunden - - - - + + - - Unchecked Nicht ausgewählt - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Wenn aktiviert und angemeldet, wird PCSX2 nach Trophäen suchen, während das Spiel geladen wird. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - Wenn aktiviert, wird PCSX2 davon ausgehen, dass alle Trophäen gesperrt sind und keine Entsperrbenachrichtigungen an den Server senden. + Wenn aktiviert, wird PCSX2 davon ausgehen, dass alle Errungenschaften gesperrt sind und keine Entsperrbenachrichtigungen an den Server senden. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. - Wenn aktiviert, listet PCSX2 Trophäen von inoffiziellen Sets auf. Bitte beachte, dass diese Trophäen nicht von RetroAchievements verfolgt werden, sodass sie jedes Mal freigeschaltet werden. - - - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Wenn aktiviert, werden Präsenzinformationen gesammelt und an die RetroAchievements Server geschickt. + Wenn aktiviert, listet PCSX2 Erfolge von inoffiziellen Sets auf. Bitte beachte, dass diese Errungenschaften nicht von RetroAchievements verfolgt werden, sodass sie jedes Mal freigeschaltet werden. - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - "Challenge" Modus für Trophäen, einschließlich Leaderboard-Verfolgung. Deaktiviert das Speichern des aktuellen Zustands, Cheats und die Slowdown-Funktion. + "Challenge" Modus für Errungenschaften, einschließlich Leaderboard-Verfolgung. Deaktiviert das Speichern des aktuellen Zustands, Cheats und die Slowdown-Funktion. - - - - + + + + Checked Aktiviert - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Ermöglicht das Tracking und Einreichen von Ranglisten in unterstützten Spielen. Wenn die Ranglisten deaktiviert sind, können Sie immer noch die Rangliste und die Punkte ansehen, aber es werden keine Punkte hochgeladen. + + Plays sound effects for events such as achievement unlocks and leaderboard submissions. + Spielt Soundeffekte für Ereignisse wie das Freischalten von Errungenschaften und die Teilnahme an der Rangliste ab. - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Zeigt Popup-Nachrichten bei Ereignissen wie Entsperren von Trophäen und Einreichungen der Rangliste. + + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + Zeigt Symbole in der unteren rechten Ecke des Bildschirms an, wenn eine Herausforderung/eine Errungenschaft aktiv ist. - - Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Spielt Soundeffekte für Ereignisse wie das Freischalten von Trophäen und die Teilnahme an der Rangliste ab. + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Wenn aktiviert und angemeldet, wird PCSX2 nach Errungenschaften während des Startens suchen. - - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - Zeigt Symbole in der unteren rechten Ecke des Bildschirms an, wenn eine Herausforderung/eine Trophäe aktiv ist. + + Displays popup messages on events such as achievement unlocks and game completion. + Zeigt Popup-Meldungen bei Ereignissen wie der Freischaltung von Errungenschaften und durchspielen eines Spiels. - - - - Notification Duration - Benachrichtigungsdauer + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Zeigt eine Popup Benachrichtigung beim Starten, Senden oder Scheitern einer Ranglisten-Herausforderung an. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Die Dauer, in Sekunden, welche eine Errungenschaft-Popup-Benachrichtigung auf dem Bildschirm bleibt. + + When enabled, each session will behave as if no achievements have been unlocked. + Wenn aktiviert, verhält sich jede Session so, als ob keine Errungenschaften freigeschaltet worden wären. - + Reset System System zurücksetzen - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - Hardcore-Modus wird erst aktiviert, wenn das System zurückgesetzt wird. Möchten Sie das System jetzt zurücksetzen? + Hardcore-Modus wird erst aktiviert, wenn das System zurückgesetzt wird. Möchtest du das System jetzt zurücksetzen? + + + + + %n seconds + + %n Sekunde + %n Sekunden + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Benutzername: %1 Login-Token generiert am %2. - + Logout Abmelden - + Not Logged In. Nicht eingeloggt. - - - %1 seconds - %1 Sekunden - Achievements - + Hardcore mode will be enabled on system reset. Der Hardcore-Modus wird beim Zurücksetzen des Systems aktiviert. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} kann nicht ausgeführt werden, wenn der Hardcore-Modus aktiv ist. Möchtest du den Hardcore-Modus deaktivieren? {0} wird abgebrochen, wenn du Nein wählst. - + Hardcore mode is now enabled. Hardcore-Modus ist jetzt aktiviert. - + + {} (Hardcore Mode) + {} (Hardcore Modus) + + + + {} (Unofficial) + {} (Inoffiziell) + + + + Mastered {} + Gemeistert {} + + + + Leaderboard attempt started. + Ranglistenversuch gestartet. + + + + Leaderboard attempt failed. + Ranglistenversuch fehlgeschlagen. + + + + Your Time: {}{} + Deine Zeit: {}{} + + + + Your Score: {}{} + Deine Punktzahl: {}{} + + + + Your Value: {}{} + Dein Wert: {}{} + + + + (Submitting) + (Übermitteln) + + + + Achievements Disconnected + Errungenschaften getrennt + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Eine Entsperranfrage konnte nicht abgeschlossen werden. Wir werden weiterhin versuchen, diese Anfrage erneut zu senden. + + + + Achievements Reconnected + Errungenschaften wieder Verbunden + + + + All pending unlock requests have completed. + Alle ausstehenden Entsperranfragen sind abgeschlossen. + + + Hardcore mode is now disabled. Hardcore-Modus ist jetzt deaktiviert. - + + Confirm Hardcore Mode + Hardcore-Modus bestätigen + + + + Active Challenge Achievements + Errungenschaften der aktiven Herausforderung + + + (Hardcore Mode) (Hardcore Modus) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Du hast {0} von {1} Trophäen und {2} von {3} Punkten verdient. + + You have unlocked all achievements and earned {} points! + Du hast alle Errungenschaften freigeschaltet und {} Punkte erhalten! - - This game has no achievements. - Für dieses Spiel gibt es keine Trophäen. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Du hast {0} von {1} Errungenschaften freigeschaltet und {2} von {3} möglichen Punkten erreicht. + + + + {0} achievements, {1} points + {0} Errungenschaften, {1} Punkte + + + + Your Time: {0} (Best: {1}) + Deine Zeit: {0} (Beste: {1}) + + + + Your Score: {0} (Best: {1}) + Dein Punktestand: {0} (Beste: {1}) + + + + Your Value: {0} (Best: {1}) + Dein Wert: {0} (Beste: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Ranglisten Position: {1} von {2} + + + + Server error in {0}: +{1} + Serverfehler in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Punkte: {0} ({1} Softcore) +Ungelesene Nachrichten: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Du hast {0} von {1} Errungenschaften freigeschaltet und {2} von {3} möglichen Punkten erreicht. + + + + Unknown + Unbekannt + + + + Locked + Gesperrt + + + + Unlocked + Entsperrt + + + + Unsupported + Nicht unterstützt + + + + Unofficial + Inoffiziell + + + + Recently Unlocked + Zuletzt freigeschaltet + + + + Active Challenges + Aktive Herausforderungen + + + + Almost There + Beinahe geschafft + + + + {} points + {} Punkte + + + + {} point + {} Punkt + + + + XXX points + XXX Punkte + + + + Unlocked: {} + Freigeschaltet: {} + + + + This game has {} leaderboards. + Dieses Spiel hat {} Ranglisten. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Das Übermitteln von Punkten ist deaktiviert, da der Hardcore-Modus ausgeschaltet ist. Die Ranglisten sind schreibgeschützt. + + + + Show Best + Zeige Beste + + + + Show Nearby + Nächste anzeigen + + + + Rank + Rang + + + + Name + Name + + + + Time + Zeit + + + + Score + Punktzahl + + + + Value + Wert + + + + Date Submitted + Einreichungsdatum + + + + Downloading leaderboard data, please wait... + Ranglistendaten werden heruntergeladen, bitte warten... + + + + + Loading... + Lädt ... - - Leaderboard submission is enabled. - Einreichen in die Rangliste ist aktiviert. + + + Leaderboard download failed + Ranglisten Download fehlgeschlagen - + + This game has no achievements. + Dieses Spiel unterstützt keine Errungenschaften. + + + Failed to read executable from disc. Achievements disabled. - Fehler beim Lesen der ausführbaren Datei von Disk. Trophäen deaktiviert. + Fehler beim Lesen der ausführbaren Datei von Disk. Errungenschaften deaktiviert. @@ -578,220 +815,220 @@ Login-Token generiert am %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Das Ändern dieser Optionen kann dazu führen, dass Spiele nicht mehr funktionieren. Die Änderung erfolgt auf eigene Gefahr. Das PCSX2-Team bietet keinen Support für Konfigurationen, bei denen diese Einstellungen geändert wurden. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Rundungsmodus: - - - + + + Nearest Nächster - - - + + + Negative Negativ - - - + + + Positive Positiv - - - + + + Chop / Zero (Default) Chop / Zero (Standard) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Clamping Modus: - - + + None Keine - - - + + + Normal (Default) Normal (Standard) - + None ClampMode Keine - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Vorzeichen behalten - + Full Voll - + Wait Loop Detection Warteschleifenerkennung - - + + Enable Recompiler Recompiler aktivieren - + Enable Fast Memory Access Schnellen Speicherzugriff aktivieren - + Enable Cache (Slow) Cache aktivieren (langsam) - + INTC Spin Detection INTC Spin-Erkennung - + Pause On TLB Miss Bei TLB Fehlern pausieren - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vektoreinheiten (VU) - + VU1 Rounding Mode: VU1 Rundungsmodus: - + mVU Flag Hack mVU-Flaggenhack - + Enable VU1 Recompiler VU1-Recompiler aktivieren - + Enable VU0 Recompiler (Micro Mode) VU0 Recompiler (Micro Modus) aktivieren - - + + Extra Extra - + VU0 Clamping Mode: VU0 Clamping Modus: - + VU0 Rounding Mode: VU0 Rundungsmodus: - + VU1 Clamping Mode: VU1 Clamping Modus: - + I/O Processor (IOP, MIPS-I) I/O-Prozessor (IOP, MIPS-I) - + Game Settings Spieleinstellungen - + Enable Game Fixes Game Fixes aktivieren - + Enable Compatibility Patches Kompatibilitäts-Patches aktivieren - + Frame Rate Control - Bildfrequenz-Steuerung + Bildraten-Steuerung - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. Hz - + PAL Frame Rate: - PAL-Bildfrequenz: + PAL-Frame Rate: - + NTSC Frame Rate: - NTSC-Bildfrequenz: + NTSC-Frame Rate: - + PINE Settings PINE-Einstellungen - + Slot: Slot: - + Enable Aktivieren @@ -799,182 +1036,182 @@ Login-Token generiert am %2. AudioSettingsWidget - + Timestretch Settings Timestretch Einstellungen - + Sequence Length: Sequenzlänge: - + 30 30 - + Seekwindow Size: Suchfenstergröße: - + 20 20 - + Overlap: Überlappen: - + 10 10 - + Restore Defaults Zurücksetzen auf Standardeinstellungen - + Volume Lautstärke - + 100% 100% - + Mixing Settings Mixing Einstellungen - + Synchronization: Synchronisierung: - + TimeStretch (Recommended) TimeStretch (Empfohlen) - + Async Mix (Breaks some games!) Async Mix (Kann bei einigen Spiele fehlerhaft sein oder sie unspielbar machen!) - + None (Audio can skip.) Kein Ton (Audio wird übersprungen) - + Expansion: Erweiterung: - + Stereo (None, Default) Stereo (Standard) - + Quadraphonic - Quadraphonic + Quadraphonisch - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic: - + None (Default) Keine (Standard) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Dekodierung (einfach) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II Dekodierung (Gigaherz) - + Target Latency: Ziel-Latenz: - + 60 ms 60 ms - + Output Settings Ausgabeeinstellungen - + Output Module: Ausgabemodul: - + Output Latency: Ausgabelatenz: - + 20 ms 20 ms - + Minimal Minimal - + Output Backend: Ausgabe-Backend: - + Maximum Latency: Maximale Latenz: - + Output Device: Ausgabe Gerät: @@ -1162,17 +1399,22 @@ Login-Token generiert am %2. Neue Version: - + + Download Size: + Downloadgröße: + + + Download and Install... Herunterladen und installieren... - + Skip This Update Dieses Update überspringen - + Remind Me Later Später erinnern @@ -1182,29 +1424,29 @@ Login-Token generiert am %2. Fehler beim Aktualisieren - + <h2>Changes:</h2> <h2>Änderungen:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - <h2>Save State Warnung:</h2><p>Durch das Installieren dieses Updates werden deine Save States <b>inkompatibel</b>. Bitte stelle sicher, dass deine Spiele vor der Installation dieses Updates auf einer Memory Card gespeichert haben oder du verlierst jedweden Fortschritt.</p> + <h2>Save State Warnung:</h2><p>Durch das Installieren dieses Updates werden deine Save States <b>inkompatibel</b>Bitte stelle sicher, dass deine Spiele vor der Installation dieses Updates auf einer Memory Card gespeichert haben oder du verlierst jedweden Fortschritt.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Einstellungswarnung</h2><p>Die Installation dieses Updates wird deine Programmkonfiguration zurücksetzen. Bitte beachte, dass du nach dieser Aktualisierung deine Einstellungen neu konfigurieren musst.</p> Savestate Warning - Speicher-Zustand Warnung + Savestate Warnung <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> - <h1>WARNUNG</h1><p style='font-size:12pt;'>Das Installieren dieses Updates wird deine <b>Save States inkompatibel machen</b>, <i>. Stellen sie sicher, dass der Fortschritt auf einer Memory Card gespeichert wird, bevor sie mit</i>fortfahren.</p><p>Möchten sie fortfahren?</p> + <h1>WARNUNG</h1><p style='font-size:12pt;'>Das Installieren dieses Updates wird deine <b>Save States inkompatibel machen</b>, <i>. Stelle sicher, dass der Fortschritt auf einer Memory Card gespeichert wird, bevor du mit</i>fortfährst. </p><p>Möchtest du fortfahren?</p> @@ -1233,6 +1475,11 @@ Login-Token generiert am %2. + Download Size: %1 MB + Downloadgröße: %1 MB + + + Loading... Lädt ... @@ -1240,63 +1487,63 @@ Login-Token generiert am %2. BIOSSettingsWidget - + BIOS Directory BIOS-Verzeichnis - + PCSX2 will search for BIOS images in this directory. - PCSX2 wird nach BIOS-Abbildern in diesem Verzeichnis suchen. + PCSX2 wird nach BIOS-Images in diesem Verzeichnis suchen. - + Browse... Durchsuchen... - + Reset Zurücksetzen - + BIOS Selection BIOS-Auswahl - - Open in Explorer... - Im Explorer öffnen... + + Open BIOS Folder... + BIOS-Ordner öffnen... - + Refresh List Liste aktualisieren - + Filename Dateiname - + Version Version - + Options and Patches Optionen und Patches - + Fast Boot Fast Boot - + Fast Forward Boot Schnelles Booten @@ -1424,91 +1671,84 @@ Login-Token generiert am %2. BreakpointModel - + Execute Ausführen - - No Condition - Keine Bedingung - - - - + + -- --- - - + Enabled Aktiviert - - + Disabled Deaktviert - + Read Lesen - + Write(C) (C) = changes, as in "look for changes". Schreiben(C) - + Write Schreiben - + TYPE Warning: limited space available. Abbreviate if needed. TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. Größe / LABEL - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUKTION - + CONDITION Warning: limited space available. Abbreviate if needed. BEDINGUNG - + HITS Warning: limited space available. Abbreviate if needed. Übereinstimmungen - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - Aktiviert + X @@ -1519,7 +1759,7 @@ Login-Token generiert am %2. Der Speicherort der Spiele Disk befindet sich auf einem Wechseldatenträger, Performance-Probleme wie Aussetzer und Einfrieren können auftreten. - + Saving CDVD block dump to '{}'. Speichere CDVD-Block-Dump in '{}'. @@ -1555,32 +1795,32 @@ Login-Token generiert am %2. ControllerBindingWidget - + Virtual Controller Type Virtueller Controller Typ - + Bindings Belegung - + Settings Einstellungen - + Macros Makros - + Automatic Mapping Automatisches Zuordnen - + Clear Mapping Zuordnung löschen @@ -1620,146 +1860,146 @@ Login-Token generiert am %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Steuerkreuz - - - + + + Down Runter - - - + + + Left Links - - - + + + Up Hoch - - - + + + Right Rechts - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Linker Analogstick - + Large Motor Großer Motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Aktionstasten - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kreuz - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Quadrat - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Dreieck - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kreis - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Rechter Analogstick - + Small Motor Kleiner Motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Druck Modifikator - + Analog Analog @@ -1767,77 +2007,72 @@ Login-Token generiert am %2. ControllerBindingWidget_Guitar - - Form - Formular - - - + Yellow Gelb - - - - - - - - - - - + + + + + + + + + + + PushButton Drucktaste - + Start Start - + Red Rot - + Green Grün - + Orange Orange - + Select Select - + Strum Up Schlagbrett hoch - + Strum Down Schlagbrett runter - + Blue Blau - + Whammy Bar Tremolo - + Tilt Neigen @@ -1863,123 +2098,133 @@ Login-Token generiert am %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL Eingabequelle - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). Die SDL Eingangsquelle unterstützt die meisten Controller und bietet erweiterte Funktionen für DualShock 4 / DualSense Pads im Bluetooth-Modus (Vibration / LED-Steuerung). - + Enable SDL Input Source SDL-Eingangsquelle aktivieren - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense erweiterter Modus - + XInput Source XInput-Quelle - + Enable XInput Input Source XInput-Eingabequelle aktivieren - + DInput Source Direct Input Quelle - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. Die Direct Input-Quelle bietet Unterstützung für alte Controller, die X Input nicht unterstützen. Stattdessen wird empfohlen, auf diese Controller über SDL zuzugreifen, aber Direct Input kann verwendet werden, wenn diese nicht mit SDL kompatibel sind. - + Enable DInput Input Source Direct Input-Eingabequelle aktivieren - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Einige Controller von Drittanbietern kennzeichnen ihre Analogsticks fälschlicherweise als invertiert auf der positiven Komponente, aber nicht negativ.</p><p> Daraufhin wird der Analogstick &quot; als voll Ausgeschlagen angezeigt &quot; auch wenn er in neutraler Position ruht. </p><p>Durch Aktivieren dieser Einstellung wird PCSX2 bei der Erstellung der Tastenbelegung die Umkehrung ignoriert, wodurch solche Controller normal funktionieren.</p></body></html> + + + + Ignore Inversion + Umkehrung ignorieren + + + Profile Settings Profil Einstellungen - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Wenn diese Option aktiviert ist, können Hotkeys in diesem Eingabeprofil gesetzt werden und werden anstelle der globalen Hotkeys verwendet. Standardmäßig werden Hotkeys immer zwischen allen Profilen geteilt. - + Use Per-Profile Hotkeys Pro-Profil-Tastenkürzel verwenden - - + + Controller LED Settings Controller LED Einstellungen - + Enable SDL Raw Input SDL Raw Input aktivieren - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. Die X Input-Quelle unterstützt Xbox 360 / Xbox One / Xbox One / Xbox Serie Controller und Controller, die das X Input-Protokoll nutzen. - + Controller Multitap Controller MultiTap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Mit dem Multitap können bis zu 8 Controller an die Konsole angeschlossen werden. Jeder Multitap bietet 4 Ports. Multitap wird nicht von allen Spielen unterstützt. - + Multitap on Console Port 1 - Multitap am Konsolensteckplatz 1 + Multitap am Konsolenport 1 - + Multitap on Console Port 2 - Multitap am Konsolensteckplatz 2 + Multitap am Konsolenport 2 - + Mouse/Pointer Source Maus/Mauszeiger Quelle - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 ermöglicht es, mit der Maus analoge Stick-Bewegungen zu simulieren. - + Settings... Einstellungen... - + Enable Mouse Mapping - Maus-Zuordnung aktivieren + Maus-Belegung aktivieren - + Detected Devices Erkannte Geräte @@ -2015,58 +2260,58 @@ Login-Token generiert am %2. ControllerMacroEditWidget - + Binds/Buttons Tastenbelegungen/Tasten - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Wähle die Tasten aus, die du mit diesem Makro auslösen möchtest. Alle Tasten werden gleichzeitig aktiviert. - + Pressure Druck - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Bei Druckempfindlichen Tasten legt dieser Schieberegler fest, wie viel Kraft simuliert wird, wenn das Makro aktiv ist. - - + + 100% 100% - + Trigger Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Wähle den Trigger aus, um dieses Makro zu aktivieren. Dies kann eine einzelne Taste oder eine Kombination von Tasten (Akkord) sein. Shift-Klick für mehrere Trigger. - + Deadzone: Tote Zone: - + Frequency Frequenz - + Macro will toggle every N frames. Makro wird alle N bilder widerholt. - + Set... Setzen... @@ -2169,85 +2414,85 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller-Einstellungen - + Editing Profile: Profil bearbeiten: - + New Profile Neues Profil - + Load Profile Profil laden - + Delete Profile Profil löschen - - + + Restore Defaults - Zurücksetzen auf Standardeinstellungen + Standardeinstellungen wiederherstellen - - + + Create Input Profile Eingabe Profil erstellen - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - Benutzerdefinierte Eingabeprofile werden verwendet, um das allgemeine Eingabeprofil für bestimmte Spiele zu überschreiben. -Um ein eigenes Eingabeprofil auf ein Spiel anzuwenden, gehen Sie in die Spieleigenschaften, dann ändern Sie das 'Eingabeprofil' auf der Registerkarte Zusammenfassung. + Benutzerdefinierte Tastenbelegungsprofile werden verwendet, um das globale Tastenbelegungsprofil für bestimmte Spiele zu überschreiben. +Um ein eigenes Eingabeprofil bei einem Spiel zu nutzen, gehe zu in die Eigenschaften des Spiels, dann ändere das 'Eingabeprofil' auf dem "Zusammenfassung" Tab. -Geben Sie den Namen für das neue Eingabeprofil ein: +Gebe den Namen für das neue Eingabeprofil ein: - - - - + + + + Error Fehler - + A profile with the name '%1' already exists. Ein Profil mit dem Namen '%1' existiert bereits. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - Möchten Sie alle Tastenbelegungen aus dem aktuell ausgewählten Profil in das neue Profil kopieren? Wenn Sie "Nein" wählen, wird ein komplett leeres Profil erzeugt. + Möchtest du alle Tastenbelegungen aus dem aktuell ausgewählten Profil in das neue Profil kopieren? Wenn du "Nein" wählst, wird ein komplett leeres Profil erzeugt. - + Failed to save the new profile to '%1'. Speichern des neuen Profils in '%1' fehlgeschlagen. - + Load Input Profile Eingabeprofil laden - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2505,12 @@ Alle aktuellen globalen Tastenbelegungen werden entfernt und die Profilzuweisung Diese Aktion kann nicht rückgängig gemacht werden. - + Delete Input Profile Eingabeprofil löschen - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,31 +2519,31 @@ You cannot undo this action. Sie können diese Aktion nicht rückgängig machen. - + Failed to delete '%1'. Löschen von '%1' fehlgeschlagen. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - Sind Sie sicher, dass Sie die Standard-Controller-Konfiguration wiederherstellen möchten? + Bist du sicher, dass du die Standard-Controller-Konfiguration wiederherstellen möchtest? -Alle freigegebenen Belegungen und Einstellungen gehen verloren, aber Ihre Eingabeprofile bleiben erhalten. +Alle freigegebenen Belegungen und Einstellungen gehen verloren, aber deine Eingabeprofile bleiben erhalten. -Diese Aktion kann nicht rückgängig gemacht werden. +Dies kann nicht rückgängig gemacht werden. - + Global Settings Globale Einstellungen - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2551,8 @@ Diese Aktion kann nicht rückgängig gemacht werden. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2560,26 @@ Diese Aktion kann nicht rückgängig gemacht werden. %2 - - + + USB Port %1 %2 USB Anschluss %1 %2 - + Hotkeys Tastenkürzel - + Shared "Shared" refers here to the shared input profile. Teilen - + The input profile named '%1' cannot be found. Das Eingabeprofil mit dem Namen '%1' konnte nicht gefunden werden. @@ -2406,204 +2651,242 @@ Diese Aktion kann nicht rückgängig gemacht werden. Funktionen - + + Module + Modul + + + + Version + Version + + + + Count + Anzahl + + + Refresh Aktualisieren - + Filter Filter - + Memory Search Speicher-Suche - + End Ende - + Value Wert - + Start Start - + Type Typ - + 1 Byte (8 bits) 1 Byte (8 Bit) - + 2 Bytes (16 bits) 2 Bytes (16 Bit) - + 4 Bytes (32 bits) 4 Bytes (32 Bit) - + 8 Bytes (64 bits) 8 Bytes (64 Bit) - + Float Float - + Double Double - + String String - + Array of byte Byte-Array - + Hex Hex - + Search Suche - + Memory Speicher - + Breakpoints Haltepunkte - + Threads Threads - + Active Call Stack Aktiver Call Stack - + Breakpoint List Context Menu Haltepunktliste Kontextmenü - + New Neu - + Edit Bearbeiten - - - + + + Copy Kopieren - + Delete Löschen - + + + + Copy all as CSV + Alles als CSV kopieren + + + + Paste from CSV + Aus CSV einfügen + + + Thread List Context Menu Haltepunktliste Kontextmenü - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Entwirrungs Symbole - + + Copy Function Name Funktionsname kopieren - + + Copy Function Address Adresse der Funktion kopieren - + + Go to in Disassembly Gehe in Disassemblierung - + + Go to in Memory View Gehe zu in Speicheransicht - + + + Module Tree + Modulbaum + + + Stack List Context Menu Haltepunktliste Kontextmenü - - - - - + + + + + Debugger Debugger - + Invalid start address Ungültige Startadresse - + Invalid end address Ungültige Endadresse - + Start address can't be equal to or greater than the end address Startadresse kann nicht gleich oder größer sein als die Endadresse - + Invalid search value Ungültige Suchanfrage - + Value is larger than type Wert ist größer als Typ @@ -2659,22 +2942,22 @@ Diese Aktion kann nicht rückgängig gemacht werden. DEV9SettingsWidget - + Ethernet Netzwerk - + Ethernet Device: Netzwerk-Gerät: - + Ethernet Device Type: Netzwerk-Gerättyp: - + Intercept DHCP DHCP abfangen @@ -2684,134 +2967,129 @@ Diese Aktion kann nicht rückgängig gemacht werden. Aktiviert - + Enabled InterceptDHCP Aktiviert - + Subnet Mask: Subnetzmaske: - + Gateway Address: Gateway-Adresse: - - + + Auto Auto - + Intercept DHCP: DHCP abfangen: - + PS2 Address: PS2-Adresse: - + DNS1 Address: DNS1 Adresse: - + DNS2 Address: DNS2 Adresse: - + Internal DNS - Interner DNS + Interne DNS - + Add Hinzufügen - + Delete Löschen - + Export Exportieren - + Import Importieren - + Per game Pro Spiel - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internes DNS kann über die DNS1/2 Dropdown-Menüs ausgewählt werden oder indem du es auf 192.0.2.1 setzt - + Enabled InternalDNSTable Aktiviert - + Hard Disk Drive Festplattenlaufwerk - + HDD File: Festplatten-Datei: - + 40 40 - + 120 120 - + HDD Size (GiB): - Festplattengröße (GB): + Festplattengröße (GiB): - + Enabled HDD Aktiviert - + Browse Durchsuchen - + Create Image - Abbild erstellen - - - - - + Image erstellen @@ -2845,7 +3123,7 @@ Diese Aktion kann nicht rückgängig gemacht werden. - + Use Global Setting [%1] Globale Einstellung [%1] verwenden @@ -2865,78 +3143,78 @@ Diese Aktion kann nicht rückgängig gemacht werden. Adresse - - + + Hosts File Hosts-Datei - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Erfolgreich exportiert - + Failed to open file Datei konnte nicht geöffnet werden - + No Hosts in file Keine Hosts in der Datei - + Imported Successfully Erfolgreich importiert - - + + Per Game Host list Pro Spiel Host Liste - + Copy global settings? Globale Einstellungen kopieren? - + Delete per game host list? Pro Spiel Host Liste löschen ? - + HDD Image File HDD Abbild Datei - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Datei überschreiben? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3223,22 @@ Do you want to overwrite? Möchtest du es überschreiben? - + HDD Creator Festplatten-Ersteller - + HDD image created HDD Image erstellt - + Use Global Globale Einstellungen verwenden - + Override Überschreiben @@ -2968,69 +3246,69 @@ Möchtest du es überschreiben? DebugSettingsWidget - + GS GS - + Draw Dumping Dumping anzeigen - + Dump GS Draws GS Draws dumpen - + Save RT RT speichern - + Save Frame Bild speichern - + Save Texture Texturen speichern - + Save Depth Tiefe speichern - + Start Draw Number: Start-Zeilennummer: - + Draw Dump Count: Anzahl der Zeichenausgaben: - + Hardware Dump Directory: Hardware-Dump Verzeichnis: - + Software Dump Directory: Software Dump Verzeichnis: - - + + Browse... Durchsuchen... - - + + Open... Öffnen... @@ -3043,29 +3321,53 @@ Möchtest du es überschreiben? PCSX2 Debugger - - - + + Run Ausführen - + Step Into Einzel Instruktion ausführen und dann pausieren - + + F11 + F11 + + + Step Over Nächster Schritt - + + F10 + F10 + + + Step Out Ausführen bis Rücksprung - + + Shift+F11 + Shift+F11 + + + + Always On Top + Immer im Vordergrund + + + + Show this window on top + Dieses Fenster im Vordergrund anzeigen + + + Pause Pause @@ -3078,149 +3380,174 @@ Möchtest du es überschreiben? Demontage - + Copy Address Adresse kopieren - + Copy Instruction Hex Hex Befehl kopieren - + Copy Instruction Text Text Befehl kopieren - + Assemble new Instruction(s) Neue Anleitung(en) zusammenstellen - + NOP Instruction(s) Nop Instruktion - + Run to Cursor Ausführen bis zum Cursor - + Jump to Cursor Zum Cursor springen - + Toggle Breakpoint Haltepunkt ein/aus - + Follow Branch Branch folgen - + Go to Address Gehe zu Adresse - + Go to in Memory View Gehe zu in Speicheransicht - - + + Add Function Funktion hinzufügen - - + + Rename Function Funktion umbenennen - + Remove Function Funktion entfernen - - + + Assemble Error Assemblierungsfehler - + Unable to change assembly while core is running Assembly kann nicht geändert werden, während der Core läuft - + Assemble Instruction Befehlssatz Erweiterungen - + Go to address Gehe zu Adresse - + Go to address error Gehe zu Adressfehler - + Invalid address Ungültige Adresse - + Add Function Error Funktionsfehler hinzufügen - + A function entry point already exists here. Consider renaming instead. Hier existiert bereits ein Einstiegspunkt. Versuche stattdessen eine Umbenennung. - - + + Function will be (0x%1) instructions long. Enter function name Funktion wird (0x%1) lang sein. Gebe den Funktionsnamen ein - + Function name Funktionsname - - + + Rename Function Error Funktionsfehler umbenennen - + Function name cannot be nothing. Funktionsname darf nicht leer sein. - + No function / symbol is currently selected. Keine Funktion / Symbol ist derzeit ausgewählt. - + + Restore Function Error + Funktionsfehler wiederherstellen + + + + Unable to stub selected address. + Ausgewählte Adresse kann nicht belegt werden. + + + + Restore Instruction(s) + Anleitung(en) wiederherstellen + + + + Restore Function + Funktion wiederherstellen + + + + Stub (NOP) Function + Stub (NOP) Funktion + + + %1 NOT VALID ADDRESS %1 unzulässige Adresse @@ -3228,17 +3555,17 @@ Gebe den Funktionsnamen ein EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - <html><head/><body><p><span style=" font-weight:700;"> Keine Spiele im unterstüzten Format wurden gefunden.</span></p><p>Bitte ein Verzeichnis mit Spielen im unterstützten Format hinzufügen.</p><p>Spiele "Dumps" im folgenden Formaten werden unterstützt:</p></body></html> + <html><head/><body><p><span style=" font-weight:700;"> Keine Spiele im unterstützten Format gefunden.</span></p><p>Bitte ein Verzeichnis mit Spielen im unterstützten Format hinzufügen.</p><p>Spiele "Dumps" im folgenden Formaten werden unterstützt:</p></body></html> - + Add Game Directory... Spielverzeichnis hinzufügen... - + Scan For New Games Nach neuen Spielen suchen @@ -3246,48 +3573,44 @@ Gebe den Funktionsnamen ein EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Spiel: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Spiel-ID: %1 -Spieltitel: %2 -Erfolge: %5 (%6) - + Spiel: %1 (%2) - - - %n points - - %n Punkt - %n Punkte - - - + Rich presence inactive or unsupported. Rich-Präsenz inaktiv oder nicht unterstützt. - + Game not loaded or no RetroAchievements available. Spiel nicht geladen oder keine RetroAchievements verfügbar. @@ -3295,192 +3618,192 @@ Erfolge: %5 (%6) EmulationSettingsWidget - + Speed Control Geschwindigkeit - + Normal Speed: Normale Geschwindigkeit: - + Enable Speed Limiter Geschwindigkeitsbegrenzer aktivieren - + System Settings Systemeinstellungen - + Enable Instant VU1 Instant VU1 aktivieren - + Enable Cheats Cheats aktivieren - + Slow-Motion Speed: Zeitlupe: - + Fast-Forward Speed: Zeitraffer: - + Enable Multithreaded VU1 (MTVU) Multi-Thread VU1 (MTVU) aktivieren - + Enable Host Filesystem Host-Dateisystem aktivieren - + Enable Fast CDVD Fast CDVD aktivieren - + EE Cycle Skipping: EE-Cycle Skipping: - - + + Disabled Deaktviert - + Mild Underclock Leichte Untertaktung - + Moderate Underclock Moderate Untertaktung - + Maximum Underclock Maximale Untertaktung - + EE Cycle Rate: EE Zyklusrate: - + 50% (Underclock) 50% (Untertaktung) - + 60% (Underclock) 60 % (Untertaktung) - + 75% (Underclock) 75% (Untertaktung) - + 100% (Normal Speed) 100% (Normale Geschwindigkeit) - + 130% (Overclock) 130% (Übertaktung) - + 180% (Overclock) 180% (Übertaktung) - + 300% (Overclock) 300% (Übertaktung) - + Affinity Control: Affinitätskontrolle: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latenzeinstellungen - + frames This string will appear next to the amount of frames selected, in a dropdown box. bilder - + Maximum Frame Latency: Maximale Bild Latenz: - + Optimal Frame Pacing Optimales Frame Pacing - + Scale To Host Refresh Rate Auf Host-Aktualisierungsrate skalieren @@ -3568,12 +3891,22 @@ Erfolge: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Erlaubt Spielen und Homebrew auf Dateien / Ordner die direkt auf dem Host-Computer liegen zuzugreifen. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Beschleunigt die Emulation, sodass die Aktualisierungsrate des Gastes mit der des Hosts übereinstimmt. Dies führt zu möglichst flüssigen Animationen, allerdings auf Kosten einer potenziellen Erhöhung der Emulationsgeschwindigkeit um weniger als 1 %. „Auf Host-Aktualisierungsrate skalieren“ wird nicht wirksam, wenn die Aktualisierungsrate der Konsole zu weit von der Aktualisierungsrate des Hosts entfernt ist. Benutzer mit Displays mit variabler Bildwiederholfrequenz sollten diese Option deaktivieren. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Zeitraffer Geschwindigkeit + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3637,45 +3970,40 @@ Erfolge: %5 (%6) Setzt die maximale Anzahl von Frames fest, die in einer Warteschlange zum GS stehen können. Der CPU-Thread wartet jedes mal bis ein Frame fertiggestellt wurde bevor es mit dem nächsten weitermacht . Höhere Werte können bei der Glättung unregelmäßiger Bildzeiten (Frame Times) helfen, fügt aber zusätzliche Eingabeverzögerungen (Input Lag) hinzu. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Stellt die Emulationsgeschwindigkeit so ein, dass die Konsolen-Aktualisierungsrate mit der Aktualisierungsrate des Hosts übereinstimmt, wenn sowohl VSync als auch Audio-Resampling aktiviert sind. Dies führt zu möglichst reibungslosen Animationen auf Kosten einer möglichen Steigerung der Emulationsgeschwindigkeit um weniger als 1%. Skalierung zu Host Aktualisierungsrate wird nicht wirksam, wenn die Aktualisierungsrate der Konsole zu weit von der Aktualisierungsrate des Hosts entfernt ist. Benutzer von Bildschirmen mit variabler Aktualisierungsrate (= Adaptive Sync = Freesync/G-Sync) sollten diese Option deaktivieren. - - - + Use Global Setting [%1%] Globale Einstellung verwenden [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unbegrenzt - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Benutzerdefiniert - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Benutzerdefiniert [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Benutzerdefinierte Geschwindigkeit - + Enter Custom Speed Benutzerdefinierte Geschwindigkeit eingeben @@ -3683,79 +4011,79 @@ Erfolge: %5 (%6) FolderSettingsWidget - + Cache Directory Cache-Verzeichnis - - - - - + + + + + Browse... Durchsuchen... - - - - - + + + + + Open... Öffnen... - - - - - + + + + + Reset Zurücksetzen - + Used for storing shaders, game list, and achievement data. - Wird zum Speichern von Shadern, Spiellisten und Trophäen-Daten verwendet. + Wird zum Speichern von Shadern, Spiellisten und Errungenschaften-Daten verwendet. - + Cheats Directory Cheats Verzeichnis - + Used for storing .pnach files containing game cheats. Verwendet um .pnach Dateien mit Spiel-Cheats zu speichern. - + Covers Directory Cover-Verzeichnis - + Used for storing covers in the game grid/Big Picture UIs. Verwendet für die Speicherung von Covern im Spielraster/Big Picture UI. - + Snapshots Directory Snapshot-Verzeichnis - + Used for screenshots and saving GS dumps. Wird für Screenshots und das Speichern von GS-Dumps verwendet. - + Save States Directory Save State Verzeichnis - + Used for storing save states. Wird verwendet zum Speichern von Save states. @@ -3763,2082 +4091,2102 @@ Erfolge: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Es konnten keine CD/DVD-ROM-Geräte gefunden werden. Bitte stelle sicher, dass du ein Laufwerk angeschlossen hast und ausreichende Rechte um darauf zuzugreifen. - + Use Global Setting Globale Einstellung verwenden - + Automatic binding failed, no devices are available. Automatische Bindung fehlgeschlagen, keine Geräte verfügbar. - + Game title copied to clipboard. Spieltitel in die Zwischenablage kopiert. - + Game serial copied to clipboard. Spiel-Seriennummer in die Zwischenablage kopiert. - + Game CRC copied to clipboard. Spiel-CRC in die Zwischenablage kopiert. - + Game type copied to clipboard. Spieltyp in die Zwischenablage kopiert. - + Game region copied to clipboard. Spielregion in die Zwischenablage kopiert. - + Game compatibility copied to clipboard. Spielkompatibilität in die Zwischenablage kopiert. - + Game path copied to clipboard. Spielpfad in Zwischenablage kopiert. - + Per-game controller configuration initialized with global settings. Controller Konfiguration pro Spiel initialisiert mit globalen Einstellungen. - + Controller settings reset to default. Controller-Einstellungen auf Standard zurückgesetzt. - + No input profiles available. Keine Eingabeprofile verfügbar. - + Create New... Neu erstellen... - + Enter the name of the input profile you wish to create. Gib der Tastenbelegung einen Namen. - + Are you sure you want to restore the default settings? Any preferences will be lost. Willst du die Standardeinstellungen wirklich wiederherstellen? Jegliche Präferenzen gehen verloren. - + Settings reset to defaults. Einstellungen auf Standard zurückgesetzt. - - Quick Save Slot - Schnellspeicherslot - - - + No save present in this slot. Kein Speicherstand auf diesem Speicherplatz vorhanden. - + No save states found. Keine Savestates gefunden. - + Failed to delete save state. Löschen des Savestate fehlgeschlagen. - + Failed to copy text to clipboard. Kopieren des Textes in die Zwischenablage fehlgeschlagen. - + This game has no achievements. Dieses Spiel hat keine Erfolge. - + This game has no leaderboards. Dieses Spiel hat keine Ranglisten. - + Reset System System zurücksetzen - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore-Modus wird erst aktiviert, wenn das System zurückgesetzt wird. Möchtest du das System jetzt zurücksetzen? - + Launch a game from images scanned from your game directories. Spiel vom einem Image starten welches aus dem gescannten Spielordner stammt. - + Launch a game by selecting a file/disc image. Ein Spiel starten indem man die Datei bzw. das Disk image anklickt. - + Start the console without any disc inserted. Die Konsole starten ohne das eine Disk eingelegt ist. - + Start a game from a disc in your PC's DVD drive. Ein Spiel von Disk welches im DVD Laufwerk eingelegt ist starten. - + Change settings for the emulator. Einstellungen des Emulators ändern. - + Exits the program. Beendet das Programm. - + No Binding Keine Zuordnung - + Setting %s binding %s. Einstellung der %sTastenbelegung%s. - + Push a controller button or axis now. Drücke jetzt eine Controller-Taste und/oder bewege einen Stick. - + Timing out in %.0f seconds... Zeitüberschreitung in %.0f Sekunden... - + Unknown Unbekannt - + OK OK - + Select Device Gerät auswählen - + Details Details - + Options Einstellungen - + Copies the current global settings to this game. Kopiert die aktuellen globalen Einstellungen für dieses Spiel. - + Clears all settings set for this game. Löscht alle Einstellungen für dieses Spiel. - + Behaviour Verhalten - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Verhindert das sich der Bildschirmschoner und/oder Energiesparen sich während der Emulation aktivieren. - + Shows the game you are currently playing as part of your profile on Discord. Zeigt das Spiel, das du gerade spielst als Teil deines Profils in Discord an. - + Pauses the emulator when a game is started. Pausiert den Emulator, wenn ein Spiel gestartet wird. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pausiert den Emulator, wenn du das Fenster minimierst oder zu einer anderen Anwendung wechselst. Wechselt man zurück zum Emulator, läuft dieser weiter. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pausiert den Emulator, wenn du das Schnellmenü öffnest und lässt ihn weiterlaufen beim Schließen des Menüs. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Legt fest, ob gefragt werden soll ob man sich sicher ist das man den Emulator/das Spiel schließen möchte, wenn man den Hotkey gedrückt hat. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Speichert den Emulator-Status beim Herunterfahren oder Beenden automatisch. Du kannst beim nächsten Starten dort fortfahren, wo du das letzte Mal aufgehört hast. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Ermöglicht das Laden von ini Overlays aus Spieleinstellungen, oder benutzerdefinierter Einstellungen per Spiel. - - - + Uses a light coloured theme instead of the default dark theme. Verwendet ein hellgefärbtes Theme statt des dunklen Standard-Themes. - + Game Display Spiel Anzeige - - Automatically switches to fullscreen mode when the program is started. - Wechselt beim Programmstart automatisch in den Vollbildmodus. - - - + Switches between full screen and windowed when the window is double-clicked. Wechselt zwischen Vollbild- und Fenstermodus, bei Doppelklick auf das Fenster. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Versteckt den Mauszeiger/Cursor, wenn der Emulator im Vollbildmodus ist. - + Determines how large the on-screen messages and monitor are. Legt fest, wie groß die Nachrichten und die Anzeige auf dem Bildschirm sind. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Zeigt Nachrichten auf dem Bildschirm an, wenn Ereignisse auftreten, wie zum Beispiel das Erstellen/Laden von Zuständen, Screenshots usw. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Zeigt die aktuelle Emulationsgeschwindigkeit des Systems in der oberen rechten Ecke des Displays in Prozent an. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Zeigt die Anzahl der Videobilder (oder v-syncs) an, die pro Sekunde vom System angezeigt werden, in der rechten oberen Ecke des Displays an. - + Shows the CPU usage based on threads in the top-right corner of the display. Zeigt die CPU-Auslastung basierend auf den Threads in der rechten oberen Ecke des Bildschirms. - + Shows the host's GPU usage in the top-right corner of the display. Zeigt die CPU-Auslastung des Hosts in der rechten oberen Ecke des Bildschirms. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Zeigt die Auflösung des Spiels in der rechten oberen Ecke des Bildschirms an. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Zeigt Statistiken über GS (primitive, draw calls) in der oberen rechten Ecke des Displays an. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Zeigt an wenn Vorspulen, Pausieren oder andere besondere Zustände aktiv sind. - + Shows the current configuration in the bottom-right corner of the display. Zeigt die aktuelle Konfiguration in der unteren rechten Ecke des Displays an. - + Shows the current controller state of the system in the bottom-left corner of the display. Zeigt den aktuellen Controller-Status des Systems in der linken unteren Ecke des Bildschirms an. - + Shows a visual history of frame times in the upper-left corner of the display. Zeigt ein Histogramm der Frametimes in der oberen linken Ecke des Displays an. - + Displays warnings when settings are enabled which may break games. Zeigt Warnungen an, wenn Einstellungen aktiviert sind, die Spiele unspielbar machen können. - + Resets configuration to defaults (excluding controller settings). Setzt die Konfiguration auf Standardwerte zurück (außer Controller-Einstellungen). - + Changes the BIOS image used to start future sessions. Ändert das BIOS-Image, mit dem zukünftige Sitzungen gestartet werden. - + Automatic Automatisch - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Standard + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + Wenn diese Option aktiviert ist, werden benutzerdefinierte Einstellungen pro Spiel angewendet. Deaktivieren Sie diese Option, um immer die globale Konfiguration zu verwenden. + + + + Automatically switches to fullscreen mode when a game is started. + Wechselt automatisch in den Vollbildmodus, wenn ein Spiel gestartet wird. + + + On-Screen Display - On-Screen Display + Bildschirmanzeige - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Zeigt die Auflösung des Spiels in der rechten oberen Ecke des Bildschirms an. + + + BIOS Configuration - BIOS Configuration + BIOS Konfiguration - + BIOS Selection BIOS-Auswahl - + Options and Patches - Options and Patches + Optionen und Patches - + Skips the intro screen, and bypasses region checks. Überspringt den Intro Bildschirm und umgeht die Regionsprüfung. - + Speed Control Geschwindigkeitskontrolle - + Normal Speed Normale Geschwindigkeit - + Sets the speed when running without fast forwarding. Setzt die Geschwindigkeit beim Ausführen ohne schnellen Vorlauf. - + Fast Forward Speed Vorspul Geschwindigkeit - + Sets the speed when using the fast forward hotkey. Legt die Geschwindigkeit fest, wenn du die Vorspul-Taste drückst. - + Slow Motion Speed Zeitlupen Geschwindigkeit - + Sets the speed when using the slow motion hotkey. Legt die Geschwindigkeit fest, wenn du die Zeitlupen-Taste drückst. - + Enable Speed Limiter Geschwindigkeitsbegrenzer aktivieren - + When disabled, the game will run as fast as possible. Wenn deaktiviert, läuft das Spiel so schnell wie möglich. - + System Settings Systemeinstellungen - + EE Cycle Rate EE Zyklusrate - + Underclocks or overclocks the emulated Emotion Engine CPU. Unter- oder übertaktet die emulierte Emotion Engine CPU. - + EE Cycle Skipping EE-Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Fügt der Emulierten Emotion Engine eine Strafe für die Ausführung von VU-Programmen hinzu. - - - + Affinity Control Mode Affinitätskontrollmodus - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Setzt Emulations-Threads fest auf echte CPU-Kerne (anstatt Hyperthreading/SMT Kerne), um eventuell die Performance/Frametimes zu verbessern bzw. Schwankungen zu verringern. - + Enable MTVU (Multi-Threaded VU1) MTVU (Multi-Threaded VU1) aktivieren - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Nutzt einen zweiten Thread für VU1-Mikro-Programme. Gibt einen beträchtlichen Geschwindigkeitsboost. - - - + Enable Instant VU1 Instant VU1 aktivieren - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduziert das Timeslicing zwischen VU1- und EE-Recompilern, die effektiv VU1 mit unendlicher Geschwindigkeit betreiben. - - - + Enable Cheats Cheats aktivieren - + Enables loading cheats from pnach files. Aktiviert das Laden von Cheats aus .pnach-Dateien. - + Enable Host Filesystem Host-Dateisystem aktivieren - + Enables access to files from the host: namespace in the virtual machine. Aktiviert den Zugriff auf Dateien vom Host: Namespace in der virtuellen Maschine. - + Enable Fast CDVD Fast CDVD aktivieren - + Fast disc access, less loading times. Not recommended. Schneller Disc Zugriff, geringere Ladezeiten. Nicht empfohlen. - + Frame Pacing/Latency Control Frame Pacing / Latenzkontrolle - + Maximum Frame Latency Maximale Bild Latenz - + Sets the number of frames which can be queued. Legt die Anzahl der Frames fest, die in der Warteschlange stehen können. - + Optimal Frame Pacing Optimales Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronisiert EE und GS Threads nach jedem Frame. Niedrigste Eingabeverzögerung, aber erhöht die Systemanforderungen. - - Adjust To Host Refresh Rate - An Host Aktualisierungsrate anpassen - - - + Speeds up emulation so that the guest refresh rate matches the host. Beschleunigt Emulation, sodass die Gast-Aktualisierungsrate mit dem Host übereinstimmt. - + Renderer Renderer - + Selects the API used to render the emulated GS. Wählt die API aus, die zum Rendern des emulierten GS verwendet wird. - + Sync To Host Refresh (VSync) Sync zum Host aktualisieren (VSync) - + Synchronizes frame presentation with host refresh. Synchronisiert Frame-Präsentation mit Host-Aktualisierung. - + Display Display - + Aspect Ratio Seitenverhältnis - + Selects the aspect ratio to display the game content at. Wählt das Seitenverhältnis aus, mit dem das Spiel angezeigt wird. - + FMV Aspect Ratio FMV Seitenverhältnis - + Selects the aspect ratio for display when a FMV is detected as playing. Wählt das Seitenverhältnis aus, wenn erkannt wird das ein FMV abgespielt wird. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Wählt den Algorithmus aus, der verwendet wird, um die PS2-Ausgabe von interlace in progressiv zu konvertieren. - + Screenshot Size Screenshot-Größe - + Determines the resolution at which screenshots will be saved. Bestimmt die Auflösung, in der Screenshots gespeichert werden. - + Screenshot Format Screenshot-Format - + Selects the format which will be used to save screenshots. Wählt das Format aus, das zum Speichern von Screenshots verwendet wird. - + Screenshot Quality Screenshot-Qualität - + Selects the quality at which screenshots will be compressed. Wählt die Qualität aus, in der Screenshots komprimiert werden. - + Vertical Stretch Vertikale Streckung - + Increases or decreases the virtual picture size vertically. Erhöht oder verringert die virtuelle vertikale Bildgröße. - + Crop Zuschneiden - + Crops the image, while respecting aspect ratio. Schneidet das Bild zu, unter Berücksichtigung des Seitenverhältnisses. - + + %dpx + %dpx + + + Enable Widescreen Patches Breitbild-Patches aktivieren - + Enables loading widescreen patches from pnach files. Aktiviert das Laden von de-interlacing-Patches aus Pnach Dateien. - + Enable No-Interlacing Patches De-Interlacing-Patches aktivieren - + Enables loading no-interlacing patches from pnach files. Aktiviert das Laden von de-interlacing-Patches aus Pnach Dateien. - + Bilinear Upscaling Bilineares Hochskalieren - + Smooths out the image when upscaling the console to the screen. Glättet das Bild beim Hochskalieren der Konsole auf den Bildschirm. - + Integer Upscaling Ganzzahl-Hochskalierung - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Fügt dem Anzeigebereich Polster hinzu, um sicherzustellen, dass das Verhältnis zwischen Pixeln auf dem Host zu Pixel in der Konsole eine Ganzzahl (Integer) ist. Dies kann zu einem schärferen Bild in einigen 2D-Spielen führen. - + Screen Offsets Bildschirm-Versatz - + Enables PCRTC Offsets which position the screen as the game requests. Aktiviert PCRTC Offsets welche den Bildschirm gemäß Spielanfrage positionieren. - + Show Overscan Overscan anzeigen - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Aktiviert die Option, den Overscan Bereich bei Spielen anzuzeigen, welche mehr als den sicheren Bereich des Bildschirms anzeigt. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Aktiviert interne Anti-Blur-Hacks. Weniger übereinstimmend mit PS2-Rendering, aber viele Spiele werden weniger verschwommen aussehen. - + Rendering Rendering - + Internal Resolution Interne Auflösung - + Multiplies the render resolution by the specified factor (upscaling). Multipliziert die Renderauflösung mit dem angegebenen Faktor (Hochskalierung). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Legt fest, wie mipmaps beim Rendern von Texturen verwendet werden. - + Bilinear Filtering Bilineare Filterung - + Selects where bilinear filtering is utilized when rendering textures. Wählt, wo bilineare Filterung verwendet wird, wenn Texturen dargestellt werden. - + Trilinear Filtering Trilineare Filterung - + Selects where trilinear filtering is utilized when rendering textures. Wählt, wo die trilineare Filterung beim Rendern von Texturen verwendet wird. - + Anisotropic Filtering Anisotropische Filterung - - Selects where anistropic filtering is utilized when rendering textures. - Bestimmt, wo bei der Darstellung von Texturen eine anistropische Filterung verwendet wird. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Wählt die Art des Dithering aus, wenn das Spiel es anfordert. - + Blending Accuracy Blending Genauigkeit - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Bestimmt die Genauigkeitsstufe, wenn Überlagerungsmodi emuliert werden, die von der Host-Grafik-API nicht unterstützt werden. - + Texture Preloading Textur vorab laden - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Lädt vollständige Texturen bei der Verwendung in die GPU und nicht nur die genutzten Regionen. Kann die Leistung in einigen Spielen verbessern. - + Software Rendering Threads Software-Rendering-Threads - + Number of threads to use in addition to the main GS thread for rasterization. Anzahl der zu verwendenden Threads zusätzlich zum GS-Thread zur Rasterung. - + Auto Flush (Software) Auto-Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Erzwingt einen primitiven Flush wenn ein Framebuffer auch eine Input-Textur ist. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Aktiviert Emulation der GS Kantenglättung (AA1). - + Enables emulation of the GS's texture mipmapping. Aktiviert Emulation des GS-Textur Mipmapping. - + Hardware Fixes Hardware-Fixes - + Manual Hardware Fixes Manuelle Hardware-Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Deaktiviert automatische Hardware-Korrekturen, sodass Sie Fehler manuell korrigieren können. - + CPU Sprite Render Size CPU Sprite Rendergröße - + Uses software renderer to draw texture decompression-like sprites. Verwendet Software-Renderer um Textur-Dekompressions-ähnliche Sprites zu zeichnen. - + CPU Sprite Render Level CPU-Sprite Render-Level - + Determines filter level for CPU sprite render. Bestimmt die Filterebene für CPU-Sprite-Render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Benutzt Software-Renderer um Textur CLUT Punkte/Sprites zu zeichnen. - + Skip Draw Start Draw Start überspringen - + Object range to skip drawing. Objektbereich zum Zeichnen überspringen. - + Skip Draw End Draw Ende überspringen - + Auto Flush (Hardware) Auto-Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer-Konvertierung - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Konvertierung von 4-Bit und 8-Bit Framebuffer auf der CPU statt auf der GPU. - - Disable Depth Support - Tiefenunterstützung deaktivieren - - - - Disable the support of depth buffer in the texture cache. - Deaktivieren Sie die Unterstützung des Tiefenbuffers im Textur-Cache. - - - + Disable Safe Features Sichere Funktionen deaktivieren - + This option disables multiple safe features. Mit dieser Einstellung werden mehrere Sicherheitsfunktionen deaktiviert. - - Disable Render Features - Render-Korrekturen deaktivieren - - - + This option disables game-specific render fixes. Diese Einstellung deaktiviert spiel-spezifische Render-Korrekturen. - - Preload Frame - Frame Vorladen - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Lädt GS-Daten hoch, wenn ein neuer Frame gerendert wird, um einige Effekte genau zu reproduzieren. - + Disable Partial Invalidation Teilweise Ungültigkeit deaktivieren - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Entfernt Textur-Cache-Einträge, wenn es irgendeine Überschneidung gibt, und nicht nur die überschnittenen Bereiche. - - Texture Inside Render Target - Textur innerhalb des Renderziels - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Ermöglicht es dem Textur-Cache, den inneren Teil eines früheren Framebuffers als Eingabetextur wiederzuverwenden. - + Read Targets When Closing Liest Ziele beim Schließen - + Flushes all targets in the texture cache back to local memory when shutting down. Leert beim Herunterfahren alle Ziele im Textur-Cache zurück in den lokalen Speicher. - + Estimate Texture Region Schätzung der Textur-Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Versucht, die Texturgröße zu reduzieren, wenn die Spiele sie nicht selbst festlegen (z.B. Snowblind-Spiele). - + GPU Palette Conversion GPU Paletten Konvertierung - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Verwendet Paletten für Texturen auf dem Grafikprozessor statt auf der CPU. Kann in einigen Spielen zu Geschwindigkeitsverbesserungen führen. - - - + Upscaling Fixes - Upscaling Fixes + Hochskalierungs Fixes - - Half-Pixel Offset - Halbpixel-Versatz - - - + Adjusts vertices relative to upscaling. Passt Scheitelpunkte relativ zur Hochskalierung an. - + Round Sprite Runder Sprite - + Adjusts sprite coordinates. Ändert die Sprite-Koordinaten. - + Bilinear Upscale Bilineare Hochskalierung - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Kann Texturen glätten, da sie beim Hochskalieren bilinear gefiltert werden. Z. B. Brave Sonnenblendung. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Passt die Textur-Offsets an. - - TC Offset Y - TC Offset Y - - - + Align Sprite Sprite ausrichten - + Fixes issues with upscaling (vertical lines) in some games. Behebt Probleme mit Upscaling (vertikale Zeilen) in einigen Spielen. - + Merge Sprite Sprite zusammenführen - + Replaces multiple post-processing sprites with a larger single sprite. Ersetzt mehrere Nachbearbeitungs-Sprites durch ein größeres einzelnes Sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Verringert die GS-Präzision, um Lücken zwischen Pixeln beim Hochskalieren zu vermeiden. Korrigiert den Text in Wild Arms-Spielen. - + Unscaled Palette Texture Draws Unskalierte Paletten-Textur Draws - + Can fix some broken effects which rely on pixel perfect precision. Kann einige defekte Effekte beheben, die auf perfekte Pixelgenauigkeit angewiesen sind. - + Texture Replacement Textur Ersatz - + Load Textures Texturen laden - + Loads replacement textures where available and user-provided. Lädt Ersatztexturen, sofern vorhanden und vom Benutzer bereitgestellt. - + Asynchronous Texture Loading Asynchrones Laden von Texturen - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Lädt Ersatztexturen auf einem Worker-Thread, wodurch Mikrostottern reduziert wird, wenn Ersatztexturen aktiviert sind. - + Precache Replacements Precache-Ersatz - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Lädt alle Ersatztexturen in den Speicher vor. Nicht notwendig bei asynchronem Laden. - + Replacements Directory Ersetzungs-Verzeichnis - + Folders Ordner - + Texture Dumping Textur Dumping - + Dump Textures Texturen dumpen - - Dumps replacable textures to disk. Will reduce performance. - Speichert austauschbare Texturen auf der Festplatte. Verringert die Leistung. - - - + Dump Mipmaps Mipmaps dumpen - + Includes mipmaps when dumping textures. Schließt Mipmaps beim Dumping von Texturen ein. - + Dump FMV Textures FMV-Texturen dumpen - + Allows texture dumping when FMVs are active. You should not enable this. Erlaubt Textur-Dumping, wenn FMVs aktiv sind. Sie sollten dies nicht aktivieren. - + Post-Processing Nachbearbeitung - + FXAA FXAA - + Enables FXAA post-processing shader. Aktiviert den FXAA-Nachbearbeitungs-Shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Aktiviert FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS-Schärfe - + Determines the intensity the sharpening effect in CAS post-processing. Bestimmt die Intensität der Schärfe der CAS-Nachbearbeitung. - + Filters Filter - + Shade Boost Schattierungs Boost - + Enables brightness/contrast/saturation adjustment. Ermöglicht die Anpassung von Helligkeit/Kontrast/Sättigung. - + Shade Boost Brightness Shade Boost Helligkeit - + Adjusts brightness. 50 is normal. Helligkeit einstellen. 50 ist normal. - + Shade Boost Contrast Shade Boost Kontrast - + Adjusts contrast. 50 is normal. Kontrast anpassen. 50 ist normal. - + Shade Boost Saturation Shade Boost Sättigung - + Adjusts saturation. 50 is normal. Sättigung anpassen. 50 ist normal. - + TV Shaders TV-Shader - - Selects post-processing TV shader. - Wählt den Nachbearbeitungs-TV-Shader aus. - - - + Advanced Erweitert - + Skip Presenting Duplicate Frames Überspringe Darstellung Doppelter Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Überspringt die Anzeige von Frames, die sich in 25/30fps-Spielen nicht ändern. Kann die Geschwindigkeit verbessern, aber den Input Lag erhöhen/den Frame Pacing verschlechtern. - - - + Disable Threaded Presentation Threaded-Präsentation deaktivieren - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Stellt Frames auf einem Worker-Thread dar, anstatt auf dem GS-Thread. Kann auf einigen Systemen die Framezeiten verbessern, allerdings auf Kosten eines möglicherweise schlechteren Frame-Pacings. - - - + Hardware Download Mode Hardware-Download-Modus - + Changes synchronization behavior for GS downloads. Ändert das Synchronisationsverhalten für GS-Downloads. - + Allow Exclusive Fullscreen Erlaubt exklusiven Vollbildschirm - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Überschreibt die Heuristik des Treibers's um exklusives Vollbild oder direktes Flip/Scanout zu aktivieren. - + Override Texture Barriers Texturbarrieren Überschreiben - + Forces texture barrier functionality to the specified value. Erzwingt die Funktionalität der Texturbarrieren auf den angegebenen Wert. - + GS Dump Compression GS Dump Komprimierung - + Sets the compression algorithm for GS dumps. Legt den Komprimierungsalgorithmus für GS-Dumps fest. - + Disable Framebuffer Fetch Framebuffer-Abruf deaktivieren - + Prevents the usage of framebuffer fetch when supported by host GPU. Verhindert die Verwendung von Framebuffer Fetch, wenn dies von der Host-GPU unterstützt wird. - + Disable Dual-Source Blending Dual Source Blending Deaktivieren - + Prevents the usage of dual-source blending when supported by host GPU. Verhindert die Verwendung von Dual-Source-Blending, wenn es von der Host-GPU unterstützt wird. - + Disable Shader Cache Shader Cache deaktivieren - + Prevents the loading and saving of shaders/pipelines to disk. Verhindert das Laden und Speichern von Shadern/Pipelines auf der Festplatte. - + Disable Vertex Shader Expand Expandierung des Vertex-Shaders deaktivieren - + Falls back to the CPU for expanding sprites/lines. Greift auf die CPU zurück, um Sprites/Zeilen zu erweitern. - + Runtime Settings Laufzeit-Einstellungen - + Applies a global volume modifier to all sound produced by the game. Wendet einen globalen Lautstärkeregler auf alle vom Spiel erzeugten Geräusche an. - + Mixing Settings Mixing-Einstellungen - + Changes when SPU samples are generated relative to system emulation. Ändert, wann SPU-Samples im Verhältnis zur Systememulation erzeugt werden. - + Determines how the stereo output is transformed to greater speaker counts. Legt fest, wie die Stereoausgabe in eine größere Anzahl von Lautsprechern umgewandelt wird. - + Output Settings Ausgabeeinstellungen - + Determines which API is used to play back audio samples on the host. Legt fest, welche API für die Wiedergabe von Audiosamples auf dem Host verwendet wird. - + Sets the average output latency when using the cubeb backend. Legt die durchschnittliche Ausgabelatenz bei Verwendung des Cubeb-Backends fest. - + + %d ms (avg) + %d ms (Durchschn.) + + + Timestretch Settings Zeitdehnungs-Einstellungen - + Affects how the timestretcher operates when not running at 100% speed. Beeinflusst, wie der Timestretcher funktioniert, wenn er nicht mit 100%iger Geschwindigkeit läuft. - + + %d ms + %d ms + + + Settings and Operations Einstellungen und Betrieb - + Creates a new memory card file or folder. Erstellt eine neue Memory Card-datei oder einen Ordner. - + Simulates a larger memory card by filtering saves only to the current game. Simuliert eine größere Memory Card, indem für nur das aktuelle Spiel gefiltert wird. - + Automatically ejects Memory Cards when they differ after loading a state. Wirft Memory Cards automatisch aus, wenn sie sich nach dem Laden eines Zustands unterscheiden. - + If not set, this card will be considered unplugged. Falls nicht gesetzt wird diese Karte als nicht eingesteckt angesehen. - + The selected memory card image will be used for this slot. Das ausgewählte Memory Card Abbild wird für diesen Slot verwendet. - + Resets the card name for this slot. Setzt den Kartennamen für diesen Slot zurück. - + Create Memory Card Memory Card erstellen - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Geben Sie den Namen der zu erstellenden Memory Card ein und wählen Sie eine Größe. Wir empfehlen entweder die Verwendung von 8 MB Memory Cards oder den Ordner Memory Cards zur bestmöglichen Kompatibilität. - + Card Name: Name der Karte: - + Configuration Konfiguration - + Uses game-specific settings for controllers for this game. Verwendet spielspezifische Einstellungen für Controller für dieses Spiel. - + Copies the global controller configuration to this game. Kopiert die globale Controller-Konfiguration in dieses Spiel. - + Resets all configuration to defaults (including bindings). Setzt alle Einstellungen auf die Standardeinstellungen (einschließlich der Bindungen) zurück. - + Replaces these settings with a previously saved input profile. Ersetzt diese Einstellungen durch ein zuvor gespeichertes Eingabeprofil. - + Stores the current settings to an input profile. Speichert die aktuellen Einstellungen in einem Eingabeprofil. - + Input Sources Eingabequelle - + The SDL input source supports most controllers. Die SDL Eingangsquelle unterstützt die meisten Controller. - + Provides vibration and LED control support over Bluetooth. Unterstützt Vibrations- und LED-Steuerung über Bluetooth. - + Allow SDL to use raw access to input devices. SDL erlauben, Rohzugriff auf Eingabegeräte zu verwenden. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. Die XInput-Quelle bietet Unterstützung für XBox 360/XBox One/XBox Controller. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Ermöglicht zusätzliche drei Controller-Slots. Nicht in allen Spielen unterstützt. - + Attempts to map the selected port to a chosen controller. Versucht, den ausgewählten Steckplatz einem ausgewählten Controller zuzuordnen. - + No Buttons Selected Keine Tasten ausgewählt - + Determines how much pressure is simulated when macro is active. Legt fest, wie viel Druck simuliert wird, wenn Makro aktiv ist. - + Determines the pressure required to activate the macro. Bestimmt den Druck, der benötigt wird, um das Makro zu aktivieren. - + Toggle every %d frames Alle %d Frames umschalten - + Clears all bindings for this USB controller. Löscht alle Zuordnungen für diesen USB-Controller. - + Data Save Locations Datenspeicherorte - + Show Advanced Settings Erweiterte Einstellungen anzeigen - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Das Ändern dieser Optionen kann dazu führen, dass Spiele nicht mehr funktionieren. Die Änderung erfolgt auf eigene Gefahr. Das PCSX2-Team bietet keinen Support für Konfigurationen, bei denen diese Einstellungen geändert wurden. - + Logging - Logging + Protokollierung - + System Console Systemkonsole - + Writes log messages to the system console (console window/standard output). Schreibt Logmeldungen in die Systemkonsole (Konsolenfenster/Standardausgabe). - + File Logging Datei-Protokollierung - + Writes log messages to emulog.txt. Schreibt Logmeldungen in emulog.txt. - + Verbose Logging Ausführliche Protokollierung - + Writes dev log messages to log sinks. Schreibt Entwicklerprotokollnachrichten in die Protokollausgabe. - + Log Timestamps Protokoll-Zeitmarken - + Writes timestamps alongside log messages. Schreibt Zeitstempel neben Log-Nachrichten. - + EE Console EE-Konsole - + Writes debug messages from the game's EE code to the console. Gibt Debug-Nachrichten des EE Codes des Spiels in der Konsole aus. - + IOP Console IOP-Konsole - + Writes debug messages from the game's IOP code to the console. Gibt Debug-Nachrichten des IOP Codes des Spiels in der Konsole aus. - + CDVD Verbose Reads Ausführlicher CDVD Lesemodus - + Logs disc reads from games. Protokolliert Disc-lesungen aus Spielen. - + Emotion Engine Emotion Engine - + Rounding Mode Rundungsmodus - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Bestimmt, wie die Ergebnisse der Floating-point Operationen gerundet werden. Einige Spiele benötigen spezielle Einstellungen. - + Clamping Mode Clamping Modus - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Legt fest, wie floating point zahlen, die außerhalb des Bereichs liegen, behandelt werden. Einige Spiele benötigen spezielle Einstellungen. - + Enable EE Recompiler EE Recompiler Aktivieren - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Führt eine Just-in-Time-Binärübersetzung von 64-Bit-MIPS-IV-Maschinencode in nativen Code durch. - + Enable EE Cache EE-Cache aktivieren - + Enables simulation of the EE's cache. Slow. Aktiviert die Simulation des EE-Caches. Langsam. - + Enable INTC Spin Detection INTC Spin-Erkennung aktivieren - + Huge speedup for some games, with almost no compatibility side effects. Erheblicher Geschwindigkeitszuwachs für einige Spiele, fast ohne Kompatibilitätsnebenwirkungen. - + Enable Wait Loop Detection Aktiviere Warteschleifenerkennung - + Moderate speedup for some games, with no known side effects. Leichte Beschleunigung bei einigen Spielen, ohne bekannte Nebenwirkungen. - + Enable Fast Memory Access Schnellen Speicherzugriff aktivieren - + Uses backpatching to avoid register flushing on every memory access. Verwendet Backpatching, um eine Register-Leerung zu verhindern, bei jedem Speicherzugriff. - + Vector Units Vektoreinheiten - + VU0 Rounding Mode VU0 Rundungsmodus - + VU0 Clamping Mode VU0 Clamping Modus - + VU1 Rounding Mode VU1 Rundungsmodus - + VU1 Clamping Mode VU1 Clamping Modus - + Enable VU0 Recompiler (Micro Mode) VU0 Recompiler (Micro Modus) aktivieren - + New Vector Unit recompiler with much improved compatibility. Recommended. Neuer Vector Unit Recompiler mit deutlich verbesserter Kompatibilität. Empfohlen. - + Enable VU1 Recompiler VU1 Recompiler aktivieren - + Enable VU Flag Optimization Aktiviere VU Flag Optimierung - + Good speedup and high compatibility, may cause graphical errors. Gute Beschleunigung und hohe Kompatibilität, kann grafische Fehler verursachen. - + I/O Processor I/O-Prozessor - + Enable IOP Recompiler IOP Recompiler aktivieren - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Führt just-in-time (JIT) Binärübersetzung von 32-bit MIPS-I Maschinencode zu nativem Code durch. - + Graphics Grafik - + Use Debug Device Debug-Gerät verwenden - - Enables API-level validation of graphics commands - Aktiviert die Validierung von Grafik-Befehlen auf API-Ebene. - - - + Settings Einstellungen - + No cheats are available for this game. Keine Cheats verfügbar für dieses Spiel. - + Cheat Codes Cheat Codes - + No patches are available for this game. Keine Patches verfügbar für dieses Spiel. - + Game Patches Spiel-Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Cheats zu aktivieren kann unvorhersehbares Verhalten hervorrufen, für Crashes und Softlocks sorgen sowie Spielstände korrumpieren. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Patches zu aktivieren kann unvorhersehbares Verhalten hervorrufen, für Crashes und Softlocks sorgen sowie Spielstände korrumpieren. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Benutze Patches auf eigenes Risiko, das PCSX2-Team bietet keine Unterstützung für Benutzer, die Spielpatches aktiviert haben. - + Game Fixes Spiel-Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Spiel-Fixes sollten nicht modifiziert werden, es sei denn, du weißt genau, was jede Option tut und welche Auswirkungen das hat. - + FPU Multiply Hack FPU Multiplikation Hack - + For Tales of Destiny. Für "Tales of Destiny". - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. Für "Gundam" Spiele. - + Preload TLB Hack TLB-Hack vorab laden - - To avoid tlb miss on Goemon. - Damit wird vermieden das der "TLB" verpasst wird bei "Goemon". - - - - Switch to Software renderer for FMVs. - Bei FMVs zum Software-Renderer wechseln. - - - + Needed for some games with complex FMV rendering. Wird gebraucht bei einigen Spielen die FMV´s komplexer rendern. - + Skip MPEG Hack MPEG Hack überspringen - + Skips videos/FMVs in games to avoid game hanging/freezes. Überspringt Videos/FMVs in Spielen, um ein Hängenbleiben/Einfrieren des Spiels zu vermeiden. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Bekannt für folgende Spiele: Bleach Blade Battlers, Growlanser II und III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Bekannte Auswirkungen bei folgenden Spielen: Digital Devil Saga (Fixt FMV und Abstürze), SSX (Fixt Grafikfehler und Abstürze). - - - + Instant DMA Hack Sofortiger DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Bekannt bei folgendem Spiel zu funktionieren: Fire Pro Wrestling Z (Grafikfehler beim Ring). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Betroffene Spiele, die bekannt sind: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - DMAC Schreibvorgänge übernehmen, wenn er beschäftigt ist. + + For SOCOM 2 HUD and Spy Hunter loading hang. + Wenn sich SOCOM 2 HUD oder Spy Hunter beim Laden aufhängen. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Betroffene Spiele, die bekannt sind: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Addition Hack - - Force GIF PATH3 transfers through FIFO - GIF PATH3 Transfers über FIFO erzwingen + + Full VU0 Synchronization + Volle VU0 Synchronisierung - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Zwingt enge VU0 Synchronisierung bei jeder COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simuliere VIF1 FIFO vorzulesen. Behebt langsam ladende Spiele. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Bekannt für folgende Spiele betreffend: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + Auf mögliche float overflows prüfen (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - VIF1 Stalls verzögern (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Genaues Timing für VU XGKicks benutzen (langsamer). - - For SOCOM 2 HUD and Spy Hunter loading hang. - Wenn sich SOCOM 2 HUD oder Spy Hunter beim Laden aufhängen. + + Quadraphonic + Quadraphonisch - - VU Add Hack - VU Addition Hack + + Load State + Savestate laden - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Spiele, die diesen Hack zum Starten benötigen: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Lässt die Emulierte Emotion Engine Zyklen überspringen. Hilft bei einer kleinen Auswahl an Spielen wie Shadow of the Colossus. Meist verschlechtert es aber die Leistung. - - VU I bit Hack avoid constant recompilation in some games - VU I Bit Hack um konstantes recompilen in manchen Spielen zu vermeiden + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Gibt generell einen ein Geschwindigkeitszuwachs auf CPUs mit 4 oder mehr Kernen. Für die meisten Spiele geeignet, einige sind jedoch nicht kompatibel und können sich aufhängen. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Startet VU1 sofort. Bietet eine mittelmässige Geschwindigkeitsverbesserung in den meisten Spielen. Für die meisten Spiele geeignet, aber bei einigen kann es zu Grafikfehlern kommen. - - Full VU0 Synchronization - Volle VU0 Synchronisierung + + Scale To Host Refresh Rate + Auf Host-Aktualisierungsrate skalieren - - Forces tight VU0 sync on every COP2 instruction. - Zwingt enge VU0 Synchronisierung bei jeder COP2 instruction. + + Disable Depth Emulation + Deaktivieren Sie die Tiefenemulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Deaktivieren Sie die Unterstützung von Tiefenpuffern im Textur-Cache. - - To avoid sync problems when reading or writing VU registers. - Um Sync Probleme zu vermeiden, wenn von den VU Registern gelesen oder geschrieben wird. + + Disable Render Fixes + Render-Korrekturen deaktivieren - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Frame-Daten vorladen - - To check for possible float overflows (Superman Returns). - Auf mögliche float overflows prüfen (Superman Returns). + + Texture Inside RT + Textur innerhalb RT - - VU XGkick Sync - VU XGkick Synchronisieren + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + Wenn aktiviert, konvertiert die GPU Colormap-Texturen, andernfalls wird die CPU es tun. Es handelt sich um einen Ausgleich zwischen GPU und CPU. - - Use accurate timing for VU XGKicks (slower). - Genaues Timing für VU XGKicks benutzen (langsamer). + + Half Pixel Offset + Halbpixel-Versatz - - Use Blit for internal FPS - Blit für interne FPS benutzen + + Texture Offset X + Texturversatz X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texturversatz Y - - Load State - Savestate laden + + Dumps replaceable textures to disk. Will reduce performance. + Speichert austauschbare Texturen auf der Festplatte. Reduziert die Leistung. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Wendet einen Shader an, der die visuellen Effekte verschiedener Arten von Fernsehgeräten nachbildet. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Überspringt die Anzeige von Frames, die sich in Spielen mit 25/30 Bildern pro Sekunde nicht ändern. Kann die Geschwindigkeit verbessern, aber die Eingabeverzögerung erhöhen/das Frame-Tempo verschlechtern. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Präsentiert Frames im Haupt-GS-Thread anstelle eines Arbeitsthreads. Wird zum Debuggen von Frametime-Problemen verwendet. + + + + Enables API-level validation of graphics commands. + Ermöglicht die Validierung von Grafikbefehlen auf API-Ebene. + + + + Use Software Renderer For FMVs + Software-Renderer für FMVs Verwenden + + + + To avoid TLB miss on Goemon. + Um einen TLB-Fehler bei Goemon zu vermeiden. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Allzweck-Timing-Hack. Bekannt dafür, folgende Spiele zu beeinflussen: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Gut für Cache-Emulationsprobleme. Bekannt dafür, folgende Spiele zu beeinflussen: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Bekannt dafür, folgende Spiele zu beeinflussen: Bleach Blade Battlers, Growlanser II und III, Wizardry. + + + + Emulate GIF FIFO + GIF FIFO emulieren + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Korrekt aber langsamer. Bekannt dafür, folgende Spiele zu beeinflussen: Fifa Street 2. - + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Verzögerung von VIF1-Störungen + + + + Emulate VIF FIFO + VIF FIFO emulieren + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulieren Sie das Vorauslesen des VIF1-FIFO. Betrifft bekanntermaßen folgende Spiele: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Vermeidet die ständige Neukompilierung in einigen Spielen. Bekannt dafür, folgende Spiele zu beeinflussen: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Für Tri-Ace Spiele: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Lauf hinterher. Um Synchronisierungsprobleme beim Lesen oder Schreiben von VU-Registern zu vermeiden. + + + + VU XGKick Sync + VU XGKick-Synchronisierung + + + + Force Blit Internal FPS Detection + Erzwinge die interne FPS-Erkennung von Blit + + + Save State Savestate erstellen - + Load Resume State Fortsetzungsstatus laden - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5847,2221 +6195,2122 @@ Do you want to load this save and continue? Möchten Sie diesen laden und fortfahren? - + Region: Region: - + Compatibility: Kompatibilität: - + No Game Selected Kein Spiel ausgewählt - + Search Directories Verzeichnisse durchsuchen - + Adds a new directory to the game search list. Fügt der Spielsuche ein neues Verzeichnis hinzu. - + Scanning Subdirectories "Unterverzeichnisse durchsuchen" - + Not Scanning Subdirectories Unterverzeichnisse nicht durchsuchen - + List Settings Listeneinstellungen - + Sets which view the game list will open to. Legt fest, in welcher Ansicht die Spieleliste geöffnet wird. - + Determines which field the game list will be sorted by. Legt fest, nach welchem Feld die Spielliste sortiert wird. - + Reverses the game list sort order from the default (usually ascending to descending). Kehrt die Sortierung der Spiele um. (Normalerweise aufsteigend bis absteigend). - + Cover Settings Cover-Einstellungen - + Downloads covers from a user-specified URL template. Lädt Covers von einer benutzerdefinierten URL-Vorlage herunter. - + Operations Operationen - + + Selects where anisotropic filtering is utilized when rendering textures. + Wählt wo die Anisotropische Filterung angewendet wird, wenn Texturen gerendert werden. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + Eine alternative Methode nutzen um die internen Fps zu berechnen, um falsch ausgelesene Werte in manchen Spielen zu vermeiden. - + Identifies any new files added to the game directories. Identifiziert alle neuen Dateien, die zu den Spielverzeichnissen hinzugefügt wurden. - + Forces a full rescan of all games previously identified. Erzwingt eine vollständige Neueinlesung aller zuvor identifizierten Spiele. - + Download Covers Cover herunterladen - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 kann automatisch Cover für Spiele herunterladen, die derzeit noch kein Cover besitzen. Wir stellen keine Cover-Bilder zur Verfügung, der Benutzer muss seine eigene Quelle bereitstellen. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - Geben Sie in dem unten stehenden Feld die URLs an, von denen die Cover heruntergeladen werden sollen, und zwar eine URL pro Zeile. Die folgenden Variablen sind verfügbar: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Titel des Spiels. -${filetitle}: Name Komponente des Spiels's Dateiname. -${serial}: Seriennummer des Spiels. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Beispiel: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Serielle Dateinamen verwenden - - - + About PCSX2 Über PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 ist ein freier PlayStation 2 (PS2) Open-Source-Emulator. Sein Zweck ist es, die PS2-Hardware zu emulieren mithilfe einer Kombination aus MIPS-CPU-Interpetern, Recompilern sowie einer virtuellen Maschiene, welche die Hardware-Zustände und den PS2-Systemspeicher verwaltet. So können PS2-Spiele auf dem PC gespielt werden, mit weiteren zusätzlichen Funktionen und Vorteilen. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 und PS2 sind eingetragene Marken von Sony Interactive Entertainment. Diese Anwendung ist in keinster Weise mit Sony Interactive Entertainment verbunden. - - XXX points - XXX Punkte - - - - Unlocked Achievements - Freigeschaltene Erfolge - - - - Locked Achievements - Gesperrte Erfolge - - - - Active Challenge Achievements - Aktive Herausforderungs Erfolge - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Das Einreichen von Spielständen ist deaktiviert, da der Hardcore-Modus ausgeschaltet ist. Die Ranglisten sind schreibgeschützt. - - - - Rank - Rang - - - - Name - Name - - - - Time - Zeit - - - - Score - Punkte - - - - Downloading leaderboard data, please wait... - Daten der Rangliste werden heruntergeladen, bitte warten... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. - Wenn aktiviert und angemeldet, wird PCSX2 nach Trophäen suchen, während das Spiel geladen wird. - - - - When enabled, rich presence information will be collected and sent to the server where supported. - Wenn aktiviert, werden Präsenzinformationen gesammelt und an die RetroAchievements Server geschickt. + Wenn aktiviert und angemeldet, wird PCSX2 nach Errungenschaften suchen, während das Spiel geladen wird. - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" Modus für Errungenschaften, einschließlich Ranglisten Tracking. Deaktiviert Savestates, Cheats und Zeitlupen Funktionen. - - Enables tracking and submission of leaderboards in supported games. - Ermöglicht die Anzeige und Übermittlung von Ranglisten in unterstützten Spielen. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Zeigt Popup-Meldungen bei Ereignissen wie der Freischaltung von Erfolgen und der Teilnahme an der Rangliste an. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Spielt Soundeffekte für Ereignisse wie das Freischalten von Trophäen und die Teilnahme an der Rangliste ab. + Spielt Soundeffekte für Ereignisse wie das Freischalten von Errungenschaften und die Teilnahme an der Rangliste ab. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - Zeigt Symbole in der unteren rechten Ecke des Bildschirms an, wenn eine Herausforderung/eine Trophäe aktiv ist. + Zeigt Symbole in der unteren rechten Ecke des Bildschirms an, wenn eine Herausforderung/eine Errungenschaft aktiv ist. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. Wenn aktiviert, listet PCSX2 Errungenschaften von inoffiziellen Sets auf. Diese Errungenschaften werden nicht von RetroAchievements aufgezeichnet. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Wenn aktiviert, geht PCSX2 davon aus, dass alle Errungenschaften gesperrt sind und wird keine Nachrichten an den Server senden das Errungenschaften freigeschaltet wurden. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Zeigt Popup-Meldungen an, wenn eine Bestenlisten-Herausforderung gestartet, eingereicht oder nicht bestanden wird. + + + + When enabled, each session will behave as if no achievements have been unlocked. + Wenn diese Option aktiviert ist, verhält sich jede Sitzung so, als ob keine Erfolge freigeschaltet worden wären. + + + Account - Account + Konto - + Logs out of RetroAchievements. Meldet dich bei RetroAchievements ab. - + Logs in to RetroAchievements. Meldet sich bei RetroAchievements an. - + Current Game - Current Game - - - - Achievements Login - RetroAchievements Anmeldung - - - - Please enter your user name and password for retroachievements.org. - Bitte gib deinen Benutzernamen und Passwort für retroachievements.org ein. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Dein Passwort wird nicht in PCSX2 gespeichert, stattdessen wird ein Zugriffstoken generiert und benutzt. - - - - User Name: - Benutzername: + Derzeitiges Spiel - - Password: - Passwort: - - - + {} is not a valid disc image. {} ist kein gültiges Disc Image. - + Automatic mapping completed for {}. Automatische Zuordnung abgeschlossen für {}. - + Automatic mapping failed for {}. Automatische Zuordnung fehlgeschlagen für {}. - + Game settings initialized with global settings for '{}'. - Game settings initialized with global settings for '{}'. + Die Spieleinstellungen wurden mit globalen Einstellungen für '{}' initialisiert. - + Game settings have been cleared for '{}'. Spieleinstellungen wurden für '{}' gelöscht. - + Console Port {} - Console Port {} + Konsolenanschluss {} - + {} (Current) {} (Aktuell) - + {} (Folder) {} (Ordner) - + Memory card name '{}' is not valid. Name der Memory Card '{}' ist ungültig. - + Memory Card '{}' created. Memory Card '%1' erstellt. - + Failed to create memory card '{}'. Fehler beim Erstellen der Memory Card '{}'. - + A memory card with the name '{}' already exists. Eine Memory Card mit dem Namen '{}' existiert bereits. - + Failed to load '{}'. Laden von '{}' fehlgeschlagen. - + Input profile '{}' loaded. Eingabeprofil '{}' geladen. - + Input profile '{}' saved. Eingabeprofil '{}' gespeichert. - + Failed to save input profile '{}'. Fehler beim Speichern des Eingabeprofils '{}'. - + Port {} Controller Type - Port {} Controller Typ + Steckplatz {} Controller Typ - + Select Macro {} Binds - Select Macro {} Binds + Wähle Makro {} Zuordnungen - + + Macro {} Frequency + Makro {} Frequenz + + + Macro will toggle every {} frames. Makro wird alle {} Frames ausgelöst. - + Port {} Device Steckplatz {} Gerät - + Port {} Subtype Steckplatz {} Untertyp - + {} unlabelled patch codes will automatically activate. {} unbeschriftete Patch Codes werden automatisch aktiviert. - + {} unlabelled patch codes found but not enabled. {} unbeschriftete Patch codes gefunden, aber nicht aktiviert. - + This Session: {} Diese Session: {} - + All Time: {} Gesamtzeit: {} - + Save Slot {0} Speicherplatz {0} - + Saved {} {} gespeichert - + {} does not exist. {} existiert nicht. - + {} deleted. {} gelöscht. - + Failed to delete {}. Löschen von {} fehlgeschlagen. - + File: {} Datei: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Spielzeit: {} - + Last Played: {} Zuletzt gespielt: {} - + Size: {:.2f} MB Größe: {:.2f} MB - - {} points - {} Punkte + + Left: + Links: - - {} (Hardcore Mode) - {} (Hardcore Modus) + + Top: + Oben: - - You have unlocked all achievements and earned {} points! - Du hast alle Trophäen freigeschaltet und hast {} Punkte erhalten! - - - - You have unlocked {} of {} achievements, earning {} of {} possible points. - Du hast {} von {} Errungenschaften freigeschaltet und {} von {} möglichen Punkten erreicht. + + Right: + Rechts: - - This game has {} leaderboards. - Dieses Spiel hat {} Ranglisten. + + Bottom: + Unten: - + Summary Zusammenfassung - + Interface Settings Oberflächen-Einstellungen - + BIOS Settings BIOS-Einstellungen - + Emulation Settings Emulationseinstellungen - + Graphics Settings Grafikeinstellungen - + Audio Settings Audio-Einstellungen - + Memory Card Settings Memory Card-Einstellungen - + Controller Settings Controller Einstellungen - + Hotkey Settings Tastaturkürzel Einstellungen - + Achievements Settings - Trophäen Einstellungen + Errungenschaften Einstellungen - + Folder Settings Ordnereinstellungen - + Advanced Settings Erweiterte Einstellungen - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Geschwindigkeit - + 60% Speed 60% Geschwindigkeit - + 75% Speed 75% Geschwindigkeit - + 100% Speed (Default) 100% Geschwindigkeit (Standard) - + 130% Speed 130% Geschwindigkeit - + 180% Speed 180% Geschwindigkeit - + 300% Speed 300% Geschwindigkeit - + Normal (Default) Normal (Standard) - + Mild Underclock Leichte Untertaktung - + Moderate Underclock Moderate Untertaktung - + Maximum Underclock Maximale Untertaktung - + Disabled Deaktiviert - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Harter Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None Keine - + Extra + Preserve Sign Extra + Vorzeichen behalten - + Full Voll - + Extra Extra - + Automatic (Default) Automatisch (Standard) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Aus - + On An - + Adaptive Adaptiv - + Bilinear (Smooth) Bilinear (Glatt) - + Bilinear (Sharp) Bilinear (Scharf) - + Weave (Top Field First, Sawtooth) Weave (oberes Feld zuerst, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (unteres Feld zuerst, Sawtooth) - + Bob (Top Field First) Bob (oberes Feld zuerst) - + Bob (Bottom Field First) Bob (unteres Feld zuerst) - + Blend (Top Field First, Half FPS) - Blend (Top Field First, Half FPS) + Blend (Oberes Feld zuerst, halbe FPS) - + Blend (Bottom Field First, Half FPS) - Blend (Bottom Field First, Half FPS) + Blend (Unteres Feld zuerst, halbe FPS) - + Adaptive (Top Field First) Adaptiv (Oberes Feld zuerst) - + Adaptive (Bottom Field First) Adaptiv (Unteres Feld zuerst) - + Native (PS2) Nativ (PS2) - + 1.25x Native 1,25x Nativ - + 1.5x Native 1,5x Nativ - + 1.75x Native 1,75x Nativ - + 2x Native (~720p) 2x Nativ (~720p) - + 2.25x Native 2.25x Nativ - + 2.5x Native 2.5x Nativ - + 2.75x Native 2.75x Nativ - + 3x Native (~1080p) 3x Nativ (~1080p) - + 3.5x Native 3.5x Nativ - + 4x Native (~1440p/2K) 4x Nativ (~1440p/2K) - + 5x Native (~1620p) 5x Nativ (~1620p) - + 6x Native (~2160p/4K) 6x Nativ (~2160p/4K) - + 7x Native (~2520p) 7x Nativ (~2520p) - + 8x Native (~2880p) 8x Nativ (~2880p) - + Basic (Generated Mipmaps) Basis (generierte Mipmaps) - + Full (PS2 Mipmaps) Voll (PS2 Mipmaps) - + Nearest Nächste - + Bilinear (Forced) Bilinear (Erzwungen) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Erzwungen, Außer Sprite) - + Off (None) Aus (Kein) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Erzwungen) - + Scaled Angepasst - + Unscaled (Default) - Unskaliert (Standart) + Unskaliert (Standard) - + Minimum Minimum - + Basic (Recommended) Basic (empfohlen) - + Medium Mittel - + High Hoch - + Full (Slow) Voll (langsam) - + Maximum (Very Slow) Maximum (sehr langsam) - + Off (Default) Aus (Standard) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Teilweise - + Full (Hash Cache) Voll (Hash Cache) - + Force Disabled Erzwinge deaktiviert - + Force Enabled Erzwinge aktiviert - + Accurate (Recommended) Genau (empfohlen) - + Disable Readbacks (Synchronize GS Thread) Readbacks deaktivieren (GS Thread synchronisieren) - + Unsynchronized (Non-Deterministic) Unsynchronisiert (nicht deterministisch) - + Disabled (Ignore Transfers) Deaktiviert (Übertragungen ignorieren) - + Screen Resolution Bildschirmauflösung - - Internal Resolution (Uncorrected) - Interne Auflösung (Unkorrigiert) + + Internal Resolution (Aspect Uncorrected) + Interne Auflösung (Aspekt unkorrigiert) + + + + Cannot show details for games which were not scanned in the game list. + Für Spiele, die nicht in der Spieleliste gescannt wurden, können keine Details angezeigt werden. + + + + Full Boot + Vollständiger Bootvorgang + + + + Achievement Notifications + Leistungsbenachrichtigungen + + + + Leaderboard Notifications + Bestenlisten-Benachrichtigungen + + + + Enable In-Game Overlays + In-Game Overlays aktivieren + + + + Encore Mode + Encore-Modus + + + + Spectator Mode + Zuschauer Modus - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (deaktiviert) - + 1 (64 Max Width) 1 (64 Max. Breite) - + 2 (128 Max Width) 2 (128 Max. Breite) - + 3 (192 Max Width) 3 (192 Max. Breite) - + 4 (256 Max Width) 4 (256 Max. Breite) - + 5 (320 Max Width) 5 (320 Max. Breite) - + 6 (384 Max Width) 6 (384 Max. Breite) - + 7 (448 Max Width) 7 (448 Max. Breite) - + 8 (512 Max Width) 8 (512 Max. Breite) - + 9 (576 Max Width) 9 (576 Max. Breite) - + 10 (640 Max Width) 10 (640 Max. Breite) - + Sprites Only Nur Sprites - + Sprites/Triangles Sprites/Dreiecke - + Blended Sprites/Triangles Vermischte Sprites/Dreiecke - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressiv) - + Inside Target Innerhalb des Ziels - + Merge Targets Ziele zusammenführen - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Spezial (Textur) - + Special (Texture - Aggressive) Spezial (Textur - Aggressiv) - + Half Halb - + Force Bilinear Erzwinge Bilinear - + Force Nearest Erzwinge nächstgelegene - + Disabled (Default) Deaktiviert (Standard) - + Enabled (Sprites Only) Aktiviert (nur Sprites) - + Enabled (All Primitives) Aktiviert (alle Primitive) - + None (Default) Keine (Standard) - + Sharpen Only (Internal Resolution) Nur schärfen (Interne Auflösung) - + Sharpen and Resize (Display Resolution) Schärfen und Größe ändern (Bildschirmauflösung) - + Scanline Filter Scanline-Filter - + Diagonal Filter Diagonalfilter - + Triangular Filter Triangular Filter - + Wave Filter Wellenfilter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Unkomprimiert - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Empfohlen) - + Async Mix (Breaks some games!) Async Mix (Kann bei einigen Spiele fehlerhaft sein oder sie unspielbar machen!) - + None (Audio can skip.) Keine (Audio kann überspringen) - + Stereo (None, Default) Stereo (Keine, Standard) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) Kein Audio (Nur Emuliertes SPU2) - + Cubeb (Cross-platform) Cubeb (Cross-Plattform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Höchste Kompatibilität] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - - Folder [Recommended] - Ordner [Empfohlen] + + Folder [Recommended] + Ordner [Empfohlen] + + + + 128 KB [PS1] + 128 KB [PS1] + + + + Negative + Negativ + + + + Positive + Positiv - - 128 KB [PS1] - 128 KB [PS1] + + Chop/Zero (Default) + Chop/Zero (Standard) - + Game Grid Spiel-Raster - + Game List Spieleliste - + Game List Settings Spielelisten-Einstellungen - + Type Typ - + Serial Seriennummer - + Title Titel - + File Title Dateiname - + CRC CRC - + Time Played Gespielte Zeit - + Last Played Zuletzt gespielt - + Size Dateigröße - + Select Disc Image Disc-Abbild auswählen - + Select Disc Drive Disc Laufwerk auswählen - + Start File Datei starten - + Start BIOS BIOS starten - + Start Disc Disc starten - + Exit Beenden - + Set Input Binding Eingabebindung festlegen - + Region Region - + Compatibility Rating Kompatibilitäts-Bewertung - + Path Pfad - + Disc Path Disc Pfad - + Select Disc Path Disc Pfad auswählen - - Details unavailable for game not scanned in game list. - Details für das Spiel nicht in der Spielliste gescannt. - - - + Copy Settings Einstellungen Kopieren - + Clear Settings Einstellungen löschen - + Inhibit Screensaver Bildschirmschoner blockieren - + + Enable Discord Presence + Aktiviere die Statusanzeige für Discord + + + Pause On Start Beim Start pausieren - + Pause On Focus Loss Pause bei Fokusverlust - + Pause On Menu Pause bei Menü - + Confirm Shutdown Herunterfahren bestätigen - + Save State On Shutdown Savestate beim Herunterfahren erstellen - + Enable Per-Game Settings Separate Einstellungen pro Spiel aktivieren - + Use Light Theme Benutze das helle Thema - + Start Fullscreen Im Vollbildmodus starten - + Double-Click Toggles Fullscreen Doppelklick schaltet Vollbild um - + Hide Cursor In Fullscreen Cursor im Vollbild ausblenden - + OSD Scale OSD-Skalierung - + Show Messages Nachrichten anzeigen - + Show Speed Geschwindigkeit anzeigen - + Show FPS FPS Anzeigen - + Show CPU Usage CPU-Auslastung anzeigen - + Show GPU Usage GPU-Auslastung anzeigen - + Show Resolution Auflösung anzeigen - + Show GS Statistics Zeige GS-Statistiken - + Show Status Indicators Statusindikatoren anzeigen - + Show Settings Einstellungen anzeigen - + Show Inputs Eingaben anzeigen - + Show Frame Times Frametime anzeigen - + Warn About Unsafe Settings Vor unsicheren Einstellungen warnen - + Reset Settings Einstellungen zurücksetzen - + Change Search Directory Suchverzeichnis auswählen - + Fast Boot Schnellstart - + Output Volume Ausgabelautstärke - + Synchronization Mode Synchronisationsmodus - + Expansion Mode Erweiterungs-Modus - + Output Module Ausgabemodul - + Latency Latenz - + Sequence Length Sequenzlänge - + Seekwindow Size Suchfenstergröße - + Overlap Überlappen - + Memory Card Directory Speicherkarten-Verzeichnis - + Folder Memory Card Filter - Folder Memory Card Filter + Ordner Memorycard-Filter - + Auto Eject When Loading Beim Laden automatisch auswerfen - + Create Erstellen - + Cancel Abbrechen - + Load Profile Profil laden - + Save Profile Profil speichern - + Per-Game Configuration Pro-Spiel-Konfiguration - + Copy Global Settings Globale Einstellungen kopieren - + Enable SDL Input Source SDL-Eingangsquelle aktivieren - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / Erweiterter DualSense Modus - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source XInput-Eingabequelle aktivieren - + Enable Console Port 1 Multitap - Multitap an Port 1 der Konsole aktivieren + Multitap an Steckplatz 1 der Konsole aktivieren - + Enable Console Port 2 Multitap - Multitap an Port 2 der Konsole aktivieren + Multitap an Steckplatz 2 der Konsole aktivieren - + Controller Port {}{} Controller Steckplatz {}{} - + Controller Port {} Controller Steckplatz {} - + Controller Type Controller-Typ - + Automatic Mapping Automatisches Zuordnen - + Controller Port {}{} Macros Controller Steckplatz {}{} Makros - + Controller Port {} Macros Controller Steckplatz {} Makros - + Macro Button {} Makro-Taste {} - + Buttons Tasten - + Frequency Frequenz - + Pressure Druck - + Controller Port {}{} Settings - Controller-Port {}{} Einstellungen + Controller-Steckplatz {}{} Einstellungen - + Controller Port {} Settings - Controller-Port {} Einstellungen + Controller-Steckplatz {} Einstellungen - + USB Port {} USB Anschluss {} - + Device Type Geräte-Typ - + Device Subtype Geräteunterart - + {} Bindings {} Belegung - + Clear Bindings Belegung verwerfen - + {} Settings {} Einstellungen - + Cache Directory Cache-Verzeichnis - + Covers Directory Cover-Verzeichnis - + Snapshots Directory Snapshot-Verzeichnis - + Save States Directory Save State Verzeichnis - + Game Settings Directory Spieleinstellungen Verzeichnis - + Input Profile Directory Eingabeprofil-Verzeichnis - + Cheats Directory Cheats Verzeichnis - + Patches Directory Patch-Verzeichnis - + Texture Replacements Directory Verzeichnis für Texturersatz - + Video Dumping Directory Video-Dumping-Verzeichnis - + Resume Game Spiel fortsetzen - + Toggle Frame Limit Frame Limiter umschalten - + Game Properties Spieleigenschaften - + Achievements - Trophäen + Errungenschaften - + Save Screenshot Screenshot speichern - + Switch To Software Renderer Zum Software-Renderer wechseln - + Switch To Hardware Renderer Zum Hardware-Renderer wechseln - + Change Disc Disc wechseln - + Close Game Spiel beenden - + Exit Without Saving Beenden ohne Speichern - + Back To Pause Menu Zurück zum Pause-Menü - + Exit And Save State Beenden und Status Speichern - + Leaderboards Ranglisten - + Delete Save Spielstand löschen - + Close Menu Menü schließen - - Clean Boot - Sauberer Start - - - + Delete State Status löschen - + Default Boot Standard-Boot - - Slow Boot - Langsamer Start - - - + Reset Play Time Spielzeit zurücksetzen - + Add Search Directory Suchverzeichnis hinzufügen - + Open in File Browser Im Dateimanager öffnen - + Disable Subdirectory Scanning Unterverzeichnissuche deaktivieren - + Enable Subdirectory Scanning Unterverzeichnissuche aktivieren - + Remove From List Aus Liste entfernen - + Default View Standardansicht - + Sort By Sortieren nach - + Sort Reversed Umgekehrt sortieren - + Scan For New Games Nach neuen Spielen suchen - + Rescan All Games Alle Spiele erneut scannen - - Start Download - Download starten - - - + Website Webseite - + Support Forums Supportforen - + GitHub Repository GitHub-Repository - + License Lizenz - + Close Schließen - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration wird anstelle der integrierten Implementierung von Errungenschaften verwendet. - + Enable Achievements - Trophäen aktivieren - - - - Rich Presence - Rich Presence + Errungenschaften aktivieren - + Hardcore Mode Hardcore Modus - - Show Notifications - Benachrichtigungen anzeigen - - - + Sound Effects Sound-Effekte - - Show Challenge Indicators - Herausforderungs-Indikatoren zeigen - - - + Test Unofficial Achievements Teste inoffizielle Errungenschaften - - Test Mode - Testmodus - - - + Username: {} Benutzername: {} - + Login token generated on {} Login-Token generiert am {} - + Logout Abmelden - + Not Logged In Nicht eingeloggt - + Login Anmelden - - Achievements are disabled. - Erfolge sind deaktiviert. - - - - Game ID: {} - Spiel-ID: {} - - - - Game Title: {} - Spieltitel: {} - - - - Achievements: {} ({} points) - Errungenschaften: {} ({} Punkte) + + Game: {0} ({1}) + Spiel: {0} ({1}) - + Rich presence inactive or unsupported. Rich-Präsenz inaktiv oder nicht unterstützt. - + Game not loaded or no RetroAchievements available. Spiel nicht geladen oder keine RetroAchievements verfügbar. - + Card Enabled Speicherkarte Aktiv - + Card Name Speicherkarten Name - + Eject Card Speicherkarte auswerfen @@ -8074,7 +8323,7 @@ ${serial}: Seriennummer des Spiels. Fehler beim erneuten Öffnen, Wiederherstellen der alten Konfiguration. - + Upscale multiplier set to {}x. Hochskalierungs Multiplikator auf {}x gesetzt. @@ -8129,12 +8378,12 @@ ${serial}: Seriennummer des Spiels. Deaktiviere automatisch generierte Mipmaps auf einer oder mehreren komprimierten Ersatztexturen. Bitte generiere mipmaps beim Komprimieren deiner Texturen. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil Puffer und Texturbarrieren sind beide nicht verfügbar, dies wird einige grafische Effekte zerstören. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks ist aktiviert, aber kalibrierte Zeitstempel sind nicht verfügbar. Dies kann sehr langsam sein. @@ -8190,7 +8439,7 @@ ${serial}: Seriennummer des Spiels. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8201,341 +8450,509 @@ Du kannst die Blending Genauigkeit in den Spieleigenschaften anpassen, um die gr zu verbessern, aber das erhöht auch die Systemanforderungen. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manuelle GS-Hardware-Renderer-Korrekturen sind aktiviert, automatische Korrekturen wurden nicht angewendet: - + No tracks provided. Keine Titel vorhanden. - + Hash {} is not in database. Hash {} ist nicht in der Datenbank. - + Data track number does not match data track in database. Die Tracknummer stimmt nicht mit der Datenspur in der Datenbank überein. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} mit Hash {} wurde nicht in der Datenbank gefunden. + Track {0} mit Hash {1} wurde nicht in der Datenbank gefunden. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} mit Hash {} ist für ein anderes Spiel ({}). + Track {0} mit Hash {1} ist für ein anderes Spiel ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} mit Hash {} stimmt nicht mit Datenbank-Track überein. + Track {0} mit Hash {1} stimmt nicht mit Track in der Datenbank überein. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Spiel-Fixes (NICHT empfohlen global zu ändern) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negativer Divide Hack (Für Gundam Spiele) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (für Schicksalsgeschichte) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Software-Renderer für FMVs Verwenden + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - MPEG Hack überspringen (Videos überspringen/FMVs) + MPEG Hack überspringen - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - TLB-Hack vorladen (für Goemon) + TLB-Hack vorab laden - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (Mehrzweck Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Gut für Cache-Emulationsprobleme) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (Für Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - GIF FIFO emulieren (Richtig aber langsamer) + GIF FIFO emulieren - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Verweigert Schreibzugriffe, wenn beschäftigt) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - VIF1 Stalls verzögern (für SOCOM 2 HUD/Spy Hunter) + VIF1 Stalls verzögern - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - GIF FIFO emulieren (Richtig aber langsamer) + VIF FIFO emulieren - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Vollständige VU0-Synchronisierung (Richtig aber langsamer) + Volle VU0 Synchronisierung - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (Für Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Hack hinzufügen (Für Tri-Ace Spiele) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Richtig aber langsamer) + VU XGKick Synchronisieren - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (Wenn die automatische Erkennung scheitert) + Interne FPS Erkennung durch Blit erzwingen + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Software-Renderer für FMVs Verwenden + + + + + + + + + + + + + + + + + + + + + + Unchecked + Ungeprüft + + + + For Tales of Destiny. + Für "Tales of Destiny". + + + + For Gundam Games. + Für "Gundam" Spiele. + + + + To avoid TLB miss on Goemon. + Um einen TLB-Fehler bei Goemon zu vermeiden. + + + + Needed for some games with complex FMV rendering. + Wird für einige Spiele mit komplexem FMV-Rendering benötigt. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Überspringt Videos/FMVs in Spielen, um ein Hängenbleiben/Einfrieren des Spiels zu vermeiden. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Bekannt dafür, folgende Spiele zu beeinflussen: Bleach: Blade Battlers, Growlanser II und III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Allzweck-Timing-Hack. Bekannt dafür, folgende Spiele zu beeinflussen: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Gut für Cache-Emulationsprobleme. Bekannt dafür, folgende Spiele zu beeinflussen: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Bekannt dafür, folgende Spiele zu beeinflussen: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Korrekt aber langsamer. Bekannt dafür, folgende Spiele zu beeinflussen: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simuliert VIF1 FIFO read-ahead. Bekannt dafür, folgende Spiele zu beeinflussen: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + Um zu verhindern das "SOCOM 2 HUD" und "Spy Hunter" sich beim Laden aufhängen. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Für Tri-Ace Spiele: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Vermeidet die ständige Neukompilierung in einigen Spielen. Bekannt dafür, folgende Spiele zu beeinflussen: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Erzwingt genaue VU0 Synchronisierung bei jeder COP2-Anweisung. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Lauf hinterher. Um Synchronisierungsprobleme beim Lesen oder Schreiben von VU-Registern zu vermeiden. + + + + To check for possible float overflows (Superman Returns). + Um auf mögliche float overflows zu prüfen (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Genaues Timing für VU XGKicks benutzen (langsamer). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Verwenden Sie eine alternative Methode zur Berechnung der internen FPS, um in einigen Spielen falsche Messwerte zu vermeiden. GameList - + Never Nie - + Today Heute - + Yesterday Gestern - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} Stunden - + {} minutes {} Minuten + + + Downloading cover for {0} [{1}]... + Cover für {0} [{1}] wird heruntergeladen... + GameListModel - + Type Typ - + Code Seriennummer - + Title Titel - + File Title Dateiname - + CRC CRC - + Time Played Spielzeit - + Last Played Zuletzt gespielt - + Size Dateigröße - + Region Region - + Compatibility - Kompabilität + Kompatibilität GameListSettingsWidget - + + Game Scanning + Spiele-Scannen + + + Search Directories (will be scanned for games) Suchverzeichnisse (werden nach Spielen gescannt) - + Add... Hinzufügen... - - - + + + Remove Entfernen - + Search Directory Verzeichnis durchsuchen - + Scan Recursively Rekursiv durchsuchen - + Excluded Paths (will not be scanned) Ausgeschlossene Verzeichnisse (werden nicht gescannt) - + Directory... Verzeichnis... - + File... Datei... - + Scan For New Games Nach neuen Spielen suchen - + Rescan All Games Alle Spiele erneut durchsuchen - + + Display + Display + + + + + Prefer English Titles + Englische Titel bevorzugen + + + + Unchecked + Ungeprüft + + + + For games with both a title in the game's native language and one in English, prefer the English title. + Für Spiele mit einem Titel in der Muttersprache des Spiels und einem in Englisch, bevorzugen Sie den englischen Titel. + + + Open Directory... Verzeichnis öffnen... - + Select Search Directory Suchverzeichnis auswählen - + Scan Recursively? Rekursiv scannen? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8544,12 +8961,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Das Scannen braucht mehr Zeit, aber es wird Dateien in Unterverzeichnissen erkennen. - + Select File Datei auswählen - + Select Directory Verzeichnis auswählen @@ -8557,32 +8974,32 @@ Das Scannen braucht mehr Zeit, aber es wird Dateien in Unterverzeichnissen erken GameListWidget - + Game List Spieleliste - + Game Grid Spiel-Raster - + Show Titles Titel Anzeigen - + All Types Alle Typen - + All Regions Alle Regionen - + Search... Suchen... @@ -8608,17 +9025,17 @@ Das Scannen braucht mehr Zeit, aber es wird Dateien in Unterverzeichnissen erken <html><head/><body><p><span style=" font-weight:700;">Autor: </span>Patch Autor</p><p>Beschreibung würde hierher gehen</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Autor: </strong>%1<br>%2 - + Unknown Unbekannt - + No description provided. Keine Beschreibung verfügbar. @@ -8636,7 +9053,7 @@ Das Scannen braucht mehr Zeit, aber es wird Dateien in Unterverzeichnissen erken Patches erneut laden - + There are no patches available for this game. Für dieses Spiel sind keine Patches verfügbar. @@ -8655,399 +9072,410 @@ Das Scannen braucht mehr Zeit, aber es wird Dateien in Unterverzeichnissen erken - + Restore Wiederherstellen + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Titel sortieren: + + + + English Title: + Englischer Titel: + + + Path: Pfad: - + Serial: Seriennummer: - + CRC: CRC: - + Type: Typ: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 ausführbar) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brasilien) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (USA) - + Other Anderes - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australien) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (Südafrika) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Österreich) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgien) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europa/Australien) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (Frankreich) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finnland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Deutschland) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Griechenland) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italien) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (Indien) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europa/Australien) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Niederlande) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-KEIN (Norwegen) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Polen) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russland) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spanien) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Skandinavien) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Schweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Schweiz) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Großbritannien) - + Compatibility: - Kompabilität: + Kompatibilität: - + Unknown Unbekannt - + Not Bootable Nicht bootfähig - + Reaches Intro Erreicht Einleitung - + Reaches Menu Erreicht Menü - + In-Game Im Spiel - + Playable Spielbar - + Perfect Perfekt - + Input Profile: Eingabeprofil: - + Shared Refers to the shared settings profile. Teilen - + Disc Path: Disc Pfad: - + Browse... Durchsuchen... - + Clear Leeren - + Verify Verifizieren - + Search on Redump.org... Suche auf Redump.org... - + Select Disc Path Wähle Disc Pfad - + Game is not a CD/DVD. Spiel ist keine CD/DVD. - + Track list unavailable while virtual machine is running. Trackliste nicht verfügbar, während die virtuelle Maschine läuft. - + # # - + Mode Modus - - + + Start Start - - + + Sectors Sektoren - - + + Size Größe - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Fehler - + Cannot verify image while a game is running. Abbild kann nicht verifiziert werden, während ein Spiel läuft. - + One or more tracks is missing. Ein oder mehrere Titel fehlen. - + Verified as %1 [%2] (Version %3). Verifiziert als %1 [%2] (Version %3). - + Verified as %1 [%2]. Als %1 [%2] verifiziert. @@ -9055,62 +9483,62 @@ Das Scannen braucht mehr Zeit, aber es wird Dateien in Unterverzeichnissen erken GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Vollbildmodus: - + Aspect Ratio: Seitenverhältnis: - + Fit to Window / Fullscreen An Fenster anpassen / Vollbild - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto-Standard (4:3 Interlaced / 3:2 Progressiv) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Breitbild (16:9) - + FMV Aspect Ratio: FMV Seitenverhältnis: - - - + + + @@ -9120,12 +9548,12 @@ Das Scannen braucht mehr Zeit, aber es wird Dateien in Unterverzeichnissen erken Aus (Standard) - - - - - - + + + + + + @@ -9136,92 +9564,92 @@ Das Scannen braucht mehr Zeit, aber es wird Dateien in Unterverzeichnissen erken Automatisch (Voreinstellung) - + None (Interlaced, also used by Progressive) Kein (Interlaced, auch von Progressive verwendet) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (oberes Feld zuerst, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (unteres Feld zuerst, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Oberes Feld zuerst, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Unteres Feld zuerst, volle Bilder) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Mischung (Oberes Feld zuerst, 2 Felder zusammenführen) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Mischung (Unteres Feld zuerst, 2 Felder zusammenführen) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptiv (Oberes Feld zuerst, ähnlich wie Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptiv (Unteres Feld zuerst, ähnlich wie Bob + Weave) - + Bilinear Filtering: Bilineare Filterung: - - + + None Keine - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Weichgezeichnet) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Scharf) - + Vertical Stretch: Vertikale Streckung: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9229,355 +9657,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Zuschneiden: - + Left: Warning: short space constraints. Abbreviate if necessary. Links: - - - - + + + + px Pixel - + Top: Warning: short space constraints. Abbreviate if necessary. Oben: - + Right: Warning: short space constraints. Abbreviate if necessary. Rechts: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Unten: - + Screen Offsets Bildschirm-Versatz - + VSync Vertikale Synchronisation - + Show Overscan Overscan anzeigen - + Enable Widescreen Patches Breitbild-Patches aktivieren - + Enable No-Interlacing Patches De-Interlacing-Patches aktivieren - + Anti-Blur Bewegungsunschärfe - + Ctrl+S Ctrl+S - + Disable Interlace Offset Interlace-Offset deaktivieren - + Screenshot Size: Screenshot-Größe: - + Screen Resolution Bildschirmauflösung - + Internal Resolution Interne Auflösung - + Internal Resolution (Aspect Uncorrected) Interne Auflösung (Unkorrigiertes Seitenverhältnis) - + PNG PNG - + JPEG JPEG - + Quality: Qualität: - - + + Rendering Rendering - + Internal Resolution: Interne Auflösung: - + Mipmapping: Mipmapping: - - + + Off Aus - + Basic (Generated Mipmaps) Basis (generierte Mipmaps) - + Full (PS2 Mipmaps) Voll (PS2 Mipmaps) - - + + Texture Filtering: Textur-Filterung: - - + + Nearest Nächste - - + + Bilinear (Forced) Bilinear (Erzwungen) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Erzwungen, Außer Sprite) - + Trilinear Filtering: Trilineare Filterung: - + Off (None) Aus (Kein) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Erzwungen) - + Anisotropic Filtering: Anisotropische Filterung: - + Dithering: Dithering: - + Scaled Angepasst - + Unscaled (Default) - Unskaliert (Standart) + Unskaliert (Standard) - + Blending Accuracy: Blending Genauigkeit: - + Minimum Minimum - + Basic (Recommended) Basic (empfohlen) - + Medium Mittel - + High Hoch - + Full (Slow) Voll (langsam) - + Maximum (Very Slow) Maximum (sehr langsam) - + Texture Preloading: Textur-Vorladung: - + Partial Teilweise - + Full (Hash Cache) Voll (Hash Cache) - + + Software Rendering Threads: + Software-Rendering-Threads: + + + + Skip Draw Range: + Bereich „Zeichnen überspringen“: + + + GPU Palette Conversion GPU-Palette Konvertierung - + Manual Hardware Renderer Fixes Manuelle Hardware-Renderer Fixes - + Spin GPU During Readbacks GPU-Spin während der Lesungen - + Spin CPU During Readbacks CPU-Spin während der Lesungen - - Extra Rendering Threads: - Zusätzliche Rendering-Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto-Flush - + Hardware Fixes Hardware-Korrekturen - + Force Disabled Erzwinge deaktiviert - + Force Enabled Erzwinge aktiviert - + CPU Sprite Render Size: CPU Sprite Rendergröße: - - - + + + 0 (Disabled) @@ -9585,79 +10018,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (deaktiviert) - + 1 (64 Max Width) 1 (64 Max. Breite) - + 2 (128 Max Width) 2 (128 Max. Breite) - + 3 (192 Max Width) 3 (192 Max. Breite) - + 4 (256 Max Width) 4 (256 Max. Breite) - + 5 (320 Max Width) 5 (320 Max. Breite) - + 6 (384 Max Width) 6 (384 Max. Breite) - + 7 (448 Max Width) 7 (448 Max. Breite) - + 8 (512 Max Width) 8 (512 Max. Breite) - + 9 (576 Max Width) 9 (576 Max. Breite) - + 10 (640 Max Width) 10 (640 Max. Breite) - - Skipdraw Range: - Skipdraw Größe: - - - + Frame Buffer Conversion Framebuffer-Konvertierung - + Disable Depth Emulation Depth Emulation deaktivieren - + Disable Safe Features Safe Features deaktivieren - + Preload Frame Data Frame-Daten vorladen @@ -9668,606 +10096,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressiv) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Deaktiviert (Standard) - + Enabled (Exact Match) Aktiviert (Exakte Übereinstimmung) - + Enabled (Check Inside Target) Aktiviert (Innerhalb des Ziels prüfen) - + Upscaling Fixes Upscaling-Korrekturen - + Half Pixel Offset: Halb-Pixel-Versatz: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Spezial (Textur) - + Special (Texture - Aggressive) Spezial (Textur - Aggressiv) - + Round Sprite: Runder Sprite: - + Half Halb - + Full Voll - + Texture Offsets: Texturversatz: - + X: X: - + Y: Y: - + Merge Sprite Sprite zusammenführen - + Align Sprite Sprite ausrichten - + Deinterlacing: Deinterlacing: - + Sprites Only Nur Sprites - + Sprites/Triangles Sprites/Dreiecke - + Blended Sprites/Triangles Vermischte Sprites/Dreiecke - + Auto Flush: Auto-Flush: - + Enabled (Sprites Only) Aktiviert (nur Sprites) - + Enabled (All Primitives) Aktiviert (alle Primitive) - + Texture Inside RT: Textur innerhalb RT: - + Inside Target Innerhalb des Ziels - + Merge Targets Ziele zusammenführen - + Disable Partial Source Invalidation Partielle Quellen-Invalidierung deaktivieren - + Read Targets When Closing Lese Ziele beim Schließen - + Estimate Texture Region Geschätzte Textur Region - + Disable Render Fixes Render-Korrekturen deaktivieren - + Unscaled Palette Texture Draws Unskalierte Palettentextur Zeichnungen - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Erzwinge Bilinear - + Force Nearest Erzwinge nächstgelegene - + Texture Replacement Texturen Ersetzung - + Search Directory Suchverzeichnis - - + + Browse... Durchsuchen... - - + + Open... Öffnen... - - + + Reset Zurücksetzen - + PCSX2 will dump and load texture replacements from this directory. PCSX2 dumpt und lädt Texturersetzungen aus diesem Verzeichnis. - + Options Einstellungen - + Dump Textures Texturen dumpen - + Dump Mipmaps Mipmaps dumpen - + Dump FMV Textures FMV-Texturen dumpen - - - Async Texture Loading - Asynchrones Textur laden - - - + Load Textures Texturen laden - + Precache Textures Precache Texturen - + Post-Processing Nachbearbeitung - + Sharpening/Anti-Aliasing Schärfe/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Adaptive Schärfung des Kontrasts: - - + + None (Default) Aus (Standard) - + Sharpen Only (Internal Resolution) Nur schärfen (Interne Auflösung) - + Sharpen and Resize (Display Resolution) Schärfen und Größe ändern (Bildschirmauflösung) - + Sharpness: Schärfe: - + FXAA FXAA - + Filters Filter - + TV Shader: TV-Shader: - + Scanline Filter Scanline-Filter - + Diagonal Filter Diagonalfilter - + Triangular Filter Dreiecksfilter - + Wave Filter Wellenfilter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Schattierungs Boost - + Brightness: Helligkeit: - + Contrast: Kontrast: - Saturation Sättigung - + OSD OSD - + On-Screen Display Bildschirmanzeige - + OSD Scale: OSD-Skalierung: - + Show Indicators Indikatoren anzeigen - + Show Resolution Auflösung anzeigen - + Show Inputs Eingaben anzeigen - + Show GPU Usage GPU-Auslastung anzeigen - + Show Settings Einstellungen anzeigen - + Show FPS FPS Anzeigen - + + + Disable Dual-Source Blending + Dual Source Blending Deaktivieren + + + Disable Shader Cache Shader Cache deaktivieren - + Disable Vertex Shader Expand Vertex-Shader-Erweiterung deaktivieren - + Show Statistics Statistiken anzeigen - + + + Asynchronous Texture Loading + Asynchrones Laden von Texturen + + + + Saturation: + Sättigung: + + + Show CPU Usage CPU-Auslastung anzeigen - + Warn About Unsafe Settings Vor unsicheren Einstellungen warnen - + Show Frame Times Frametimes anzeigen - + Recording Aufnahme - + Video Dumping Directory Video-Dumping-Verzeichnis - + Capture Setup Aufzeichnungseinstellungen - + Container: Format: - - + + Codec: Codec: - - + + Extra Arguments Zusätzliche Argumente - + Capture Audio Audio aufnehmen - + Resolution: Auflösung: - + x х - + Auto Automatisch - + Capture Video Video aufnehmen - + Advanced Advanced here refers to the advanced graphics options. Erweitert - + Advanced Options Erweiterte Einstellungen - + Hardware Download Mode: Hardware-Download-Modus: - + Accurate (Recommended) Genau (empfohlen) - + Disable Readbacks (Synchronize GS Thread) Readbacks deaktivieren (GS Thread synchronisieren) - + Unsynchronized (Non-Deterministic) Unsynchronisiert (nicht deterministisch) - + Disabled (Ignore Transfers) Deaktiviert (Übertragungen ignorieren) - + GS Dump Compression: GS Dump Komprimierung: - + Uncompressed Unkomprimiert - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Überspringe Darstellung Doppelter Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10277,69 +10715,63 @@ Swap chain: see Microsoft's Terminology Portal. Blit Swap-Kette verwenden - + Disable Threaded Presentation Threaded-Präsentation deaktivieren - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kBit/s - + Allow Exclusive Fullscreen: Exklusiven Vollbildmodus verwenden: - + Disallowed Nicht erlaubt - + Allowed Erlauben - + Debugging Options Debug Optionen - + Override Texture Barriers: Texturbarrieren Überschreiben: - + Use Debug Device Debug-Gerät verwenden - - - Disable Dual Source Blending - Dual Source Blending Deaktivieren - - - + Show Speed Percentages Geschwindigkeit in Prozent anzeigen - + Disable Framebuffer Fetch Framebuffer-Abruf deaktivieren @@ -10408,8 +10840,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Globale Einstellung verwenden [%1] @@ -10461,6 +10893,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Deaktiviert @@ -10520,11 +10953,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Kontrolliert den Genauigkeitsgrad der GS überblendungseinheit der Emulation.<br> Je höher die Einstellung, desto mehr überblendungen werden im Shader akkurat Emuliert und desto größer wird die Geschwindigkeitseinbuße sein.<br> Beachten Sie, dass Direct3D's fähigkeit zu überblenden reduziert ist im Vergleich zu OpenGL/Vulkan. + + + Software Rendering Threads + Software-Rendering-Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Deaktivieren Sie die Unterstützung von Tiefenpuffern im Textur-Cache. Dies kann helfen, die Geschwindigkeit zu erhöhen, führt aber wahrscheinlich zu verschiedenen Störungen. + This option disables game-specific render fixes. @@ -10576,6 +11019,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Behebt Probleme mit Upscaling (vertikale Linien) in Namco-Spielen wie Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Speichert austauschbare Texturen auf der Festplatte. Reduziert die Leistung. + + + + Includes mipmaps when dumping textures. + Schließt Mipmaps beim Dumping von Texturen ein. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Ermöglicht Textur-Dumping, wenn FMVs aktiv sind. Sie sollten dies nicht aktivieren. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Lädt Ersatztexturen in einen Arbeitsthread und reduziert so Mikroruckeln, wenn Ersetzungen aktiviert sind. + + + + Loads replacement textures where available and user-provided. + Lädt Ersatztexturen, sofern verfügbar und vom Benutzer bereitgestellt. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Lädt alle Ersatztexturen vorab in den Speicher. Bei asynchronem Laden nicht erforderlich. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Aktiviert FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Bestimmt die Intensität des Schärfungseffekts bei der CAS-Nachbearbeitung. + + + + Adjusts brightness. 50 is normal. + Passt die Helligkeit an. 50 ist normal. + + + + Adjusts contrast. 50 is normal. + Passt den Kontrast an. 50 ist normal. + + + + Adjusts saturation. 50 is normal. + Passt die Sättigung an. 50 ist normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10591,11 +11089,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Zeigt verschiedene Einstellungen und die aktuellen Werte dieser Einstellungen an, nützlich zum Debuggen. - - - Shows the current controller state of the system in the bottom left corner of the display. - Zeigt den aktuellen Controller-Status des Systems in der linken unteren Ecke des Bildschirms an. - Displays a graph showing the average frametimes. @@ -10633,7 +11126,7 @@ Swap chain: see Microsoft's Terminology Portal. Aktivieren Sie diese Option, um die PCSX2 Aktualisierungsrate mit Ihrem aktuellen Monitor oder Bildschirm abzugleichen. VSync ist automatisch deaktiviert, wenn es nicht möglich ist (z. B. mit einer nicht-100%igen Geschwindigkeit). - + Integer Scaling Pixelgenaue Bildskalierung @@ -10722,8 +11215,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Randloser Vollbildmodus @@ -10865,11 +11358,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Übermittelt nutzlose Aufgaben an die GPU während des zurück Lesens, um zu verhindern, dass sie in den Energiesparmodus wechselt. Kann die Leistung verbessern, aber mit einem signifikanten Anstieg des Stromverbrauchs. - - - Extra Rendering Threads - Zusätzliche Rendering-Threads - 2 threads @@ -10920,11 +11408,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Endbereich des Skipdraw - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Die Unterstützung von Tiefenpuffer innerhalb der Texture Caches deaktivieren. Kann die Geschwindigkeit verbessern aber wird wahrscheinlich verschiedene Glitches verursachen. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11042,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD-Skalierung - + Show OSD Messages OSD-Meldungen anzeigen @@ -11082,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Zeigt Zähler für die interne grafische Nutzung, nützlich zum Debuggen. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Zeigt den aktuellen Controller-Status des Systems in der linken unteren Ecke des Bildschirms an. + Displays warnings when settings are enabled which may break games. @@ -11135,29 +11623,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Debug-Gerät aktivieren + + + + Enables API-level validation of graphics commands. + Aktiviert die Validierung von Grafik-Befehlen auf API-Ebene. + + + GS Download Mode GS Download-Modus - + Accurate Genau - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Überspringt die Synchronisierung mit dem GS-Thread und dem Host GPU für GS-Downloads. Kann zu einem großen Geschwindigkeitsanstieg auf langsameren Systemen führen, auf Kosten vieler zerstörter grafischer Effekte. Wenn Spiele defekt sind und Sie diese Option aktiviert haben, deaktivieren Sie sie bitte zuerst. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Standard - - + + (Default) (Standard) @@ -11165,405 +11663,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Grafik - + Save Screenshot Screenshot speichern - + Toggle Video Capture Videoaufnahme umschalten - + Save Single Frame GS Dump Einzelbild-GS-Dump speichern - + Save Multi Frame GS Dump Multi-Frame GS Dump speichern - + Toggle Software Rendering Software Rendering umschalten - + Increase Upscale Multiplier Erhöhe Hochskalierungs-Multiplikator - + Decrease Upscale Multiplier Verringere Hochskalierungs-Multiplikator - + Toggle On-Screen Display On-Screen Anzeige umschalten - + Cycle Aspect Ratio Seitenverhältnis Durchschalten - + Aspect ratio set to '{}'. Seitenverhältnis auf '{}' gesetzt. - + Cycle Hardware Mipmapping Hardware-Mipmapping umschalten - + Hardware mipmapping set to '{}'. Hardware-Mipmapping auf '{}' gesetzt. - + Cycle Deinterlace Mode Deinterlace-Modus Durchschalten - + Deinterlace mode set to '{}'. Deinterlace Modus auf '{}' gesetzt. - + Toggle Texture Dumping Textur Dumping umschalten - + Texture dumping is now enabled. Textur Dumping ist jetzt aktiviert. - + Texture dumping is now disabled. Textur Dumping ist jetzt deaktiviert. - + Toggle Texture Replacements Texturersatz umschalten - + Texture replacements are now enabled. Texturersetzungen sind jetzt aktiviert. - + Texture replacements are now disabled. Texturersetzungen sind nun deaktiviert. - + Reload Texture Replacements Texturersetzungen neu laden - + Texture replacements are not enabled. Texturersetzungen sind nicht aktiviert. - + Reloading texture replacements... Texturersetzungen neu laden... - + Target speed set to {:.0f}%. Zielgeschwindigkeit auf {:.0f} % gesetzt. - + Volume: Muted Lautstärke: Stumm - + Volume: {}% Lautstärke: {}% - - Save slot {} selected (last save: {}). - Speicher Slot {} ausgewählt (letzte Speicherung: {}). + + Save slot {0} selected (last save: {1}). + Speicher Slot {0} ausgewählt (letzte Speicherung: {1}). - + Save slot {} selected (no save yet). Speicher Slot {} ausgewählt (bisher kein Speicherstand). - + No save state found in slot {}. Kein Status in Slot {} gefunden. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Pausenmenü öffnen - + Open Achievements List - Trophäen-Liste öffnen + Errungenschafts-Liste öffnen - + Open Leaderboards List Rangliste öffnen - + Toggle Pause Pause umschalten - + Toggle Fullscreen Vollbildmodus umschalten - + Toggle Frame Limit Frame Limiter umschalten - + Toggle Turbo / Fast Forward Turbo / Schnellen Vorlauf umschalten - + Toggle Slow Motion Zeitlupe umschalten - + Turbo / Fast Forward (Hold) Turbo / Zeitraffer (Halten) - + Increase Target Speed Zielgeschwindigkeit erhöhen - + Decrease Target Speed Zielgeschwindigkeit verringern - + Increase Volume Lautstärke erhöhen - + Decrease Volume Lautstärke verringern - + Toggle Mute Stummschaltung umschalten - + Frame Advance Einzelbildvorlauf - + Shut Down Virtual Machine Virtuelle Maschine herunterfahren - + Reset Virtual Machine Virtuelle Maschine zurücksetzen - + Toggle Input Recording Mode Eingabe-Aufnahme-Modus-Hotkey - - - - + + + + Save States Speicher-Status - + Select Previous Save Slot Vorherigen Speicher-Slot auswählen - + Select Next Save Slot Nächsten Speicher-Slot auswählen - + Save State To Selected Slot Status in ausgewähltem Slot speichern - + Load State From Selected Slot Status von ausgewähltem Slot laden - + Save State To Slot 1 Status in Slot 1 speichern - + Load State From Slot 1 Lade Status von Slot 1 - + Save State To Slot 2 Status in Slot 2 speichern - + Load State From Slot 2 Lade Status von Slot 2 - + Save State To Slot 3 Status in Slot 3 speichern - + Load State From Slot 3 Lade Status von Slot 3 - + Save State To Slot 4 Status in Slot 4 speichern - + Load State From Slot 4 Lade Status von Slot 4 - + Save State To Slot 5 Status in Slot 5 speichern - + Load State From Slot 5 Lade Status von Slot 5 - + Save State To Slot 6 Status in Slot 6 speichern - + Load State From Slot 6 Lade Status von Slot 6 - + Save State To Slot 7 Status in Slot 7 speichern - + Load State From Slot 7 Lade Status von Slot 7 - + Save State To Slot 8 Status in Slot 8 speichern - + Load State From Slot 8 Lade Status von Slot 8 - + Save State To Slot 9 Status in Slot 9 speichern - + Load State From Slot 9 Lade Status von Slot 9 - + Save State To Slot 10 Status in Slot 10 speichern - + Load State From Slot 10 Lade Status von Slot 10 @@ -11721,6 +12219,96 @@ Rechtsklick um die Zuordnung zu löschen %1 [%2] %1 [%2] + + + Left Analog + Linker Analog + + + + Right Analog + Rechter Analog + + + + Cross + Kreuz + + + + Square + Quadrat + + + + Triangle + Dreieck + + + + Circle + Kreis + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Runter + + + + D-Pad Right️ + D-Pad Rechts + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Links + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11748,137 +12336,137 @@ Rechtsklick um die Zuordnung zu löschen InterfaceSettingsWidget - + Behaviour Verhalten - + Pause On Focus Loss Pause bei Fokusverlust - + Inhibit Screensaver Bildschirmschoner blockieren - + Save State On Shutdown Status beim Herunterfahren speichern - + Pause On Start Bei Start pausieren - + Confirm Shutdown Herunterfahren bestätigen - + Create Save State Backups Status-Sicherung erstellen - + Enable Discord Presence Aktiviere die Statusanzeige für Discord - + Enable Per-Game Settings Separate Einstellungen pro Spiel aktivieren - + Game Display Spiel Anzeige - + Start Fullscreen Im Vollbildmodus starten - + Double-Click Toggles Fullscreen Doppelklick schaltet Vollbild um - + Render To Separate Window In separates Fenster rendern - + Hide Main Window When Running Hauptfenster beim Ausführen verbergen - + Disable Window Resizing Ändern der Fenstergröße deaktivieren - + Hide Cursor In Fullscreen Cursor im Vollbild ausblenden - + Preferences Eigenschaften - + Language: Sprache: - + Theme: Erscheinungsbild: - + Automatic Updater Automatische Aktualisierung - + Update Channel: Update-Kanal: - + Current Version: Aktuelle Version: - + Enable Automatic Update Check Automatische Updates aktivieren - + Check for Updates... Nach Updates suchen... @@ -12071,7 +12659,7 @@ Rechtsklick um die Zuordnung zu löschen Zeigt das Spiel, das du derzeit spielst als Teil deines Profils in Discord an. - + System Language [Default] Systemsprache (Standard) @@ -12128,14 +12716,14 @@ Rechtsklick um die Zuordnung zu löschen - - + + Change Disc Disc wechseln - + Load State Lade Status @@ -12267,7 +12855,7 @@ Rechtsklick um die Zuordnung zu löschen A&chievements - &Trophäen + Errungenschaften @@ -12640,13 +13228,13 @@ Rechtsklick um die Zuordnung zu löschen - + Start Big Picture Mode Big Picture Mode starten - + Big Picture In Toolbar Big Picture @@ -12658,7 +13246,7 @@ Rechtsklick um die Zuordnung zu löschen - + Show Advanced Settings Erweiterte Einstellungen anzeigen @@ -12669,7 +13257,7 @@ Rechtsklick um die Zuordnung zu löschen - + Video Capture Videoaufnahme @@ -12684,27 +13272,27 @@ Rechtsklick um die Zuordnung zu löschen Patches bearbeiten... - + Internal Resolution Interne Auflösung - + %1x Scale %1x Skalierung - + Select location to save block dump: Wählen Sie einen Speicherort zum Speichern des Blockdumps: - + Do not show again Nicht erneut anzeigen - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12717,168 +13305,173 @@ Das PCSX2-Team wird keine Unterstützung für Konfigurationen bereitstellen, in Sind Sie sicher, dass Sie fortfahren möchten? - + %1 Files (*.%2) %1 Dateien (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Eingeloggt als %1 (%2, %3 Softcore). %4 ungelesene Nachrichten. + + + Confirm Shutdown Beenden bestätigen - + Are you sure you want to shut down the virtual machine? Sind Sie sicher, dass Sie die virtuelle Maschine herunterfahren möchten? - + Save State For Resume Status zum Fortsetzen speichern - - - - - - + + + + + + Error Fehler - + You must select a disc to change discs. Sie müssen eine Disc auswählen, um die Disc zu wechseln. - + Properties... Eigenschaften... - + Open Containing Directory... Refers to the directory where a game is contained. Öffne Verzeichnis... - + Set Cover Image... Cover-Bild festlegen... - + Exclude From List Von der Liste ausschließen - + Reset Play Time Spielzeit zurücksetzen - + Default Boot Standard-Boot - + Fast Boot Schnellstart - + Full Boot Vollständiger Start - + Boot and Debug Starten und Debuggen - + Add Search Directory... Suchverzeichnis hinzufügen... - + Start File Datei starten - + Start Disc Disc starten - + Select Disc Image Disc-Abbild auswählen - + Updater Error Fehler beim Aktualisieren - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - <p>Sorry, Sie versuchen eine PCSX2-Version zu aktualisieren, die keine offizielle GitHub Version ist. Um Inkompatibilitäten zu vermeiden, ist der Auto-Updater nur auf offiziellen Builds aktiviert.</p><p>Um eine offizielle Version zu erhalten, laden Sie sich bitte unter folgendem Link herunter:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> + <p>Sorry, du versucht eine PCSX2-Version zu aktualisieren, die keine offizielle GitHub Version ist. Um Inkompatibilitäten zu vermeiden, ist der Auto-Updater eingestell nur offizielle Builds runterzuladen.</p><p>Um eine offizielle Version zu erhalten, lade dir bitte unter folgendem Link herunter:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatische Aktualisierung wird auf der aktuellen Plattform nicht unterstützt. - + Confirm File Creation Bestätige Dateierstellung - + The pnach file '%1' does not currently exist. Do you want to create it? Die pnach Datei '%1' existiert derzeit nicht. Möchten Sie sie erstellen? - + Failed to create '%1'. Fehler beim Erstellen '%1'. - + Input Recording Files (*.p2m2) Aufnahme-Dateien (*.p2m2) - + Paused Pausiert - + Load State Failed Status Laden Fehlgeschlagen - + Cannot load a save state without a running VM. Ein Speicherstatus kann ohne laufende virtuelle Maschine nicht geladen werden. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? Die neue ELF kann nicht geladen werden, ohne die virtuelle Maschine zurückzusetzen. Möchten Sie die virtuelle Maschine jetzt zurücksetzen? - + Cannot change from game to GS dump without shutting down first. Kann nicht vom Spiel zu GS Dump wechseln, ohne vorher herunterzufahren. - + Failed to get window info from widget Fehler beim Abrufen der Fensterinformation vom Widget @@ -12893,97 +13486,97 @@ Sind Sie sicher, dass Sie fortfahren möchten? Alle Dateitypen (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Rohbilder (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor Datei (*.mdf);;MAME CHD Bilder (*.chd);;CSO Bilder (*.cso);;GZ Bilder (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Big Picture Mode stoppen - + Exit Big Picture In Toolbar Big Picture Modus Beenden - + Game Properties Spiel-Eigenschaften - + Game properties is unavailable for the current game. Spiel-Eigenschaften sind für das aktuelle Spiel nicht verfügbar. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Es konnten keine CD/DVD-ROM-Geräte gefunden werden. Bitte stellen Sie sicher, dass Sie ein Laufwerk angeschlossen haben und ausreichende Zugriffsrechte haben. - + Select disc drive: Disc Laufwerk auswählen: - + This save state does not exist. Dieser Speicher-Status existiert nicht. - + Select Cover Image Cover-Bild festlegen - - All Cover Image Types (*.jpg *.jpeg *.png) - Alle Cover-Bildtypen (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover existiert bereits - + A cover image for this game already exists, do you wish to replace it? Ein Cover-Bild für dieses Spiel existiert bereits, wollen Sie es ersetzen? - - - - + + + + Copy Error Fehler beim Kopieren - + Failed to remove existing cover '%1' Entfernen des bestehenden Covers '%1' fehlgeschlagen - + Failed to copy '%1' to '%2' Fehler beim Kopieren von '%1' nach '%2' - + Failed to remove '%1' Löschen von '%1' fehlgeschlagen - - + + Confirm Reset Zurücksetzen bestätigen - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + Alle Cover-Bildtypen (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. Sie müssen eine andere Datei als das aktuelle Coverbild auswählen. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12992,12 +13585,12 @@ This action cannot be undone. Diese Aktion kann nicht rückgängig gemacht werden. - + Load Resume State Fortsetzungsstatus laden - + A resume save state was found for this game, saved at: %1. @@ -13010,70 +13603,70 @@ Do you want to load this state, or start from a fresh boot? Möchten Sie diesen Status laden oder einen Neustart vornehmen? - + Fresh Boot Frischer Start - + Delete And Boot Löschen und Booten - + Failed to delete save state file '%1'. Fehler beim Löschen der Status-Datei '%1'. - + Load State File... Lade Status... - + Load From File... Aus Datei laden... - - + + Select Save State File Statusdatei auswählen - - + + Save States (*.p2s) Gespeicherter Status (*.p2s) - + Delete Save States... Status löschen... - + Undo Load State Laden des Savestate rückgängig machen - + Resume (%2) Fortfahren (%2) - + Load Slot %1 (%2) Lade Slot %1 (%2) - - + + Delete Save States Status löschen - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13082,42 +13675,42 @@ The saves will not be recoverable. Die Speicherstände werden nicht wiederherstellbar sein. - + %1 save states deleted. %1 Speicher-Status gelöscht. - + Save To File... In Datei speichern... - + Empty Leer - + Save Slot %1 (%2) Speicherplatz %1 (%2) - + Confirm Disc Change Disc-Wechsel bestätigen - + Do you want to swap discs or boot the new image (via system reset)? Möchten Sie die Discs austauschen oder das neue Image booten (via System-Reset)? - + Swap Disc Disc wechseln - + Reset Zurücksetzen @@ -13125,8 +13718,8 @@ Die Speicherstände werden nicht wiederherstellbar sein. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' wurde gespeichert. @@ -13197,7 +13790,7 @@ Die Speicherstände werden nicht wiederherstellbar sein. Uses a folder on your PC filesystem, instead of a file. Infinite capacity, while keeping the same compatibility as an 8 MB Memory Card. - Verwendet einen Ordner auf Ihrem PC-Dateisystem, statt einer Datei. Unbegrenzte Kapazität, unter Beibehaltung der gleichen Kompatibilität wie eine 8 MB Speicherkarte. + Verwendet einen Ordner auf deinem PC-Dateisystem, statt einer Datei. Unbegrenzte Kapazität, unter Beibehaltung der gleichen Kompatibilität wie eine 8 MB Speicherkarte. @@ -13207,6 +13800,7 @@ Die Speicherstände werden nicht wiederherstellbar sein. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x größer als eine Standard Memory Card. Kann manchmal Kompatibilitätsprobleme verursachen. @@ -13257,11 +13851,6 @@ Die Speicherstände werden nicht wiederherstellbar sein. Cannot Convert Memory Card Memory Card kann nicht konvertiert werden - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x größer als eine Standard-Memory Card. Könnte manchmal Kompatibilitätsprobleme verursachen. - MemoryCardCreateDialog @@ -13387,103 +13976,104 @@ Die Speicherstände werden nicht wiederherstellbar sein. MemoryCardSettingsWidget - + Console Ports Konsolenanschlüsse - + Memory Cards Memory Cards - + Folder: Ordner: - + Browse... Durchsuchen... - + Open... Öffnen... - + Reset Zurücksetzen - + Name Name - + Type Typ - + Formatted Formatiert - + Last Modified Zuletzt geändert - + Refresh Aktualisieren - + + Create Erstellen - + Duplicate Duplizieren - + Rename Umbenennen - + Convert Konvertieren - + Delete Löschen - + Settings Einstellungen - + Automatically manage saves based on running game Spielstände automatisch verwalten basierend auf laufendem Spiel - + Auto-eject Memory Cards when loading save states Memory Card automatisch auswerfen beim Laden des Savestate´s @@ -13653,58 +14243,58 @@ Diese Aktion kann nicht rückgängig gemacht werden und Sie verlieren alle Speic Speicher - + Copy Address Adresse kopieren - + Go to in disassembly Gehe zu Disassembly - - + + Go to address Gehe zu Adresse - + Show as 1 byte Als 1 Byte anzeigen - + Show as 2 bytes Als 2 Byte anzeigen - + Show as 4 bytes Als 4 Byte anzeigen - + Show as 8 bytes Als 8 Byte anzeigen - + Copy Byte Byte kopieren - + Copy Segment Segment kopieren - + Copy Character Zeichen kopieren - + Paste Einfügen @@ -13754,10 +14344,15 @@ Diese Aktion kann nicht rückgängig gemacht werden und Sie verlieren alle Speic Autornamen eingeben - + Input Recording Files (*.p2m2) Eingabe-Aufnahme-Dateien (*.p2m2) + + + Select a File + Wähle eine Datei + Pad @@ -13953,6 +14548,16 @@ Diese Aktion kann nicht rückgängig gemacht werden und Sie verlieren alle Speic Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Legt die Deadzone des Analogsticks fest, das heißt den Bereich, in welchem Stick-Bewegungen ignoriert werden. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13969,14 +14574,14 @@ Diese Aktion kann nicht rückgängig gemacht werden und Sie verlieren alle Speic Legt die Deadzone für Buttons und Trigger fest, das heißt den Bereich des Tastendrucks, der ignoriert wird. - - Analog light is now on for port {} / slot {} - Analoglicht ist jetzt eingeschaltet für Port {} / Slot {} + + Analog light is now on for port {0} / slot {1} + Analog Licht ist jetzt eingeschaltet für Port {0} / Slot {1} - - Analog light is now off for port {} / slot {} - Analoglicht ist jetzt ausgeschaltet für Port {} / Slot {} + + Analog light is now off for port {0} / slot {1} + Analog Licht ist jetzt ausgeschaltet für Port {0} / Slot {1} @@ -14023,13 +14628,6 @@ Diese Aktion kann nicht rückgängig gemacht werden und Sie verlieren alle Speic DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller-Port {}, Slot {} hat einen {} verbunden, aber der Speicherstand hat einen {}. -Vorheriger Controller-Typ bleibt verbunden, aber das kann zu Problemen führen. - Strum Up @@ -14100,40 +14698,63 @@ Vorheriger Controller-Typ bleibt verbunden, aber das kann zu Problemen führen.< Guitar Gitarre + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller-Steckplatz {0}, Slot {1} hat einen {2} verbunden, aber im Speicherstatus wird ein {3} verwendet. +Der ursprünglich verbundene Controller-Typ wird weiter verwendet, es können jedoch Probleme auftreten. + Patch - + Failed to open {}. Built-in game patches are not available. Konnte {} nicht öffnen. Integrierte Spielpatches sind nicht verfügbar. - + {} GameDB patches {} GameDB-Patches - + {}{} game patches {}{} Spiel-Patches - + {}{} cheat patches {}{} Cheat-Patches - + {} are active. {} sind aktiv. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. Keine Cheats oder Patches (Breitbild, Kompatibilität oder andere) wurden gefunden / aktiviert. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14151,13 +14772,13 @@ The URL was: %1 Die URL war: %1 - + HDD Creator Festplatten-Ersteller - + Failed to create HDD image Fehler beim Erstellen des HDD-Abbildes @@ -14362,7 +14983,6 @@ Andernfalls lösche das Savestate und starte PCSX2 neu. SettingWidgetBinder - @@ -14412,222 +15032,243 @@ Möchten Sie dieses Verzeichnis erstellen? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Globale Einstellung verwenden [Aktiviert] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Globale Einstellung verwenden [Deaktiviert] + + + + + Use Global Setting [%1] + Globale Einstellung verwenden [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2-Einstellungen - + Restore Defaults - Standardeinstellungen wiederherstellen + Zurücksetzen auf Standardeinstellungen - + Copy Global Settings Globale Einstellungen kopieren - + Clear Settings Einstellungen löschen - + Close Schließen - - - Summary - Zusammenfassung - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Zusammenfassung</strong><hr>Diese Seite zeigt Details über das ausgewählte Spiel. Das Ändern des Tastenbelegungsprofils setzt die Einstellungen des Controllers für dieses Spiel, auf das Profil was ausgewählt wird, anstatt auf die Standardkonfiguration (Shared). Die Trackliste und die Dump Verifizierung können verwendet werden, um festzustellen, ob Ihr Disk Image mit einem bekannten guten Dump übereinstimmt. Wenn das Spiel nicht übereinstimmt, kann es sein dass das Spiel nicht funktioniert. - + + + Summary + Zusammenfassung + + + Summary is unavailable for files not present in game list. Zusammenfassung ist nicht verfügbar für Dateien, die nicht in der Spielliste vorhanden sind. - + Interface Benutzeroberfläche - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - <strong>Interface-Einstellungen</strong><hr>Diese Optionen steuern das Aussehen und Verhalten der Software.<br><br>Mauszeiger über eine Option bewegen für zusätzliche Informationen. + <strong>Benutzeroberflächen-Einstellungen</strong><hr>Diese Optionen kontrollieren das Aussehen und Verhalten der Software.<br><br>Mauszeiger über eine Option bewegen für zusätzliche Informationen. - + Game List Spieleliste - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Spiellisten-Einstellungen</strong><hr>Die obige Liste zeigt die Verzeichnisse, die von PCSX2 durchsucht werden, um die Spielliste zu füllen. Suchverzeichnisse können hinzugefügt, entfernt und zu rekursiv/nicht-rekursiv gewechselt werden. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - <strong>BIOS-Einstellungen</strong><hr>Ihr BIOS hier konfigurieren.<br><br>Mauszeiger über eine Option bewegen für zusätzliche Informationen. + <strong>BIOS-Einstellungen</strong><hr>Dein BIOS hier konfigurieren.<br><br>Mauszeiger über eine Option bewegen für zusätzliche Informationen. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulationseinstellungen</strong><hr>Diese Optionen bestimmen die Konfiguration von Spielgeschwindigkeit und Spieleinstellungen<br><br>Mauszeiger über eine Option bewegen für zusätzliche Informationen. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - <strong>Patches</strong><hr>In diesem Abschnitt können Sie optionale Patches für das Spiel auswählen, die Performance, visuelle oder Gameplay Verbesserungen bieten können. + <strong>Patches</strong><hr>In diesem Abschnitt kannst du optionale Patches für das Spiel auswählen, welche Performance, Gameplay und/oder visuelle Verbesserungen bieten können. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - <strong>Cheats</strong><hr>In diesem Abschnitt können Sie auswählen, welche Cheats Sie aktivieren möchten. Sie können Cheats nicht ohne Kennzeichnung für Pnach-Dateien des alten Formats aktivieren/deaktivieren. Diese werden automatisch aktiviert, wenn die Hauptoption Cheat aktiviert ist. + <strong>Cheats</strong><hr>In diesem Abschnitt kannst du auswählen, welche Cheats du aktivieren möchtest. Du kannst Cheats nicht ohne Kennzeichnung für Pnach-Dateien des alten Formats aktivieren/deaktivieren. Diese werden automatisch aktiviert, wenn die Hauptoption Cheat aktiviert ist. - + Game Fixes Spiel-Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Spielfixes Einstellungen</strong><hr>Spielfixes können falsche Emulationen in einigen Titeln umgehen.<br>Allerdings können sie auch Probleme in Spielen verursachen, wenn sie falsch verwendet werden.<br>Es ist am besten, sie alle deaktiviert zu lassen, es sei denn, es wird etwas anderes empfohlen. - + Graphics Grafik - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Grafikeinstellungen</strong><hr>Diese Optionen bestimmen die Konfiguration der grafischen Ausgabe.<br><br>Mauszeiger über eine Option bewegen für zusätzliche Informationen. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio-Einstellungen</strong><hr>Diese Optionen steuern die Audioausgabe der Konsole.<br><br>Maus über eine Option bewegen für zusätzliche Informationen. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - <strong>Memory Card-Einstellungen</strong><hr>Erstellen und konfigurieren Sie hier Memory Cards.<br><br>Mauszeiger über eine Option bewegen für zusätzliche Informationen. + <strong>Memory Card-Einstellungen</strong><hr>Erstelle und konfiguriere hier Memory Cards.<br><br>Mauszeiger über eine Option bewegen für zusätzliche Informationen. - + Network & HDD - Netzwerk & HDD + Netzwerk & Festplatte - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Netzwerk- & Festplatteneinstellungen</strong><hr>Diese Optionen steuern die Netzwerkverbindung und den internen Festplattenspeicher der Konsole.<br><br>Mauszeiger über eine Option bewegen für zusätzliche Informationen. - + Folders Ordner - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Ordnereinstellungen</strong><hr>Diese Optionen legen fest, wo PCSX2 Laufzeitdaten speichern wird. - + Achievements Errungenschaften - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - <strong>Trophäen Einstellungen</strong><hr>Diese Optionen steuern die RetroAchievements Implementierung in PCSX2, damit Sie Erfolge in Ihren Spielen erzielen können. + <strong>Errungenschaften Einstellungen</strong><hr>Diese Optionen steuert die RetroAchievements Implementierung in PCSX2, damit du Erfolge in Spielen erzielen kannst. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration wird verwendet, integrierte RetroAchievements Unterstützung ist deaktiviert. - + Advanced Erweitert - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - <strong>Erweiterte Einstellungen</strong><hr>Dies sind erweiterte Optionen zur Bestimmung der Konfiguration der simulierten Konsole.<br><br>Mauszeiger über eine Option bewegen für zusätzliche Informationen. + <strong>Erweiterte Einstellungen</strong><hr>Dies sind erweiterte Optionen zur Konfiguration der simulierten Konsole.<br><br>Mauszeiger über eine Option bewegen für zusätzliche Informationen. - + Debug - Debuggen + Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - <strong>Debug-Einstellungen</strong><hr>Dies sind Optionen, mit denen interne Informationen über die Anwendung protokolliert werden können. <strong>Ändern Sie nichts, es sei denn, Sie wissen, was Sie tun</strong>, es wird zu einer erheblichen Verlangsamung führen und kann große Mengen an Speicherplatz beanspruchen. + <strong>Debug-Einstellungen</strong><hr>Dies sind Optionen, mit denen interne Informationen über die Anwendung protokolliert werden können. <strong>Ändere nichts, es sei denn, du weißt, was du tust</strong>, es wird zu einer erheblichen Verlangsamung führen und kann große Mengen an Speicherplatz beanspruchen. - + Confirm Restore Defaults - Standard wiederherstellen bestätigen + Bestätige die Wiederherstellung auf Standardeinstellungen - + Are you sure you want to restore the default settings? Any preferences will be lost. Sind Sie sicher, dass Sie die Standardeinstellungen wiederherstellen möchten? Alle gegenwärtigen Einstellungen gehen verloren. - + Reset UI Settings UI-Einstellungen zurücksetzen - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14640,12 +15281,12 @@ Alle aktuellen Werte werden überschrieben. Möchten Sie fortfahren? - + Per-game configuration copied from global settings. - Per-game Konfiguration wurde aus globalen Einstellungen kopiert. + Pro-Spiel Konfiguration wurde aus globalen Einstellungen kopiert. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14658,33 +15299,15 @@ Alle aktuellen Einstellungswerte gehen dabei verloren. Möchten Sie fortfahren? - + Per-game configuration cleared. - Per-Game-Konfiguration gelöscht. + Pro-Spiel-Konfiguration gelöscht. - + Recommended Value Empfohlener Wert - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Globale Einstellung verwenden [Aktiviert] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Globale Einstellung verwenden [Deaktiviert] - - - - - Use Global Setting [%1] - Globale Einstellung verwenden [%1] - SetupWizardDialog @@ -14770,8 +15393,8 @@ Möchten Sie fortfahren? - Open in Explorer... - Im Explorer öffnen... + Open BIOS Folder... + BIOS-Ordner öffnen... @@ -15038,97 +15661,97 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. BEREIT - + WAIT Refers to a Thread State in the Debugger. WARTEN - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. Auf Unterbrechung warten - + DORMANT Refers to a Thread State in the Debugger. RUHT - + NONE Refers to a Thread Wait State in the Debugger. KEIN - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SCHLÄFT - + DELAY Refers to a Thread Wait State in the Debugger. VERZÖGERUNG - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15334,6 +15957,11 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi Scales the crosshair image set above. Skaliert das oben eingestellte Fadenkreuzbild. + + + %.0f%% + %.0f%% + Cursor Color @@ -15365,6 +15993,12 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi Scales the position to simulate CRT curvature. Skaliert die Position zum simulieren der CRT-Krümmung. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15380,6 +16014,12 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi Sets the horizontal center position of the simulated screen. Legt die horizontale Mittelposition des simulierten Bildschirms fest. + + + + %.0fpx + %.0fpx + Center Y @@ -15400,6 +16040,12 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi Sets the width of the simulated screen. Legt die Breite des simulierten Bildschirms fest. + + + + %dpx + %dpx + Screen Height @@ -15455,6 +16101,15 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi Specifies the latency to the host input device. Gibt die Latenz für das Host-Eingabegerät an. + + + + + + + %dms + %dms + Output Latency @@ -15655,6 +16310,26 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi Y Y + + + Off + Aus + + + + Low + Gering + + + + Medium + Normal + + + + High + Hoch + Steering Smoothing @@ -15665,6 +16340,12 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Glättet Änderungen in der Steuerung auf den angegebenen Prozentsatz pro Abfrage. Benötigt, wenn Tastaturen verwendet werden. + + + + %d%% + %d%% + Steering Deadzone @@ -16164,117 +16845,117 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi USBBindingWidget_DrivingForce - + Hints Hinweise - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Um die meisten modernen 900 Grad Lenkräder einzubinden, drehen Sie das Rad eine Drehung in die gewünschte Richtung, dann wieder zurück in die Mitte. - + Force Feedback Force Feedback - + D-Pad Steuerkreuz - + Down Runter - + Left Links - + Up Hoch - + Right Rechts - + L1 L1 - + L2 L2 - + Brake Bremse - + Steering Left Links lenken - + Steering Right Rechts lenken - + Select Select - + Start Start - + Face Buttons Aktionstasten - + Circle Kreis - + Cross Kreuz - + Triangle Dreieck - + Square Quadrat - + R1 R1 - + R2 R2 - + Accelerator Gaspedal @@ -16282,67 +16963,67 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi USBBindingWidget_GTForce - + Hints Hinweise - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Um die meisten modernen 900 Grad Lenkräder einzubinden, drehen Sie das Rad eine Drehung in die gewünschte Richtung, dann wieder zurück in die Mitte. - + Force Feedback Force Feedback - + X X - + A A - + Brake Bremse - + Steering Left Links lenken - + Steering Right Rechts lenken - + Left Paddle Linke Schaltwippe - + Right Paddle Rechte Schaltwippe - + Y Y - + B B - + Accelerator Gaspedal @@ -16350,71 +17031,71 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi USBBindingWidget_GunCon2 - + Buttons Knöpfe - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad Steuerkreuz - - + + Down Runter - - + + Left Links - - + + Up Hoch - - + + Right Rechts - + Pointer Setup Zeigereinstellung - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16423,29 +17104,29 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi <p>Wenn du einen Controller oder eine Lightgun (die einen Controller anstelle einer Maus simuliert) verwenden willst, dann solltest du es zu Relatives Zielen verbinden. Ansonsten sollte Relatives zielen <strong>nicht zugewiesen werden</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relativ anvisieren - - + + Trigger Abzug - + Shoot Offscreen Offscreen Schießen - + Calibration Shot Kalibrierungsschuss - + Calibration shot is required to pass the setup screen in some games. Kalibrierungsschuss wird benötigt, um den Setup-Bildschirm in einigen Spielen abzuschließen. @@ -16453,27 +17134,27 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi USBDeviceWidget - + Device Type Geräte-Typ - + Bindings Belegung - + Settings Einstellungen - + Automatic Mapping Automatisches Zuordnen - + Clear Mapping Zuordnung löschen @@ -16511,32 +17192,32 @@ Das Scannen braucht mehr Zeit, wird aber Dateien in Unterverzeichnissen identifi VMManager - + Failed to back up old save state {}. Fehler beim Sichern des alten Status {}. - + Failed to save save state: {}. Speichern des Save state fehlgeschlagen. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unbekanntes Spiel - + Error Fehler - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16553,197 +17234,217 @@ Nach dem Extrahieren sollte dieses BIOS-Abbild im Ordner bios im Datenverzeichni Bitte lesen Sie die FAQs und Anleitungen für weitere Anweisungen. - + + Resuming state + Status fortsetzen + + + State saved to slot {}. Status in Slot {} gespeichert. - + Failed to save save state to slot {}. Fehler beim Speichern des Status in Slot {}. - + + + Loading state + Lade-Status + + + There is no save state in slot {}. Es gibt keinen Speicherstatus in Slot {}. - + Loading state from slot {}... Lade Status von Slot {}... - + Saving state to slot {}... Speichere Status in Slot {}... - + + Frame advancing + Bildvorlauf + + + Disc removed. Disc entfernt. - + Disc changed to '{}'. Disc geändert zu '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Fehler beim Öffnen des neuen Disc-Abbildes '{}'. Kehre zum alten Abbild zurück. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Fehler beim Öffnen des neuen Disc-Image '{}'. Kehre zum alten Image zurück. +Fehlermeldung: {} - - Failed to switch back to old disc image. Removing disc. - Fehler beim Zurückwechseln auf das alte Disc-Abbild. Disc wird entfernt. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Fehler beim Zurückwechseln auf das alte Disc-Image. Disc wird entfernt. +Fehlermeldung: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats wurden aufgrund des Hardcore-Modus deaktiviert. - + Fast CDVD is enabled, this may break games. Fast CDVD ist aktiviert, dies kann Spiele unspielbar machen. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Zyklusrate/Überspringen ist nicht auf dem Standardwert, dies kann zum Absturz führen oder zu langsam laufen. - + Audio is using async mix, expect desynchronization in FMVs. Audio verwendet Async-Mix, Desynchronisierung in FMVs ist zu erwarten. - + Upscale multiplier is below native, this will break rendering. Hochskalierungs-Multiplikator ist unterhalb Nativ, dies wird die Darstellung beeinträchtigen. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping ist nicht auf Automatisch gesetzt. Dies kann die Darstellung in einigen Spielen beeinträchtigen. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texturfilterung ist nicht auf Bilinear (PS2) gesetzt. Dies wird die Darstellung in einigen Spielen beeinträchtigen. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilineares Filtern ist nicht auf Automatisch gesetzt. Dies kann die Darstellung in einigen Spielen beeinträchtigen. - + Blending is below basic, this may break effects in some games. Blending ist unterhalb Basic, dies kann die Effekte in einigen Spielen zerstören. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware-Download-Modus ist nicht auf Genau gesetzt, dies kann die Darstellung in einigen Spielen beeinträchtigen. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Rundungsmodus ist nicht auf Standard gesetzt, dies kann einige Spiele unspielbar machen. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Modus ist nicht auf Standard gesetzt, dies kann einige Spiele unspielbar machen. - + VU Round Mode is not set to default, this may break some games. VU Rundungsmodus ist nicht auf Standard gesetzt, dies kann einige Spiele unspielbar machen. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Modus ist nicht auf Standard gesetzt, dies kann einige Spiele unspielbar machen. - + Game Fixes are not enabled. Compatibility with some games may be affected. Spielfixes sind nicht aktiviert. Kompatibilität mit einigen Spielen kann beeinträchtigt werden. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Kompatibilitäts-Patches sind nicht aktiviert. Kompatibilität mit einigen Spielen kann beeinträchtigt sein. - + Frame rate for NTSC is not default. This may break some games. Die Bildrate für NTSC ist nicht standardmäßig. Dies kann einige Spiele beeinträchtigen. - + Frame rate for PAL is not default. This may break some games. Die Bildrate für PAL ist nicht standardmäßig. Dies kann einige Spiele beeinträchtigen. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler ist nicht aktiviert, dies verringert die Leistung erheblich. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler ist nicht aktiviert, dies verringert die Leistung erheblich. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler ist nicht aktiviert, dies verringert die Leistung erheblich. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler ist nicht aktiviert, dies verringert die Leistung erheblich. - + EE Cache is enabled, this will significantly reduce performance. EE-Cache ist aktiviert, dies verringert die Leistung erheblich. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection ist nicht aktiviert, dies kann die Leistung verringern. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection ist nicht aktiviert, was die Leistung verringern könnte. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 ist deaktiviert, dies kann die Leistung verringern. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag-Hack ist nicht aktiviert, dies kann die Leistung mindern. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Konvertierung ist aktiviert, dies kann die Leistung mindern. - + Texture Preloading is not Full, this may reduce performance. Texturvorladung ist nicht voll, dies kann die Leistung verringern. - + Estimate texture region is enabled, this may reduce performance. Geschätzte Textur-Region ist aktiviert, dies kann die Leistung verringern. diff --git a/pcsx2-qt/Translations/pcsx2-qt_el-GR.ts b/pcsx2-qt/Translations/pcsx2-qt_el-GR.ts index f8285b298d86fe..5ca178b8864a7d 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_el-GR.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_el-GR.ts @@ -80,32 +80,38 @@ Έτοιμο... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Το ειδικό σας νόμισμα σύνδεσης RetroAchievements δεν είναι άλλο έγκυρο.</strong>Πρέπει να ξαναπληκτρολογήσετε τα στοιχεία σύνδεσής σας, έτσι ώστε να ανιχνεύονται τα κατορθώματά σας. Ο κωδικός σας δεν θα αποθηκευτεί στο PCSX2. Αντιθέτως, θα δημιουργηθεί και χρησιμοποιηθεί, ένα ειδικό νόμισμα σύνδεσης. - + &Login &Είσοδος - + Logging in... Γίνεται είσοδος... - + Login Error Σφάλμα Εισόδου - - Login failed. Please check your username and password, and try again. - Αποτυχία εισόδου. Παρακαλώ ελέγξτε το όνομα χρήστη και τον κωδικό σας και ξαναδοκιμάστε. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Η σύνδεση απέτυχε. +Σφάλμα: %1 + +Παρακαλούμε ελέγξτε το όνομα χρήστη και τον κωδικό πρόσβασης σας και προσπαθήστε ξανά. - + Login failed. Αποτυχία εισόδου. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Γενικές ρυθμίσεις - - - - + + Enable Achievements Ενεργοποίηση Επιτευγμάτων - - - Show Challenge Indicators - Εμφάνιση Ενδείξεων Πρόκλησης - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Ενεργοποίηση Discord Rich Presence - - - - + + Enable Hardcore Mode Ενεργοποίηση Λειτουργίας Hardcore - - - Enable Leaderboards - Ενεργοποίηση Πίνακα Κατάταξης - - - + Test Unofficial Achievements Δοκιμή Ανεπίσημων Επιτευγμάτων - - - Enable Test Mode - Ενεργοποίηση Δοκιμαστικής Λειτουργίας - - - - + + Enable Sound Effects Ενεργοποίηση Ηχητικών Εφέ - + Notifications Ειδοποιήσεις - - - Show Notifications - Εμφάνιση Ειδοποιήσεων - - - - Duration - Διάρκεια - - - - - - + + 5 seconds 5 δευτερόλεπτα - + Account Λογαριασμός - - + + Login... Είσοδος... - + View Profile... Προβολή Προφίλ... - - Game Info - Πληροφορίες Παιχνιδιού + + Settings + Ρυθμίσεις - - <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> - <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + + + Enable Spectator Mode + Ενεργοποίηση Λειτουργίας Θεατή - - seconds - δευτερόλεπτα + + + Enable Encore Mode + Ενεργοποίηση Λειτουργίας Encore + + + Show Achievement Notifications + Εμφάνιση Ειδοποιήσεων Επιτευγμάτων + + + + Show Leaderboard Notifications + Εμφάνιση Ειδοποιήσεων Πίνακα Κατάταξης + + + - - - - Unchecked - Αποεπιλεγμένο + Enable In-Game Overlays + Ενεργοποίηση Επικαλύψεων Εντός Παιχνιδιού - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Όταν ενεργοποιηθεί και συνδεθείτε, το PCSX2 θα σαρώσει για επιτεύγματα κατά τη φόρτωση του παιχνιδιού. + + Username: +Login token generated at: + Όνομα χρήστη: +Το διακριτικό σύνδεσης δημιουργήθηκε στο: + + Game Info + Πληροφορίες Παιχνιδιού + + + + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + <html><head/><body><p align="justify">Το PCSX2 χρησιμοποιεί το RetroAchievements ως βάση δεδομένων επιτευγμάτων και για την παρακολούθηση της προόδου σας. Για να χρησιμοποιήσετε επιτεύγματα, παρακαλώ κάντε έναν λογαριασμό στο <a href="https://retroachievements.org/"><span style=" text-decoration: underline; color:#4169e1;">retroachievements.org</span></a>.</p><p align="justify">Για να δείτε τη λίστα επιτευγμάτων στο παιχνίδι, πατήστε το πλήκτρο συντόμευσης για το <span style=" font-weight:600;">Άνοιγμα μενού παύσης</span> και επιλέξτε <span style=" font-weight:600;">Επιτεύγματα</span> από το μενού.</p></body></html> + + + + + + + Unchecked + Αποεπιλεγμένο + + + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Όταν είναι ενεργοποιημένο, το PCSX2 θα υποθέσει ότι όλα τα επιτεύγματα είναι κλειδωμένα και δεν θα αποστέλλει ειδοποιήσεις ξεκλειδώματος στον διακομιστή. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. - When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. + Όταν είναι ενεργοποιημένο, το PCSX2 θα εμφανίζει επιτεύγματα από ανεπίσημες συλλογές. Σημειωτέον ότι αυτά τα επιτεύγματα δεν παρακολουθούνται από το RetroAchievements, συνεπώς ξεκλειδώνουν κάθε φορά. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Όταν είναι ενεργοποιημένο, οι πληροφορίες του rich presence θα συλλέγονται και θα αποστέλλονται στους διακομιστές RetroAchievements όπου υποστηρίζονται. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - - - + + + + Checked Επιλεγμένο - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Επιτρέπει την παρακολούθηση και υποβολή πινάκων επιτευγμάτων σε υποστηριζόμενα παιχνίδια. Αν οι πίνακες επιτευγμάτων είναι απενεργοποιημένοι, θα είστε σε θέση να δείτε τον πίνακα κατάταξης και τις βαθμολογίες, αλλά δεν θα μπορείτε να υποβάλλετε βαθμολογίες. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Εμφανίζει αναδυόμενα μηνύματα σε εκδηλώσεις, όπως ξεκλείδωμα επιτευγμάτων και υποβολές στους πίνακες κατάταξης. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Παίζει ηχητικά εφέ για γεγονότα όπως το ξεκλείδωμα επιτευγμάτων και υποβολές στους πίνακες κατάταξης. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Εμφανίζει εικονίδια στην κάτω δεξιά γωνία της οθόνης όταν μια πρόκληση είναι ενεργή. - - - - Notification Duration - Notification Duration + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - The duration, in seconds, an achievement popup notification will remain on screen. + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Reset System Επανεκκίνηση Συστήματος - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Η λειτουργία Hardcore δεν θα ενεργοποιηθεί μέχρι να γίνει επανεκκίνηση του συστήματος. Θέλετε να επανεκκινήσετε το σύστημα τώρα; + + + + %n seconds + + %n δευτερόλεπτα + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Όνομα χρήστη: %1 Το τεκμήριο σύνδεσης δημιουργήθηκε στο %2. - + Logout Αποσύνδεση - + Not Logged In. Δεν είστε συνδεδεμένοι. - - - %1 seconds - %1 seconds - Achievements - + Hardcore mode will be enabled on system reset. - Hardcore mode will be enabled on system reset. + Η λειτουργία Hardcore θα ενεργοποιηθεί κατά την επανεκκίνηση συστήματος. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. + Το {0} δεν μπορεί να εκτελεστεί ενώ η λειτουργία hardcore είναι ενεργή. Θέλετε να απενεργοποιήσετε τη λειτουργία hardcore; Το {0} θα ακυρωθεί αν επιλέξετε όχι. - + Hardcore mode is now enabled. - Hardcore mode is now enabled. + Η λειτουργία Hardcore ενεργοποιήθηκε. + + + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Ανεπίσημο) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Ο Χρόνος Σας: {}{} + + + + Your Score: {}{} + Η Βαθμολογία Σας: {}{} + + + + Your Value: {}{} + Η Τιμή Σας: {}{} + + + + (Submitting) + (Υποβολή) + + + + Achievements Disconnected + Αποσυνδέθηκαν Επιτεύγματα + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected - + + All pending unlock requests have completed. + Όλες οι εκκρεμείς αιτήσεις ξεκλειδώματος έχουν ολοκληρωθεί. + + + Hardcore mode is now disabled. - Hardcore mode is now disabled. + Η λειτουργία Hardcore απενεργοποιήθηκε. + + + + Confirm Hardcore Mode + Επιβεβαίωση Λειτουργίας Hardcore + + + + Active Challenge Achievements + Active Challenge Achievements - + (Hardcore Mode) (Λειτουργία Hardcore) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Έχετε κερδίσει {0} από {1} επιτεύγματα και {2} από {3} πόντους. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - Αυτό το παιχνίδι δεν έχει επιτεύγματα. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points - - Leaderboard submission is enabled. - Η υποβολή στον πίνακα κατάταξης είναι ενεργοποιημένη. + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) - + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Σφάλμα διακομιστή στο {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Άγνωστο + + + + Locked + Κλειδωμένο + + + + Unlocked + Ξεκλειδωμένο + + + + Unsupported + Unsupported + + + + Unofficial + Ανεπίσημο + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} πόντοι + + + + {} point + {} πόντος + + + + XXX points + XXX πόντοι + + + + Unlocked: {} + Ξεκλειδωμένο: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Κατάταξη + + + + Name + Όνομα + + + + Time + Time + + + + Score + Βαθμολογία + + + + Value + Value + + + + Date Submitted + Ημερομηνία Υποβολής + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + Φόρτωση... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + Αυτό το παιχνίδι δεν έχει επιτεύγματα. + + + Failed to read executable from disc. Achievements disabled. Απέτυχε η ανάγνωση του εκτελέσιμου από το δίσκο. Τα επιτεύγματα απενεργοποιήθηκαν. @@ -391,19 +628,19 @@ Login token generated on %2. Rounding Mode - Rounding Mode + Λειτουργία Στρογγυλοποίησης Chop / Zero (Default) - Chop / Zero (Default) + Απόρριψη / Μηδενισμός δεκαδικών (Προεπιλογή) Clamping Mode - Clamping Mode + Λειτουργία Περιορισμού Εύρους @@ -457,7 +694,7 @@ Login token generated on %2. Unchecked - Unchecked + Αποεπιλεγμένο @@ -478,7 +715,7 @@ Login token generated on %2. Enable Fast Memory Access - Enable Fast Memory Access + Ενεργοποίηση Γρήγορης Πρόσβασης Μνήμης @@ -489,7 +726,7 @@ Login token generated on %2. Pause On TLB Miss - Pause On TLB Miss + Παύση σε TLB Miss @@ -499,22 +736,22 @@ Login token generated on %2. VU0 Rounding Mode - VU0 Rounding Mode + Λειτουργία Στρογγυλοποίησης VU0 VU1 Rounding Mode - VU1 Rounding Mode + Λειτουργία Στρογγυλοποίησης VU1 VU0 Clamping Mode - VU0 Clamping Mode + Λειτουργία Περιορισμού Εύρους VU0 VU1 Clamping Mode - VU1 Clamping Mode + Λειτουργία Περιορισμού Εύρους VU1 @@ -547,7 +784,7 @@ Login token generated on %2. Good speedup and high compatibility, may cause graphical errors. - Good speedup and high compatibility, may cause graphical errors. + Καλή επιτάχυνση απόδοσης και υψηλή συμβατότητα, μπορεί να προκαλέσει γραφικά σφάλματα. @@ -562,236 +799,236 @@ Login token generated on %2. Automatically loads and applies fixes to known problematic games on game start. - Automatically loads and applies fixes to known problematic games on game start. + Φορτώνει αυτόματα και εφαρμόζει διορθώσεις σε γνωστά προβληματικά παιχνίδια κατά την εκκίνηση του παιχνιδιού. Enable Compatibility Patches - Enable Compatibility Patches + Ενεργοποίηση Διορθώσεων Συμβατότητας Automatically loads and applies compatibility patches to known problematic games. - Automatically loads and applies compatibility patches to known problematic games. + Φορτώνει αυτόματα και εφαρμόζει διορθώσεις συμβατότητας σε γνωστά προβληματικά παιχνίδια. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. + Η αλλαγή αυτών των επιλογών μπορεί να προκαλέσει τη μη λειτουργία παιχνιδιών. Εφαρμόστε τροποποιήσεις με δική σας ευθύνη, η ομάδα PCSX2 δεν θα παρέχει υποστήριξη για τροποποιήσεις αυτών των ρυθμίσεων. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). - EmotionEngine (MIPS-IV) + EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. - Rounding Mode: + Λειτουργία Στρογγυλοποίησης: - - - + + + Nearest - Nearest + Πλησιέστερο ακέραιο - - - + + + Negative - Negative + Προς-τα-κάτω - - - + + + Positive - Positive + Προς-τα-πάνω - - - + + + Chop / Zero (Default) - Chop / Zero (Default) + Απόρριψη / Μηδενισμός δεκαδικών (Προεπιλογή) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. - Clamping Mode: + Λειτουργία Περιορισμού Εύρους: - - + + None - None + Καμία - - - + + + Normal (Default) - Normal (Default) + Κανονική (προεπιλογή) - + None ClampMode - None + Καμία - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). - Extra + Preserve Sign + Έξτρα + Διατήρηση Πρόσημου - + Full - Full + Πλήρης - + Wait Loop Detection - Wait Loop Detection + Αναμονή Ανίχνευσης Βρόχου - - + + Enable Recompiler Enable Recompiler - + Enable Fast Memory Access - Enable Fast Memory Access + Ενεργοποίηση Γρήγορης Πρόσβασης Μνήμης - + Enable Cache (Slow) - Enable Cache (Slow) + Ενεργοποίηση Προσωρινής Μνήμης (Αργή) - + INTC Spin Detection INTC Spin Detection - + Pause On TLB Miss - Pause On TLB Miss + Παύση σε TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. - Vector Units (VU) + Διανυσματικές Μονάδες (VU) - + VU1 Rounding Mode: - VU1 Rounding Mode: + Λειτουργία Στρογγυλοποίησης VU1: - + mVU Flag Hack mVU Flag Hack - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - - + + Extra - Extra + Έξτρα - + VU0 Clamping Mode: VU0 Clamping Mode: - + VU0 Rounding Mode: - VU0 Rounding Mode: + Λειτουργία Στρογγυλοποίησης VU0: - + VU1 Clamping Mode: VU1 Clamping Mode: - + I/O Processor (IOP, MIPS-I) - I/O Processor (IOP, MIPS-I) + Επεξεργαστής I/O (IOP, MIPS-I) - + Game Settings Ρυθμίσεις Παιχνιδιού - + Enable Game Fixes - Enable Game Fixes + Ενεργοποίηση Διορθώσεων Παιχνιδιού - + Enable Compatibility Patches - Enable Compatibility Patches + Ενεργοποίηση Διορθώσεων Συμβατότητας - + Frame Rate Control - Frame Rate Control + Έλεγχος Ρυθμού Καρέ - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. - hz + hz - + PAL Frame Rate: - PAL Frame Rate: + Ρυθμός Ανανέωσης Καρέ PAL: - + NTSC Frame Rate: - NTSC Frame Rate: + Ρυθμός Ανανέωσης Καρέ NTSC: - + PINE Settings PINE Settings - + Slot: Slot: - + Enable Ενεργοποίηση @@ -799,189 +1036,189 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings - Timestretch Settings + Ρυθμίσεις Χρονοεπέκτασης - + Sequence Length: Sequence Length: - + 30 30 - + Seekwindow Size: Seekwindow Size: - + 20 20 - + Overlap: Overlap: - + 10 10 - + Restore Defaults Επαναφορά Προεπιλογών - + Volume Ένταση Ήχου - + 100% 100% - + Mixing Settings - Mixing Settings + Ρυθμίσεις Μίξης - + Synchronization: - Synchronization: + Συγχρονισμός: - + TimeStretch (Recommended) - TimeStretch (Recommended) + Χρονοεπέκταση (Προτείνεται) - + Async Mix (Breaks some games!) - Async Mix (Breaks some games!) + Ασύγχρονη Μίξη (χαλάει κάποια παιχνίδια!) - + None (Audio can skip.) - None (Audio can skip.) + Καμία (πιθανά κενά ήχου) - + Expansion: - Expansion: + Επέκταση: - + Stereo (None, Default) - Stereo (None, Default) + Στερεοφωνικό (Καμία, Προεπιλογή) - + Quadraphonic - Quadraphonic + Τετραφωνικό - + Surround 5.1 - Surround 5.1 + Surround 5.1 - + Surround 7.1 - Surround 7.1 + Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. - ProLogic Level: + Επίπεδο ProLogic: - + None (Default) - None (Default) + Κανένα (Προεπιλογή) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. - ProLogic Decoding (basic) + Αποκωδικοποίηση ProLogic (βασική) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. - ProLogic II Decoding (gigaherz) + Αποκωδικοποίηση ProLogic II (gigaherz) - + Target Latency: - Target Latency: + Στόχος Καθυστέρησης: - + 60 ms - 60 ms + 60 ms - + Output Settings - Output Settings + Ρυθμίσεις Εξόδου - + Output Module: - Output Module: + Μονάδα Εξόδου: - + Output Latency: - Output Latency: + Καθυστέρηση Εξόδου: - + 20 ms - 20 ms + 20 ms - + Minimal - Minimal + Ελάχιστη - + Output Backend: - Output Backend: + Σύστημα Υποστήριξης Εξόδου: - + Maximum Latency: - Maximum Latency: + Μέγιστη Καθυστέρηση: - + Output Device: Συσκευή Εξόδου: Cubeb (Cross-platform) - Cubeb (Cross-platform) + Cubeb (διαπλατφορμικό) @@ -991,17 +1228,17 @@ Login token generated on %2. ms Measuring unit that will appear after the number selected in its option. Adapt the space depending on your language's rules. - ms + ms Synchronization - Synchronization + Συγχρονισμός When running outside of 100% speed, adjusts the tempo on audio instead of dropping frames. Produces much nicer fast-forward/slowdown audio. - When running outside of 100% speed, adjusts the tempo on audio instead of dropping frames. Produces much nicer fast-forward/slowdown audio. + Όταν δεν τρέχει στο 100% της ταχύτητας, ρυθμίζει τον ρυθμό ήχου αντί να απορρίπτει καρέ. Παράγει πολύ καλύτερο ήχο κατά την επιτάχυνση/ επιβράδυνση ταχύτητας. @@ -1011,18 +1248,18 @@ Login token generated on %2. Determines how the stereo output from the emulated system is upmixed into a greater number of the output speakers. - Determines how the stereo output from the emulated system is upmixed into a greater number of the output speakers. + Καθορίζει πώς η στερεοφωνική έξοδος από το εξομοιωμένο σύστημα αναμιγνύεται σε μεγαλύτερο αριθμό ηχείων εξόδου. Output Module Cubeb is an audio engine name. Leave as-is. - Output Module + Σύστημα Εξόδου Selects the library to be used for audio output. - Selects the library to be used for audio output. + Επιλέγει τη βιβλιοθήκη που θα χρησιμοποιηθεί για την έξοδο ήχου. @@ -1036,7 +1273,7 @@ Login token generated on %2. Default - Default + Προεπιλογή @@ -1066,7 +1303,7 @@ Login token generated on %2. Output Latency - Output Latency + Καθυστέρηση Εξόδου @@ -1087,27 +1324,27 @@ Login token generated on %2. Seek Window Size Seek Window: the region of samples (window) the audio stretching algorithm is allowed to search. - Seek Window Size + Μεγέθους Παραθύρου Overlap - Overlap + Επικάλυψη 10 ms - 10 ms + 10 ms Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. - Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. + Προ-εφαρμόζει ένα τροποποιητή έντασης στην εξόδο ήχου παιχνιδιού πριν το προωθήσετε στον υπολογιστή σας. Use Global Setting [%1] - Use Global Setting [%1] + Χρήση Γενικής Ρύθμισης [%1] @@ -1119,22 +1356,22 @@ Login token generated on %2. N/A Preserve the %1 variable, adapt the latter ms (and/or any possible spaces in between) to your language's ruleset. - N/A + Μη διαθέσιμο %1 ms - %1 ms + %1 ms Average Latency: %1 ms (%2 ms buffer + %3 ms output) - Average Latency: %1 ms (%2 ms buffer + %3 ms output) + Μέση καθυστέρηση: %1 ms (%2 ms buffer + %3 ms έξόδου) Average Latency: %1 ms (minimum output latency unknown) - Average Latency: %1 ms (minimum output latency unknown) + Μέση καθυστέρηση: %1 ms (άγνωστη ελάχιστη καθυστέρηση εξόδου) @@ -1144,12 +1381,12 @@ Login token generated on %2. Automatic Updater - Automatic Updater + Αυτόματες Ενημερωτής Update Available - Update Available + Διαθέσιμη Eνημέρωση @@ -1162,17 +1399,22 @@ Login token generated on %2. Νέα Έκδοση: - + + Download Size: + Μέγεθος Λήψης: + + + Download and Install... Λήψη και Εγκατάσταση... - + Skip This Update - Skip This Update + Παράλειψη Ενημέρωσης - + Remind Me Later Υπενθύμιση Αργότερα @@ -1182,17 +1424,17 @@ Login token generated on %2. Σφάλμα Ενημέρωσης - + <h2>Changes:</h2> - <h2>Changes:</h2> + <h2>Αλλαγές:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> @@ -1209,7 +1451,7 @@ Login token generated on %2. Downloading %1... - Downloading %1... + Λήψη %1... @@ -1219,107 +1461,112 @@ Login token generated on %2. No updates are currently available. Please try again later. - No updates are currently available. Please try again later. + Δεν υπάρχουν διαθέσιμες ενημερώσεις. Παρακαλώ προσπαθήστε ξανά αργότερα. Current Version: %1 (%2) - Current Version: %1 (%2) + Τρέχουσα Έκδοση: %1 (%2) New Version: %1 (%2) - New Version: %1 (%2) + Νέα Έκδοση: %1 (%2) + Download Size: %1 MB + Download Size: %1 MB + + + Loading... - Loading... + Φόρτωση... BIOSSettingsWidget - + BIOS Directory - BIOS Directory + Φάκελος BIOS - + PCSX2 will search for BIOS images in this directory. - PCSX2 will search for BIOS images in this directory. + Το PCSX2 θα αναζητήσει εικόνες BIOS σε αυτόν τον φάκελο. - + Browse... - Browse... + Περιήγηση... - + Reset Επαναφορά - + BIOS Selection - BIOS Selection + Επιλογή BIOS - - Open in Explorer... - Open in Explorer... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List - Refresh List + Ανανέωση Λίστας - + Filename - Filename + Όνομα αρχείου - + Version Έκδοση - + Options and Patches - Options and Patches + Επιλογές και διορθώσεις - + Fast Boot - Fast Boot + Γρήγορη φόρτωση - + Fast Forward Boot - Fast Forward Boot + Εκκίνηση Γρήγορης Προώθησης Checked - Checked + Επιλεγμένο Patches the BIOS to skip the console's boot animation. - Patches the BIOS to skip the console's boot animation. + Εξαναγκάζει το BIOS για να παρακάμψει την οθόνη εκκίνησης της κονσόλας. Unchecked - Unchecked + Μη Επιλεγμένο Removes emulation speed throttle until the game starts to reduce startup time. - Removes emulation speed throttle until the game starts to reduce startup time. + Αφαιρεί τον περιορισμό ταχύτητας εξομοίωσης έως ότου το παιχνίδι αρχίσει να μειώνει το χρόνο εκκίνησης. @@ -1332,49 +1579,49 @@ Login token generated on %2. Type - Type + Τύπος Execute - Execute + Εκτέλεση Memory - Memory + Μνήμη Address - Address + Διεύθυνση 0 - 0 + 0 Read - Read + Ανάγνωση Write - Write + Εγγραφή Change - Change + Αλλαγή Size - Size + Μέγεθος @@ -1384,12 +1631,12 @@ Login token generated on %2. Condition - Condition + Συνθήκη Log - Log + Αρχείο καταγραφής @@ -1408,107 +1655,100 @@ Login token generated on %2. Invalid address "%1" - Invalid address "%1" + Μη έγκυρη διεύθυνση "%1" Invalid condition "%1" - Invalid condition "%1" + Μη έγκυρη συνθήκη "%1" Invalid size "%1" - Invalid size "%1" + Μη έγκυρο μέγεθος "%1" BreakpointModel - + Execute - Execute - - - - No Condition - No Condition + Εκτέλεση - - + + -- - -- + -- - - + Enabled - Enabled + Ενεργοποιημένο - - + Disabled - Disabled + Απενεργοποιημένο - + Read - Read + Ανάγνωση - + Write(C) (C) = changes, as in "look for changes". Write(C) - + Write Write - + TYPE Warning: limited space available. Abbreviate if needed. TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. - SIZE / LABEL + ΜΕΓΕΘΟΣ / ΕΤΙΚΕΤΑ - + INSTRUCTION Warning: limited space available. Abbreviate if needed. - INSTRUCTION + ΟΔΗΓΙΑ - + CONDITION Warning: limited space available. Abbreviate if needed. - CONDITION + ΣΥΝΘΗΚΗ - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1516,17 +1756,17 @@ Login token generated on %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. + Η θέση του δίσκου παιχνιδιού είναι σε μια αφαιρούμενη μονάδα, υπάρχει πιθανότητα προβλημάτων απόδοσης όπως κόλληματα. - + Saving CDVD block dump to '{}'. Saving CDVD block dump to '{}'. Audio - Audio + Ήχος @@ -1541,7 +1781,7 @@ Login token generated on %2. Unknown - Unknown + Άγνωστο @@ -1555,32 +1795,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type Virtual Controller Type - + Bindings Bindings - + Settings Ρυθμίσεις - + Macros Macros - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -1620,226 +1860,221 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - D-Pad + Κατευθυντικά κουμπιά - - - + + + Down Κάτω - - - + + + Left Αριστερά - - - + + + Up Πάνω - - - + + + Right Δεξιά - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Left Analog + Αριστερός Αναλογικός Μοχλός - + Large Motor - Large Motor + Μεγάλο Μοτέρ - + L2 Leave this button name as-is. - L2 + L2 - + R2 Leave this button name as-is. - R2 + R2 - + L1 Leave this button name as-is. - L1 + L1 - + R1 Leave this button name as-is. - R1 + R1 - + Start Leave this button name as-is or uppercase it entirely. - Start + Start - + Select Leave this button name as-is or uppercase it entirely. - Select + Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Face Buttons + Κουμπιά ενεργειών - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Cross + Σταυρός - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Square + Τετράγωνο - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Triangle + Τρίγωνο - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Circle + Κύκλος - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Right Analog + Δεξιός Αναλογικός Μοχλός - + Small Motor - Small Motor + Μικρό Μοτέρ - + L3 Leave this button name as-is. - L3 + L3 - + R3 Leave this button name as-is. - R3 + R3 - + Pressure Modifier Pressure Modifier - + Analog - Analog + Αναλογικό ControllerBindingWidget_Guitar - - Form - Form + + Yellow + Κίτρινο - - Yellow - Yellow - - - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start Start - + Red - Red + Κόκκινο - + Green - Green + Πράσινο - + Orange - Orange + Πορτοκαλί - + Select - Select + Επιλογή - + Strum Up Strum Up - + Strum Down Strum Down - + Blue - Blue + Μπλέ - + Whammy Bar Whammy Bar - + Tilt - Tilt + Κλίση @@ -1857,129 +2092,139 @@ Login token generated on %2. Select File - Select File + Επιλογή αρχείου ControllerGlobalSettingsWidget - + SDL Input Source SDL Input Source - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - + Enable SDL Input Source Enable SDL Input Source - + DualShock 4 / DualSense Enhanced Mode - DualShock 4 / DualSense Enhanced Mode + Dualshock 4 / Βελτιωμένη Λειτουργία DualSense - + XInput Source - XInput Source + Πηγή Xinput - + Enable XInput Input Source - Enable XInput Input Source + Ενεργοποίηση Πηγής Εισόδου Xinput - + DInput Source - DInput Source + Πηγή DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. + Η πηγή DInput παρέχει υποστήριξη για χειριστήρια παλαιού τύπου που δεν υποστηρίζουν το XInput. Συνιστάται η πρόσβαση σε αυτά τα χειριστήρια μέσω του SDL, αλλά το DirectInput μπορεί να χρησιμοποιηθεί αν δεν είναι συμβατό με το SDL. - + Enable DInput Input Source - Enable DInput Input Source + Ενεργοποίηση Πηγής Εισόδου Dinput + + + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> - + + Ignore Inversion + Ignore Inversion + + + Profile Settings Profile Settings - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - + Use Per-Profile Hotkeys Use Per-Profile Hotkeys - - + + Controller LED Settings Controller LED Settings - + Enable SDL Raw Input - Enable SDL Raw Input + Ενεργοποίηση SDL Raw Input - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - + Controller Multitap Controller Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - + Multitap on Console Port 1 Multitap on Console Port 1 - + Multitap on Console Port 2 Multitap on Console Port 2 - + Mouse/Pointer Source - Mouse/Pointer Source + Πηγή Ποντικιού/Δείκτη - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 allows you to use your mouse to simulate analog stick movement. - + Settings... Ρυθμίσεις... - + Enable Mouse Mapping - Enable Mouse Mapping + Ενεργοποίηση Αντιστοίχισης Ποντικιού - + Detected Devices Detected Devices @@ -1994,86 +2239,86 @@ Login token generated on %2. SDL-0 LED - SDL-0 LED + SDL-0 LED SDL-1 LED - SDL-1 LED + SDL-1 LED SDL-2 LED - SDL-2 LED + SDL-2 LED SDL-3 LED - SDL-3 LED + SDL-3 LED ControllerMacroEditWidget - + Binds/Buttons Binds/Buttons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - + Pressure - Pressure + Πίεση - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - - + + 100% 100% - + Trigger Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: - Deadzone: + Νεκρή Ζώνη: - + Frequency - Frequency + Συχνότητα - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Set... Not Configured - Not Configured + Δεν έχει ρυθμιστεί @@ -2084,22 +2329,22 @@ Login token generated on %2. Set Frequency - Set Frequency + Ρύθμιση συχνότητας Frequency: - Frequency: + Συχνότητα: Macro will not repeat. - Macro will not repeat. + Η μακροεντολή δεν θα επαναληφθεί. Macro will toggle buttons every %1 frames. - Macro will toggle buttons every %1 frames. + Η μακροεντολή θα εναλλάσσει τα κουμπιά κάθε %1 καρέ. @@ -2107,7 +2352,7 @@ Login token generated on %2. Controller Port %1 Macros - Controller Port %1 Macros + Μακροεντολές Θύρας Χειριστηρίου %1 @@ -2117,7 +2362,7 @@ Login token generated on %2. Macro 1 Not Configured/Buttons configured - Macro %1 + Μακροεντολή %1 %2 @@ -2126,12 +2371,12 @@ Not Configured/Buttons configured Mouse Mapping Settings - Mouse Mapping Settings + Ρυθμίσεις Χαρτογράφησης Ποντικιού Y Speed - Y Speed + Ταχύτητα Y @@ -2140,12 +2385,12 @@ Not Configured/Buttons configured 10 - 10 + 10 X Speed - X Speed + Ταχύτητα X @@ -2160,55 +2405,55 @@ Not Configured/Buttons configured X Dead Zone - X Dead Zone + Νεκρή Ζώνη X Y Dead Zone - Y Dead Zone + Νεκρή Ζώνη Y - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller Settings - + Editing Profile: - Editing Profile: + Επεξεργασία Προφίλ: - + New Profile - New Profile + Νέο Προφίλ - + Load Profile - Load Profile + Φόρτωση Προφίλ - + Delete Profile - Delete Profile + Διαγραφή Προφίλ - - + + Restore Defaults - Restore Defaults + Επαναφορά Προεπιλογών - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2464,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error - Error + Σφάλμα - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2505,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2519,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2537,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2551,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2560,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2344,12 +2589,12 @@ You cannot undo this action. Download Covers - Download Covers + Λήψη Εξώφυλλων PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. + Το PCSX2 μπορεί να κατεβάσει αυτόματα τα εξώφυλλα για παιχνίδια που δεν έχουν επί του παρόντος ένα σετ εξώφυλλων. Το PCSX2 δεν διαθέτει εικόνες εξώφυλλων, συνεπώς ο χρήστης πρέπει να παρέχει τη δική του πηγή εξώφυλλων. @@ -2375,22 +2620,22 @@ You cannot undo this action. Start - Start + Έναρξη Close - Close + Κλείσιμο Download complete. - Download complete. + Η λήψη ολοκληρώθηκε. Stop - Stop + Διακοπή @@ -2406,206 +2651,244 @@ You cannot undo this action. Functions - + + Module + Πρόσθετο + + + + Version + Έκδοση + + + + Count + Count + + + Refresh Refresh - + Filter Filter - + Memory Search - Memory Search + Αναζήτηση Μνήμης - + End - End + Τέλος - + Value Value - + Start - Start + Έναρξη - + Type Type - + 1 Byte (8 bits) - 1 Byte (8 bits) + 1 Byte (8 bits) - + 2 Bytes (16 bits) - 2 Bytes (16 bits) + 2 Bytes (16 bits) - + 4 Bytes (32 bits) - 4 Bytes (32 bits) + 4 Bytes (32 bits) - + 8 Bytes (64 bits) - 8 Bytes (64 bits) + 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search - Search + Αναζήτηση - + Memory - Memory + Μνήμη - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New New - + Edit - Edit + Επεξεργασία - - - + + + Copy - Copy + Αντιγραφή - + Delete - Delete + Διαγραφή + + + + + + Copy all as CSV + Αντιγραφή όλων ως CSV + + + + Paste from CSV + Επικόλληση από CSV - + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger - Debugger + Αποσφαλματωτής - + Invalid start address - Invalid start address + Μη έγκυρη διεύθυνση αρχής - + Invalid end address - Invalid end address + Μη έγκυρη διεύθυνση τέλους - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value - Invalid search value + Μη έγκυρη τιμή αναζήτησης - + Value is larger than type - Value is larger than type + Η τιμή είναι μεγαλύτερη από τον τύπο @@ -2623,12 +2906,12 @@ You cannot undo this action. OK - OK + ΟΚ Cancel - Cancel + Άκυρο @@ -2638,180 +2921,175 @@ You cannot undo this action. Name - Name + Όνομα Url - Url + Διεύθυνση URL Address - Address + Διεύθυνση Enabled - Enabled + Ενεργό DEV9SettingsWidget - + Ethernet - Ethernet + Ethernet - + Ethernet Device: - Ethernet Device: + Συσκευή Ethernet: - + Ethernet Device Type: - Ethernet Device Type: + Τύπος Συσκευής Ethernet: - + Intercept DHCP - Intercept DHCP + Παρεμβολή DHCP Enabled - Enabled + Ενεργοποιημένο - + Enabled InterceptDHCP - Enabled + Ενεργοποιημένο - + Subnet Mask: - Subnet Mask: + Μάσκα Υποδικτύου: - + Gateway Address: - Gateway Address: + Διεύθυνση Πύλης: - - + + Auto - Auto + Αυτόματο - + Intercept DHCP: Intercept DHCP: - + PS2 Address: - PS2 Address: + Διεύθυνση PS2: - + DNS1 Address: DNS1 Address: - + DNS2 Address: DNS2 Address: - + Internal DNS Internal DNS - + Add - Add + Προσθήκη - + Delete - Delete + Διαγραφή - + Export - Export + Εξαγωγή - + Import - Import + Εισαγωγή - + Per game - Per game + Ανά παιχνίδι - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable - Enabled + Ενεργοποιημένο - + Hard Disk Drive - Hard Disk Drive + Σκληρός Δίσκος - + HDD File: - HDD File: + Αρχείο Σκληρού Δίσκου: - + 40 - 40 + 40 - + 120 - 120 + 120 - + HDD Size (GiB): - HDD Size (GiB): + Μέγεθος Σκληρού Δίσκου (GiB): - + Enabled HDD - Enabled + Ενεργοποιημένο - + Browse Browse - + Create Image - Create Image - - - - - + Δημιουργία Εικόνας @@ -2845,122 +3123,122 @@ You cannot undo this action. - + Use Global Setting [%1] Use Global Setting [%1] Name - Name + Όνομα Url - Url + Διεύθυνση URL Address - Address + Διεύθυνση - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts - DNS Hosts + Φιλοξενητής DNS - + Exported Successfully - Exported Successfully + Επιτυχής Εξαγωγή - + Failed to open file - Failed to open file + Αποτυχία ανοίγματος αρχείου - + No Hosts in file No Hosts in file - + Imported Successfully - Imported Successfully + Επιτυχής εισαγωγή - - + + Per Game Host list Per Game Host list - + Copy global settings? - Copy global settings? + Αντιγραφή γενικών ρυθμίσεων; - + Delete per game host list? Delete per game host list? - + HDD Image File - HDD Image File + Αρχείο Εικόνας Σκληρού Δίσκου - + HDD (*.raw) - HDD (*.raw) + Σκληρός δίσκος (*.raw) - + Overwrite File? - Overwrite File? + Αντικατάσταση αρχείου; - + HDD image "%1" already exists? Do you want to overwrite? - HDD image "%1" already exists? + Η Εικόνα Σκληρού Δίσκου "%1" υπάρχει ήδη. -Do you want to overwrite? +Θέλετε να αντικαταστήσετε; - + HDD Creator - HDD Creator + Δημιουργός Σκληρού Δίσκου - + HDD image created - HDD image created + Δημιουργήθηκε εικόνα Σκληρού Δίσκου - + Use Global Use Global - + Override Override @@ -2968,71 +3246,71 @@ Do you want to overwrite? DebugSettingsWidget - + GS - GS + GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Browse... - - + + Open... - Open... + Άνοιγμα... @@ -3040,34 +3318,58 @@ Do you want to overwrite? PCSX2 Debugger - PCSX2 Debugger + Αποσφαλματωτής PCSX2 - - - + + Run - Run + Εκτέλεση - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause - Pause + Παύση @@ -3078,149 +3380,174 @@ Do you want to overwrite? Disassembly - + Copy Address - Copy Address + Αντιγραφή διεύθυνσης - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3228,17 +3555,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games Scan For New Games @@ -3246,48 +3573,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 - %1x%2 + %1x%2 - + Game: %1 FPS - Game: %1 FPS + Παιχνίδι: %1 FPS - + Video: %1 FPS (%2%) - Video: %1 FPS (%2%) + Βίντεο: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3295,192 +3618,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control - Speed Control + Έλεγχος Tαχύτητας - + Normal Speed: - Normal Speed: + Κανονική Ταχύτητα: - + Enable Speed Limiter - Enable Speed Limiter + Ενεργοποίηση Περιορισμού Ταχύτητας - + System Settings - System Settings + Ρυθμίσεις Συστήματος - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats - Enable Cheats + Ενεργοποίηση Cheats - + Slow-Motion Speed: - Slow-Motion Speed: + Ταχύτητα Αργής Κίνησης: - + Fast-Forward Speed: - Fast-Forward Speed: + Ταχύτητα Γρήγορης Προώθησης: - + Enable Multithreaded VU1 (MTVU) - Enable Multithreaded VU1 (MTVU) + Ενεργοποίηση Πολυνηματικού VU1 (MTVU1) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: - EE Cycle Skipping: + Παράκαμψη Κύκλου EE: - - + + Disabled - Disabled + Απενεργοποιημένο - + Mild Underclock - Mild Underclock + Μικρός Υποχρονισμός - + Moderate Underclock - Moderate Underclock + Μέτριος Υποχρονισμός - + Maximum Underclock - Maximum Underclock + Μέγιστος Υποχρονισμός - + EE Cycle Rate: - EE Cycle Rate: + Ρυθμός Κύκλων EE: - + 50% (Underclock) - 50% (Underclock) + 50% (Υποχρονισμός) - + 60% (Underclock) - 60% (Underclock) + 60% (Υποχρονισμός) - + 75% (Underclock) - 75% (Underclock) + 75% (Υποχρονισμός) - + 100% (Normal Speed) - 100% (Normal Speed) + 100% (Κανονική Ταχύτητα) - + 130% (Overclock) - 130% (Overclock) + 130% (Υπερχρονισμός) - + 180% (Overclock) - 180% (Overclock) + 180% (Υπερχρονισμός) - + 300% (Overclock) - 300% (Overclock) + 300% (Υπερχρονισμός) - + Affinity Control: Affinity Control: - + EE > VU > GS - EE > VU > GS + EE > VU > GS - + EE > GS > VU - EE > GS > VU + EE > GS > VU - + VU > EE > GS - VU > EE > GS + VU > EE > GS - + VU > GS > EE - VU > GS > EE + VU > GS > EE - + GS > EE > VU - GS > EE > VU + GS > EE > VU - + GS > VU > EE - GS > VU > EE + GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3493,46 +3816,46 @@ Achievements: %5 (%6) Normal Speed - Normal Speed + Κανονική Ταχύτητα Sets the target emulation speed. It is not guaranteed that this speed will be reached, and if not, the emulator will run as fast as it can manage. - Sets the target emulation speed. It is not guaranteed that this speed will be reached, and if not, the emulator will run as fast as it can manage. + Ορίζει τον στόχο ταχύτητας εξομοίωσης. Δεν εγγυάται ότι η ταχύτητα θα επιτευχθεί, και αν δεν επιτευχθεί, ο εξομοιωτής θα τρέξει όσο πιο γρήγορα μπορεί. User Preference - User Preference + Προτιμήσεις Χρήστη Speed Limiter - Speed Limiter + Περιοριστής ταχύτητας Checked - Checked + Επιλεγμένο Limits the emulation to the appropriate framerate for the currently running game. - Limits the emulation to the appropriate framerate for the currently running game. + Περιορίζει την εξομοίωση στον κατάλληλο ρυθμό ανανέωσης για το τρέχον παιχνίδι. Higher values may increase internal framerate in games, but will increase CPU requirements substantially. Lower values will reduce the CPU load allowing lightweight games to run full speed on weaker CPUs. - Higher values may increase internal framerate in games, but will increase CPU requirements substantially. Lower values will reduce the CPU load allowing lightweight games to run full speed on weaker CPUs. + Οι υψηλότερες τιμές μπορεί να αυξήσουν τον εσωτερικό ρυθμό ανανέωσης καρέ στα παιχνίδια, αλλά θα αυξήσουν σημαντικά τις απαιτήσεις του επεξεργαστή σας. Οι χαμηλότερες τιμές θα μειώσουν το φορτίο του επεξεργαστή σας επιτρέποντας στα ελαφριά παιχνίδια να τρέχουν πλήρη ταχύτητα σε λιγότερο δυνατούς επεξεργαστές. Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. SOTC = Shadow of the Colossus. A game's title, should not be translated unless an official translation exists. - Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Κάνει την προσομοίωση του Emotion Engine να παραλείπει κύκλους. Βοηθά ένα μικρό υποσύνολο παιχνιδιών όπως το Shadow of the Colossus. Τις περισσότερες φορές είναι επιβλαβές για την απόδοση. @@ -3551,54 +3874,64 @@ Achievements: %5 (%6) Unchecked - Unchecked + Αποεπιλεγμένο Fast disc access, less loading times. Check HDLoader compatibility lists for known games that have issues with this. - Fast disc access, less loading times. Check HDLoader compatibility lists for known games that have issues with this. + Γρήγορη πρόσβαση δίσκου, χαμηλότεροι χρόνοι φόρτωσης. Ελέγξτε τη συμβατότητα του HDLoader για γνωστά παιχνίδια που έχουν προβλήματα με αυτό. Automatically loads and applies cheats on game start. - Automatically loads and applies cheats on game start. + Αυτόματη φόρτωση και εφαρμογή cheats κατά την εκκίνηση του παιχνιδιού. Allows games and homebrew to access files / folders directly on the host computer. - Allows games and homebrew to access files / folders directly on the host computer. + Επιτρέπει σε παιχνίδια και homebrew να έχουν πρόσβαση σε αρχεία / φακέλους απευθείας στον υπολογιστή σας. + + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" - Fast-Forward Speed + Ταχύτητα Γρήγορης Προώθησης + + + + 100% + 100% Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. - Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. + Ορίζει την ταχύτητα γρήγορης προώθησης. Αυτή η ταχύτητα θα χρησιμοποιηθεί όταν πατηθεί/ενεργοποιηθεί το πλήκτρο συντόμευσης. Slow-Motion Speed The "User Preference" string will appear after the text "Recommended Value:" - Slow-Motion Speed + Ταχύτητα Αργής Κίνησης Sets the slow-motion speed. This speed will be used when the slow-motion hotkey is pressed/toggled. - Sets the slow-motion speed. This speed will be used when the slow-motion hotkey is pressed/toggled. + Ορίζει την ταχύτητα αργής κίνησης. Αυτή η ταχύτητα θα χρησιμοποιηθεί όταν πατηθεί/ενεργοποιηθεί το πλήκτρο συντόμευσης αργής κίνησης. EE Cycle Rate - EE Cycle Rate + Ρυθμός Κύκλου EE EE Cycle Skip - EE Cycle Skip + Παράκαμψη Κύκλων EE @@ -3609,17 +3942,17 @@ Achievements: %5 (%6) Enable Multithreaded VU1 (MTVU1) - Enable Multithreaded VU1 (MTVU1) + Ενεργοποίηση Πολυνηματικού VU1 (MTVU1) Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Γενικά μια επιτάχυνση σε επεξεργαστές με 4 ή περισσότερους πυρήνες. Ασφαλές για τα περισσότερα παιχνίδια, αλλά μερικά είναι ασύμβατα και μπορεί να κολλήσουν. Sets the VSync queue size to 0, making every frame be completed and presented by the GS before input is polled and the next frame begins. Using this setting can reduce input lag at the cost of measurably higher CPU and GPU requirements. - Sets the VSync queue size to 0, making every frame be completed and presented by the GS before input is polled and the next frame begins. Using this setting can reduce input lag at the cost of measurably higher CPU and GPU requirements. + Ορίζει το μέγεθος ουράς VSync σε 0, κάνοντας κάθε καρέ να ολοκληρωθεί και να παρουσιαστεί από το GS πριν από την απόκριση εισαγωγής χειρηστηρίου και αρχίσει το επόμενο καρέ. Χρησιμοποιώντας αυτή τη ρύθμιση μπορεί να μειώσει την καθυστέρηση εισόδου με κόστος μετρήσιμα υψηλότερες απαιτήσεις επεξεργαστή και κάρτας γραφικών. @@ -3637,125 +3970,120 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] - Use Global Setting [%1%] + Χρήση Γενικής Ρύθμισης [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. - Unlimited + Απεριόριστη - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. - Custom + Προσαρμοσμένη - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] + Προσαρμοσμένη [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed - Custom Speed + Προσαρμοσμένη ταχύτητα - + Enter Custom Speed - Enter Custom Speed + Εισαγωγή Προσαρμοσμένης Ταχύτητας FolderSettingsWidget - + Cache Directory - Cache Directory + Φάκελος προσωρινή μνήμης - - - - - + + + + + Browse... - Browse... + Περιήγηση... - - - - - + + + + + Open... - Open... + Άνοιγμα... - - - - - + + + + + Reset - Reset + Επαναφορά - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory - Covers Directory + Κατάλογος Εξώφυλλων - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory - Snapshots Directory + Κατάλογος Στιγμιότυπων - + Used for screenshots and saving GS dumps. - Used for screenshots and saving GS dumps. + Χρησιμοποιείται για στιγμιότυπα οθόνης και αποθήκευση εξαγωγών GS. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3763,2082 +4091,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. + Δεν βρέθηκαν συσκευές CD/DVD-ROM. Παρακαλώ βεβαιωθείτε ότι έχετε συνδεδεμένη μονάδα δίσκου και επαρκή δικαιώματα πρόσβασης σε αυτήν. - + Use Global Setting - Use Global Setting + Χρήση Γενικής Ρύθμισης - + Automatic binding failed, no devices are available. - Automatic binding failed, no devices are available. + Η αυτόματη σύνδεση απέτυχε, δεν υπάρχουν διαθέσιμες συσκευές. - + Game title copied to clipboard. - Game title copied to clipboard. + Ο τίτλος του παιχνιδιού αντιγράφηκε στο πρόχειρο. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. - Game type copied to clipboard. + Ο τύπος παιχνιδιού αντιγράφηκε στο πρόχειρο. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. - Game path copied to clipboard. + Η διαδρομή παιχνιδιού αντιγράφηκε στο πρόχειρο. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. - No input profiles available. + Δεν υπάρχουν διαθέσιμα προφίλ εισόδου. - + Create New... - Create New... + Δημιουργία Νέου... - + Enter the name of the input profile you wish to create. - Enter the name of the input profile you wish to create. + Εισάγετε το όνομα του προφίλ εισόδου που θέλετε να δημιουργήσετε. - + Are you sure you want to restore the default settings? Any preferences will be lost. - Are you sure you want to restore the default settings? Any preferences will be lost. + Είστε βέβαιοι ότι θέλετε να επαναφέρετε τις προεπιλεγμένες ρυθμίσεις? Οποιεσδήποτε προτιμήσεις θα χαθούν. - + Settings reset to defaults. - Settings reset to defaults. + Οι ρυθμίσεις επαναφέρθηκαν στις προεπιλογές. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. - Failed to copy text to clipboard. + Η αντιγραφή στο πρόχειρο απέτυχε. - + This game has no achievements. - This game has no achievements. + Αυτό το παιχνίδι δεν έχει επιτεύγματα. - + This game has no leaderboards. - This game has no leaderboards. + Αυτό το παιχνίδι δεν έχει πίνακες κατάταξης. - + Reset System - Reset System + Επανεκκίνηση Συστήματος - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? + Η λειτουργία Hardcore δεν θα ενεργοποιηθεί μέχρι να γίνει επανεκκίνηση του συστήματος. Θέλετε να επανεκκινήσετε το σύστημα τώρα; - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. - Start the console without any disc inserted. + Ξεκινήστε την κονσόλα χωρίς εισαγωγή δίσκου. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. - Exits the program. + Τερματίζει το πρόγραμμα. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown - Unknown + Άγνωστο - + OK - OK + ΟΚ - + Select Device - Select Device + Επιλογή Συσκευής - + Details - Details + Λεπτομέρειες - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. - Clears all settings set for this game. + Καθαρίζει όλες τις ρυθμίσεις που έχουν οριστεί για αυτό το παιχνίδι. - + Behaviour - Behaviour + Συμπεριφορά - + Prevents the screen saver from activating and the host from sleeping while emulation is running. - Prevents the screen saver from activating and the host from sleeping while emulation is running. + Αποτρέπει την ενεργοποίηση της προφύλαξης οθόνης και τον υπολογιστή να τεθεί σε αναστολή κατά την λειτουργία εξομοίωσης. - + Shows the game you are currently playing as part of your profile on Discord. - Shows the game you are currently playing as part of your profile on Discord. + Εμφανίζει το παιχνίδι που παίζετε αυτή τη στιγμή στο προφίλ σας στο Discord. - + Pauses the emulator when a game is started. - Pauses the emulator when a game is started. + Παύση του εξομοιωτή κατά την εκκίνηση του παιχνιδιού. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. + Παύση του εξομοιωτή όταν ελαχιστοποιείτε το παράθυρο ή μεταβείτε σε άλλη εφαρμογή και συνέχιση κατά την επαναφορά του παραθύρου. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. - Pauses the emulator when you open the quick menu, and unpauses when you close it. + Παύση του εξομοιωτή όταν ανοίγετε το γρήγορο μενού και συνέχιση όταν το κλείσετε. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. + Καθορίζει αν θα εμφανίζεται μια ερώτηση που θα επιβεβαιώνει το κλείσιμο του εξομοιωτή/ παιχνιδιού όταν πατηθεί η συντόμευση πληκτρολογίου. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. + Αποθηκεύει αυτόματα την κατάσταση εξομοιωτή κατά την ενεργοποίηση ή την έξοδο. Μπορείτε στη συνέχεια να συνεχίσετε απευθείας από εκεί που σταματήσατε την επόμενη φορά. - + Uses a light coloured theme instead of the default dark theme. - Uses a light coloured theme instead of the default dark theme. + Χρησιμοποιεί ένα ανοιχτόχρωμο θέμα αντί για το προεπιλεγμένο σκούρο θέμα. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - Hides the mouse pointer/cursor when the emulator is in fullscreen mode. + Κρύβει το δείκτη του ποντικιού/δρομέα όταν ο εξομοιωτής είναι σε λειτουργία πλήρους οθόνης. - + Determines how large the on-screen messages and monitor are. - Determines how large the on-screen messages and monitor are. + Καθορίζει πόσο μεγάλα είναι τα μηνύματα και οι πληροφορίες στην οθόνη. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. - Shows the current controller state of the system in the bottom-left corner of the display. + Εμφανίζει την τρέχουσα κατάσταση του χειριστηρίου στην κάτω αριστερή γωνία της οθόνης. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. - Displays warnings when settings are enabled which may break games. + Εμφανίζει προειδοποιήσεις όταν είναι ενεργοποιημένες ρυθμίσεις μπορούν να σπάσουν παιχνίδια. - + Resets configuration to defaults (excluding controller settings). - Resets configuration to defaults (excluding controller settings). + Επαναφέρει τις ρύθμισης παραμέτρων στις προεπιλογές (εκτός των ρυθμίσεων χειριστηρίου). - + Changes the BIOS image used to start future sessions. - Changes the BIOS image used to start future sessions. + Αλλάζει την εικόνα BIOS που χρησιμοποιείται για την έναρξη μελλοντικών συνεδριών. - + Automatic - Automatic + Αυτόματο + + + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Προεπιλογή + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. - + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration - BIOS Configuration + Ρυθμίσεις BIOS - + BIOS Selection - BIOS Selection + Επιλογή BIOS - + Options and Patches - Options and Patches + Επιλογές και διορθώσεις - + Skips the intro screen, and bypasses region checks. - Skips the intro screen, and bypasses region checks. + Παραλείπει την εισαγωγική οθόνη και παρακάμπτει τους ελέγχους γεωγραφικής περιοχής. - + Speed Control - Speed Control + Έλεγχος Tαχύτητας - + Normal Speed - Normal Speed + Κανονική Ταχύτητα - + Sets the speed when running without fast forwarding. - Sets the speed when running without fast forwarding. + Ορίζει την ταχύτητα όταν εκτελείται χωρίς γρήγορη προώθηση. - + Fast Forward Speed - Fast Forward Speed + Ταχύτητα Γρήγορης Προώθησης - + Sets the speed when using the fast forward hotkey. - Sets the speed when using the fast forward hotkey. + Ορίζει την ταχύτητα όταν χρησιμοποιείτε την συντόμευση γρήγορης προώθησης. - + Slow Motion Speed - Slow Motion Speed + Ταχύτητα Αργής Κίνησης - + Sets the speed when using the slow motion hotkey. - Sets the speed when using the slow motion hotkey. + Ορίζει την ταχύτητα όταν χρησιμοποιείτε την συντόμευση αργής κίνησης. - + Enable Speed Limiter - Enable Speed Limiter + Ενεργοποίηση Περιορισμού Ταχύτητας - + When disabled, the game will run as fast as possible. - When disabled, the game will run as fast as possible. + Όταν απενεργοποιηθεί, το παιχνίδι θα εκτελεστεί όσο το δυνατόν γρηγορότερα. - + System Settings - System Settings + Ρυθμίσεις Συστήματος - + EE Cycle Rate - EE Cycle Rate + Ρυθμός Κύκλων EE - + Underclocks or overclocks the emulated Emotion Engine CPU. - Underclocks or overclocks the emulated Emotion Engine CPU. + Υποχρονισμός ή υπερχρονισμός του προσομοιωμένου Emotion Engine. - + EE Cycle Skipping - EE Cycle Skipping - - - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. + Παράκαμψη Κύκλων EE - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats - Enable Cheats + Ενεργοποίηση Cheats - + Enables loading cheats from pnach files. - Enables loading cheats from pnach files. + Επιτρέπει τη φόρτωση cheats από αρχεία pnach. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD - Enable Fast CDVD + Ενεργοποίηση Γρήγορου CDVD - + Fast disc access, less loading times. Not recommended. - Fast disc access, less loading times. Not recommended. + Γρήγορη πρόσβαση στο δίσκο, λιγότεροι χρόνοι φόρτωσης. Δεν συνιστάται. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display - Display + Οθόνη - + Aspect Ratio - Aspect Ratio + Αναλογία Διαστάσεων - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size - Screenshot Size + Μέγεθος Στιγμιότυπου Οθόνης - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format - Screenshot Format + Μορφή Στιγμιότυπου Οθόνης - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality - Screenshot Quality + Ποιότητα Στιγμιότυπου Οθόνης - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop - Crop + Περικοπή - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling - Integer Upscaling + Ακέραια Ανακλιμάκωση - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur - Anti-Blur + Αντιθόλωμα - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. + Επιτρέπει τα hack αντιθολώματος. Λιγότερο ακριβής απόδοση απεικόνισης PS2, αλλά θα κάνει πολλά παιχνίδια να φαίνονται λιγότερο θολά. - + Rendering Rendering - + Internal Resolution - Internal Resolution + Εσωτερική Ανάλυση - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering - Bilinear Filtering + Διγραμμικό Φιλτράρισμα - + Selects where bilinear filtering is utilized when rendering textures. - Selects where bilinear filtering is utilized when rendering textures. + Επιλέγει όπου χρησιμοποιείται το διγραμμικό φιλτράρισμα κατά την απόδοση υφών. - + Trilinear Filtering - Trilinear Filtering + Τριγραμμικό Φιλτράρισμα - + Selects where trilinear filtering is utilized when rendering textures. - Selects where trilinear filtering is utilized when rendering textures. + Επιλέγει όπου χρησιμοποιείται το τριγραμμικό φιλτράρισμα κατά την απόδοση υφών. - + Anisotropic Filtering - Anisotropic Filtering - - - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. + Ανισοτροπικό φιλτράρισμα - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading - Texture Preloading + Προφόρτωση Υφών - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. + Φορτώνει όλες τις υφές στην κάρτα γραφικών κατά τη χρήση, αντί μόνο των περιοχών που χρησιμοποιούνται. Μπορεί να βελτιώσει την απόδοση σε ορισμένα παιχνίδια. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) - Edge AA (AA1) + Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). - Enables emulation of the GS's edge anti-aliasing (AA1). + Ενεργοποιεί την εξομοίωση της εξομάλυνσης Edge AA (AA1) του GS. - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes - Hardware Fixes + Διορθώσεις Υλικού - + Manual Hardware Fixes - Manual Hardware Fixes + Χειροκίνητες Διορθώσεις Υλικού - + Disables automatic hardware fixes, allowing you to set fixes manually. - Disables automatic hardware fixes, allowing you to set fixes manually. + Απενεργοποιεί τις αυτόματες διορθώσεις υλικού, επιτρέποντάς σας να ορίσετε διορθώσεις χειροκίνητα. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. - Adjusts vertices relative to upscaling. + Ρυθμίζει τις κορυφές σε σχέση με την κλιμάκωση. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack - Wild Arms Hack + Hack για το Wild Arms - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. + Μειώνει την ακρίβεια του GS για την αποφυγή κενών μεταξύ εικονοστοιχείων κατά την αναβάθμιση. Διορθώνει το κείμενο στους τίτλους Wild Arms. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement - Texture Replacement + Αντικατάσταση Υφών - + Load Textures - Load Textures + Φόρτωση Υφών - + Loads replacement textures where available and user-provided. - Loads replacement textures where available and user-provided. + Αντικαθιστά υφές όπου είναι διαθέσιμες και ο παρέχονται από τον χρήστη. - + Asynchronous Texture Loading - Asynchronous Texture Loading + Ασύγχρονη Φόρτωση Υφών - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Φορτώνει τις υφές αντικατάστασης σε ένα νήμα εργασιών, μειώνοντας τα μικροκολλήματα όταν είναι ενεργοποιημένη η αντικατάσταση υφών. - + Precache Replacements - Precache Replacements + Προφόρτωση Υφών Αντικατάστασης - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. - Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Προφορτώνει όλες τις υφές αντικατάστασης στη μνήμη. Δεν είναι απαραίτητο με την ασύγχρονη φόρτωση. - + Replacements Directory - Replacements Directory + Φάκελος Υφών Αντικαταστάσης - + Folders - Folders + Φάκελοι - + Texture Dumping - Texture Dumping + Εξαγωγή Υφών - + Dump Textures - Dump Textures + Εξαγωγή Υφών - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing - Post-Processing + Μετα-επεξεργασία - + FXAA - FXAA + FXAA - + Enables FXAA post-processing shader. - Enables FXAA post-processing shader. + Ενεργοποιεί τη μετα-επεξεργασία FXAA. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters - Filters + Φίλτρα - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings - Timestretch Settings + Ρυθμίσεις Χρονοεπέκτασης - + Affects how the timestretcher operates when not running at 100% speed. - Affects how the timestretcher operates when not running at 100% speed. + Επηρεάζει τον τρόπο λειτουργίας χρονοεπέκτασης όταν δεν εκτελείται με ταχύτητα 100%. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. - Creates a new memory card file or folder. + Δημιουργεί ένα νέο αρχείο ή φάκελο καρτών μνήμης. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging - Logging + Καταγραφή - + System Console - System Console + Κονσόλα Συστήματος - + Writes log messages to the system console (console window/standard output). - Writes log messages to the system console (console window/standard output). + Γράφει μηνύματα καταγραφής στην κονσόλα συστήματος (παράθυρο κονσόλας/τυπική έξοδο). - + File Logging - File Logging + Καταγραφή Αρχείων - + Writes log messages to emulog.txt. - Writes log messages to emulog.txt. + Γράφει μηνύματα καταγραφής στο emulog.txt. - + Verbose Logging - Verbose Logging + Λεπτομερής καταγραφή - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps - Log Timestamps + Καταγραφή Χρονοσημάνσεων - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics - Graphics + Γραφικά - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings - Settings + Ρυθμίσεις - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Φόρτωση κατάστασης + + + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Full VU0 Synchronization - Full VU0 Synchronization + + Disable Depth Emulation + Disable Depth Emulation - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable Render Fixes + Disable Render Fixes - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Preload Frame Data + Preload Frame Data - - VU Overflow Hack - VU Overflow Hack + + Texture Inside RT + Texture Inside RT - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - VU XGkick Sync - VU XGkick Sync + + Half Pixel Offset + Half Pixel Offset - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Texture Offset X + Texture Offset X - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset Y + Texture Offset Y - - Quadraphonic - Quadraphonic + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. - - Load State - Load State + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5847,2221 +6195,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: - Region: + Περιοχή: - + Compatibility: - Compatibility: + Συμβατότητα: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - - Download Covers - Download Covers - - - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - - About PCSX2 - About PCSX2 - - - - PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - - - - PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name + + Download Covers + Download Covers - - Time - Time + + About PCSX2 + Σχετικά Με Pcx2 - - Score - Score + + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... + + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. + Τα σήματα PlayStation 2 και PS2 είναι καταχωρημένα στην Sony Interactive Entertainment. Αυτή η εφαρμογή δεν συνδέεται με κανέναν τρόπο με την Sony Interactive Entertainment. - + When enabled and logged in, PCSX2 will scan for achievements on startup. - When enabled and logged in, PCSX2 will scan for achievements on startup. - - - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. + Όταν είναι ενεργοποιημένο και συνδεδεμένο, το PCSX2 θα σαρώνει για επιτεύγματα κατά την εκκίνηση. - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Displays popup messages on events such as achievement unlocks and leaderboard submissions. + Εμφανίζει αναδυόμενα μηνύματα σε γεγονότα, όπως ξεκλείδωμα επιτευγμάτων και υποβολές πίνακα κατάταξης. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Plays sound effects for events such as achievement unlocks and leaderboard submissions. + Παίζει ηχητικά εφέ για γεγονότα όπως το ξεκλείδωμα επιτευγμάτων και υποβολές στους πίνακες κατάταξης. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + Εμφανίζει εικονίδια στην κάτω δεξιά γωνία της οθόνης όταν μια πρόκληση είναι ενεργή. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + Όταν ενεργοποιηθεί, κάθε συνεδρία θα συμπεριφέρεται σαν να μην έχει ξεκλειδωθεί κανένα επίτευγμα. + + + Account - Account + Λογαριασμός - + Logs out of RetroAchievements. - Logs out of RetroAchievements. + Αποσύνδεση από RetroAchievements. - + Logs in to RetroAchievements. - Logs in to RetroAchievements. + Σύνδεση στο RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} - Saved {} + Αποθηκεύτηκε {} - + {} does not exist. {} does not exist. - + {} deleted. - {} deleted. + {} διαγράφηκε. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] - 2% [1 FPS (NTSC) / 1 FPS (PAL)] + 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - 10% [6 FPS (NTSC) / 5 FPS (PAL)] + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - 25% [15 FPS (NTSC) / 12 FPS (PAL)] + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - 50% [30 FPS (NTSC) / 25 FPS (PAL)] + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - 75% [45 FPS (NTSC) / 37 FPS (PAL)] + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - 90% [54 FPS (NTSC) / 45 FPS (PAL)] + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - 100% [60 FPS (NTSC) / 50 FPS (PAL)] + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - 110% [66 FPS (NTSC) / 55 FPS (PAL)] + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - 120% [72 FPS (NTSC) / 60 FPS (PAL)] + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - 150% [90 FPS (NTSC) / 75 FPS (PAL)] + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - 175% [105 FPS (NTSC) / 87 FPS (PAL)] + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - 200% [120 FPS (NTSC) / 100 FPS (PAL)] + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - 300% [180 FPS (NTSC) / 150 FPS (PAL)] + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - 400% [240 FPS (NTSC) / 200 FPS (PAL)] + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - 500% [300 FPS (NTSC) / 250 FPS (PAL)] + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - 1000% [600 FPS (NTSC) / 500 FPS (PAL)] + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed - 50% Speed + 50% Ταχύτητα - + 60% Speed - 60% Speed + 60% Ταχύτητα - + 75% Speed - 75% Speed + 75% Ταχύτητα - + 100% Speed (Default) - 100% Speed (Default) + 100% Ταχύτητα (Προεπιλογή) - + 130% Speed - 130% Speed + 130% Ταχύτητα - + 180% Speed - 180% Speed + 180% Ταχύτητα - + 300% Speed - 300% Speed + 300% Ταχύτητα - + Normal (Default) - Normal (Default) + Κανονικό (προεπιλογή) - + Mild Underclock - Mild Underclock + Μικρός Υποχρονισμός - + Moderate Underclock - Moderate Underclock + Μέτριος Υποχρονισμός - + Maximum Underclock - Maximum Underclock + Μέγιστος Υποχρονισμός - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None - None + Καμία - + Extra + Preserve Sign - Extra + Preserve Sign + Έξτρα + Διατήρηση Πρόσημου - + Full - Full + Πλήρης - + Extra - Extra + Έξτρα - + Automatic (Default) Automatic (Default) - + Direct3D 11 - Direct3D 11 + Direct3D 11 - + Direct3D 12 - Direct3D 12 + Direct3D 12 - + OpenGL - OpenGL + OpenGL - + Vulkan - Vulkan + Vulkan - + Metal - Metal + Metal - + Software - Software + Λογισμικό - + Null - Null + Κανένα - + Off Off - + On On - + Adaptive - Adaptive + Προσαρμόσιμο - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x - 2x + 2x - + 4x - 4x + 4x - + 8x - 8x + 8x - + 16x - 16x + 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution - Screen Resolution + Ανάλυση Οθόνης + + + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Enable In-Game Overlays + Enable In-Game Overlays - + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode + + + PNG - PNG + PNG - + JPEG - JPEG + JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) - LZMA (xz) + LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) - TimeStretch (Recommended) + Χρονοεπέκταση (Προτείνεται) - + Async Mix (Breaks some games!) - Async Mix (Breaks some games!) + Ασύγχρονη Μίξη (χαλάει κάποια παιχνίδια!) - + None (Audio can skip.) - None (Audio can skip.) + Καμία (πιθανά κενά ήχου) - + Stereo (None, Default) - Stereo (None, Default) + Στερεοφωνικό (Καμία, Προεπιλογή) - + Surround 5.1 - Surround 5.1 + Surround 5.1 - + Surround 7.1 - Surround 7.1 + Surround 7.1 - + No Sound (Emulate SPU2 only) - No Sound (Emulate SPU2 only) + Χωρίς ήχο (Προσομοίωση SPU2 μόνο) - + Cubeb (Cross-platform) - Cubeb (Cross-platform) + Cubeb (διαπλατφορμικό) - + XAudio2 - XAudio2 + XAudio2 - + PS2 (8MB) - PS2 (8MB) + PS2 (8MB) - + PS2 (16MB) - PS2 (16MB) + PS2 (16MB) - + PS2 (32MB) - PS2 (32MB) + PS2 (32MB) - + PS2 (64MB) - PS2 (64MB) + PS2 (64MB) - + PS1 - PS1 + PS1 - + 8 MB [Most Compatible] - 8 MB [Most Compatible] + 8 MB [Συμβατότερο] - + 16 MB - 16 MB + 16 MB - + 32 MB - 32 MB + 32 MB - + 64 MB - 64 MB + 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] - 128 KB [PS1] + 128 KB [PS1] + + + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) - + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC - CRC + CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot - Fast Boot + Γρήγορη φόρτωση - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency - Latency + Καθυστέρηση - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings - {} Settings + {} Ρυθμίσεις - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards - Leaderboards + Πίνακες κατάταξης - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website - Website + Ιστοσελίδα - + Support Forums - Support Forums + Φόρουμ υποστήριξης - + GitHub Repository - GitHub Repository + Αποθετήριο GitHub - + License - License + Άδεια Χρήσης - + Close - Close + Κλείσιμο - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements - Enable Achievements - - - - Rich Presence - Rich Presence + Ενεργοποίηση Επιτευγμάτων - + Hardcore Mode - Hardcore Mode - - - - Show Notifications - Show Notifications + Λειτουργία Hardcore - + Sound Effects - Sound Effects + Ηχητικά εφέ - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} - Username: {} + Όνομα Χρήστη: {} - + Login token generated on {} Login token generated on {} - + Logout - Logout + Αποσύνδεση - + Not Logged In - Not Logged In + Δεν είστε συνδεδεμένοι - + Login - Login - - - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} + Σύνδεση - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Παιχνίδι: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8074,7 +8323,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8129,12 +8378,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8154,27 +8403,27 @@ ${serial}: Serial of the game. Name - Name + Όνομα Author - Author + Δημιουργός Description - Description + Περιγραφή Enable All - Enable All + Ενεργοποίηση Όλων Disable All - Disable All + Απενεργοποίηση Όλων @@ -8190,7 +8439,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8201,266 +8450,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today - Today + Σήμερα - + Yesterday - Yesterday + Χθές - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8468,74 +8859,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games - Scan For New Games + Σάρωση Για Νέα Παιχνίδια - + Rescan All Games - Rescan All Games + Επανασάρωση Όλων Των Παιχνιδιών + + + + Display + Display + + + + + Prefer English Titles + Prefer English Titles - + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8544,12 +8961,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8557,32 +8974,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8608,17 +9025,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8636,7 +9053,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8655,399 +9072,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: - Region: + Περιοχή: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. - NTSC-B (Brazil) + NTSC-B (Βραζιλία) - + NTSC-C (China) Leave the code as-is, translate the country's name. - NTSC-C (China) + NTSC-C (Κίνα) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. - NTSC-HK (Hong Kong) + NTSC-HK (Χονγκ Κονγκ) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. - NTSC-J (Japan) + NTSC-J (Ιαπωνία) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. - NTSC-K (Korea) + NTSC-K (Κορέα) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. - NTSC-U (US) + NTSC-U (ΗΠΑ) - + Other - Other + Άλλο - + PAL-A (Australia) Leave the code as-is, translate the country's name. - PAL-A (Australia) + PAL-A (Αυστραλία) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. - PAL-AF (South Africa) + PAL-AF (Νότια Αφρική) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. - PAL-BE (Belgium) + PAL-BE (Βέλγιο) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. - PAL-E (Europe/Australia) + PAL-E (Ευρώπη/Αυστραλία) - + PAL-F (France) Leave the code as-is, translate the country's name. - PAL-F (France) + PAL-F (Γαλλία) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. - PAL-FI (Finland) + PAL-FI (Φινλανδία) - + PAL-G (Germany) Leave the code as-is, translate the country's name. - PAL-G (Germany) + PAL-G (Γερμανία) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. - PAL-GR (Greece) + PAL-GR (Ελλάδα) - + PAL-I (Italy) Leave the code as-is, translate the country's name. - PAL-I (Italy) + PAL-I (Ιταλία) - + PAL-IN (India) Leave the code as-is, translate the country's name. - PAL-IN (India) + PAL-IN (Ινδία) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. - PAL-M (Europe/Australia) + PAL-M (Ευρώπη/Αυστραλία) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. - PAL-NL (Netherlands) + PAL-NL (Ολλανδία) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. - PAL-NO (Norway) + PAL-NO (Νορβηγία) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. - PAL-P (Portugal) + PAL-P (Πορτογαλία) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. - PAL-PL (Poland) + PAL-PL (Πολωνία) - + PAL-R (Russia) Leave the code as-is, translate the country's name. - PAL-R (Russia) + PAL-R (Ρωσία) - + PAL-S (Spain) Leave the code as-is, translate the country's name. - PAL-S (Spain) + PAL-S (Ισπανία) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size - Size + Μέγεθος - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error - Error + Σφάλμα - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9055,62 +9483,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9120,12 +9548,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9136,92 +9564,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9229,355 +9657,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution - Screen Resolution + Ανάλυση Οθόνης - + Internal Resolution - Internal Resolution + Εσωτερική Ανάλυση - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG - PNG + PNG - + JPEG - JPEG + JPEG - + Quality: - Quality: + Ποιότητα: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9585,79 +10018,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9668,606 +10096,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: - X: + X: - + Y: - Y: + Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA - FXAA + FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: - Resolution: + Ανάλυση: - + x - x + x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options - Advanced Options + Επιλογές για προχωρημένους - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10277,69 +10715,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: - Bitrate: + Ρυθμός μετάδοσης bit: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. - kbps + kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10348,70 +10780,70 @@ Swap chain: see Microsoft's Terminology Portal. Direct3D 11 Graphics backend/engine type. Leave as-is. - Direct3D 11 + Direct3D 11 Direct3D 12 Graphics backend/engine type. Leave as-is. - Direct3D 12 + Direct3D 12 OpenGL Graphics backend/engine type. Leave as-is. - OpenGL + OpenGL Vulkan Graphics backend/engine type. Leave as-is. - Vulkan + Vulkan Metal Graphics backend/engine type. Leave as-is. - Metal + Metal Software Graphics backend/engine type (refers to emulating the GS in software, on the CPU). Translate accordingly. - Software + Λογισμικό Null Null here means that this is a graphics backend that will show nothing. - Null + Κανένα 2x - 2x + 2x 4x - 4x + 4x 8x - 8x + 8x 16x - 16x + 16x - - + + Use Global Setting [%1] - Use Global Setting [%1] + Χρήση Γενικής Ρύθμισης [%1] @@ -10461,6 +10893,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10482,7 +10915,7 @@ Swap chain: see Microsoft's Terminology Portal. Bilinear Filtering - Bilinear Filtering + Διγραμμικό Φιλτράρισμα @@ -10520,11 +10953,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10576,6 +11019,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10591,11 +11089,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10633,7 +11126,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10692,7 +11185,7 @@ Swap chain: see Microsoft's Terminology Portal. 50% - 50% + 50% @@ -10703,7 +11196,7 @@ Swap chain: see Microsoft's Terminology Portal. 100% - 100% + 100% @@ -10722,8 +11215,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10865,11 +11358,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10907,7 +11395,7 @@ Swap chain: see Microsoft's Terminology Portal. 0 - 0 + 0 @@ -10920,11 +11408,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11042,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11082,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11135,29 +11623,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11165,407 +11663,407 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System - System + Σύστημα - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List - Open Leaderboards List + Άνοιγμα Λίστας Πινάκων Κατάταξης - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot - Save State To Selected Slot + Αποθήκευση Κατάστασης Στην Επιλεγμένη Υποδοχή - + Load State From Selected Slot - Load State From Selected Slot + Φόρτωση Κατάστασης Από Επιλεγμένη Υποδοχή - + Save State To Slot 1 - Save State To Slot 1 + Αποθήκευση Κατάστασης Στην Υποδοχή 1 - + Load State From Slot 1 - Load State From Slot 1 + Φόρτωση Κατάσταση Από Την Υποδοχή 1 - + Save State To Slot 2 - Save State To Slot 2 + Αποθήκευση Κατάστασης Στην Υποδοχή 2 - + Load State From Slot 2 - Load State From Slot 2 + Φόρτωση Κατάσταση Από Την Υποδοχή 2 - + Save State To Slot 3 - Save State To Slot 3 + Αποθήκευση Κατάστασης Στην Υποδοχή 3 - + Load State From Slot 3 - Load State From Slot 3 + Φόρτωση Κατάσταση Από Την Υποδοχή 3 - + Save State To Slot 4 - Save State To Slot 4 + Αποθήκευση Κατάστασης Στην Υποδοχή 4 - + Load State From Slot 4 - Load State From Slot 4 + Φόρτωση Κατάσταση Από Την Υποδοχή 4 - + Save State To Slot 5 - Save State To Slot 5 + Αποθήκευση Κατάστασης Στην Υποδοχή 5 - + Load State From Slot 5 - Load State From Slot 5 + Φόρτωση Κατάσταση Από Την Υποδοχή 5 - + Save State To Slot 6 - Save State To Slot 6 + Αποθήκευση Κατάστασης Στην Υποδοχή 6 - + Load State From Slot 6 - Load State From Slot 6 + Φόρτωση Κατάσταση Από Την Υποδοχή 6 - + Save State To Slot 7 - Save State To Slot 7 + Αποθήκευση Κατάστασης Στην Υποδοχή 7 - + Load State From Slot 7 - Load State From Slot 7 + Φόρτωση Κατάσταση Από Την Υποδοχή 7 - + Save State To Slot 8 - Save State To Slot 8 + Αποθήκευση Κατάστασης Στην Υποδοχή 8 - + Load State From Slot 8 - Load State From Slot 8 + Φόρτωση Κατάσταση Από Την Υποδοχή 8 - + Save State To Slot 9 - Save State To Slot 9 + Αποθήκευση Κατάστασης Στην Υποδοχή 9 - + Load State From Slot 9 - Load State From Slot 9 + Φόρτωση Κατάσταση Από Την Υποδοχή 9 - + Save State To Slot 10 - Save State To Slot 10 + Αποθήκευση Κατάστασης Στην Υποδοχή 10 - + Load State From Slot 10 - Load State From Slot 10 + Φόρτωση Κατάσταση Από Την Υποδοχή 10 @@ -11668,58 +12166,148 @@ Right click to clear binding - - - Push Button/Axis... [%1] - Push Button/Axis... [%1] + + + Push Button/Axis... [%1] + Push Button/Axis... [%1] + + + + InputRecordingViewer + + + Input Recording Viewer + Input Recording Viewer + + + + File + Αρχείο + + + + Edit + Επεξεργασία + + + + View + Προβολή + + + + Open + Άνοιγμα + + + + Close + Κλείσιμο + + + + %1 %2 + %1 %2 + + + + %1 + %1 + + + + %1 [%2] + %1 [%2] + + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 - - - InputRecordingViewer - - Input Recording Viewer - Input Recording Viewer + + R2 + R2 - - File - Αρχείο + + D-Pad Down + D-Pad Down - - Edit - Επεξεργασία + + D-Pad Right️ + D-Pad Right️ - - View - Προβολή + + D-Pad Up️ + D-Pad Up️ - - Open - Άνοιγμα + + D-Pad Left️ + D-Pad Left️ - - Close - Κλείσιμο + + L3 + L3 - - %1 %2 - %1 %2 + + R3 + R3 - - %1 - %1 + + Select + Select - - %1 [%2] - %1 [%2] + + Start + Start @@ -11748,137 +12336,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Γλώσσα: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -11972,7 +12560,7 @@ Right click to clear binding Automatically checks for updates to the program on startup. Updates can be deferred until later or skipped entirely. - Automatically checks for updates to the program on startup. Updates can be deferred until later or skipped entirely. + Αυτόματος έλεγχος για ενημερώσεις του προγράμματος κατά την εκκίνηση. Οι ενημερώσεις μπορούν να αναβληθούν μέχρι αργότερα ή να παραλειφθούν εντελώς. @@ -12008,7 +12596,7 @@ Right click to clear binding Prevents the main window from being resized. - Prevents the main window from being resized. + Αποτρέπει την αλλαγή μεγέθους του κύριου παραθύρου. @@ -12032,12 +12620,12 @@ Right click to clear binding Pauses the emulator when a game is started. - Pauses the emulator when a game is started. + Παύση του εξομοιωτή κατά την εκκίνηση του παιχνιδιού. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. + Παύση του εξομοιωτή όταν ελαχιστοποιείτε το παράθυρο ή μεταβείτε σε άλλη εφαρμογή και συνέχιση κατά την επαναφορά του παραθύρου. @@ -12071,7 +12659,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12128,14 +12716,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12252,17 +12840,17 @@ Right click to clear binding &Controllers - &Controllers + &Χειριστήρια &Hotkeys - &Hotkeys + &Πλήκτρα συντόμευσης &Graphics - &Graphics + &Γραφικά @@ -12277,7 +12865,7 @@ Right click to clear binding Fullscreen - Fullscreen + Πλήρης Οθόνη @@ -12287,7 +12875,7 @@ Right click to clear binding &GitHub Repository... - &GitHub Repository... + &Αποθετήριο GitHub... @@ -12318,7 +12906,7 @@ Right click to clear binding Fullscreen In Toolbar - Fullscreen + Πλήρης Οθόνη @@ -12344,7 +12932,7 @@ Right click to clear binding Add Game Directory... - Add Game Directory... + Προσθήκη Καταλόγου Παιχνιδιού... @@ -12354,22 +12942,22 @@ Right click to clear binding From File... - From File... + Από αρχείο... From Device... - From Device... + Από Τη Συσκευή... From Game List... - From Game List... + Από Τη Λίστα Παιχνιδιών... Remove Disc - Remove Disc + Αφαίρεση Δίσκου @@ -12397,13 +12985,13 @@ Right click to clear binding Start BIOS In Toolbar - Start BIOS + Έναρξη BIOS Shut Down In Toolbar - Shut Down + Τερματισμός λειτουργίας @@ -12421,31 +13009,31 @@ Right click to clear binding Load State In Toolbar - Load State + Φόρτωση κατάστασης Save State In Toolbar - Save State + Αποθήκευση Κατάστασης Controllers In Toolbar - Controllers + Χειριστήρια Settings In Toolbar - Settings + Ρυθμίσεις Screenshot In Toolbar - Screenshot + Στιγμιότυπο οθόνης @@ -12605,7 +13193,7 @@ Right click to clear binding Settings This section refers to the Input Recording submenu. - Settings + Ρυθμίσεις @@ -12640,13 +13228,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12658,7 +13246,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12669,7 +13257,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12684,27 +13272,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12717,168 +13305,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Σφάλμα - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12893,97 +13486,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12992,12 +13585,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13010,70 +13603,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13082,42 +13675,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13125,8 +13718,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13157,30 +13750,30 @@ The saves will not be recoverable. 8 MB File - 8 MB File + Αρχείο 8 Mb 16 MB File - 16 MB File + Αρχείο 16 Mb 32 MB File - 32 MB File + Αρχείο 32 Mb 64 MB File - 64 MB File + Αρχείο 64 Mb Folder - Folder + Φάκελος @@ -13207,6 +13800,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13257,11 +13851,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13297,7 +13886,7 @@ The saves will not be recoverable. 16 MB - 16 MB + 16 MB @@ -13308,12 +13897,12 @@ The saves will not be recoverable. 32 MB - 32 MB + 32 MB 64 MB - 64 MB + 64 MB @@ -13387,103 +13976,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Δημιουργία - + Duplicate Duplicate - + Rename Μετονομασία - + Convert Μετατροπή - + Delete Διαγραφή - + Settings Ρυθμίσεις - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13512,7 +14102,7 @@ The saves will not be recoverable. Eject Memory Card - Eject Memory Card + Εξαγωγή Κάρτας Μνήμης @@ -13524,13 +14114,13 @@ The saves will not be recoverable. Not yet implemented. - Not yet implemented. + Δεν έχει εφαρμοστεί ακόμη. Delete Memory Card - Delete Memory Card + Διαγραφή Κάρτας Μνήμης @@ -13538,22 +14128,22 @@ The saves will not be recoverable. Rename Memory Card - Rename Memory Card + Μετονομασία Κάρτας Μνήμης New Card Name - New Card Name + Νέο Όνομα Κάρτας New name is invalid, it must end with .ps2 - New name is invalid, it must end with .ps2 + Το νέο όνομα δεν είναι έγκυρο, πρέπει να τελειώνει με .ps2 New name is invalid, a card with this name already exists. - New name is invalid, a card with this name already exists. + Νέο όνομα δεν είναι έγκυρο, μια κάρτα με αυτό το όνομα υπάρχει ήδη. @@ -13563,7 +14153,7 @@ The saves will not be recoverable. This Memory Card is unknown. - This Memory Card is unknown. + Αυτή η κάρτα μνήμης είναι άγνωστη. @@ -13653,60 +14243,60 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address - Go to address + Μεταβείτε στη διεύθυνση - + Show as 1 byte - Show as 1 byte + Εμφάνιση ως 1 byte - + Show as 2 bytes - Show as 2 bytes + Εμφάνιση ως 2 byte - + Show as 4 bytes - Show as 4 bytes + Εμφάνιση ως 4 byte - + Show as 8 bytes - Show as 8 bytes + Εμφάνιση ως 8 byte - + Copy Byte - Copy Byte + Αντιγραφή Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste - Paste + Επικόλληση @@ -13754,10 +14344,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13953,6 +14548,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13969,14 +14574,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14016,59 +14621,52 @@ This action cannot be reversed, and you will lose any saves on the card. Not Connected - Not Connected + Μη συνδεδεμένο DualShock 2 - DualShock 2 - - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. + DualShock 2 Strum Up - Strum Up + Γραντζούνισμα προς-τα-πάνω Strum Down - Strum Down + Γραντζούνισμα προς-τα-κάτω Green Fret - Green Fret + Πράσινο Δαχτυλοθεσίο Red Fret - Red Fret + Κόκκινο Δαχτυλοθεσίο Yellow Fret - Yellow Fret + Κίτρινο Δαχτυλοθεσίο Blue Fret - Blue Fret + Μπλε Δαχτυλοθεσίο Orange Fret - Orange Fret + Πορτοκαλί Δαχτυλοθεσίο Whammy Bar - Whammy Bar + Μπάρα Whammy/Τρέμολο @@ -14098,48 +14696,71 @@ Leaving the original controller type connected, but this may cause issues. Guitar - Guitar + Κιθάρα + + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject Failed to open URL - Failed to open URL + Απέτυχε το άνοιγμα της διεύθυνσης URL @@ -14151,13 +14772,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14279,7 +14900,7 @@ The URL was: %1 Change Value - Change Value + Αλλαγή Τιμής @@ -14330,18 +14951,18 @@ The URL was: %1 Cubeb (Cross-platform) Cubeb is an audio engine name. Leave as-is. - Cubeb (Cross-platform) + Cubeb (διαπλατφορμικό) No Sound (Emulate SPU2 only) - No Sound (Emulate SPU2 only) + Χωρίς ήχο (Προσομοίωση SPU2 μόνο) XAudio2 XAudio2 is an audio engine name. Leave as-is. - XAudio2 + XAudio2 @@ -14362,23 +14983,22 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - Reset - Reset + Επαναφορά Default: - Default: + Προεπιλογή: Confirm Folder - Confirm Folder + Επιβεβαίωση Φακέλου @@ -14387,247 +15007,268 @@ Otherwise delete the savestate and do a fresh boot. %1 Do you want to create this directory? - The chosen directory does not currently exist: + Ο επιλεγμένος φάκελος δεν υπάρχει: %1 -Do you want to create this directory? +Θέλετε να δημιουργήσετε αυτόν τον φάκελο; Error - Error + Σφάλμα Folder path cannot be empty. - Folder path cannot be empty. + Η διαδρομή του φακέλου δεν μπορεί να είναι κενή. Select folder for %1 - Select folder for %1 + Επιλογή φακέλου για %1 SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Χρήση Γενικής Ρύθμισης [Ενεργή] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Χρήση Γενικής Ρύθμισης [Ανενεργή] + + + + + Use Global Setting [%1] + Χρήση Γενικής Ρύθμισης [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS - BIOS + BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes - Game Fixes + Διορθώσεις Παιχνιδιών - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics - Graphics + Γραφικά - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio - Audio + Ήχος - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards - Memory Cards + Κάρτες Μνήμης - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD - Network & HDD + Δίκτυο & Σκληρός Δίσκος - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders - Folders + Φάκελοι - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements - Achievements + Επιτεύγματα - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14640,12 +15281,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14658,65 +15299,47 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog PCSX2 Setup Wizard - PCSX2 Setup Wizard + Οδηγός Εγκατάστασης PCSX2 Language - Language + Γλώσσα BIOS Image - BIOS Image + Εικόνα BIOS Game Directories - Game Directories + Τοποθεσίες παιχνιδιών Controller Setup - Controller Setup + Ρύθμιση Χειριστηρίου Complete - Complete + Ολοκληρώθηκε @@ -14726,17 +15349,17 @@ Do you want to continue? Language: - Language: + Γλώσσα: Theme: - Theme: + Θέμα: Enable Automatic Updates - Enable Automatic Updates + Ενεργοποίηση Αυτόματων Ενημερώσεων @@ -14746,37 +15369,37 @@ Do you want to continue? BIOS Directory: - BIOS Directory: + Φάκελος BIOS: Browse... - Browse... + Περιήγηση... Reset - Reset + Επαναφορά Filename - Filename + Όνομα αρχείου Version - Version + Έκδοση - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... Refresh List - Refresh List + Ανανέωση Λίστας @@ -14786,18 +15409,18 @@ Do you want to continue? Search Directories (will be scanned for games) - Search Directories (will be scanned for games) + Φάκελοι αναζήτησης (θα σαρωθούν για παιχνίδια) Add... - Add... + Προσθήκη... Remove - Remove + Αφαίρεση @@ -14898,26 +15521,26 @@ Are you sure you want to continue? Cancel Setup - Cancel Setup + Ακύρωση Ρύθμισης Are you sure you want to cancel PCSX2 setup? Any changes have been saved, and the wizard will run again next time you start PCSX2. - Are you sure you want to cancel PCSX2 setup? + Είστε βέβαιοι ότι θέλετε να ακυρώσετε την εγκατάσταση PCSX2? -Any changes have been saved, and the wizard will run again next time you start PCSX2. +Οποιεσδήποτε αλλαγές έχουν αποθηκευτεί, και ο οδηγός θα τρέξει ξανά την επόμενη φορά που θα ξεκινήσετε το PCSX2. Open Directory... - Open Directory... + Άνοιγμα Φακέλου... Select Search Directory - Select Search Directory + Επιλογή Φακέλου Αναζήτησης @@ -15038,97 +15661,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15144,37 +15767,37 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sony EyeToy - Sony EyeToy + Sony EyeToy Konami Capture Eye - Konami Capture Eye + Konami Capture Eye Device Name - Device Name + Όνομα Συσκευής Selects the device to capture images from. - Selects the device to capture images from. + Επιλέγει τη συσκευή από την οποία θα καταγράφονται οι εικόνες. HID Keyboard - HID Keyboard + Πληκτρολόγιο HID Keyboard - Keyboard + Πληκτρολόγιο HID Mouse - HID Mouse + Ποντίκι HID @@ -15199,12 +15822,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Konami Keyboard - Konami Keyboard + Πληκτρολόγιο Konami GunCon 2 - GunCon 2 + GunCon 2 @@ -15213,7 +15836,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Up - D-Pad Up + Σταυρός Κατεύθυνσης Επάνω @@ -15222,7 +15845,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Down - D-Pad Down + Σταυρός Κατεύθυνσης Κάτω @@ -15231,7 +15854,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Left - D-Pad Left + Σταυρός Κατεύθυνσης Αριστερά @@ -15240,7 +15863,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Right - D-Pad Right + Σταυρός Κατεύθυνσης Δεξιά @@ -15262,20 +15885,20 @@ Scanning recursively takes more time, but will identify files in subdirectories. A - A + A B - B + B C - C + C @@ -15286,7 +15909,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Select - Select + Select @@ -15297,7 +15920,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Start - Start + Start @@ -15334,6 +15957,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15365,6 +15993,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15380,6 +16014,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15400,6 +16040,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15413,31 +16059,31 @@ Scanning recursively takes more time, but will identify files in subdirectories. Logitech USB Headset - Logitech USB Headset + Ακουστικά USB Logitech Input Device - Input Device + Συσκευή Εισόδου Selects the device to read audio from. - Selects the device to read audio from. + Επιλέγει τη συσκευή από την οποία θα εισάγει ήχο. Output Device - Output Device + Συσκευή Εξόδου Selects the device to output audio to. - Selects the device to output audio to. + Επιλέγει τη συσκευή στην οποία θα εξάγει ήχο. @@ -15445,7 +16091,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Input Latency - Input Latency + Καθυστέρηση Εισόδου @@ -15453,67 +16099,76 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. - Specifies the latency to the host input device. + Καθορίζει την καθυστέρηση στη συσκευή εισόδου. + + + + + + + + %dms + %dms Output Latency - Output Latency + Καθυστέρηση Εξόδου Specifies the latency to the host output device. - Specifies the latency to the host output device. + Καθορίζει την καθυστέρηση στη συσκευή εξόδου. USB-Mic: Neither player 1 nor 2 is connected. - USB-Mic: Neither player 1 nor 2 is connected. + Μικρόφωνο USB: Ούτε ο παίκτης 1 ούτε ο παίκτης 2 είναι συνδεδεμένος. USB-Mic: Failed to start player {} audio stream. - USB-Mic: Failed to start player {} audio stream. + Μικρόφωνο USB: Αποτυχία έναρξης ροής ήχου του παίκτη {}. Singstar - Singstar + Singstar Player 1 Device - Player 1 Device + Συσκευή Παίκτη 1 Selects the input for the first player. - Selects the input for the first player. + Επιλέγει την είσοδο για τον πρώτο παίκτη. Player 2 Device - Player 2 Device + Συσκευή Παίκτη 2 Selects the input for the second player. - Selects the input for the second player. + Επιλέγει την είσοδο για το δεύτερο παίκτη. Logitech USB Mic - Logitech USB Mic + USB Μικρόφωνο Logitech usb-msd: Could not open image file '{}' - usb-msd: Could not open image file '{}' + usb- msd: Αδυναμία ανοίγματος αρχείου εικόνας '{}' Mass Storage Device - Mass Storage Device + Συσκευή μαζικής αποθήκευσης @@ -15535,14 +16190,14 @@ Scanning recursively takes more time, but will identify files in subdirectories. Steering Left - Steering Left + Τιμόνι Αριστερά Steering Right - Steering Right + Τιμόνι Δεξιά @@ -15556,56 +16211,56 @@ Scanning recursively takes more time, but will identify files in subdirectories. Brake - Brake + Φρένο Cross - Cross + Σταυρός Square - Square + Τετράγωνο Circle - Circle + Κύκλος Triangle - Triangle + Τρίγωνο L1 - L1 + L1 R1 - R1 + R1 L2 - L2 + L2 R2 - R2 + R2 @@ -15626,12 +16281,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. L3 - L3 + L3 R3 - R3 + R3 @@ -15647,13 +16302,33 @@ Scanning recursively takes more time, but will identify files in subdirectories. X - X + X Y - Y + Y + + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High @@ -15665,6 +16340,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -15708,12 +16389,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. GT Force - GT Force + GT Force Rock Band Drum Kit - Rock Band Drum Kit + Ντραμς Rock Band @@ -15743,232 +16424,232 @@ Scanning recursively takes more time, but will identify files in subdirectories. Buzz Controller - Buzz Controller + Χειριστήριο Buzz Player 1 Red - Player 1 Red + Παίκτης 1 Κόκκινο Player 1 Blue - Player 1 Blue + Παίκτης 1 Μπλε Player 1 Orange - Player 1 Orange + Παίκτης 1 Πορτοκαλί Player 1 Green - Player 1 Green + Παίκτης 1 Πράσινο Player 1 Yellow - Player 1 Yellow + Παίκτης 1 Κίτρινο Player 2 Red - Player 2 Red + Παίκτης 2 Κόκκινο Player 2 Blue - Player 2 Blue + Παίκτης 2 Μπλε Player 2 Orange - Player 2 Orange + Παίκτης 2 Πορτοκαλί Player 2 Green - Player 2 Green + Παίκτης 2 Πράσινο Player 2 Yellow - Player 2 Yellow + Παίκτης 2 Κίτρινο Player 3 Red - Player 3 Red + Παίκτης 3 Κόκκινο Player 3 Blue - Player 3 Blue + Παίκτης 3 Μπλε Player 3 Orange - Player 3 Orange + Παίκτης 3 Πορτοκαλί Player 3 Green - Player 3 Green + Παίκτης 3 Πράσινο Player 3 Yellow - Player 3 Yellow + Παίκτης 3 Κίτρινο Player 4 Red - Player 4 Red + Παίκτης 4 Κόκκινο Player 4 Blue - Player 4 Blue + Παίκτης 4 Μπλε Player 4 Orange - Player 4 Orange + Παίκτης 4 Πορτοκαλί Player 4 Green - Player 4 Green + Παίκτης 4 Πράσινο Player 4 Yellow - Player 4 Yellow + Παίκτης 4 Κίτρινο KeyboardMania - KeyboardMania + KeyboardMania C 1 - C 1 + Ντο 1 C# 1 - C# 1 + Ντο# 1 D 1 - D 1 + Ρε 1 D# 1 - D# 1 + Ρε# 1 E 1 - E 1 + Μι 1 F 1 - F 1 + Φα 1 F# 1 - F# 1 + Φα# 1 G 1 - G 1 + Σολ 1 G# 1 - G# 1 + Σολ# 1 A 1 - A 1 + Λα 1 A# 1 - A# 1 + Λα# 1 B 1 - B 1 + Σι C 2 - C 2 + Ντο 2 C# 2 - C# 2 + Ντο# 2 D 2 - D 2 + Ρε 2 D# 2 - D# 2 + Ρε# 2 E 2 - E 2 + Μι 2 F 2 - F 2 + Φα 2 F# 2 - F# 2 + Φα# 2 G 2 - G 2 + Σολ 2 G# 2 - G# 2 + Σολ# 2 A 2 - A 2 + Λα 2 A# 2 - A# 2 + Λα# 2 B 2 - B 2 + Σι 2 @@ -15983,7 +16664,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sega Seamic - Sega Seamic + Sega Seamic @@ -16008,17 +16689,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. Z - Z + Z L - L + L R - R + R @@ -16033,7 +16714,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Printer - Printer + Εκτυπωτής @@ -16045,107 +16726,107 @@ Scanning recursively takes more time, but will identify files in subdirectories. Not Connected - Not Connected + Μη συνδεδεμένο Default Input Device - Default Input Device + Προεπιλεγμένη Συσκευή Εισόδου Default Output Device - Default Output Device + Προεπιλεγμένη Συσκευή Εξόδου DJ Hero Turntable - DJ Hero Turntable + Πικάπ DJ Hero Triangle / Euphoria - Triangle / Euphoria + Τρίγωνο / Euphoria Crossfader Left - Crossfader Left + Αριστερό Crossfader Crossfader Right - Crossfader Right + Δεξί Crossfader Left Turntable Clockwise - Left Turntable Clockwise + Αριστερό Πικάπ Δεξιόστροφα Left Turntable Counterclockwise - Left Turntable Counterclockwise + Αριστερό Πικάπ Αριστερόστροφα Right Turntable Clockwise - Right Turntable Clockwise + Δεξί Πικάπ Δεξιόστροφα Right Turntable Counterclockwise - Right Turntable Counterclockwise + Δεξί Πικάπ Δεξιόστροφα Left Turntable Green - Left Turntable Green + Αριστερό Πικάπ Πράσινο Left Turntable Red - Left Turntable Red + Αριστερό Πικάπ Κόκκινο Left Turntable Blue - Left Turntable Blue + Αριστερό Πικάπ Μπλε Right Turntable Green - Right Turntable Green + Δεξί Πικάπ Πράσινο Right Turntable Red - Right Turntable Red + Δεξί Πικάπ Κόκκινο Right Turntable Blue - Right Turntable Blue + Δεξί Πικάπ Μπλε Apply a multiplier to the turntable - Apply a multiplier to the turntable + Εφαρμογή ενός πολλαπλασιαστή στο πικάπ Effects Knob Left - Effects Knob Left + Πλήκτρο Εφέ Αριστερά Effects Knob Right - Effects Knob Right + Πλήκτρο Εφέ Δεξιά Turntable Multiplier - Turntable Multiplier + Πολλαπλασιαστής Πικάπ @@ -16153,268 +16834,268 @@ Scanning recursively takes more time, but will identify files in subdirectories. Axes - Axes + Άξονες Buttons - Buttons + Κουμπιά USBBindingWidget_DrivingForce - + Hints - Hints + Συμβουλές - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback - Force Feedback + Ανάδραση Τιμονιού - + D-Pad - D-Pad + Κατευθυντικά κουμπιά - + Down - Down + Κάτω - + Left - Left + Αριστερά - + Up - Up + Πάνω - + Right - Right + Δεξιά - + L1 - L1 + L1 - + L2 - L2 + L2 - + Brake - Brake + Φρένο - + Steering Left - Steering Left + Τιμόνι Αριστερά - + Steering Right - Steering Right + Τιμόνι Δεξιά - + Select - Select + Select - + Start - Start + Start - + Face Buttons - Face Buttons + Κουμπιά ενεργειών - + Circle - Circle + Κύκλος - + Cross - Cross + Σταυρός - + Triangle - Triangle + Τρίγωνο - + Square - Square + Τετράγωνο - + R1 - R1 + R1 - + R2 - R2 + R2 - + Accelerator - Accelerator + Γκάζι USBBindingWidget_GTForce - + Hints - Hints + Συμβουλές - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X - X + X - + A - A + A - + Brake - Brake + Φρένο - + Steering Left - Steering Left + Τιμόνι Αριστερά - + Steering Right - Steering Right + Τιμόνι Δεξιά - + Left Paddle - Left Paddle + Αριστερό Πετάλι - + Right Paddle - Right Paddle + Δεξί Πετάλι - + Y - Y + Y - + B - B + B - + Accelerator - Accelerator + Γκάζι USBBindingWidget_GunCon2 - + Buttons - Buttons + Κουμπιά - + A - A + A - + C - C + C - + Start - Start + Start - + Select - Select + Select - + B - B + B - + D-Pad - D-Pad + Κατευθυντικά κουμπιά - - + + Down - Down + Κάτω - - + + Left - Left + Αριστερά - - + + Up - Up + Πάνω - - + + Right - Right + Δεξιά - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16423,29 +17104,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16453,39 +17134,39 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type - Device Type + Τύπος Συσκευής - + Bindings Bindings - + Settings - Settings + Ρυθμίσεις - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping USB Port %1 - USB Port %1 + Θύρα USB %1 No devices available - No devices available + Καμία διαθέσιμη συσκευή @@ -16511,32 +17192,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) - PS2 BIOS ({}) + PS2 BIOS ({}) - + Unknown Game - Unknown Game + Άγνωστο Παιχνίδι - + Error - Error + Σφάλμα - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16544,206 +17225,226 @@ For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own Once dumped, this BIOS image should be placed in the bios folder within the data directory (Tools Menu -> Open Data Directory). Please consult the FAQs and Guides for further instructions. - PCSX2 requires a PS2 BIOS in order to run. + Το PCSX2 απαιτεί μια εικόνα PS2 BIOS για να τρέξει. -For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). +Για νομικούς λόγους, *πρέπει* να εξάγετε μια εικόνα BIOS από μια πραγματική κονσόλα PS2 που έχετε στην κατοχή σας (ο δανεισμός δεν μετράει). -Once dumped, this BIOS image should be placed in the bios folder within the data directory (Tools Menu -> Open Data Directory). +όταν την εξάγετε, αυτή η εικόνα του BIOS θα πρέπει να τοποθετηθεί στο φάκελο bios στον κατάλογο δεδομένων (Μενού Εργαλεία -> Άνοιγμα φάκελου δεδομένων). -Please consult the FAQs and Guides for further instructions. +Συμβουλευτείτε τις Συχνές Ερωτήσεις και τους Οδηγούς για περαιτέρω οδηγίες. + + + + Resuming state + Resuming state - + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Ο δίσκος αφαιρέθηκε. - + Disc changed to '{}'. Ο δίσκος άλλαξε σε '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Αποτυχία ανοίγματος νέας εικόνας δίσκου '{}'. Επαναφορά στην παλιά εικόνα. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Αποτυχία επιστροφής στην παλιά εικόνα του δίσκου. Αφαίρεση δίσκου. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Τα cheat έχουν απενεργοποιηθεί λόγω της λειτουργίας hardcore επιτευγμάτων. - + Fast CDVD is enabled, this may break games. Το γρήγορο CDVD είναι ενεργοποιημένο, αυτό μπορεί να κάνει παιχνίδια να μην λειτουργούν. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. - Audio is using async mix, expect desynchronization in FMVs. + Ο ήχος έχει τεθεί σε Ασύγχρονη Μίξη, αναμένετε αποσυγχρονισμό σε βίντεο FMV. - + Upscale multiplier is below native, this will break rendering. - Upscale multiplier is below native, this will break rendering. + Ο πολλαπλασιαστής ανάλυσης είναι κάτω από την εγγενή ανάλυση του PS2, αυτό θα δημιουργήσει προβλήματα προβολής. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. + Το φιλτράρισμα υφών δεν έχει οριστεί σε Διγραμμικό (PS2). Αυτό θα προκαλέσει προβλήματα προβολής σε μερικά παιχνίδια. - + Trilinear filtering is not set to automatic. This may break rendering in some games. - Trilinear filtering is not set to automatic. This may break rendering in some games. + Το τριγραμμικό φιλτράρισμα δεν είναι ρυθμισμένο σε αυτόματο. Ενδέχεται να προκαλέσει προβλήματα προβολής σε μερικά παιχνίδια. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_en.ts b/pcsx2-qt/Translations/pcsx2-qt_en.ts index 180f6f1ccd0969..2b37683005eb98 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_en.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_en.ts @@ -318,292 +318,305 @@ Login token generated on %2. Achievements - + Hardcore mode will be enabled on system reset. - + + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - + Hardcore mode is now enabled. - + {} (Hardcore Mode) - + {} (Unofficial) - + Mastered {} - + Leaderboard attempt started. - + Leaderboard attempt failed. - + Your Time: {}{} - + Your Score: {}{} - + Your Value: {}{} - + (Submitting) - + Achievements Disconnected - + An unlock request could not be completed. We will keep retrying to submit this request. - + Achievements Reconnected - + All pending unlock requests have completed. - + Hardcore mode is now disabled. - + + Confirm Hardcore Mode - + Active Challenge Achievements - + (Hardcore Mode) - + You have unlocked all achievements and earned {} points! - + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. - + {0} achievements, {1} points - + Your Time: {0} (Best: {1}) - + Your Score: {0} (Best: {1}) - + Your Value: {0} (Best: {1}) - + {0} Leaderboard Position: {1} of {2} - + Server error in {0}: {1} - + Score: {0} ({1} softcore) Unread messages: {2} - + + Yes + + + + + No + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. - + Unknown - + Locked - + Unlocked - + Unsupported - + Unofficial - + Recently Unlocked - + Active Challenges - + Almost There - + {} points - + {} point - + XXX points - + Unlocked: {} - + This game has {} leaderboards. - + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - + Show Best - + Show Nearby - + Rank - + Name - + Time - + Score - + Value - + Date Submitted - + Downloading leaderboard data, please wait... - - + + Loading... - - + + Leaderboard download failed - + + This game has no achievements. - + Failed to read executable from disc. Achievements disabled. @@ -1370,8 +1383,8 @@ Unread messages: {2} AutoUpdaterDialog - - + + Automatic Updater @@ -1411,67 +1424,62 @@ Unread messages: {2} - + Updater Error - + <h2>Changes:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> - + Savestate Warning - + <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> - + Downloading %1... - - Cancel - - - - + No updates are currently available. Please try again later. - + Current Version: %1 (%2) - + New Version: %1 (%2) - + Download Size: %1 MB - + Loading... @@ -2726,142 +2734,147 @@ You cannot undo this action. - + + Filter Search + + + + Memory - + Breakpoints - + Threads - + Active Call Stack - + Breakpoint List Context Menu - + New - + Edit - - - + + + Copy - + Delete - - - + + + Copy all as CSV - + Paste from CSV - + Thread List Context Menu - - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ - - + + Copy Function Name - - + + Copy Function Address - - + + Go to in Disassembly - - + + Go to in Memory View - - + + Module Tree - + Stack List Context Menu - - - - - + + + + + Debugger - + Invalid start address - + Invalid end address - + Start address can't be equal to or greater than the end address - + Invalid search value - + Value is larger than type @@ -3353,74 +3366,74 @@ Do you want to overwrite? - + Copy Address - + Copy Instruction Hex - + Copy Instruction Text - + Assemble new Instruction(s) - + NOP Instruction(s) - + Run to Cursor - + Jump to Cursor - + Toggle Breakpoint - + Follow Branch - + Go to Address - + Go to in Memory View - + Add Function - - + + Rename Function - + Remove Function @@ -3473,53 +3486,58 @@ Enter function name - + Function name - - + + Rename Function Error - + Function name cannot be nothing. - + No function / symbol is currently selected. - + Restore Function Error - + Unable to stub selected address. - + + Copy Function Name + + + + Restore Instruction(s) - + Restore Function - + Stub (NOP) Function - + %1 NOT VALID ADDRESS @@ -3545,43 +3563,43 @@ Enter function name EmuThread - + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% - + Slot: %1 | %2 | EE: %3% | GS: %4% - + %1x%2 - + Game: %1 FPS - + Video: %1 FPS (%2%) - + Game: %1 (%2) - + Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. @@ -4062,4224 +4080,4224 @@ Enter function name FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting - + Automatic binding failed, no devices are available. - + Game title copied to clipboard. - + Game serial copied to clipboard. - + Game CRC copied to clipboard. - + Game type copied to clipboard. - + Game region copied to clipboard. - + Game compatibility copied to clipboard. - + Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. - + Controller settings reset to default. - + No input profiles available. - + Create New... - + Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. - + No save present in this slot. - + No save states found. - + Failed to delete save state. - + Failed to copy text to clipboard. - + This game has no achievements. - + This game has no leaderboards. - + Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. - + Exits the program. - + No Binding - + Setting %s binding %s. - + Push a controller button or axis now. - + Timing out in %.0f seconds... - + Unknown - + OK - + Select Device - + Details - + Options - + Copies the current global settings to this game. - + Clears all settings set for this game. - + Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - + Uses a light coloured theme instead of the default dark theme. - + Game Display - + Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. - + Automatic - + {0}/{1}/{2}/{3} - + Default - + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. - + Automatically switches to fullscreen mode when a game is started. - + On-Screen Display - + %d%% - + Shows the resolution of the game in the top-right corner of the display. - + BIOS Configuration - + BIOS Selection - + Options and Patches - + Skips the intro screen, and bypasses region checks. - + Speed Control - + Normal Speed - + Sets the speed when running without fast forwarding. - + Fast Forward Speed - + Sets the speed when using the fast forward hotkey. - + Slow Motion Speed - + Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter - + When disabled, the game will run as fast as possible. - + System Settings - + EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping - + Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) - + Enable Instant VU1 - + Enable Cheats - + Enables loading cheats from pnach files. - + Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control - + Maximum Frame Latency - + Sets the number of frames which can be queued. - + Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - + Speeds up emulation so that the guest refresh rate matches the host. - + Renderer - + Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. - + Display - + Aspect Ratio - + Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size - + Determines the resolution at which screenshots will be saved. - + Screenshot Format - + Selects the format which will be used to save screenshots. - + Screenshot Quality - + Selects the quality at which screenshots will be compressed. - + Vertical Stretch - + Increases or decreases the virtual picture size vertically. - + Crop - + Crops the image, while respecting aspect ratio. - + %dpx - + Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. - + Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering - + Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping - + Determines how mipmaps are used when rendering textures. - + Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering - + Dithering - + Selects the type of dithering applies when the game requests it. - + Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. - + Hardware Fixes - + Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level - + Determines filter level for CPU sprite render. - + Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start - + Object range to skip drawing. - + Skip Draw End - + Auto Flush (Hardware) - + CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - + Disable Safe Features - + This option disables multiple safe features. - + This option disables game-specific render fixes. - + Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion - + Upscaling Fixes - + Adjusts vertices relative to upscaling. - + Round Sprite - + Adjusts sprite coordinates. - + Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - + Adjusts target texture offsets. - + Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement - + Load Textures - + Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory - + Folders - + Texture Dumping - + Dump Textures - + Dump Mipmaps - + Includes mipmaps when dumping textures. - + Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing - + FXAA - + Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. - + Filters - + Shade Boost - + Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness - + Adjusts brightness. 50 is normal. - + Shade Boost Contrast - + Adjusts contrast. 50 is normal. - + Shade Boost Saturation - + Adjusts saturation. 50 is normal. - + TV Shaders - + Advanced - + Skip Presenting Duplicate Frames - + Disable Threaded Presentation - + Hardware Download Mode - + Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers - + Forces texture barrier functionality to the specified value. - + GS Dump Compression - + Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. - + Runtime Settings - + Applies a global volume modifier to all sound produced by the game. - + Mixing Settings - + Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. - + Output Settings - + Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. - + %d ms (avg) - + Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. - + %d ms - + Settings and Operations - + Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. - + Resets the card name for this slot. - + Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: - + Configuration - + Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. - + Input Sources - + The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap - + Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. - + No Buttons Selected - + Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. - + Toggle every %d frames - + Clears all bindings for this USB controller. - + Data Save Locations - + Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging - + System Console - + Writes log messages to the system console (console window/standard output). - + File Logging - + Writes log messages to emulog.txt. - + Verbose Logging - + Writes dev log messages to log sinks. - + Log Timestamps - + Writes timestamps alongside log messages. - + EE Console - + Writes debug messages from the game's EE code to the console. - + IOP Console - + Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads - + Logs disc reads from games. - + Emotion Engine - + Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache - + Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. - + Vector Units - + VU0 Rounding Mode - + VU0 Clamping Mode - + VU1 Rounding Mode - + VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler - + Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. - + I/O Processor - + Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics - + Use Debug Device - + Settings - + No cheats are available for this game. - + Cheat Codes - + No patches are available for this game. - + Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack - + For Tales of Destiny. - + FPU Negative Div Hack - + For Gundam games. - + Preload TLB Hack - + Needed for some games with complex FMV rendering. - + Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack - + EE Timing Hack - + Instant DMA Hack - + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - + For SOCOM 2 HUD and Spy Hunter loading hang. - + VU Add Hack - + Full VU0 Synchronization - + Forces tight VU0 sync on every COP2 instruction. - + VU Overflow Hack - + To check for possible float overflows (Superman Returns). - + Use accurate timing for VU XGKicks (slower). - + Quadraphonic - + Load State - + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - + Scale To Host Refresh Rate - + Disable Depth Emulation - + Disable the support of depth buffers in the texture cache. - + Disable Render Fixes - + Preload Frame Data - + Texture Inside RT - + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - + Half Pixel Offset - + Texture Offset X - + Texture Offset Y - + Dumps replaceable textures to disk. Will reduce performance. - + Applies a shader which replicates the visual effects of different styles of television set. - + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. - + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. - + Enables API-level validation of graphics commands. - + Use Software Renderer For FMVs - + To avoid TLB miss on Goemon. - + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. - + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. - + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. - + Emulate GIF FIFO - + Correct but slower. Known to affect the following games: Fifa Street 2. - + DMA Busy Hack - + Delay VIF1 Stalls - + Emulate VIF FIFO - + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. - + VU I Bit Hack - + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. - + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - + VU Sync - + Run behind. To avoid sync problems when reading or writing VU registers. - + VU XGKick Sync - + Force Blit Internal FPS Detection - + Save State - + Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? - + Region: - + Compatibility: - + No Game Selected - + Search Directories - + Adds a new directory to the game search list. - + Scanning Subdirectories - + Not Scanning Subdirectories - + List Settings - + Sets which view the game list will open to. - + Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings - + Downloads covers from a user-specified URL template. - + Operations - + Selects where anisotropic filtering is utilized when rendering textures. - + Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. - + Download Covers - + About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - + When enabled and logged in, PCSX2 will scan for achievements on startup. - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - + When enabled, each session will behave as if no achievements have been unlocked. - + Account - + Logs out of RetroAchievements. - + Logs in to RetroAchievements. - + Current Game - + {} is not a valid disc image. - + Automatic mapping completed for {}. - + Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. - + Console Port {} - + {} (Current) - + {} (Folder) - + Memory card name '{}' is not valid. - + Memory Card '{}' created. - + Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. - + Failed to load '{}'. - + Input profile '{}' loaded. - + Input profile '{}' saved. - + Failed to save input profile '{}'. - + Port {} Controller Type - + Select Macro {} Binds - + Macro {} Frequency - + Macro will toggle every {} frames. - + Port {} Device - + Port {} Subtype - + {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. - + This Session: {} - + All Time: {} - + Save Slot {0} - + Saved {} - + {} does not exist. - + {} deleted. - + Failed to delete {}. - + File: {} - + CRC: {:08X} - + Time Played: {} - + Last Played: {} - + Size: {:.2f} MB - + Left: - + Top: - + Right: - + Bottom: - + Summary - + Interface Settings - + BIOS Settings - + Emulation Settings - + Graphics Settings - + Audio Settings - + Memory Card Settings - + Controller Settings - + Hotkey Settings - + Achievements Settings - + Folder Settings - + Advanced Settings - + Patches - + Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed - + 60% Speed - + 75% Speed - + 100% Speed (Default) - + 130% Speed - + 180% Speed - + 300% Speed - + Normal (Default) - + Mild Underclock - + Moderate Underclock - + Maximum Underclock - + Disabled - + EE > VU > GS - + EE > GS > VU - + VU > EE > GS - + VU > GS > EE - + GS > EE > VU - + GS > VU > EE - + 0 Frames (Hard Sync) - + 1 Frame - + 2 Frames - + 3 Frames - + None - + Extra + Preserve Sign - + Full - + Extra - + Automatic (Default) - + Direct3D 11 - + Direct3D 12 - + OpenGL - + Vulkan - + Metal - + Software - + Null - + Off - + On - + Adaptive - + Bilinear (Smooth) - + Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) - + Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) - + Adaptive (Bottom Field First) - + Native (PS2) - + 1.25x Native - + 1.5x Native - + 1.75x Native - + 2x Native (~720p) - + 2.25x Native - + 2.5x Native - + 2.75x Native - + 3x Native (~1080p) - + 3.5x Native - + 4x Native (~1440p/2K) - + 5x Native (~1620p) - + 6x Native (~2160p/4K) - + 7x Native (~2520p) - + 8x Native (~2880p) - + Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) - + Nearest - + Bilinear (Forced) - + Bilinear (PS2) - + Bilinear (Forced excluding sprite) - + Off (None) - + Trilinear (PS2) - + Trilinear (Forced) - + Scaled - + Unscaled (Default) - + Minimum - + Basic (Recommended) - + Medium - + High - + Full (Slow) - + Maximum (Very Slow) - + Off (Default) - + 2x - + 4x - + 8x - + 16x - + Partial - + Full (Hash Cache) - + Force Disabled - + Force Enabled - + Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) - + Screen Resolution - + Internal Resolution (Aspect Uncorrected) - + Cannot show details for games which were not scanned in the game list. - + Full Boot - + Achievement Notifications - + Leaderboard Notifications - + Enable In-Game Overlays - + Encore Mode - + Spectator Mode - + PNG - + JPEG - + 0 (Disabled) - + 1 (64 Max Width) - + 2 (128 Max Width) - + 3 (192 Max Width) - + 4 (256 Max Width) - + 5 (320 Max Width) - + 6 (384 Max Width) - + 7 (448 Max Width) - + 8 (512 Max Width) - + 9 (576 Max Width) - + 10 (640 Max Width) - + Sprites Only - + Sprites/Triangles - + Blended Sprites/Triangles - + 1 (Normal) - + 2 (Aggressive) - + Inside Target - + Merge Targets - + Normal (Vertex) - + Special (Texture) - + Special (Texture - Aggressive) - + Half - + Force Bilinear - + Force Nearest - + Disabled (Default) - + Enabled (Sprites Only) - + Enabled (All Primitives) - + None (Default) - + Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) - + Scanline Filter - + Diagonal Filter - + Triangular Filter - + Wave Filter - + Lottes CRT - + 4xRGSS - + NxAGSS - + Uncompressed - + LZMA (xz) - + Zstandard (zst) - + TimeStretch (Recommended) - + Async Mix (Breaks some games!) - + None (Audio can skip.) - + Stereo (None, Default) - + Surround 5.1 - + Surround 7.1 - + No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) - + XAudio2 - + PS2 (8MB) - + PS2 (16MB) - + PS2 (32MB) - + PS2 (64MB) - + PS1 - + 8 MB [Most Compatible] - + 16 MB - + 32 MB - + 64 MB - + Folder [Recommended] - + 128 KB [PS1] - + Negative - + Positive - + Chop/Zero (Default) - + Game Grid - + Game List - + Game List Settings - + Type - + Serial - + Title - + File Title - + CRC - + Time Played - + Last Played - + Size - + Select Disc Image - + Select Disc Drive - + Start File - + Start BIOS - + Start Disc - + Exit - + Set Input Binding - + Region - + Compatibility Rating - + Path - + Disc Path - + Select Disc Path - + Copy Settings - + Clear Settings - + Inhibit Screensaver - + Enable Discord Presence - + Pause On Start - + Pause On Focus Loss - + Pause On Menu - + Confirm Shutdown - + Save State On Shutdown - + Enable Per-Game Settings - + Use Light Theme - + Start Fullscreen - + Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen - + OSD Scale - + Show Messages - + Show Speed - + Show FPS - + Show CPU Usage - + Show GPU Usage - + Show Resolution - + Show GS Statistics - + Show Status Indicators - + Show Settings - + Show Inputs - + Show Frame Times - + Warn About Unsafe Settings - + Reset Settings - + Change Search Directory - + Fast Boot - + Output Volume - + Synchronization Mode - + Expansion Mode - + Output Module - + Latency - + Sequence Length - + Seekwindow Size - + Overlap - + Memory Card Directory - + Folder Memory Card Filter - + Auto Eject When Loading - + Create - + Cancel - + Load Profile - + Save Profile - + Per-Game Configuration - + Copy Global Settings - + Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input - + Enable XInput Input Source - + Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap - + Controller Port {}{} - + Controller Port {} - + Controller Type - + Automatic Mapping - + Controller Port {}{} Macros - + Controller Port {} Macros - + Macro Button {} - + Buttons - + Frequency - + Pressure - + Controller Port {}{} Settings - + Controller Port {} Settings - + USB Port {} - + Device Type - + Device Subtype - + {} Bindings - + Clear Bindings - + {} Settings - + Cache Directory - + Covers Directory - + Snapshots Directory - + Save States Directory - + Game Settings Directory - + Input Profile Directory - + Cheats Directory - + Patches Directory - + Texture Replacements Directory - + Video Dumping Directory - + Resume Game - + Toggle Frame Limit - + Game Properties - + Achievements - + Save Screenshot - + Switch To Software Renderer - + Switch To Hardware Renderer - + Change Disc - + Close Game - + Exit Without Saving - + Back To Pause Menu - + Exit And Save State - + Leaderboards - + Delete Save - + Close Menu - + Delete State - + Default Boot - + Reset Play Time - + Add Search Directory - + Open in File Browser - + Disable Subdirectory Scanning - + Enable Subdirectory Scanning - + Remove From List - + Default View - + Sort By - + Sort Reversed - + Scan For New Games - + Rescan All Games - + Website - + Support Forums - + GitHub Repository - + License - + Close - + RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements - + Hardcore Mode - + Sound Effects - + Test Unofficial Achievements - + Username: {} - + Login token generated on {} - + Logout - + Not Logged In - + Login - + Game: {0} ({1}) - + Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. - + Card Enabled - + Card Name - + Eject Card @@ -8761,7 +8779,7 @@ graphical quality, but this will increase system requirements. - + Downloading cover for {0} [{1}]... @@ -8769,52 +8787,52 @@ graphical quality, but this will increase system requirements. GameListModel - + Type - + Code - + Title - + File Title - + CRC - + Time Played - + Last Played - + Size - + Region - + Compatibility @@ -11757,272 +11775,277 @@ Swap chain: see Microsoft's Terminology Portal. - + Target speed set to {:.0f}%. - + Volume: Muted - + Volume: {}% - + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). - + No save state found in slot {}. - - - - - - - - - - - + + You cannot pause until another {:.1f} seconds have passed. + + + + + + + + + + + - - - - - - + + + + + + + + + System - + Open Pause Menu - + Open Achievements List - + Open Leaderboards List - + Toggle Pause - + Toggle Fullscreen - + Toggle Frame Limit - + Toggle Turbo / Fast Forward - + Toggle Slow Motion - + Turbo / Fast Forward (Hold) - + Increase Target Speed - + Decrease Target Speed - + Increase Volume - + Decrease Volume - + Toggle Mute - + Frame Advance - + Shut Down Virtual Machine - + Reset Virtual Machine - + Toggle Input Recording Mode - - - - + + + + Save States - + Select Previous Save Slot - + Select Next Save Slot - + Save State To Selected Slot - + Load State From Selected Slot - + Save State To Slot 1 - + Load State From Slot 1 - + Save State To Slot 2 - + Load State From Slot 2 - + Save State To Slot 3 - + Load State From Slot 3 - + Save State To Slot 4 - + Load State From Slot 4 - + Save State To Slot 5 - + Load State From Slot 5 - + Save State To Slot 6 - + Load State From Slot 6 - + Save State To Slot 7 - + Load State From Slot 7 - + Save State To Slot 8 - + Load State From Slot 8 - + Save State To Slot 9 - + Load State From Slot 9 - + Save State To Slot 10 - + Load State From Slot 10 @@ -12616,7 +12639,7 @@ Right click to clear binding - + System Language [Default] @@ -12673,14 +12696,14 @@ Right click to clear binding - - + + Change Disc - + Load State @@ -13185,13 +13208,13 @@ Right click to clear binding - + Start Big Picture Mode - + Big Picture In Toolbar @@ -13268,163 +13291,163 @@ Are you sure you want to continue? - + Confirm Shutdown - + Are you sure you want to shut down the virtual machine? - + Save State For Resume - - - - - - + + + + + + Error - + You must select a disc to change discs. - + Properties... - + Open Containing Directory... Refers to the directory where a game is contained. - + Set Cover Image... - + Exclude From List - + Reset Play Time - + Default Boot - + Fast Boot - + Full Boot - + Boot and Debug - + Add Search Directory... - + Start File - + Start Disc - + Select Disc Image - + Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. - + Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. - + Input Recording Files (*.p2m2) - + Paused - + Load State Failed - + Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget @@ -13439,109 +13462,109 @@ Are you sure you want to continue? - + Stop Big Picture Mode - + Exit Big Picture In Toolbar - + Game Properties - + Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: - + This save state does not exist. - + Select Cover Image - + Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error - + Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' - + Failed to remove '%1' - - + + Confirm Reset - + All Cover Image Types (*.jpg *.jpeg *.png *.webp) - + You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. - + Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13550,112 +13573,116 @@ Do you want to load this state, or start from a fresh boot? - + Fresh Boot - + Delete And Boot - + Failed to delete save state file '%1'. - + Load State File... - + Load From File... - - + + Select Save State File - - + Save States (*.p2s) - + Delete Save States... - + + Save States (*.p2s *.p2s.backup) + + + + Undo Load State - + Resume (%2) - + Load Slot %1 (%2) - - + + Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. - + %1 save states deleted. - + Save To File... - + Empty - + Save Slot %1 (%2) - + Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc - + Reset @@ -13664,7 +13691,7 @@ The saves will not be recoverable. MemoryCard - + Memory Card '{}' was saved to storage. @@ -14681,6 +14708,22 @@ Leaving the original controller type connected, but this may cause issues. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + + QObject @@ -14723,17 +14766,17 @@ The URL was: %1 QtAsyncProgressThread - + Error - + Question - + Information @@ -14746,22 +14789,22 @@ The URL was: %1 - + Cancel - + Error - + Question - + Information @@ -17092,32 +17135,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. - + Failed to save save state: {}. - + PS2 BIOS ({}) - + Unknown Game - + Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -17128,215 +17171,216 @@ Please consult the FAQs and Guides for further instructions. - + + Resuming state - + State saved to slot {}. - + Failed to save save state to slot {}. - - + + Loading state - + There is no save state in slot {}. - + Loading state from slot {}... - + Saving state to slot {}... - + Frame advancing - + Disc removed. - + Disc changed to '{}'. - + Failed to open new disc image '{}'. Reverting to old image. Error was: {} - + Failed to switch back to old disc image. Removing disc. Error was: {} - + Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_es-419.ts b/pcsx2-qt/Translations/pcsx2-qt_es-419.ts index d83645e064a5c1..aba26cde50c82f 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_es-419.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_es-419.ts @@ -32,7 +32,7 @@ Support Forums - Foro de soporte + Foros de Soporte @@ -67,7 +67,7 @@ User Name: - Nombre de Usuario: + Nombre de usuario: @@ -80,32 +80,38 @@ Listo... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Tu token de acceso de RetroAchievements ha dejado de ser válido.</strong> Debes volver a introducir tus credenciales para poder hacer el seguimiento de tus logros. PCSX2 no almacenará tu contraseña, sino que generará y utilizará un token de acceso. - + &Login &Iniciar sesión - + Logging in... Iniciando sesión... - + Login Error Error iniciando sesion - - Login failed. Please check your username and password, and try again. - Error al iniciar sesión. Comprueba tu nombre de usuario y contraseña e inténtalo de nuevo. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login failed. +Error: %1 + +Please check your username and password, and try again. - + Login failed. Error al iniciar sesión. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Configuración global - - - - + + Enable Achievements Activar Logros - - - Show Challenge Indicators - Mostrar Indicadores de Desafío - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Habilitar Rich Presence de RA - - - - + + Enable Hardcore Mode Activar Modo Hardcore - - - Enable Leaderboards - Activar Tablas de Clasificación - - - + Test Unofficial Achievements Probar Logros no Oficiales - - - Enable Test Mode - Habilitar Modo Prueba - - - - + + Enable Sound Effects Activar Efectos de Sonido - + Notifications Notificaciones - - - Show Notifications - Ver Notificaciones - - - - Duration - Duración - - - - - - + + 5 seconds 5 segundos - + Account Cuenta - - + + Login... Iniciar sesión... - + View Profile... Ver Perfil... - - Game Info - Información del Juego + + Settings + Ajustes - - <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> - <html><head/><body><p align="justify">PCSX2 usa RetroAchievements como base de datos de logros y para hacer seguimiento del progreso. Para usar logros, crea una cuenta en <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Para er la lista de logros dentro del juego, presiona la tecla de acceso rápido <span style=" font-weight:600;">Abrir Menú de Pausa</span> y selecciona <span style=" font-weight:600;">Logros</span> desde el menú.</p></body></html> + + + Enable Spectator Mode + Enable Spectator Mode - - seconds - segundos + + + Enable Encore Mode + Enable Encore Mode + + + Show Achievement Notifications + Show Achievement Notifications + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + - - - - Unchecked - Desactivado + Enable In-Game Overlays + Enable In-Game Overlays - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Al activar esta opción e iniciar sesión, PCSX2 buscará logros al iniciar un juego. + + Username: +Login token generated at: + Username: +Login token generated at: + + Game Info + Información del juego + + + + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + <html><head/><body><p align="justify">PCSX2 usa RetroAchievements como base de datos de logros y para hacer seguimiento del progreso. Para usar logros, crea una cuenta en <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Para er la lista de logros dentro del juego, presiona la tecla de acceso rápido <span style=" font-weight:600;">Abrir Menú de Pausa</span> y selecciona <span style=" font-weight:600;">Logros</span> desde el menú.</p></body></html> + + + + + + + Unchecked + Desactivado + + + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Al activar esta opción, PCSX2 asumirá que todos los logros están bloqueados y no enviará notificaciones de desbloqueo al servidor. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Al activar esta opción, PCSX2 mostrará los logros de colecciones no oficiales. Ten en cuenta que RetroAchievements no hace un seguimiento de estos logros, así que se desbloquearán constantemente. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Al activar esta opción, se recopilará la información de presencia y se enviará a los servidores de RetroAchievements en aquellos casos que sean compatibles. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. Modo «Desafio» para logros, incluyendo seguimiento de tablas de clasificación. Desactiva los Save State, Trucos, y funciones de ralentizado. - - - - + + + + Checked Activado - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Activa el seguimiento y envío de tablas de clasificación en los juegos que sean compatibles. Si se desactivan las tablas de clasificación, podrás seguir viendo las tablas y sus puntuaciones, pero no se enviará ninguna puntuación. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Muestra mensajes emergentes en ciertas situaciones, como el desbloqueo de logros y el envío de puntuaciones a las tablas. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Reproduce efectos de sonido en ciertas situaciones, como el desbloqueo de logros y el envío de puntuaciones a las tablas. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Muestra iconos en la esquina inferior derecha de la pantalla cuando haya un logro activo o un desafío. - - - - Notification Duration - Duración de la notificación + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - La duración, en segundos, una notificación emergente de logros permanecerá en pantalla. + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - + Reset System Reiniciar sistema - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? El modo «hardcore» no se activará hasta que se reinicie el sistema. ¿Deseas reiniciar ahora? + + + + %n seconds + + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Nombre de usuario: %1 Token de acceso generado el %2. - + Logout Cerrar sesión - + Not Logged In. No se ha iniciado sesión. - - - %1 seconds - %1 segundos - Achievements - + Hardcore mode will be enabled on system reset. El modo Hardcore será habilitado al reiniciar el sistema. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} no se puede realizar mientras el modo hardcore esté activo. ¿Quieres deshabilitar el modo hardcore? {0} será cancelado si seleccionas No. - + Hardcore mode is now enabled. El modo «hardcore» está activado. - + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Unofficial) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. El modo «hardcore» está desactivado. - + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (Modo Hardcore) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Has ganado {0} de {1} logros y {2} de {3} puntos. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - Este juego no tiene logros. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Desconocido + + + + Locked + Bloqueado + + + + Unlocked + Desbloqueado + + + + Unsupported + No soportado + + + + Unofficial + No oficial + + + + Recently Unlocked + Desbloqueado recientemente + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} puntos + + + + {} point + {} punto + + + + XXX points + XXX points + + + + Unlocked: {} + Desbloqueado: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Name + + + + Time + Time + + + + Score + Score + + + + Value + Value + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + Loading... + + + + + Leaderboard download failed + Leaderboard download failed - - Leaderboard submission is enabled. - El envío de información a las tablas de clasificación está activado. + + This game has no achievements. + Este juego no tiene logros. - + Failed to read executable from disc. Achievements disabled. Error al leer el ejecutable del disco. Logros desactivados. @@ -567,7 +804,7 @@ Token de acceso generado el %2. Enable Compatibility Patches - Activar Parches de Compatibilidad + Activar parches de compatibilidad @@ -578,220 +815,220 @@ Token de acceso generado el %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Cambiar estas opciones pueden causar que algunos juegos dejen de funcionar. Modificar bajo tu propio riesgo, el equipo de PCSX2 no dará soporte para dichas configuraciones. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Modo de redondeo: - - - + + + Nearest - Vecino más cercano + Más cercano - - - + + + Negative Negativo - - - + + + Positive Positivo - - - + + + Chop / Zero (Default) Eliminar/cero (predeterminado) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Modo de limitación: - - + + None Nada - - - + + + Normal (Default) Normal (predeterminado) - + None ClampMode Nada - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + conservar signo - + Full Completo - + Wait Loop Detection Esperar detección de bucle - - + + Enable Recompiler Activar recompilador - + Enable Fast Memory Access Habilitar acceso rápido a memoria - + Enable Cache (Slow) Habilitar caché (lento) - + INTC Spin Detection Detección de valores de INTC - + Pause On TLB Miss Pausar al fallar el TLB - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Unidades vectoriales (VU) - + VU1 Rounding Mode: Modo de redondeo del VU1: - + mVU Flag Hack Hack de indicador mVU - + Enable VU1 Recompiler Habilitar recompilador del VU1 - + Enable VU0 Recompiler (Micro Mode) Habilitar recompilador del VU0 (modo micro) - - + + Extra Extra - + VU0 Clamping Mode: Modo de limitación del VU0: - + VU0 Rounding Mode: Modo de redondeo del VU0: - + VU1 Clamping Mode: Modo de limitación del VU1: - + I/O Processor (IOP, MIPS-I) Procesador de E/S (IOP, MIPS-I) - + Game Settings Ajustes de Juego - + Enable Game Fixes Activar Arreglos de Juegos - + Enable Compatibility Patches Habilitar parches de compatibilidad - + Frame Rate Control Control de velocidad de fotogramas - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so.   hz - + PAL Frame Rate: Velocidad de fotogramas PAL: - + NTSC Frame Rate: Velocidad de fotogramas NTSC: - + PINE Settings Ajustes de PINE - + Slot: - Ranura: + Puerto: - + Enable Activar @@ -799,182 +1036,182 @@ Token de acceso generado el %2. AudioSettingsWidget - + Timestretch Settings Ajustes de expansión de tiempo - + Sequence Length: Longitud de secuencia: - + 30 30 - + Seekwindow Size: Tamaño de ventana de búsqueda: - + 20 20 - + Overlap: Solapamiento: - + 10 10 - + Restore Defaults - Restaurar valores predeterminados + Restaurar por defecto - + Volume Volumen - + 100% 100 % - + Mixing Settings Ajustes de mezcla - + Synchronization: Sincronización: - + TimeStretch (Recommended) Expansión de tiempo (recomendada) - + Async Mix (Breaks some games!) Mezcla asíncrona (¡rompe algunos juegos!) - + None (Audio can skip.) Ninguna (puede haber cortes de audio) - + Expansion: Expansión: - + Stereo (None, Default) Estéreo (ninguna, predeterminada) - + Quadraphonic - Quadraphonic + Cuadrafónico - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Nivel de ProLogic: - + None (Default) Ninguno (predeterminado) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Decodificación ProLogic (básica) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Decodificación ProLogic II (gigaherz) - + Target Latency: Latencia objetivo: - + 60 ms 60 ms - + Output Settings Ajustes de salida - + Output Module: Módulo de salida: - + Output Latency: Latencia de salida: - + 20 ms 20 ms - + Minimal Mínima - + Output Backend: «Back-end» de salida: - + Maximum Latency: Latencia máxima: - + Output Device: Dispositivo de salida: @@ -1162,17 +1399,22 @@ Token de acceso generado el %2. Nueva versión: - + + Download Size: + Tamaño de descarga: + + + Download and Install... Descargar e instalar... - + Skip This Update Saltar esta actualización - + Remind Me Later Recordar más tarde @@ -1182,17 +1424,17 @@ Token de acceso generado el %2. Error del actualizador - + <h2>Changes:</h2> <h2>Cambios:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Advertencia sobre los guardados rápidos</h2><p>La instalación de esta actualización hará que tus guardados rápidos <b>dejen de ser compatibles</b>. Asegúrate de haber guardado tus avances en una Memory Card antes de instalar esta actualización, o perderás dichos avances.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Advertencia sobre la configuración</h2><p>La instalación de esta actualización reiniciará la configuración del programa. Recuerda que tendrás que volver a cambiar los ajustes del programa una vez se haya aplicado esta actualización.</p> @@ -1233,6 +1475,11 @@ Token de acceso generado el %2. + Download Size: %1 MB + Tamaño de descarga %1 MB + + + Loading... Cargando... @@ -1240,66 +1487,66 @@ Token de acceso generado el %2. BIOSSettingsWidget - + BIOS Directory Directorio de BIOS - + PCSX2 will search for BIOS images in this directory. PCSX2 buscará imágenes BIOS en este directorio. - + Browse... Buscar... - + Reset Reiniciar - + BIOS Selection Selección de BIOS - - Open in Explorer... - Abrir en el explorador... + + Open BIOS Folder... + Abrir carpeta de BIOS... - + Refresh List Actualizar lista - + Filename Nombre de archivo - + Version Versión - + Options and Patches Opciones y parches - + Fast Boot - Arranque rápido + Encendido rápido - + Fast Forward Boot - Arranque rápido + Inicio rápido @@ -1418,97 +1665,90 @@ Token de acceso generado el %2. Invalid size "%1" - Invalid size "%1" + Tamaño inválido "%1" BreakpointModel - + Execute Ejecución - - No Condition - Sin condición - - - - + + -- -- - - + Enabled Activar - - + Disabled Desactivada - + Read Lectura - + Write(C) (C) = changes, as in "look for changes". Escritura (C) - + Write Escritura - + TYPE Warning: limited space available. Abbreviate if needed. TIPO - + OFFSET Warning: limited space available. Abbreviate if needed. DESPLAZ - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. TAM./ETIQUETA - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCCIÓN - + CONDITION Warning: limited space available. Abbreviate if needed. CONDICIÓN - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ACTIVO + X @@ -1519,7 +1759,7 @@ Token de acceso generado el %2. El juego se encuentra en una unidad extraible, pueden producirse problemas de rendimiento. - + Saving CDVD block dump to '{}'. Saving CDVD block dump to '{}'. @@ -1555,44 +1795,44 @@ Token de acceso generado el %2. ControllerBindingWidget - + Virtual Controller Type - Virtual Controller Type + Tipo de control virtual - + Bindings Asignaciones - + Settings Configuración - + Macros Macros - + Automatic Mapping Asignación automática - + Clear Mapping Borrar asignaciones Controller Port %1 - Mando %1 + Puerto de control %1 No devices available - No devices available + No hay dispositivos disponibles @@ -1604,7 +1844,7 @@ Token de acceso generado el %2. Are you sure you want to clear all bindings for this controller? This action cannot be undone. Binding: A pair of (host button, target button); Mapping: A list of bindings covering an entire controller. These are two different things (which might be the same in your language, please make sure to verify this). - ¿Seguro que quieres borrar todas las asignaciones de este mando? Esta acción no se puede deshacer. + ¿Seguro que quieres borrar todas las asignaciones de este control? Esta acción no puede deshacerse. @@ -1614,152 +1854,152 @@ Token de acceso generado el %2. No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. + Ninguna asignación general fue generada para el dispositivo '%1'. El control/origen podría no ser compatible con el mapeo automático. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Botones de dirección - - - + + + Down Abajo - - - + + + Left Izquierda - - - + + + Up Arriba - - - + + + Right Derecha - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Joystick analógico izquierdo - + Large Motor Motor grande - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. - Iniciar + Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Botones de acción - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cruz - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cuadrado - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triángulo - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Círculo - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Joystick analógico derecho - + Small Motor Motor pequeño - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Modificador de presión - + Analog Análogo @@ -1767,77 +2007,72 @@ Token de acceso generado el %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow Amarillo - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start - Iniciar + Start - + Red Rojo - + Green Verde - + Orange Naranja - + Select Select - + Strum Up Barra de toque hacia arriba - + Strum Down Barra de toque hacia abajo - + Blue Azul - + Whammy Bar Whammy Bar - + Tilt Inclinar @@ -1863,123 +2098,133 @@ Token de acceso generado el %2. ControllerGlobalSettingsWidget - + SDL Input Source - SDL Input Source + Fuente de entrada SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - El origen de entrada SDL soporta la mayoría de mandos y ofrece funcionalidades avanzadas para mandos DualShock 4 / DualSense en modo Bluetooth (Vibración / Control sobre las luces LED). + La fuente de entrada SDL soporta la mayoría de controles y ofrece funcionalidades avanzadas para DualShock 4 / DualSense en modo Bluetooth (vibración / control de LED). - + Enable SDL Input Source Activar fuente de entrada SDL - + DualShock 4 / DualSense Enhanced Mode Modo mejorado para DualShock 4/DualSense - + XInput Source Origen XInput - + Enable XInput Input Source - Enable XInput Input Source + Activar fuente de entrada XInput - + DInput Source Origen DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. + El origen XInput ofrece compatibilidad para controles de legado que no son compatibles con XInput. Se recomienda acceder a estos controles a través de SDL, pero si no son compatibles con SDL se puede utilizar DirectInput. - + Enable DInput Input Source - Enable DInput Input Source + Activar fuente de entrada DInput + + + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignorar inversión - + Profile Settings Ajustes de perfil - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Al activar esta opción se podrán asignar teclas de acceso rápido a este perfil de entrada, que se utilizarán en vez de las teclas globales. Las teclas de acceso rápido se comparten siempre entre todos los perfiles de forma predeterminada. - + Use Per-Profile Hotkeys Use Per-Profile Hotkeys - - + + Controller LED Settings - Controller LED Settings + Configuración del LED del control - + Enable SDL Raw Input - Enable SDL Raw Input + Activar entrada sin procesar SDL - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. + La fuente XInput ofrece compatibilidad para los controles de Xbox 360 / Xbox One / Xbox Series, y controles de terceros que implementen el protocolo XInput. - + Controller Multitap - Controller Multitap + Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. + El multitap permite conectar hasta 8 controles a la consola. Cada multitap proporciona 4 puertos. Multitap no está soportado por todos los juegos. - + Multitap on Console Port 1 - Multitap en el puerto de mando 1 + Multitap en el puerto de la consola 1 - + Multitap on Console Port 2 - Multitap en el puerto de mando 2 + Multitap en el puerto de la consola 2 - + Mouse/Pointer Source Origen de ratón/puntero - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 te permite utilizar el ratón para simular el movimiento de los joysticks analógicos. - + Settings... Ajustes... - + Enable Mouse Mapping - Enable Mouse Mapping + Activar mapeo del ratón - + Detected Devices Dispositivos detectados @@ -1989,7 +2234,7 @@ Token de acceso generado el %2. Controller LED Settings - Ajustes del LED de los mandos + Ajustes del LED de los controles @@ -2015,65 +2260,65 @@ Token de acceso generado el %2. ControllerMacroEditWidget - + Binds/Buttons Asignaciones/Botones - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Selecciona los botones que deseas activar con esta macro. Se activarán todos los botones a la vez. - + Pressure Presión - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. + Para botones sensibles a la presión, este deslizador controla cuánta fuerza será simulada cuando el macro esté activo. - - + + 100% 100 % - + Trigger Disparador - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: Zona muerta: - + Frequency Frecuencia - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Set... Not Configured - No configurada + No configurado @@ -2169,46 +2414,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings Ajustes de control de PCSX2 - + Editing Profile: Editando perfil: - + New Profile Nuevo perfil - + Load Profile Cargar perfil - + Delete Profile Borrar perfil - - + + Restore Defaults Restaurar predeterminados - - + + Create Input Profile - Create Input Profile + Crear perfil de entrada - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,95 +2464,95 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Error - + A profile with the name '%1' already exists. - A profile with the name '%1' already exists. + Un perfil con el nombre '%1' ya existe. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. - Failed to save the new profile to '%1'. + Fallo al guardar el nuevo perfil en '%1'. - + Load Input Profile - Cargar perfil de Input + Cargar perfil de entrada - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - ¿Estás seguro que quieres cargar el perfil de Input llamado '%1'? + Are you sure you want to load the input profile named '%1'? -Todas las asignaciones globales se removeran y se cargaran las asignaciones del perfil. +All current global bindings will be removed, and the profile bindings loaded. -No puedes deshacer esta acción. +You cannot undo this action. - + Delete Input Profile - Eliminar perfil de Input + Borrar perfil de entrada - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - ¿Estás seguro de que quieres eliminar el perfil de Input llamado '%1'? + Are you sure you want to delete the input profile named '%1'? -No puedes deshacer esta acción. +You cannot undo this action. - + Failed to delete '%1'. - Error al borrar '%1'. + Fallo al borrar '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - ¿Estás seguro que deseas restaurar la configuración predeterminada del mando? + Are you sure you want to restore the default controller configuration? -Todas las asignaciones y configuraciónes compartidas se eliminarán, pero se conservaran tus perfiles de Input. +All shared bindings and configuration will be lost, but your input profiles will remain. -No puedes deshacer esta acción. +You cannot undo this action. - + Global Settings Ajustes globales - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Puerto de conrol %1%2 + Puerto de control %1%2 %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2560,26 @@ No puedes deshacer esta acción. %2 - - + + USB Port %1 %2 Puerto USB %1 %2 - + Hotkeys Teclas de acceso rápido - + Shared "Shared" refers here to the shared input profile. Compartido - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2406,204 +2651,242 @@ No puedes deshacer esta acción. Funciones - + + Module + Módulo + + + + Version + Versión + + + + Count + Conteo + + + Refresh Actualizar - + Filter Filtrar - + Memory Search Buscar en memoria - + End Fin - + Value Valor - + Start Iniciar - + Type Tipo - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Buscar - + Memory Memoria - + Breakpoints Breakpoints - + Threads Hilos - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New Nuevo - + Edit Editar - - - + + + Copy Copiar - + Delete Borrar - - Thread List Context Menu - Thread List Context Menu + + + + Copy all as CSV + Copiar todo como CSV - + + Paste from CSV + Pegar desde CSV + + + + Thread List Context Menu + Thread List Context Menu + + + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copiar nombre de función - + + Copy Function Address Copiar dirección de función - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Árbol de módulo + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Depurador - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2659,22 +2942,22 @@ No puedes deshacer esta acción. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Dispositivo Ethernet: - + Ethernet Device Type: Tipo de dispositivo Ethernet: - + Intercept DHCP Intercept DHCP @@ -2684,135 +2967,130 @@ No puedes deshacer esta acción. Habilitada - + Enabled InterceptDHCP Habilitada - + Subnet Mask: Subnet Mask: - + Gateway Address: Dirección de Gateway: - - + + Auto Automática - + Intercept DHCP: Interceptar DHCP: - + PS2 Address: Dirección de PS2: - + DNS1 Address: Dirección de DNS1: - + DNS2 Address: Dirección de DNS2: - + Internal DNS DNS interno - + Add Agrergar - + Delete Borrar - + Export Exportar - + Import Importar - + Per game Según el juego - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 El DNS interno puede seleccionarse mediante las listas desplegables de DNS1/2 o configurando ambos a 192.0.2.1 - + Enabled InternalDNSTable Activado - + Hard Disk Drive HDD - + HDD File: Archivo de HDD: - + 40 40 - + 120 120 - + HDD Size (GiB): Tamaño del HDD (GiB): - + Enabled HDD Activado - + Browse Buscar - + Create Image Crear imagen - - - - - PCAP Bridged @@ -2845,7 +3123,7 @@ No puedes deshacer esta acción. - + Use Global Setting [%1] Usar ajuste global [%1] @@ -2865,78 +3143,78 @@ No puedes deshacer esta acción. Dirección - - + + Hosts File Archivo Hosts - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts Hosts DNS - + Exported Successfully Exportado con éxito - + Failed to open file Error al abrir el archivo - + No Hosts in file No hay hosts en el archivo - + Imported Successfully Importado con éxito - - + + Per Game Host list Por lista de hosts de juego - + Copy global settings? ¿Copiar ajustes globales? - + Delete per game host list? ¿Borrar por lista de hosts del juego? - + HDD Image File Archivo de imagen de HDD - + HDD (*.raw) HDD (*.raw) - + Overwrite File? ¿Sobreescribir archivo? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3223,22 @@ Do you want to overwrite? ¿Quieres sobreescribir? - + HDD Creator Creador de HDD - + HDD image created Imagen de HDD creada - + Use Global Usar global - + Override Sobreponer @@ -2968,69 +3246,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Vocaldos de dibujo - + Dump GS Draws Volcar dibujos de GS - + Save RT Guardar RT - + Save Frame Cuardar cuadro - + Save Texture Guardar textura - + Save Depth Guardar profundidad - + Start Draw Number: Número de dibujo inicial: - + Draw Dump Count: Dibujar número de vocado: - + Hardware Dump Directory: Directorio de vocado de hardware: - + Software Dump Directory: Directorio de vocado de software: - - + + Browse... Buscar... - - + + Open... Abrir... @@ -3043,29 +3321,53 @@ Do you want to overwrite? Depurador de PCSX2 - - - + + Run Ejecutar - + Step Into Entrar - + + F11 + F11 + + + Step Over Pasar sobre - + + F10 + F10 + + + Step Out Salir - + + Shift+F11 + Shift+F11 + + + + Always On Top + Siempre encima + + + + Show this window on top + Mostrar esta ventana encima + + + Pause Pausar @@ -3078,149 +3380,174 @@ Do you want to overwrite? Desensamblador - + Copy Address Copiar dirección - + Copy Instruction Hex Copiar Hex de instrucción - + Copy Instruction Text Copiar texto de instrucción - + Assemble new Instruction(s) Ensamblar nueva(s) instrucción(ones) - + NOP Instruction(s) Instrucción(ones) NOP - + Run to Cursor Ejecutar a cursor - + Jump to Cursor Saltar a cursor - + Toggle Breakpoint Alternar breakpoint - + Follow Branch Seguir rama - + Go to Address Ir a dirección - + Go to in Memory View Ir al visualizador de memoria - - + + Add Function Añadir función - - + + Rename Function Renombrar función - + Remove Function Quitar función - - + + Assemble Error Error de ensamblado - + Unable to change assembly while core is running No es posible cambiar el ensamblado mientras se ejecuta el núcleo - + Assemble Instruction Instrucción de ensablador - + Go to address Ir a dirección - + Go to address error Ir al error de la dirección - + Invalid address Dirección no válida - + Add Function Error Añadir error de función - + A function entry point already exists here. Consider renaming instead. Ya existe un punto de entrada de función. Considere renombrar en su lugar. - - + + Function will be (0x%1) instructions long. Enter function name La función tendra (0x%1) instrucciones. Inserta el nombre de función - + Function name Nombre de función - - + + Rename Function Error Error al renombrar la función - + Function name cannot be nothing. Nombre de función no puede estar vacío. - + No function / symbol is currently selected. No hay función / simbolo seleccionado actualmente. - + + Restore Function Error + Error al restaurar función + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restaurar instrucción(es) + + + + Restore Function + Restaurar función + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NO ES UNA DIRECCIÓN VALIDA @@ -3228,17 +3555,17 @@ Inserta el nombre de función EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No se han podido encontrar juegos en formatos soportados.</span></p><p>Por favor añade un directorio con juegos para comenzar.</p><p>Dumps de juegos en los siguientes formatos serán escaneados y listados:</p></body></html> - + Add Game Directory... Añadir directorio de juegos... - + Scan For New Games Escanear juegos nuevos @@ -3246,48 +3573,44 @@ Inserta el nombre de función EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Juego: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - ID del Juego: %1 -Titulo del Juego: %2 -Logros: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n puntos - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3295,192 +3618,192 @@ Logros: %5 (%6) EmulationSettingsWidget - + Speed Control - Speed Control + Control de Velocidad - + Normal Speed: - Normal Speed: + Velocidad Normal: - + Enable Speed Limiter - Enable Speed Limiter + Habilitar Limitador de Velocidad - + System Settings - System Settings + Ajustes del Sistema - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Habilitar CDVD rápido - + EE Cycle Skipping: Omisión de ciclos del EE: - - + + Disabled Deshabilitada - + Mild Underclock Underclock leve - + Moderate Underclock Underclock moderado - + Maximum Underclock Underclock máximo - + EE Cycle Rate: Frecuencia de ciclos del EE: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Velocidad normal) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Control de afinidad: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. cuadros - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3526,7 +3849,7 @@ Logros: %5 (%6) Higher values may increase internal framerate in games, but will increase CPU requirements substantially. Lower values will reduce the CPU load allowing lightweight games to run full speed on weaker CPUs. - Higher values may increase internal framerate in games, but will increase CPU requirements substantially. Lower values will reduce the CPU load allowing lightweight games to run full speed on weaker CPUs. + Valores más altos pueden aumentar los cuadros por segundo internos en los juegos, pero aumentarán sustancialmente los requerimientos de la CPU. Valores más bajos reducirán la carga de la CPU permitiendo a los juegos ligeros correr a toda velocidad en CPUs más débiles. @@ -3568,12 +3891,22 @@ Logros: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3614,7 +3947,7 @@ Logros: %5 (%6) Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generalmente acelera CPUs con 4 más núcleos. Seguro para la mayoría de juegos, pero algunos pocos son incompatibles y podrían colgarse. @@ -3637,45 +3970,40 @@ Logros: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3683,79 +4011,79 @@ Logros: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reiniciar - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. - Used for storing covers in the game grid/Big Picture UIs. + Usado para almacenar las carátulas en las interfaces de cuadrícula de juegos y Big Picture. - + Snapshots Directory Directorio de capturas de imagen - + Used for screenshots and saving GS dumps. Usado para capturas de pantalla y guardar volcados de GS. - + Save States Directory Directorio de estados guardados - + Used for storing save states. Usado para almacenar estados guardados. @@ -3763,2082 +4091,2102 @@ Logros: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. + No se pudo encontrar ningún dispositivo de CD/DVD-ROM. Por favor asegúrese de tener un lector conectado y suficientes permisos para acceder a el. - + Use Global Setting Utilizar configuración global - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. - Game title copied to clipboard. + Título del juego copiado al portapapeles. - + Game serial copied to clipboard. - Game serial copied to clipboard. + Número de serie del juego copiado al portapapeles. - + Game CRC copied to clipboard. - Game CRC copied to clipboard. + CRC del juego copiado al portapapeles. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. - Game region copied to clipboard. + Región del juego copiada al portapapeles. - + Game compatibility copied to clipboard. - Game compatibility copied to clipboard. + Compatibilidad del juego copiada al portapapeles. - + Game path copied to clipboard. - Game path copied to clipboard. + Ruta del juego copiada al portapapeles. - + Per-game controller configuration initialized with global settings. - Per-game controller configuration initialized with global settings. + Configuración de control por juego iniciada con la configuración global. - + Controller settings reset to default. - Controller settings reset to default. + Configuración del control reiniciada a sus valores predeterminados. - + No input profiles available. - No input profiles available. + No hay perfiles de entrada disponibles. - + Create New... - Create New... + Crear Nuevo... - + Enter the name of the input profile you wish to create. - Enter the name of the input profile you wish to create. + Introduzca el nombre del perfil de entrada que desee crear. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. - Failed to copy text to clipboard. + Fallo al copiar el texto al portapapeles. - + This game has no achievements. - This game has no achievements. + Este juego no tiene logros. - + This game has no leaderboards. - This game has no leaderboards. + Este juego no tiene tablas de clasificación. - + Reset System Restablecer sistema - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Salir del programa. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. - Push a controller button or axis now. + Oprima un botón o eje ahora. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK Aceptar - + Select Device Select Device - + Details Detalles - + Options Opciones - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Comportamiento - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. - Shows the current controller state of the system in the bottom-left corner of the display. + Muestra el estado actual del control del sistema en la esquina inferior izquierda de la pantalla. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). - Resets configuration to defaults (excluding controller settings). + Restablece la configuración por defecto (excluyendo los ajustes del control). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration - BIOS Configuration + Configuracion del BIOS - + BIOS Selection BIOS Selection - + Options and Patches - Options and Patches + Opciones y parches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Activar cheats - + Enables loading cheats from pnach files. Permite cargar cheats de archivos ".pnach". - + Enable Host Filesystem Activar sistema de archivos del host - + Enables access to files from the host: namespace in the virtual machine. Activa el acceso a los archivos desde el host: namespace en la máquina virtual. - + Enable Fast CDVD Activar CDVD rápido - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Latencia máxima de fotogramas - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Relación de aspecto - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Desentrelazado - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Tamaño de capturas de pantalla - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Calidad de captura de pantalla - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Recortar - + Crops the image, while respecting aspect ratio. Recorta la imagen, respetando la relación de aspecto. - + + %dpx + %dpx + + + Enable Widescreen Patches Activar parches Widescreen - + Enables loading widescreen patches from pnach files. Permite cargar parches widescreen de archivos ".pnach". - + Enable No-Interlacing Patches Activar parches "No-Interlacing" - + Enables loading no-interlacing patches from pnach files. Permite activar parches "No-Interlacing" de archivos ".pnach". - + Bilinear Upscaling Escalado bilinear - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Desenfoque - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Renderizado - + Internal Resolution - Resolución Interna + Resolución interna - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering - Bilinear Filtering + Filtrado bilineal - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering - Anisotropic Filtering + Filtrado anisotrópico - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Escalado bilineal - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Cargar texturas - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Procesamiento - + FXAA - FXAA + FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filtros - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. - Adjusts brightness. 50 is normal. + Ajusta el brillo. 50 es normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Ajusta el contraste. El valor 50 es lo normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. - Adjusts saturation. 50 is normal. + Ajusta la saturación. 50 es normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Crear Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. - Copies the global controller configuration to this game. + Copia la configuración global de control a este juego. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. - The SDL input source supports most controllers. + La fuente de entrada SDL soporta la mayoría de controles. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - The XInput source provides support for XBox 360/XBox One/XBox Series controllers. + La fuente XInput proporciona compatibilidad para los controles de Xbox 360/Xbox One/Xbox Series. - + Multitap - Multitap + Multitap - + Enables an additional three controller slots. Not supported in all games. - Enables an additional three controller slots. Not supported in all games. + Habilita tres puertos de control adicionales. No compatible en todos los juegos. - + Attempts to map the selected port to a chosen controller. - Attempts to map the selected port to a chosen controller. + Intenta mapear el puerto seleccionado a un control elegido. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings - Show Advanced Settings + Mostrar Ajustes Avanzados - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. + Cambiar estas opciones pueden causar que los juegos dejen de funcionar. Modificar bajo su propio riesgo, el equipo de PCSX2 no dará soporte para configuraciones con estos ajustes cambiados. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. - Writes log messages to emulog.txt. + Escribe mensajes de registro en emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Cuadrafónico - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. - + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5847,2221 +6195,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selecciona dónde es utilizado el filtrado anisotrópico al renderizar texturas. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account - Account + Cuenta - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game - Current Game - - - - Achievements Login - Achievements Login + Juego actual - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} - Console Port {} + Puerto de la consola {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points + + Left: + Left: - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Top: + Top: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Right: + Right: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Bottom: + Bottom: - - This game has {} leaderboards. - This game has {} leaderboards. - - - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings - Controller Settings + Ajustes del control - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x - 2x + 2x - + 4x - 4x + 4x - + 8x - 8x + 8x - + 16x - 16x + 16x - + Partial - Partial + Parcial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot - + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed - Uncompressed + Sin comprimir - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) - PS2 (8MB) + PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] - 128 KB [PS1] + 128 KB [PS1] + + + + Negative + Negative - + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played - Time Played + Tiempo jugado - + Last Played Last Played - + Size Size - + Select Disc Image - Select Disc Image + Seleccionar imagen de disco - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS - Start BIOS + Iniciar BIOS - + Start Disc - Start Disc + Iniciar disco - + Exit - Exit + Salir - + Set Input Binding Set Input Binding - + Region - Region + Región - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency - Latency + Latencia - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile - Load Profile + Cargar perfil - + Save Profile - Save Profile + Guardar perfil - + Per-Game Configuration - Per-Game Configuration + Configuración por juego - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} - Controller Port {}{} + Puerto de control {}{} - + Controller Port {} - Controller Port {} + Puerto de control {} - + Controller Type - Controller Type + Tipo de control - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros - Controller Port {}{} Macros + Macros de Puerto de control {}{} - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings - Controller Port {}{} Settings + Ajustes del puerto de control {}{} - + Controller Port {} Settings - Controller Port {} Settings + Ajustes del puerto de control {} - + USB Port {} - USB Port {} + Conector USB {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8074,24 +8323,24 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. Saving screenshot to '{}'. - Guardando captura de pantalla a '{}'. + Guardando captura de pantalla en '{}'. Saved screenshot to '{}'. - Captura de pantalla guardada a '{}'. + Captura de pantalla guardada en '{}'. Failed to save screenshot to '{}'. - Fallo al guardar captura de pantalla a '{}'. + Fallo al guardar captura de pantalla en '{}'. @@ -8129,12 +8378,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8190,7 +8439,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8201,266 +8450,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - - Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: + + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: + + + + No tracks provided. + No tracks provided. + + + + Hash {} is not in database. + Hash {} is not in database. + + + + Data track number does not match data track in database. + Data track number does not match data track in database. + + + + Track {0} with hash {1} is not found in database. + + Track {0} with hash {1} is not found in database. + + + + + Track {0} with hash {1} is for a different game ({2}). + + Track {0} with hash {1} is for a different game ({2}). + + + + + Track {0} with hash {1} does not match database track. + + Track {0} with hash {1} does not match database track. + + + + + GameFixSettingsWidget + + + Game Fixes (NOT recommended to change globally) + Game Fixes (NOT recommended to change globally) + + + + + FPU Negative Divide Hack + FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. + FPU Negative Divide Hack + + + + + FPU Multiply Hack + FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. + FPU Multiply Hack + + + + + Skip MPEG Hack + MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. + Skip MPEG Hack + + + + + Preload TLB Hack + TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. + Preload TLB Hack + + + + + EE Timing Hack + EE: Emotion Engine. Leave as-is. + EE Timing Hack + + + + + Instant DMA Hack + DMA: Direct Memory Access. Leave as-is. + Instant DMA Hack + + + + + OPH Flag Hack + OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. + OPH Flag Hack + + + + + Emulate GIF FIFO + GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. + Emulate GIF FIFO - - No tracks provided. - No tracks provided. + + + DMA Busy Hack + DMA: Direct Memory Access. Leave as-is. + DMA Busy Hack - - Hash {} is not in database. - Hash {} is not in database. + + + Delay VIF1 Stalls + VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. + Delay VIF1 Stalls - - Data track number does not match data track in database. - Data track number does not match data track in database. + + + Emulate VIF FIFO + VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. + Emulate VIF FIFO - - Track {} with hash {} is not found in database. - - Track {} with hash {} is not found in database. - + + + Full VU0 Synchronization + VU0 = VU (Vector Unit) 0. Leave as-is. + Full VU0 Synchronization - - Track {} with hash {} is for a different game ({}). - - Track {} with hash {} is for a different game ({}). - + + + VU I Bit Hack + VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. + VU I Bit Hack - - Track {} with hash {} does not match database track. - - Track {} with hash {} does not match database track. - + + + VU Add Hack + VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. + VU Add Hack - - - GameFixSettingsWidget - - Game Fixes (NOT recommended to change globally) - Game Fixes (NOT recommended to change globally) + + + VU Overflow Hack + VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. + VU Overflow Hack - - FPU Negative Divide Hack (For Gundam Games) - FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + + + VU Sync + VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). + VU Sync - - FPU Multiply Hack (For Tales of Destiny) - FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) + + + VU XGKick Sync + VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. + VU XGKick Sync - + + + Force Blit Internal FPS Detection + Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. + Force Blit Internal FPS Detection + + + + Use Software Renderer For FMVs FMV: Full Motion Video. Find the common used term in your language. Use Software Renderer For FMVs - - Skip MPEG Hack (Skips Videos/FMVs) - MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked - - Preload TLB Hack (For Goemon) - TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + + For Tales of Destiny. + For Tales of Destiny. - - EE Timing Hack (General Purpose Timing Hack) - EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + + For Gundam Games. + For Gundam Games. - - Instant DMA Hack (Good for cache emulation problems) - DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. - - OPH Flag Hack (For Bleach Blade Battlers) - OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. - - Emulate GIF FIFO (Correct But Slower) - GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. - - DMA Busy Hack (Deny Writes When Busy) - DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) - VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. - - Emulate VIF FIFO (Correct But Slower) - VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. - - Full VU0 Synchronization (Correct But Slower) - VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) - VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. - - VU Add Hack (For Tri-Ace Games) - VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. - - VU Overflow Hack (Superman Returns) - VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - VU Sync (Run Behind, M-Bit games) - VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - - VU XGKick Sync (Correct But Slower) - VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. - - Force Blit Internal FPS Detection (When auto-detection fails) - Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Descargando carátula para {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8468,74 +8859,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Escaneo de juegos + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Agregar... - - - + + + Remove Remove - + Search Directory - Search Directory + Seleccionar directorio - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directorio... - + File... Archivo... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Pantalla + + + + + Prefer English Titles + Preferir títulos en inglés + + + + Unchecked + Desmarcado + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8544,12 +8961,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Seleccionar archivo - + Select Directory Seleccionar directorio @@ -8557,32 +8974,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8608,17 +9025,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8636,7 +9053,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8655,399 +9072,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restaurar + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Ordenanto título: + + + + English Title: + Título en inglés: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Polonia) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. - Shared + Compartido - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verificar - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Modo - - + + Start Start - - + + Sectors Sectores - - + + Size Tamaño - - + + MD5 MD5 - - + + Status Estado - - - - - - + + + + + + %1 - %1 + %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9055,62 +9483,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Modo pantalla completa: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Ajustar a ventana / pantalla completa - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9120,12 +9548,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9136,92 +9564,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9229,355 +9657,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Tamaño de captura de pantalla: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9585,79 +10018,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9668,606 +10096,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reiniciar - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturación: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10277,69 +10715,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Permitir pantalla completa exclusiva: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10408,8 +10840,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10461,6 +10893,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10520,11 +10953,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10576,6 +11019,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10591,11 +11089,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10633,7 +11126,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10722,8 +11215,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Pantalla completa sin bordes @@ -10803,7 +11296,7 @@ Swap chain: see Microsoft's Terminology Portal. Control the texture filtering of the emulation. - Control the texture filtering of the emulation. + Controla el filtrado de texturas de la emulación. @@ -10865,11 +11358,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10920,11 +11408,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11042,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11082,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11135,29 +11623,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11165,405 +11663,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Guardar captura de pantalla - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Alternar presentación en pantalla - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No se encontro estado guardado en ranura {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Abrir menú de pausa - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Alternar pausa - + Toggle Fullscreen Alternar pantalla completa - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Apagar maquina virtual - + Reset Virtual Machine Reiniciar maquina virtual - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Estados guardados - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Guardar estado a la ranura seleccionada - + Load State From Selected Slot Cargar estado desde ranura seleccionada - + Save State To Slot 1 - Guardar estado a ranura 1 + Guardar estado en ranura 1 - + Load State From Slot 1 Cargar estado desde ranura 1 - + Save State To Slot 2 - Guardar estado a ranura 2 + Guardar estado en ranura 2 - + Load State From Slot 2 Cargar estado desde ranura 2 - + Save State To Slot 3 - Guardar estado a ranura 3 + Guardar estado en ranura 3 - + Load State From Slot 3 Cargar estado desde ranura 3 - + Save State To Slot 4 - Guardar estado a ranura 4 + Guardar estado en ranura 4 - + Load State From Slot 4 Cargar estado desde ranura 4 - + Save State To Slot 5 - Guardar estado a ranura 5 + Guardar estado en ranura 5 - + Load State From Slot 5 Cargar estado desde ranura 5 - + Save State To Slot 6 - Guardar estado a ranura 6 + Guardar estado en ranura 6 - + Load State From Slot 6 Cargar estado desde ranura 6 - + Save State To Slot 7 - Guardar estado a ranura 7 + Guardar estado en ranura 7 - + Load State From Slot 7 Cargar estado desde ranura 7 - + Save State To Slot 8 - Guardar estado a ranura 8 + Guardar estado en ranura 8 - + Load State From Slot 8 Cargar estado desde ranura 8 - + Save State To Slot 9 - Guardar estado a ranura 9 + Guardar estado en ranura 9 - + Load State From Slot 9 Cargar estado desde ranura 9 - + Save State To Slot 10 - Guardar estado a ranura 10 + Guardar estado en ranura 10 - + Load State From Slot 10 Cargar estado desde ranura 10 @@ -11721,6 +12219,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Izquierda analógica + + + + Right Analog + Derecha analógica + + + + Cross + Cruz + + + + Square + Cuadrado + + + + Triangle + Triangulo + + + + Circle + Círculo + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Abajo + + + + D-Pad Right️ + D-Pad Derecha + + + + D-Pad Up️ + D-Pad Arriba + + + + D-Pad Left️ + D-Pad Izquierda + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11748,137 +12336,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pausar al perder foco - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Guardar estado al apagar - + Pause On Start Pausar al iniciar - + Confirm Shutdown Confirmar apagado - + Create Save State Backups Crear copias de respaldo de estado guardado - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Iniciar pantalla completa - + Double-Click Toggles Fullscreen Doble clic alterna pantalla completa - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Ocultar cursor en pantalla completa - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -11891,25 +12479,25 @@ Right click to clear binding Dark Fusion (Gray) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Dark Fusion (Gray) [Dark] + Dark Fusion (gris) [Oscuro] Dark Fusion (Blue) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Dark Fusion (Blue) [Dark] + Dark Fusion (azul) [Oscuro] Untouched Lagoon (Grayish Green/-Blue ) [Light] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Untouched Lagoon (Grayish Green/-Blue ) [Light] + Untouched Lagoon (verde grisáceo/-azul) [Claro] Baby Pastel (Pink) [Light] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Baby Pastel (Pink) [Light] + Baby Pastel (rosa) [Claro] @@ -11921,19 +12509,19 @@ Right click to clear binding PCSX2 (White/Blue) [Light] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - PCSX2 (White/Blue) [Light] + PCSX2 (blanco/azul) [Claro] Scarlet Devil (Red/Purple) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Scarlet Devil (Red/Purple) [Dark] + Scarlet Devil (rojo/púrpura) [Oscuro] Violet Angel (Blue/Purple) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Violet Angel (Blue/Purple) [Dark] + Violet Angel (azul/púrpura) [Oscuro] @@ -11945,13 +12533,13 @@ Right click to clear binding Ruby (Black/Red) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Ruby (Black/Red) [Dark] + Ruby (negro/rojo) [Oscuro] Sapphire (Black/Blue) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Sapphire (Black/Blue) [Dark] + Sapphire (negro/azul) [Oscuro] @@ -12043,7 +12631,7 @@ Right click to clear binding Creates a backup copy of a save state if it already exists when the save is created. The backup copy has a .backup suffix. Do not translate the ".backup" extension. - Creates a backup copy of a save state if it already exists when the save is created. The backup copy has a .backup suffix. + Crea una copia de seguridad de un estado guardado si este ya existe cuando el guardado es creado. @@ -12071,9 +12659,9 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] - System Language [Default] + Idioma del sistema [Predeterminado] @@ -12119,23 +12707,23 @@ Right click to clear binding PCSX2 - PCSX2 + PCSX2 &System - &System + &Sistema - - + + Change Disc Cambiar disco - + Load State Cargar estado @@ -12147,12 +12735,12 @@ Right click to clear binding S&ettings - S&ettings + A&justes &Help - &Help + &Ayuda @@ -12162,32 +12750,32 @@ Right click to clear binding Switch Renderer - Switch Renderer + Cambiar renderizador &View - &View + &Vista &Window Size - &Window Size + &Tamaño de la ventana &Tools - &Tools + &Herramientas Input Recording - Input Recording + Grabar entrada Toolbar - Toolbar + Barra de herramientas @@ -12212,7 +12800,7 @@ Right click to clear binding &Rescan All Games - &Rescan All Games + &Reescanear todos los juegos @@ -12237,42 +12825,42 @@ Right click to clear binding E&xit - E&xit + S&alir &BIOS - &BIOS + &BIOS Emulation - Emulation + Emulación &Controllers - &Controllers + &Controles &Hotkeys - &Hotkeys + &Atajos de teclado &Graphics - &Graphics + &Gráficos A&chievements - A&chievements + L&ogros &Post-Processing Settings... - &Post-Processing Settings... + &Ajustes de posprocesado... @@ -12282,37 +12870,37 @@ Right click to clear binding Resolution Scale - Resolution Scale + Escala de resolución &GitHub Repository... - &GitHub Repository... + Repositorio de &GitHub... Support &Forums... - Support &Forums... + &Foros de soporte... &Discord Server... - &Discord Server... + Servidor de &Discord... Check for &Updates... - Check for &Updates... + Buscar &actualizaciones... About &Qt... - About &Qt... + Acerca de &Qt... &About PCSX2... - &About PCSX2... + Acerca de PCSX2... @@ -12329,27 +12917,27 @@ Right click to clear binding &Audio - &Audio + &Audio Game List - Game List + Lista de juegos Interface - Interface + Interfaz Add Game Directory... - Add Game Directory... + Añadir directorio de juegos... &Settings - &Settings + &Ajustes @@ -12369,7 +12957,7 @@ Right click to clear binding Remove Disc - Remove Disc + Extraer disco @@ -12433,13 +13021,13 @@ Right click to clear binding Controllers In Toolbar - Controllers + Controles Settings In Toolbar - Settings + Ajustes @@ -12450,27 +13038,27 @@ Right click to clear binding &Memory Cards - &Memory Cards + &Memory Cards &Network && HDD - &Network && HDD + &Red y HDD &Folders - &Folders + &Carpetas &Toolbar - &Toolbar + &Barra de herramientas Lock Toolbar - Lock Toolbar + Bloquear barra de herramientas @@ -12485,7 +13073,7 @@ Right click to clear binding Game &List - Game &List + &Lista de juegos @@ -12496,12 +13084,12 @@ Right click to clear binding Game &Properties - Game &Properties + &Propiedades del juego Game &Grid - Game &Grid + &Cuadrícula de juegos @@ -12640,16 +13228,16 @@ Right click to clear binding - + Start Big Picture Mode - Iniciar modo de imagen grande + Iniciar modo Big Picture - + Big Picture In Toolbar - Imagen grande + Big Picture @@ -12658,7 +13246,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12669,7 +13257,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12684,27 +13272,27 @@ Right click to clear binding Editar parches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12717,168 +13305,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirmar apagado - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Guardar estado para reanudar - - - - - - + + + + + + Error Error - + You must select a disc to change discs. Debes seleccionar un disco para cambiar discos. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List - Exclude From List + Excluir de la lista - + Reset Play Time Reinciar tiempo de juego - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Iniciar archivo - + Start Disc Iniciar disco - + Select Disc Image - Select Disc Image + Seleccionar imagen de disco - + Updater Error - Updater Error + Error del actualizador - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> + <p>Lo sentimos, estás intentando actualizar una versión de PCSX2 que no es una publicación oficial de GitHub. Para evitar incompatibilidades, el actualizador automático sólo está habilitado en compilaciones oficiales.</p><p>Para obtener una compilación oficial, por favor descargue desde el siguiente enlace:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. - Automatic updating is not supported on the current platform. + La actualización automática no es compatible con esta plataforma. - + Confirm File Creation Confirmar creación de archivo - + The pnach file '%1' does not currently exist. Do you want to create it? - The pnach file '%1' does not currently exist. Do you want to create it? + El archivo pnach '%1' no existe. ¿Desea crearlo? - + Failed to create '%1'. - Failed to create '%1'. + Error al crear '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Pausado - + Load State Failed Fallo al cargar estado - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12893,97 +13486,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode - Stop Big Picture Mode + Detener modo Big Picture - + Exit Big Picture In Toolbar - Exit Big Picture + Salir del Big Picture - + Game Properties - Game Properties + Propiedades del juego - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. Este estado guardado no existe. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Fallo al eliminar '%1' - - + + Confirm Reset Confirmar reinicio - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12992,12 +13585,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13010,70 +13603,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Cargar archivo de estado... - + Load From File... Load From File... - - + + Select Save State File Seleccionar archivo de estado guardado - - + + Save States (*.p2s) Estados guardados (*.p2s) - + Delete Save States... Borrar estados guardados... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Borrar estados guardados - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13082,42 +13675,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 estado guardado borrado. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirmar cambio de disco - + Do you want to swap discs or boot the new image (via system reset)? - Do you want to swap discs or boot the new image (via system reset)? + ¿Deseas cambiar de discos o arrancar la nueva imagen (a través del reinicio del sistema)? - + Swap Disc - Swap Disc + Cambiar disco - + Reset Reiniciar @@ -13125,8 +13718,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13207,6 +13800,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13257,11 +13851,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13338,7 +13927,7 @@ The saves will not be recoverable. This is the standard Sony-provisioned size PS1 Memory Card, and only compatible with PS1 games. - El tamaño estándar ofrecido por Sony para Memory Cards de PS1, solo compatible con los juegos de PS1. + Este es el tamaño estándar de Memory Card de PS1 ofrecido por Sony, solo compatible con los juegos de PS1. @@ -13353,22 +13942,22 @@ The saves will not be recoverable. Failed to create the Memory Card, because the name '%1' contains one or more invalid characters. - Error al crear la Memory Card: ya existe otra Memory Card con el nombre «%1» contiene uno o más caracteres inválidos. + Error al crear la Memory Card, porque el nombre '%1' contiene uno o más caracteres inválidos. Failed to create the Memory Card, because another card with the name '%1' already exists. - Error al crear la Memory Card, ya existe otra Memory Card con el nombre «%1». + Error al crear la Memory Card, porque ya existe otra con el nombre '%1'. Failed to create the Memory Card, the log may contain more information. - Error al crear la Memory Card. El registro podría contener más información. + Error al crear la Memory Card, el registro podría contener más información. Memory Card '%1' created. - Memory Card «%1» creada. + Memory Card '%1' creada. @@ -13387,103 +13976,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reiniciar - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13653,58 +14243,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copiar dirección - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13754,10 +14344,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Selecciona un archivo + Pad @@ -13953,6 +14548,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13969,14 +14574,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14023,13 +14628,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14100,40 +14698,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitarra + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 usa tu cámara para emular una cámara EyeToy conectada a la PS2 virtual + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 usa tu micrófono para emular un micrófono USB conectado a la PS2 virtual + + QObject @@ -14151,13 +14772,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14362,7 +14983,6 @@ De otro modo borra el estado guardado y realiza un arranque nuevo. SettingWidgetBinder - @@ -14412,222 +15032,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Usar configuración(es) global(es) [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Usar configuración(es) global(es) [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings - PCSX2 Settings + Ajustes de PCSX2 - + Restore Defaults - Restore Defaults + Restaurar predeterminados - + Copy Global Settings Copiar ajustes globales - + Clear Settings Limpiar ajustes - + Close - Close - - - - - Summary - Summary + Cerrar - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Sumario + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface - Interface + Interfaz - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List - Game List + Lista de juegos - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS - BIOS + BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings - Reinciar ajustes de UI + Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14640,12 +15281,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14658,33 +15299,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14770,8 +15393,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Abrir carpeta de BIOS... @@ -14817,7 +15440,7 @@ Do you want to continue? Controller Port 1 - Controller Port 1 + Puerto de control 1 @@ -14829,7 +15452,7 @@ Do you want to continue? Controller Type: - Controller Type: + Tipo de control: @@ -14847,12 +15470,12 @@ Do you want to continue? Controller Port 2 - Controller Port 2 + Puerto de control 2 <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Setup Complete!</span></h1><p>You are now ready to run games.</p><p>Further options are available under the settings menu. You can also use the Big Picture UI for navigation entirely with a gamepad.</p><p>We hope you enjoy using PCSX2.</p></body></html> - <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Setup Complete!</span></h1><p>You are now ready to run games.</p><p>Further options are available under the settings menu. You can also use the Big Picture UI for navigation entirely with a gamepad.</p><p>We hope you enjoy using PCSX2.</p></body></html> + <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">¡Configuración completa!</span></h1><p>Ahora estás listo para ejecutar juegos.</p><p>Opciones adicionales están disponibles en el menú de ajustes. También puedes usar la interfaz de usuario Big Picture para navegar completamente con un control.</p><p>Esperamos que disfrutes usando PCSX2.</p></body></html> @@ -15038,97 +15661,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15139,12 +15762,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Webcam (EyeToy) - Webcam (EyeToy) + Webcam (EyeToy) Sony EyeToy - Sony EyeToy + Sony EyeToy @@ -15169,7 +15792,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Keyboard - Keyboard + Teclado @@ -15213,7 +15836,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Up - D-Pad Up + Botones de dirección Arriba @@ -15222,7 +15845,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Down - D-Pad Down + Botones de dirección Abajo @@ -15231,7 +15854,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Left - D-Pad Left + Botones de dirección Izquierda @@ -15240,7 +15863,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Right - D-Pad Right + Botones de dirección Derecha @@ -15334,6 +15957,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15365,6 +15993,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15380,6 +16014,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15400,6 +16040,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15455,6 +16101,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15655,6 +16310,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15665,6 +16340,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16060,7 +16741,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. DJ Hero Turntable - Mando DJ Hero Turntable + Tornamesa DJ Hero @@ -16153,128 +16834,128 @@ Scanning recursively takes more time, but will identify files in subdirectories. Axes - Axes + Ejes Buttons - Buttons + Botones USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circulo - + Cross Cruz - + Triangle Triangulo - + Square Cuadrado - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16282,67 +16963,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Acelerador @@ -16350,71 +17031,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Botones - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Abajo - - + + Left Izquierda - - + + Up Arriba - - + + Right Derecha - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16423,29 +17104,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16453,54 +17134,54 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Tipo de dispositivo - + Bindings Bindings - + Settings Ajustes - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping USB Port %1 - USB Port %1 + Conector USB %1 No devices available - No devices available + Ningún dispositivo disponible Clear Bindings - Clear Bindings + Quitar asignaciones Are you sure you want to clear all bindings for this device? This action cannot be undone. - Are you sure you want to clear all bindings for this device? This action cannot be undone. + ¿Está seguro de que quiere quitar todas las asignaciones para este dispositivo? Esta acción no puede deshacerse. Automatic Binding - Automatic Binding + Asignación automática @@ -16511,32 +17192,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Fallo al guardar estado guardado: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Juego desconocido - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16544,206 +17225,226 @@ For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own Once dumped, this BIOS image should be placed in the bios folder within the data directory (Tools Menu -> Open Data Directory). Please consult the FAQs and Guides for further instructions. - PCSX2 requires a PS2 BIOS in order to run. + PCSX2 requiere un BIOS de PS2 para poder ejecutarse. -For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). +Por razones legales, *debes* obtener un BIOS de una unidad PS2 real de tu propiedad (el préstamo no cuenta). -Once dumped, this BIOS image should be placed in the bios folder within the data directory (Tools Menu -> Open Data Directory). +Una vez descargada, esta imagen del BIOS debe colocarse en la carpeta BIOS dentro del directorio de datos (Menú Herramientas -> Abrir directorio de datos). -Please consult the FAQs and Guides for further instructions. +Por favor consulte las preguntas frecuentes y las guías para obtener más instrucciones. + + + + Resuming state + Reanudando estado - + State saved to slot {}. - Guardar estado a ranura {}. + Estado guardado en la ranura {}. - + Failed to save save state to slot {}. - Fallo al guardar estado a ranura {}. + Fallo al guardar estado en la ranura {}. - + + + Loading state + Cargando estado + + + There is no save state in slot {}. - No hay estado guardado en ranura {}. + No hay estado guardado en la ranura {}. - + Loading state from slot {}... - Cargando estade desde ranura {}... + Cargando estado desde la ranura {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Avance de cuadros + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disco cambiado a '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_es-ES.ts b/pcsx2-qt/Translations/pcsx2-qt_es-ES.ts index 770a0f2726d878..d8f52ce5b56829 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_es-ES.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_es-ES.ts @@ -80,32 +80,38 @@ En espera... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Tu token de acceso de RetroAchievements ha dejado de ser válido.</strong> Debes volver a introducir tus credenciales para poder hacer el seguimiento de tus logros. PCSX2 no almacenará tu contraseña, sino que generará y utilizará un token de acceso. - + &Login &Iniciar sesión - + Logging in... Iniciando sesión... - + Login Error Error de inicio de sesión - - Login failed. Please check your username and password, and try again. - Error al iniciar la sesión. Comprueba tu nombre de usuario y contraseña y vuelve a intentarlo. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + No se ha podido iniciar la sesión. +Error: %1 + +Comprueba tu nombre de usuario y contraseña y vuelve a intentarlo. - + Login failed. Error al iniciar sesión. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Configuración global - - - - + + Enable Achievements Habilitar logros - - - Show Challenge Indicators - Mostrar indicadores de desafío - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Habilitar presencia en RA - - - - + + Enable Hardcore Mode Habilitar modo «hardcore» - - - Enable Leaderboards - Habilitar tablas de clasificación - - - + Test Unofficial Achievements Probar logros no oficiales - - - Enable Test Mode - Habilitar modo de pruebas - - - - + + Enable Sound Effects Habilitar efectos de sonido - + Notifications Notificaciones - - - Show Notifications - Mostrar notificaciones - - - - Duration - Duración - - - - - - + + 5 seconds 5 segundos - + Account Cuenta - - + + Login... Iniciar sesión... - + View Profile... Ver perfil... - + + Settings + Configuración + + + + + Enable Spectator Mode + Habilitar modo espectador + + + + + Enable Encore Mode + Habilitar modo «encore» (nueva partida) + + + + + Show Achievement Notifications + Mostrar notificaciones de logros + + + + + Show Leaderboard Notifications + Mostrar notificaciones de tablas + + + + + Enable In-Game Overlays + Superposiciones dentro del juego + + + + Username: +Login token generated at: + Nombre de usuario: +Token de acceso generado el: + + + Game Info Información del juego - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 utiliza RetroAchievements como base de datos de logros y para hacer un seguimiento de tus progresos. Si quieres utilizar los logros, debes registrarte en <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Para ver la lista de logros durante una partida, pulsa la tecla de acceso rápido para <span style=" font-weight:600;">abrir el menú de pausa</span> y selecciona en el menú la opción <span style=" font-weight:600;">Logros</span>.</p></body></html> + - seconds - segundos - - - - + + - - Unchecked desactivado - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Al activar esta opción y una vez hayas iniciado sesión, PCSX2 buscará logros al iniciar un juego. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Al activar esta opción, PCSX2 asumirá que todos los logros están bloqueados y no enviará notificaciones de desbloqueo al servidor. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Al activar esta opción, PCSX2 mostrará los logros de colecciones no oficiales. Ten en cuenta que RetroAchievements no hace un seguimiento de estos logros, así que se desbloquearán constantemente. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Al activar esta opción, se recopilará la información de presencia y se enviará a los servidores de RetroAchievements en aquellos casos que sean compatibles. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. El modo más desafiante, que incluye un seguimiento de las tablas de clasificación. Desactiva las características de guardado rápido, trucos y ralentización. - - - - + + + + Checked activado - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Activa el seguimiento y envío de tablas de clasificación para aquellos juegos que sean compatibles. Si desactivas las tablas de clasificación, podrás seguir viendo las tablas y sus puntuaciones, pero no se enviará ninguna puntuación. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Muestra mensajes emergentes en ciertas situaciones, como el desbloqueo de logros y el envío de puntuaciones a las tablas. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Reproduce efectos de sonido en ciertas situaciones, como el desbloqueo de logros y el envío de puntuaciones a las tablas. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Muestra iconos en la esquina inferior derecha de la pantalla cuando haya un logro activo o un desafío. - - - - Notification Duration - Duración de notificaciones + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Al activar esta opción e iniciar una sesión, PCSX2 buscará logros al arrancar. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Muestra mensajes emergentes en ciertas situaciones, como el desbloqueo de logros o al pasarte un juego. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Muestra mensajes emergentes al activar, enviar o fracasar un desafío de una tabla de clasificación. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Indica el tiempo (en segundos) que permanecerá en pantalla una notificación sobre logros. + + When enabled, each session will behave as if no achievements have been unlocked. + Al activar esta opción, cada sesión de juego se comportará como si no se hubiesen desbloqueado logros. - + Reset System Reiniciar el sistema - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? El modo «hardcore» no se activará hasta que se reinicie el sistema. ¿Deseas reiniciar ahora? + + + + %n seconds + + %n segundo + %n segundos + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Nombre de usuario: %1 Token de acceso generado el %2. - + Logout Cerrar sesión - + Not Logged In. No se ha iniciado sesión. - - - %1 seconds - %1 segundos - Achievements - + Hardcore mode will be enabled on system reset. El modo «hardcore» se activará al reiniciar el sistema. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - No se puede ejecutar la característica «{0}» mientras el modo «hardcore» esté activo. ¿Deseas desactivar el modo «hardcore»? Si seleccionas No, se desactivará la característica «{0}». + No se puede ejecutar la característica de {0} mientras el modo «hardcore» esté activo. ¿Deseas desactivar el modo «hardcore»? Si seleccionas No, se cancelará la acción. - + Hardcore mode is now enabled. El modo «hardcore» está activado. - + + {} (Hardcore Mode) + {} (modo «hardcore») + + + + {} (Unofficial) + {} (no oficial) + + + + Mastered {} + Has dominado {} + + + + Leaderboard attempt started. + Intento de entrar en tabla de clasificación iniciado. + + + + Leaderboard attempt failed. + Intento de entrar en tabla de clasificación fallido. + + + + Your Time: {}{} + Tu tiempo: {}{} + + + + Your Score: {}{} + Tu puntuación: {}{} + + + + Your Value: {}{} + Tu valor: {}{} + + + + (Submitting) + (enviando) + + + + Achievements Disconnected + Logros desconectados + + + + An unlock request could not be completed. We will keep retrying to submit this request. + No se ha podido completar una petición de desbloqueo. La petición seguirá reenviándose. + + + + Achievements Reconnected + Logros reconectados + + + + All pending unlock requests have completed. + Se han completado todas las peticiones de desbloqueo pendientes. + + + Hardcore mode is now disabled. El modo «hardcore» está desactivado. - + + Confirm Hardcore Mode + Confirmar modo «hardcore» + + + + Active Challenge Achievements + Logros de desafío activos + + + (Hardcore Mode) (modo «hardcore») - - You have earned {0} of {1} achievements, and {2} of {3} points. + + You have unlocked all achievements and earned {} points! + ¡Has desbloqueado todos los logros y has ganado {} puntos! + + + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. Has obtenido {0} de {1} logros y {2} de {3} puntos. - - This game has no achievements. - Este juego no tiene logros. + + {0} achievements, {1} points + {0} logros, {1} puntos + + + + Your Time: {0} (Best: {1}) + Tu tiempo: {0} (Mejor: {1}) + + + + Your Score: {0} (Best: {1}) + Tu puntuación: {0} (Mejor: {1}) + + + + Your Value: {0} (Best: {1}) + Tu valor: {0} (Mejor: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Posición en tabla: {1} de {2} + + + + Server error in {0}: +{1} + Error del servidor en {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Puntuación: {0} ({1} en modo normal) +Mensajes sin leer: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Has obtenido {0} de {1} logros y {2} de {3} puntos. + + + + Unknown + Desconocidos + + + + Locked + Bloqueados + + + + Unlocked + Desbloqueados + + + + Unsupported + No admitidos + + + + Unofficial + No oficiales + + + + Recently Unlocked + Desbloqueados recientemente + + + + Active Challenges + Desafíos activos + + + + Almost There + A punto de desbloquearse + + + + {} points + {} puntos + + + + {} point + {} punto + + + + XXX points + XXX puntos + + + + Unlocked: {} + Desbloqueado: {} + + + + This game has {} leaderboards. + Este juego tiene {} tablas de clasificación. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + No se enviarán puntuaciones porque el modo «hardcore» está desactivado. Las tablas de puntuaciones están en modo de solo lectura. + + + + Show Best + Mostrar primeros + + + + Show Nearby + Mostrar cercanos + + + + Rank + Rango + + + + Name + Nombre + + + + Time + Fecha + + + + Score + Puntuación + + + + Value + Valor + + + + Date Submitted + Fecha de envío + + + + Downloading leaderboard data, please wait... + Descargando datos de la tabla de clasificación, espera... + + + + + Loading... + Cargando... - - Leaderboard submission is enabled. - El envío de información a las tablas de clasificación está activado. + + + Leaderboard download failed + Error al descargar la tabla de clasificación - + + This game has no achievements. + Este juego no tiene logros. + + + Failed to read executable from disc. Achievements disabled. Error al leer el ejecutable del disco. Logros desactivados. @@ -441,12 +678,12 @@ Token de acceso generado el %2. Wait Loop Detection Wait loop: When the game makes the CPU do nothing (loop/spin) while it waits for something to happen (usually an interrupt). - Detección de bucles en espera + Detección de bucles de espera Moderate speedup for some games, with no known side effects. - Mejora moderadamente la velocidad de algunos juegos sin tener efectos secundarios conocidos. + Mejora moderadamente la velocidad de algunos juegos sin efectos secundarios conocidos. @@ -468,7 +705,7 @@ Token de acceso generado el %2. INTC Spin Detection INTC = Name of a PS2 register, leave as-is. "spin" = to make a cpu (or gpu) actively do nothing while you wait for something. Like spinning in a circle, you're moving but not actually going anywhere. - Detección de valores de INTC + Detección de bucles en el INTC @@ -494,7 +731,7 @@ Token de acceso generado el %2. Pauses the virtual machine when a TLB miss occurs, instead of ignoring it and continuing. Note that the VM will pause after the end of the block, not on the instruction which caused the exception. Refer to the console to see the address where the invalid access occurred. - Cuando haya un fallo de ejecución del TLB, se pausará la máquina virtual en lugar de ignorar el error y continuar. Ten en cuenta que la máquina se parará al final del bloque, no en la instrucción que provoque la excepción. Para saber cuál es la dirección donde ha tenido lugar el acceso inválido, ve a la consola. + Cuando haya un fallo de ejecución del TLB, se pausará la máquina virtual en lugar de ignorar el error y continuar. Ten en cuenta que se parará al final del bloque, no en la instrucción que provoque la excepción. Para saber cuál es la dirección donde ha tenido lugar el acceso inválido, ve a la consola. @@ -578,220 +815,220 @@ Token de acceso generado el %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Cambiar estas opciones puede provocar que los juegos dejen de funcionar. Modifícalas por tu cuenta y riesgo: el equipo de PCSX2 no dará soporte técnico a configuraciones que tengan estos ajustes cambiados. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Modo de redondeo: - - - + + + Nearest Por proximidad - - - + + + Negative Negativo - - - + + + Positive Positivo - - - + + + Chop / Zero (Default) Eliminar/cero (predeterminado) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Modo de limitación: - - + + None No hacer nada - - - + + + Normal (Default) Normal (predeterminado) - + None ClampMode Desactivado - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + conservar signo - + Full Completo - + Wait Loop Detection - Detección de bucles en espera + Detección de bucles de espera - - + + Enable Recompiler Habilitar recompilador - + Enable Fast Memory Access Habilitar acceso rápido a memoria - + Enable Cache (Slow) Habilitar caché (lento) - + INTC Spin Detection - Detección de valores de INTC + Detección de bucles en el INTC - + Pause On TLB Miss Pausar al fallar el TLB - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (unidades vectoriales, VU) - + VU1 Rounding Mode: Modo de redondeo de la VU1: - + mVU Flag Hack Corrección del indicador de mVU - + Enable VU1 Recompiler Habilitar recompilador de la VU1 - + Enable VU0 Recompiler (Micro Mode) Habilitar recompilador de la VU0 (modo micro) - - + + Extra Extra - + VU0 Clamping Mode: Modo de limitación de la VU0: - + VU0 Rounding Mode: Modo de redondeo de la VU0: - + VU1 Clamping Mode: Modo de limitación de la VU1: - + I/O Processor (IOP, MIPS-I) Procesador de E/S (IOP, MIPS-I) - + Game Settings Ajustes para juegos - + Enable Game Fixes Habilitar correcciones para juegos - + Enable Compatibility Patches Habilitar parches de compatibilidad - + Frame Rate Control Control de velocidad de fotogramas - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. -  hz +  Hz - + PAL Frame Rate: Velocidad de fotogramas PAL: - + NTSC Frame Rate: Velocidad de fotogramas NTSC: - + PINE Settings Ajustes de PINE - + Slot: - Ranura: + «Slot»: - + Enable Habilitar @@ -799,182 +1036,182 @@ Token de acceso generado el %2. AudioSettingsWidget - + Timestretch Settings Ajustes de expansión de tiempo - + Sequence Length: Longitud de secuencia: - + 30 30 - + Seekwindow Size: Tamaño de ventana de búsqueda: - + 20 20 - + Overlap: Solapamiento: - + 10 10 - + Restore Defaults Restaurar valores predeterminados - + Volume Volumen - + 100% 100 % - + Mixing Settings Ajustes de mezcla - + Synchronization: Sincronización: - + TimeStretch (Recommended) Expansión de tiempo (recomendada) - + Async Mix (Breaks some games!) Mezcla asíncrona (¡rompe algunos juegos!) - + None (Audio can skip.) Ninguna (puede haber cortes de audio) - + Expansion: Expansión: - + Stereo (None, Default) Estéreo (ninguna, predeterminada) - + Quadraphonic - Quadraphonic + Sonido cuadrafónico - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Nivel de ProLogic: - + None (Default) Ninguno (predeterminado) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Decodificación ProLogic (básica) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Decodificación ProLogic II (gigaherz) - + Target Latency: Latencia objetivo: - + 60 ms 60 ms - + Output Settings Ajustes de salida - + Output Module: Módulo de salida: - + Output Latency: Latencia de salida: - + 20 ms 20 ms - + Minimal Mínima - + Output Backend: «Back-end» de salida: - + Maximum Latency: Latencia máxima: - + Output Device: Dispositivo de salida: @@ -1011,7 +1248,7 @@ Token de acceso generado el %2. Determines how the stereo output from the emulated system is upmixed into a greater number of the output speakers. - Determina cómo se mezclará la salida estéreo del sistema emulado a un número mayor de altavoces. + Determina cómo se remezclará la salida estéreo del sistema emulado a un número mayor de altavoces. @@ -1061,7 +1298,7 @@ Token de acceso generado el %2. Determines the buffer size which the time stretcher will try to keep filled. It effectively selects the average latency, as audio will be stretched/shrunk to keep the buffer size within check. - Determina el tamaño del búfer que intentará mantener lleno el expansor de tiempo. A efectos prácticos, selecciona la latencia media, ya que el audio será expandido o contraído para mantener el tamaño del búfer dentro de los límites. + Determina el tamaño del búfer que intentará ocupar el expansor de tiempo. A efectos prácticos, selecciona la latencia media, ya que el audio será ampliado o reducido para mantener el tamaño del búfer dentro de los límites. @@ -1071,7 +1308,7 @@ Token de acceso generado el %2. Determines the latency from the buffer to the host audio output. This can be set lower than the target latency to reduce audio delay. - Determina la latencia entre el búfer y la salida de audio del «host». Puede reducirse por debajo de la latencia objetivo para minimizar el retraso en la señal de audio. + Determina la latencia entre el búfer y la salida de audio del equipo. Puede reducirse por debajo de la latencia objetivo para minimizar el retraso en la señal de audio. @@ -1162,17 +1399,22 @@ Token de acceso generado el %2. Versión más reciente: - + + Download Size: + Tamaño de descarga: + + + Download and Install... Descargar e instalar... - + Skip This Update Omitir esta actualización - + Remind Me Later Recordar más tarde @@ -1182,17 +1424,17 @@ Token de acceso generado el %2. Error del actualizador - + <h2>Changes:</h2> <h2>Cambios:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Advertencia sobre los guardados rápidos</h2><p>La instalación de esta actualización hará que tus guardados rápidos <b>dejen de ser compatibles</b>. Asegúrate de haber guardado tus avances en una Memory Card antes de instalar esta actualización, o perderás dichos avances.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Advertencia sobre la configuración</h2><p>La instalación de esta actualización reiniciará la configuración del programa. Recuerda que tendrás que volver a cambiar los ajustes del programa una vez se haya aplicado esta actualización.</p> @@ -1233,6 +1475,11 @@ Token de acceso generado el %2. + Download Size: %1 MB + Tamaño de descarga: %1 MB + + + Loading... Cargando... @@ -1240,63 +1487,63 @@ Token de acceso generado el %2. BIOSSettingsWidget - + BIOS Directory Directorio de BIOS - + PCSX2 will search for BIOS images in this directory. PCSX2 buscará imágenes de la BIOS en este directorio. - + Browse... Buscar... - + Reset Reiniciar - + BIOS Selection Selección de BIOS - - Open in Explorer... - Abrir en el explorador... + + Open BIOS Folder... + Abrir carpeta de BIOS... - + Refresh List Actualizar lista - + Filename Nombre de archivo - + Version Versión - + Options and Patches Opciones y parches - + Fast Boot Arranque rápido - + Fast Forward Boot Acelerar arranque @@ -1424,91 +1671,84 @@ Token de acceso generado el %2. BreakpointModel - + Execute Ejecución - - No Condition - Sin condición - - - - + + -- -- - - + Enabled Activado - - + Disabled Desactivado - + Read Lectura - + Write(C) (C) = changes, as in "look for changes". Escritura (C) - + Write Escritura - + TYPE Warning: limited space available. Abbreviate if needed. TIPO - + OFFSET Warning: limited space available. Abbreviate if needed. DESPLAZ. - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. TAM./ETIQUETA - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCCIÓN - + CONDITION Warning: limited space available. Abbreviate if needed. CONDICIÓN - + HITS Warning: limited space available. Abbreviate if needed. EJECUCIONES - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ACTIVO + X @@ -1519,7 +1759,7 @@ Token de acceso generado el %2. El disco de juego se encuentra en una unidad extraíble: pueden producirse problemas de rendimiento, como pueden ser tirones y cuelgues. - + Saving CDVD block dump to '{}'. Guardando volcado de bloque del CDVD en «{}». @@ -1555,32 +1795,32 @@ Token de acceso generado el %2. ControllerBindingWidget - + Virtual Controller Type Tipo de mando virtual - + Bindings Asignaciones - + Settings Configuración - + Macros Macros - + Automatic Mapping Asignación automática - + Clear Mapping Borrar asignaciones @@ -1620,146 +1860,146 @@ Token de acceso generado el %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Botones de dirección - - - + + + Down Abajo - - - + + + Left Izquierda - - - + + + Up Arriba - - - + + + Right Derecha - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Joystick analógico izquierdo - + Large Motor Motor grande - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. START - + Select Leave this button name as-is or uppercase it entirely. SELECT - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Botones de acción - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cruz/X - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cuadrado - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triángulo - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Círculo - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Joystick analógico derecho - + Small Motor Motor pequeño - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Modificador de presión - + Analog ANALOG @@ -1767,77 +2007,72 @@ Token de acceso generado el %2. ControllerBindingWidget_Guitar - - Form - Formulario - - - + Yellow Amarillo - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start START - + Red Rojo - + Green Verde - + Orange Naranja - + Select SELECT - + Strum Up Barra de toque hacia arriba - + Strum Down Barra de toque hacia abajo - + Blue Azul - + Whammy Bar Barra de trémolo - + Tilt Inclinación @@ -1847,7 +2082,7 @@ Token de acceso generado el %2. Restore Default Settings - Valores predeterminados + Restaurar configuración predeterminada @@ -1863,123 +2098,133 @@ Token de acceso generado el %2. ControllerGlobalSettingsWidget - + SDL Input Source Origen de entrada SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). El origen de entrada SDL es compatible con la mayoría de mandos y ofrece funcionalidades avanzadas para los mandos DualShock 4/DualSense en el modo Bluetooth (vibración/control de la luz led). - + Enable SDL Input Source Habilitar origen de entrada SDL - + DualShock 4 / DualSense Enhanced Mode Modo mejorado para DualShock 4/DualSense - + XInput Source Origen XInput - + Enable XInput Input Source Habilitar origen de entrada XInput - + DInput Source Origen DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. El origen DInput ofrece compatibilidad para mandos obsoletos que no son compatibles con XInput. Se recomienda acceder a estos mandos a través de SDL, pero si no son compatibles con SDL, puedes utilizar DirectInput. - + Enable DInput Input Source Habilitar origen de entrada DInput - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Algunos mandos de terceros indican erróneamente que los valores positivos de sus joysticks analógicos están invertidos, pero no hacen lo mismo con los valores negativos.</p><p>Esto producirá que el joystick analógico se quede «enganchado», aunque se encuentre en su posición neutral. </p><p>Al activar esta opción, indicarás a PCSX2 que ignore los indicadores de inversión al crear asignaciones, lo que permitirá que estos mandos funcionen correctamente.</p></body></html> + + + + Ignore Inversion + Ignorar inversión + + + Profile Settings Ajustes del perfil - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Al activar esta opción se podrán asignar teclas de acceso rápido a este perfil de entrada, que se utilizarán en vez de las teclas globales. Las teclas de acceso rápido se comparten siempre entre todos los perfiles de forma predeterminada. - + Use Per-Profile Hotkeys Utilizar teclas de acceso rápido específicas para el perfil - - + + Controller LED Settings Ajustes del led de los mandos - + Enable SDL Raw Input Habilitar entrada sin procesar SDL - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. El origen XInput ofrece compatibilidad para los mandos de Xbox 360/Xbox One/Xbox Series, así como para aquellos mandos de terceros que tengan implementado el protocolo XInput. - + Controller Multitap Multitap de mandos - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Los multitap permiten conectar hasta ocho mandos a la consola. Un multitap proporciona cuatro puertos. No todos los juegos son compatibles con los multitap. - + Multitap on Console Port 1 Multitap en el puerto de mando 1 - + Multitap on Console Port 2 Multitap en el puerto de mando 2 - + Mouse/Pointer Source Origen de ratón/puntero - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 te permite utilizar el ratón para simular el movimiento de los joysticks analógicos. - + Settings... Configurar... - + Enable Mouse Mapping Habilitar asignaciones del ratón - + Detected Devices Dispositivos detectados @@ -2015,58 +2260,58 @@ Token de acceso generado el %2. ControllerMacroEditWidget - + Binds/Buttons Asignaciones/Botones - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Selecciona los botones que deseas activar con esta macro. Se activarán todos los botones a la vez. - + Pressure Presión - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Este control deslizante ajusta la fuerza que se simulará en aquellos botones sensibles a la presión cuando se active la macro. - - + + 100% 100 % - + Trigger Desencadenador - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Selecciona el desencadenador que activará esta macro. Puede ser un botón o una combinación de botones (simultánea). Pulsa el botón mientras mantienes pulsada la tecla Mayús para asignar varios desencadenadores. - + Deadzone: Zona muerta: - + Frequency Frecuencia - + Macro will toggle every N frames. La macro se alternará cada X fotogramas. - + Set... Establecer... @@ -2169,46 +2414,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings Ajustes de mandos de PCSX2 - + Editing Profile: Perfil a editar: - + New Profile Perfil nuevo - + Load Profile Cargar perfil - + Delete Profile Eliminar perfil - - + + Restore Defaults Restaurar valores predeterminados - - + + Create Input Profile Crear perfil de entrada - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2464,35 @@ Para aplicar un perfil de entrada personalizado a un juego, ve a sus propiedades Introduce el nombre del perfil de entrada nuevo: - - - - + + + + Error Error - + A profile with the name '%1' already exists. Ya existe un perfil con el nombre «%1». - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. ¿Deseas copiar todas las asociaciones del perfil actual al nuevo? Si seleccionas No, se creará un perfil en blanco. - + Failed to save the new profile to '%1'. Error al guardar el perfil nuevo en «%1». - + Load Input Profile Cargar perfil de entrada - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2505,12 @@ Se perderán todas las asociaciones globales y las asociaciones del perfil carga No es posible deshacer esta acción. - + Delete Input Profile Eliminar perfil de entrada - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2519,12 @@ You cannot undo this action. No es posible deshacer esta acción. - + Failed to delete '%1'. Error al eliminar «%1». - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2537,13 @@ Se perderán todas las asociaciones y configuraciones compartidas, pero se conse No es posible deshacer esta acción. - + Global Settings Ajustes globales - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2551,8 @@ No es posible deshacer esta acción. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2560,26 @@ No es posible deshacer esta acción. %2 - - + + USB Port %1 %2 Puerto USB %1 %2 - + Hotkeys Teclas de acceso rápido - + Shared "Shared" refers here to the shared input profile. Compartido - + The input profile named '%1' cannot be found. No se ha podido encontrar el perfil de entrada «%1». @@ -2354,7 +2599,7 @@ No es posible deshacer esta acción. <html><head/><body><p>In the box below, specify the URLs to download covers from, with one template URL per line. The following variables are available:</p><p><span style=" font-style:italic;">${title}:</span> Title of the game.<br/><span style=" font-style:italic;">${filetitle}:</span> Name component of the game's filename.<br/><span style=" font-style:italic;">${serial}:</span> Serial of the game.</p><p><span style=" font-weight:700;">Example:</span> https://www.example-not-a-real-domain.com/covers/${serial}.jpg</p></body></html> - <html><head/><body><p>Introduce en el siguiente cuadro de texto las direcciones URL desde las que se descargarán las carátulas, escribiendo una URL de plantilla por línea. Estas son las variables disponibles:</p><p><span style=" font-style:italic;">${title}:</span> título del juego.<br/><span style=" font-style:italic;">${filetitle}:</span> elemento del nombre de archivo del juego.<br/><span style=" font-style:italic;">${serial}:</span> número de serie del juego.</p><p><span style=" font-weight:700;">Ejemplo:</span> https://www.ejemplo-de-un-dominio-que-no-es-real.com/caratulas/${serial}.jpg</p></body></html> + <html><head/><body><p>Introduce en el siguiente cuadro de texto las direcciones URL desde las que se descargarán las carátulas, escribiendo un modelo de URL por línea. Estas son las variables disponibles:</p><p><span style=" font-style:italic;">${title}:</span> título del juego.<br/><span style=" font-style:italic;">${filetitle}:</span> elemento del nombre de archivo del juego.<br/><span style=" font-style:italic;">${serial}:</span> número de serie del juego.</p><p><span style=" font-weight:700;">Ejemplo:</span> https://www.ejemplo-de-un-dominio-que-no-es-real.com/caratulas/${serial}.jpg</p></body></html> @@ -2406,204 +2651,242 @@ No es posible deshacer esta acción. Funciones - + + Module + Módulo + + + + Version + Versión + + + + Count + Recuento + + + Refresh Actualizar - + Filter Filtrar - + Memory Search Buscar en memoria - + End Fin - + Value Valor - + Start Inicio - + Type Tipo - + 1 Byte (8 bits) 1 byte (8 bits) - + 2 Bytes (16 bits) 2 bytes (16 bits) - + 4 Bytes (32 bits) 4 bytes (32 bits) - + 8 Bytes (64 bits) 8 bytes (64 bits) - + Float Valor de coma flotante - + Double Doble - + String Cadena de texto - + Array of byte - Vector de bytes + Matriz de bytes - + Hex Hexad. - + Search Buscar - + Memory Memoria - + Breakpoints Puntos de interrupción - + Threads Subprocesos - + Active Call Stack Pila de llamadas activa - + Breakpoint List Context Menu Menú contextual de lista de puntos de interrupción - + New Nuevo - + Edit Editar - - - + + + Copy Copiar - + Delete Eliminar - + + + + Copy all as CSV + Copiar todo en formato CSV + + + + Paste from CSV + Pegar de formato CSV + + + Thread List Context Menu Menú contextual de lista de subprocesos - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Descifrar símbolos - + + Copy Function Name Copiar nombre de función - + + Copy Function Address Copiar dirección de función - + + Go to in Disassembly Ver en desensamblador - + + Go to in Memory View Ver en visualizador de memoria - + + + Module Tree + Árbol del módulo + + + Stack List Context Menu Menú contextual de la lista de la pila - - - - - + + + + + Debugger Depurador - + Invalid start address Dirección de inicio no válida - + Invalid end address Dirección de fin no válida - + Start address can't be equal to or greater than the end address La dirección de inicio no puede ser igual o superior a la dirección de fin - + Invalid search value Valor a buscar no válido - + Value is larger than type El valor es mayor que el tipo @@ -2633,7 +2916,7 @@ No es posible deshacer esta acción. Selected - Seleccionada + Seleccionado @@ -2653,28 +2936,28 @@ No es posible deshacer esta acción. Enabled - Habilitada + Habilitado DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Dispositivo Ethernet: - + Ethernet Device Type: Tipo de dispositivo Ethernet: - + Intercept DHCP Interceptar DHCP @@ -2684,135 +2967,130 @@ No es posible deshacer esta acción. Habilitado - + Enabled InterceptDHCP Habilitar - + Subnet Mask: Máscara de subred: - + Gateway Address: Dirección de puerta de enlace: - - + + Auto Automática - + Intercept DHCP: Interceptar DHCP: - + PS2 Address: Dirección de PS2: - + DNS1 Address: Dirección de DNS1: - + DNS2 Address: Dirección de DNS2: - + Internal DNS DNS interno - + Add Añadir - + Delete Eliminar - + Export Exportar - + Import Importar - + Per game - Según el juego + Individual - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - El DNS interno puede seleccionarse mediante las listas desplegables de DNS1/2 o configurando ambos a 192.0.2.1 + El DNS interno puede seleccionarse con las listas desplegables de DNS1/2 o configurando ambos a 192.0.2.1 - + Enabled InternalDNSTable Habilitar - + Hard Disk Drive Disco duro - + HDD File: Archivo de HDD: - + 40 40 - + 120 120 - + HDD Size (GiB): Tamaño del HDD (GiB): - + Enabled HDD Habilitar - + Browse Buscar - + Create Image Crear imagen - - - - - PCAP Bridged @@ -2845,7 +3123,7 @@ No es posible deshacer esta acción. - + Use Global Setting [%1] Utilizar configuración global [%1] @@ -2865,78 +3143,78 @@ No es posible deshacer esta acción. Dirección - - + + Hosts File Archivo de hosts - - + + ini (*.ini) Archivo .ini (*.ini) + - - - + + DNS Hosts Hosts de DNS - + Exported Successfully Datos exportados correctamente - + Failed to open file Error al abrir el archivo - + No Hosts in file No hay hosts en el archivo - + Imported Successfully Datos importados correctamente - - + + Per Game Host list - Lista de hosts para cada juego + Lista de hosts específica para el juego - + Copy global settings? ¿Copiar la configuración global? - + Delete per game host list? - ¿Eliminar la lista de hosts para cada juego? + ¿Eliminar la lista de hosts específica para el juego? - + HDD Image File Archivo de imagen de disco duro - + HDD (*.raw) Archivo de imagen de disco duro (*.raw) - + Overwrite File? ¿Sobrescribir el archivo? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3223,22 @@ Do you want to overwrite? ¿Deseas sobrescribirla? - + HDD Creator - Creador de imágenes de disco duro + Creador de imágenes - + HDD image created Imagen de disco duro creada - + Use Global - Usar configuración global + Usar global - + Override Reemplazar @@ -2968,69 +3246,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping - Volcado de dibujados + Volcado de dibujados («draws») - + Dump GS Draws Volcar dibujados del GS - + Save RT Guardar RT - + Save Frame Guardar fotograma - + Save Texture Guardar textura - + Save Depth Guardar profundidad - + Start Draw Number: Número de dibujado inicial: - + Draw Dump Count: Número de dibujados a volcar: - + Hardware Dump Directory: Directorio de volcados por hardware: - + Software Dump Directory: Directorio de volcados por software: - - + + Browse... Buscar... - - + + Open... Abrir... @@ -3043,29 +3321,53 @@ Do you want to overwrite? Depurador de PCSX2 - - - + + Run Ejecutar - + Step Into Paso a paso - + + F11 + F11 + + + Step Over Paso a paso por - + + F10 + F10 + + + Step Out Salir - + + Shift+F11 + Mayús+F11 + + + + Always On Top + Siempre visible + + + + Show this window on top + Muestra esta ventana por encima de las demás + + + Pause Pausar @@ -3078,167 +3380,192 @@ Do you want to overwrite? Desensamblador - + Copy Address Copiar dirección - + Copy Instruction Hex Copiar instrucción (en hexadecimal) - + Copy Instruction Text Copiar instrucción (en texto) - + Assemble new Instruction(s) Ensamblar instrucción(ones) nueva(s) - + NOP Instruction(s) - Instrucción(ones) NOP + Introducir NOP en instrucción(ones) - + Run to Cursor Ejecutar hasta cursor - + Jump to Cursor Saltar a cursor - + Toggle Breakpoint Alternar punto de interrupción - + Follow Branch Seguir rama - + Go to Address Ir a dirección - + Go to in Memory View Ver en visualizador de memoria - - + + Add Function Añadir función - - + + Rename Function Renombrar función - + Remove Function Eliminar función - - + + Assemble Error Error de ensamblador - + Unable to change assembly while core is running No se puede cambiar el código ensamblador mientras el núcleo esté en funcionamiento - + Assemble Instruction Instrucción de ensamblador - + Go to address Ir a dirección - + Go to address error Ir al error de dirección - + Invalid address Dirección no válida - + Add Function Error Añadir error de función - + A function entry point already exists here. Consider renaming instead. Ya existe aquí un punto de entrada a función. Deberías cambiar su nombre en su lugar. - - + + Function will be (0x%1) instructions long. Enter function name La función tendrá (0x%1) instrucciones. Introduce el nombre de la función - + Function name Nombre de función - - + + Rename Function Error Error al renombrar la función - + Function name cannot be nothing. El nombre de la función no puede estar en blanco. - + No function / symbol is currently selected. No se ha seleccionado una función o símbolo. - + + Restore Function Error + Error al restaurar la función + + + + Unable to stub selected address. + No se ha podido introducir un «stub» en la dirección seleccionada. + + + + Restore Instruction(s) + Restaurar instrucción(ones) + + + + Restore Function + Restaurar función + + + + Stub (NOP) Function + Introducir «stub» (NOP) en función + + + %1 NOT VALID ADDRESS - %1 NO ES UNA DIRECCIÓN VÁLIDA + %1 DIRECCIÓN INVÁLIDA EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No se han encontrado juegos en formatos compatibles.</span></p><p>Introduce un directorio que contenga juegos para comenzar.</p><p>Se buscarán y listarán los volcados de juegos que estén en los siguientes formatos:</p></body></html> - + Add Game Directory... Añadir directorio de juegos... - + Scan For New Games Buscar juegos nuevos @@ -3246,48 +3573,44 @@ Introduce el nombre de la función EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Espacio: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Espacio: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1 × %2 - + Game: %1 FPS Juego: %1 FPS - + Video: %1 FPS (%2%) Vídeo: %1 FPS (%2 %) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - ID del juego: %1 -Título del juego: %2 -Logros: %5 (%6) - + Juego: %1 (%2) - - - %n points - - %n punto - %n puntos - - - + Rich presence inactive or unsupported. - El modo de «Rich Presence» no se encuentra activo o no está soportado. + El modo de «Rich Presence» no se encuentra activo o no es compatible. - + Game not loaded or no RetroAchievements available. No se ha cargado un juego o no tiene RetroAchievements disponibles. @@ -3295,192 +3618,192 @@ Logros: %5 (%6) EmulationSettingsWidget - + Speed Control Control de velocidad - + Normal Speed: Velocidad normal: - + Enable Speed Limiter Habilitar limitador de velocidad - + System Settings Ajustes del sistema - + Enable Instant VU1 Habilitar VU1 instantánea - + Enable Cheats Habilitar trucos - + Slow-Motion Speed: Velocidad de cámara lenta: - + Fast-Forward Speed: Velocidad de avance rápido: - + Enable Multithreaded VU1 (MTVU) Habilitar VU1 multihilo (MTVU) - + Enable Host Filesystem Habilitar sistema de archivos del equipo - + Enable Fast CDVD Habilitar CDVD rápido - + EE Cycle Skipping: Omisión de ciclos del EE: - - + + Disabled Opción desactivada - + Mild Underclock Bajar ligeramente la velocidad - + Moderate Underclock Bajar moderadamente la velocidad - + Maximum Underclock Bajada máxima de velocidad - + EE Cycle Rate: Frecuencia de ciclos del EE: - + 50% (Underclock) 50 % (reducida) - + 60% (Underclock) 60 % (reducida) - + 75% (Underclock) 75 % (reducida) - + 100% (Normal Speed) 100 % (velocidad normal) - + 130% (Overclock) 130 % (acelerada) - + 180% (Overclock) 180 % (acelerada) - + 300% (Overclock) 300 % (acelerada) - + Affinity Control: Control de afinidad: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control - Duración de fotogramas/Control de latencia + Ritmo de fotogramas/Control de latencia - + frames This string will appear next to the amount of frames selected, in a dropdown box. fotogramas - + Maximum Frame Latency: Latencia máxima de fotogramas: - + Optimal Frame Pacing - Duración de fotogramas óptima + Ritmo de fotogramas óptimo - + Scale To Host Refresh Rate Escalar a la frec. actualización del equipo @@ -3568,12 +3891,22 @@ Logros: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Permite a juegos y aplicaciones «homebrew» acceder directamente a archivos o carpetas de tu equipo. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Acelera la emulación para que la frecuencia de actualización de la consola sea igual a la del equipo. Mejorará la fluidez de las animaciones a costa de aumentar potencialmente la velocidad de emulación en menos de un 1 %. Esta opción no se aplicará si la frecuencia de actualización de la consola es demasiado diferente a la del equipo. Los usuarios que utilicen monitores con frecuencia de actualización variable (VRR) deberían desactivar esta opción. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Velocidad de avance rápido + + + 100% + 100 % + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3604,7 +3937,7 @@ Logros: %5 (%6) Sets the priority for specific threads in a specific order ignoring the system scheduler. May help CPUs with big (P) and little (E) cores (e.g. Intel 12th or newer generation CPUs from Intel or other vendors such as AMD). P-Core = Performance Core, E-Core = Efficiency Core. See if Intel has official translations for these terms. - Establece la prioridad para hilos específicos en un orden concreto, ignorando al programador del sistema. Podría ayudar a aquellas CPU con núcleos grandes (P) y pequeños (E, por ejemplo, para CPU de Intel de la generación 12 o superiores, o también de otros proveedores, como AMD). + Establece la prioridad para subprocesos específicos en un orden concreto, ignorando al programador del sistema. Podría ayudar a aquellas CPU con núcleos grandes (P) y pequeños (E, por ejemplo, para CPU de Intel de la generación 12 o superiores, o también de otros proveedores, como AMD). @@ -3637,45 +3970,40 @@ Logros: %5 (%6) Establece la cantidad máxima de fotogramas que podrán ponerse en la cola del GS antes de que el subproceso de la CPU espere a que un fotograma sea completado para poder continuar. Un valor alto podría ayudar a suavizar las duraciones de fotogramas irregulares, pero añadirá más retraso en la entrada de los controles. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Ajusta la velocidad de emulación para que la frecuencia de actualización de la consola sea igual a la del equipo al activar tanto la sincronía vertical (V-Sync) como el remuestreo de audio. Mejorará la fluidez de las animaciones a costa de aumentar potencialmente la velocidad de emulación en menos de un 1 %. Esta opción no se aplicará si la frecuencia de actualización de la consola es demasiado diferente a la del equipo. Los usuarios que utilicen monitores con frecuencia de actualización variable (VRR) deberían desactivar esta opción. - - - + Use Global Setting [%1%] Utilizar configuración global [%1 %] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1 % [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Ilimitada - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Personalizada - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Personalizada [%1 % / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Velocidad personalizada - + Enter Custom Speed Introduce la velocidad personalizada @@ -3683,79 +4011,79 @@ Logros: %5 (%6) FolderSettingsWidget - + Cache Directory Directorio de la caché - - - - - + + + + + Browse... Buscar... - - - - - + + + + + Open... Abrir... - - - - - + + + + + Reset Reiniciar - + Used for storing shaders, game list, and achievement data. Utilizado para almacenar sombreadores, la lista de juegos y los datos de los logros. - + Cheats Directory Directorio de trucos - + Used for storing .pnach files containing game cheats. Utilizado para almacenar los archivos .pnach que contienen trucos de juegos. - + Covers Directory Directorio de carátulas - + Used for storing covers in the game grid/Big Picture UIs. Utilizado para almacenar las carátulas de las interfaces de cuadrícula de juegos y Big Picture. - + Snapshots Directory Directorio de capturas de imagen - + Used for screenshots and saving GS dumps. Utilizado para almacenar las capturas de pantalla y los volcados del GS. - + Save States Directory Directorio de guardados rápidos - + Used for storing save states. Utilizado para almacenar los guardados rápidos. @@ -3763,4305 +4091,4226 @@ Logros: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. No se han podido encontrar dispositivos de CD/DVD-ROM. Asegúrate de tener una unidad conectada y los permisos necesarios para poder acceder a la misma. - + Use Global Setting Utilizar configuración global - + Automatic binding failed, no devices are available. Error durante la asignación automática: no hay dispositivos disponibles. - + Game title copied to clipboard. Título del juego copiado al portapapeles. - + Game serial copied to clipboard. - N.º de serie del juego copiado al portapapeles. + Número de serie del juego copiado al portapapeles. - + Game CRC copied to clipboard. CRC del juego copiado al portapapeles. - + Game type copied to clipboard. Tipo del juego copiado al portapapeles. - + Game region copied to clipboard. - Región del juego copiado al portapapeles. + Región del juego copiada al portapapeles. - + Game compatibility copied to clipboard. Compatibilidad del juego copiada al portapapeles. - + Game path copied to clipboard. Ruta del juego copiada al portapapeles. - + Per-game controller configuration initialized with global settings. - Configuración de mandos según el juego iniciada con la configuración global. + Configuración de mandos específica para el juego iniciada con la configuración global. - + Controller settings reset to default. - Configuración del mando reiniciada a sus valores predeterminados. + Configuración de mandos restablecida a sus valores predeterminados. - + No input profiles available. No hay perfiles de entrada disponibles. - + Create New... Crear nuevo... - + Enter the name of the input profile you wish to create. Introduce el nombre del perfil de entrada que deseas crear. - + Are you sure you want to restore the default settings? Any preferences will be lost. ¿Seguro que deseas restaurar la configuración predeterminada? Se perderán todas tus preferencias. - + Settings reset to defaults. Configuración restablecida a sus valores predeterminados. - - Quick Save Slot - Espacio de guardado rápido - - - + No save present in this slot. No hay un guardado en este espacio. - + No save states found. No se han encontrado guardados rápidos. - + Failed to delete save state. Error al eliminar el guardado rápido. - + Failed to copy text to clipboard. Error al copiar el texto al portapapeles. - + This game has no achievements. Este juego no tiene logros. - + This game has no leaderboards. Este juego no tiene tablas de clasificación. - + Reset System Reiniciar el sistema - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? El modo «hardcore» no se activará hasta que se reinicie el sistema. ¿Deseas reiniciar ahora? - + Launch a game from images scanned from your game directories. - Ejecuta un juego de las imágenes encontradas en tus directorios de juegos. + Ejecuta un juego que esté entre las imágenes encontradas en tus directorios de juegos. - + Launch a game by selecting a file/disc image. Ejecuta un juego seleccionando un archivo o imagen de disco. - + Start the console without any disc inserted. - Inicia la consola sin insertar un disco. + Inicia la consola sin introducir un disco. - + Start a game from a disc in your PC's DVD drive. Inicia un juego desde la unidad de DVD de tu equipo. - + Change settings for the emulator. Cambia la configuración del emulador. - + Exits the program. Cierra el programa. - + No Binding Sin asignar - + Setting %s binding %s. %s: configurando asociación para «%s». - + Push a controller button or axis now. Pulsa un botón o eje del mando. - + Timing out in %.0f seconds... Esperando %.0f segundos... - + Unknown Elemento desconocido - + OK Aceptar - + Select Device Seleccionar dispositivo - + Details Detalles - + Options Opciones - + Copies the current global settings to this game. Copia la configuración global actual a este juego. - + Clears all settings set for this game. - Elimina todos los ajustes establecidos para este juego. + Elimina toda la configuración establecida específicamente para este juego. - + Behaviour Comportamiento - + Prevents the screen saver from activating and the host from sleeping while emulation is running. - Evita que el salvapantallas se active y que el equipo entre en suspensión cuando se esté ejecutando la emulación. + Evita que el salvapantallas se active o que el equipo entre en suspensión cuando se esté ejecutando una emulación. - + Shows the game you are currently playing as part of your profile on Discord. Muestra en tu perfil de Discord el nombre del juego al que estés jugando. - + Pauses the emulator when a game is started. Pausa el emulador en cuanto se ejecute un juego. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - Pausa el emulador al minimizar la ventana o cambiar a otra aplicación, saliendo de la pausa al volver. + Pausa el emulador al minimizar la ventana o cambiar a otra aplicación. La emulación se reanudará al volver a PCSX2. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pausa el emulador al abrir el menú rápido y lo reanuda al cerrarlo. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determina si se mostrará una ventana o no para confirmar el apagado del emulador/juego tras pulsar la tecla de acceso rápido correspondiente. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Crea un guardado rápido automático de la emulación al apagar la misma o al salir del emulador. Así podrás reanudar tu partida justo donde la dejaste. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Permite cargar superposiciones en formato .ini de los ajustes para juegos o del ajuste individual para cada juego. - - - + Uses a light coloured theme instead of the default dark theme. Utiliza un tema de color claro en lugar del tema oscuro predeterminado. - + Game Display - Imagen del juego + Visualización del juego - - Automatically switches to fullscreen mode when the program is started. - Cambia automáticamente al modo a pantalla completa cuando se ejecute el programa. - - - + Switches between full screen and windowed when the window is double-clicked. - Cambia entre los modos a pantalla completa y de ventana al hacer doble clic en la misma. + Cambia entre los modos a pantalla completa y de ventana al hacer doble clic en la última. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Oculta el puntero/cursor del ratón cuando el emulador pase al modo a pantalla completa. - + Determines how large the on-screen messages and monitor are. Determina el tamaño de los mensajes en pantalla en relación con el monitor. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Muestra mensajes en pantalla en ciertas situaciones, como la creación o carga de guardados rápidos, al capturar la pantalla, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Muestra la velocidad de emulación actual del sistema en la esquina superior derecha de la imagen, en forma de porcentaje. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - Muestra el número de fotogramas de vídeo (o v-syncs) mostrados por segundo por el sistema en la esquina superior derecha de la imagen. + Muestra el número de fotogramas de vídeo (o «v-syncs») mostrados por segundo por el sistema en la esquina superior derecha de la imagen. - + Shows the CPU usage based on threads in the top-right corner of the display. - Muestra el uso de la CPU según sus hilos en la esquina superior derecha de la imagen. + Muestra el uso de la CPU según sus subprocesos en la esquina superior derecha de la imagen. - + Shows the host's GPU usage in the top-right corner of the display. - Muestra el uso de la CPU del «host» en la esquina superior derecha de la imagen. - - - - Shows the resolution the game is rendering at in the top-right corner of the display. - Muestra la resolución del juego en la esquina superior derecha de la imagen. + Muestra el uso de la GPU del equipo en la esquina superior derecha de la imagen. - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - Muestra estadísticas del GS (primitivos, llamadas de dibujado) en la esquina superior derecha de la imagen. + Muestra estadísticas del GS (primitivos, llamadas de dibujado/«draw calls») en la esquina superior derecha de la imagen. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Muestra indicadores cuando se active el avance rápido, la pausa y otros estados anómalos. - + Shows the current configuration in the bottom-right corner of the display. Muestra la configuración actual en la esquina inferior derecha de la imagen. - + Shows the current controller state of the system in the bottom-left corner of the display. Muestra el estado actual del mando del sistema en la esquina inferior izquierda de la pantalla. - + Shows a visual history of frame times in the upper-left corner of the display. Muestra un historial visual de duraciones de fotogramas en la esquina superior izquierda de la imagen. - + Displays warnings when settings are enabled which may break games. Muestra advertencias cuando se activen ajustes que puedan romper los juegos. - + Resets configuration to defaults (excluding controller settings). Restablece la configuración a los valores predeterminados (excluyendo la configuración de los mandos). - + Changes the BIOS image used to start future sessions. Cambia la imagen de la BIOS que se utilizará en las sesiones futuras. - + Automatic Valor automático - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Predeterminado + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + Al activar esta opción se aplicarán ajustes personalizados para cada juego. Desactiva esta opción para utilizar siempre la configuración global. + + + + Automatically switches to fullscreen mode when a game is started. + Cambia automáticamente al modo a pantalla completa cuando se ejecute un juego. + + + On-Screen Display - On-Screen Display + Presentación en pantalla - + + %d%% + %d %% + + + + Shows the resolution of the game in the top-right corner of the display. + Muestra la resolución del juego en la esquina superior derecha de la imagen. + + + BIOS Configuration - BIOS Configuration + Configuración de la BIOS - + BIOS Selection Selección de BIOS - + Options and Patches - Options and Patches + Opciones y parches - + Skips the intro screen, and bypasses region checks. Omite la pantalla de introducción y las comprobaciones de región. - + Speed Control Control de velocidad - + Normal Speed Velocidad normal - + Sets the speed when running without fast forwarding. - Establece la velocidad de ejecución sin utilizar el avance rápido. + Establece la velocidad de ejecución cuando no se utilice el avance rápido. - + Fast Forward Speed Velocidad de avance rápido - + Sets the speed when using the fast forward hotkey. Establece la velocidad de ejecución al pulsar la tecla de avance rápido. - + Slow Motion Speed Velocidad a cámara lenta - + Sets the speed when using the slow motion hotkey. Establece la velocidad de ejecución al pulsar la tecla de cámara lenta. - + Enable Speed Limiter Habilitar limitador de velocidad - + When disabled, the game will run as fast as possible. Al desactivar esta opción, el juego se ejecutará lo más rápido posible. - + System Settings Ajustes del sistema - + EE Cycle Rate Frecuencia de ciclos del EE - + Underclocks or overclocks the emulated Emotion Engine CPU. Acelera o frena la velocidad de la CPU emulada del Emotion Engine. - + EE Cycle Skipping Omisión de ciclos del EE - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Añade una penalización al Emotion Engine emulado por cada ejecución de programas de las VU. - - - + Affinity Control Mode Control de afinidad - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - Asigna hilos de la emulación a otros núcleos de la CPU, lo que podría mejorar el rendimiento o la variación de la duración de fotogramas. + Asigna hilos de la emulación a otros núcleos de la CPU, lo que podría mejorar el rendimiento o reducir la variación de la duración de fotogramas. - + Enable MTVU (Multi-Threaded VU1) Habilitar MTVU (VU1 multihilo) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Utiliza un segundo hilo para los microprogramas de la VU1, mejorando el rendimiento. - - - + Enable Instant VU1 Habilitar VU1 instantánea - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduce la repartición de tiempo entre los recompiladores de la VU1 y del EE, lo que ejecutará la VU1 a una velocidad de reloj infinita. - - - + Enable Cheats Habilitar trucos - + Enables loading cheats from pnach files. Permite cargar trucos de archivos .pnach. - + Enable Host Filesystem Habilitar sistema de archivos del equipo - + Enables access to files from the host: namespace in the virtual machine. - Activa el acceso a archivos del equipo: un espacio de nombres en la máquina virtual. + Activa el acceso a archivos desde el espacio de nombres «host:» en la máquina virtual. - + Enable Fast CDVD Habilitar CDVD rápido - + Fast disc access, less loading times. Not recommended. Accede más rápido al disco, reduciendo los tiempos de carga. Opción no recomendable. - + Frame Pacing/Latency Control - Duración de fotogramas/Control de latencia + Ritmo de fotogramas/Control de latencia - + Maximum Frame Latency Latencia máxima de fotogramas - + Sets the number of frames which can be queued. Establece el número de fotogramas que pueden ser puestos en cola. - + Optimal Frame Pacing - Duración de fotogramas óptima + Ritmo de fotogramas óptimo - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Sincroniza los subprocesos del EE y del GS al acabar cada fotograma. Reduce la latencia de entrada, pero aumenta los requisitos del sistema. - - Adjust To Host Refresh Rate - Escalar a la frecuencia de actualización del equipo - - - + Speeds up emulation so that the guest refresh rate matches the host. Acelera la emulación para que la frecuencia de actualización de la emulación coincida con la del equipo. - + Renderer Renderizador - + Selects the API used to render the emulated GS. Selecciona la API que se utilizará para renderizar el GS emulado. - + Sync To Host Refresh (VSync) Sincronizar a la frecuencia del equipo (sincronía vertical) - + Synchronizes frame presentation with host refresh. Sincroniza la presentación de cada fotograma con la frecuencia de actualización del equipo. - + Display Imagen - + Aspect Ratio Relación de aspecto - + Selects the aspect ratio to display the game content at. Selecciona la relación de aspecto con la que se mostrará el contenido de los juegos. - + FMV Aspect Ratio - Relación de aspecto de FMV + Relación de aspecto de vídeos FMV - + Selects the aspect ratio for display when a FMV is detected as playing. - Selecciona la relación de aspecto de la imagen cuando se detecte la reproducción de un vídeo FMV. + Selecciona la relación de aspecto que tendrá la imagen cuando se detecte la reproducción de un vídeo FMV. - + Deinterlacing Desentrelazado - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selecciona el algoritmo que se utilizará para convertir la imagen entrelazada de PS2 en progresiva. - + Screenshot Size Tamaño de capturas de pantalla - + Determines the resolution at which screenshots will be saved. Determina la resolución con la que se guardarán las capturas de pantalla. - + Screenshot Format Formato de capturas de pantalla - + Selects the format which will be used to save screenshots. Selecciona el formato que se utilizará para guardar las capturas de pantalla. - + Screenshot Quality Calidad de capturas de pantalla - + Selects the quality at which screenshots will be compressed. Selecciona la calidad con la que se comprimirán las capturas de pantalla. - + Vertical Stretch Estiramiento vertical - + Increases or decreases the virtual picture size vertically. Aumenta o disminuye verticalmente el tamaño de la imagen virtual. - + Crop Recortar - + Crops the image, while respecting aspect ratio. - Recorta la imagen respetando la relación de aspecto. + Recorta la imagen preservando la relación de aspecto. - + + %dpx + %d px + + + Enable Widescreen Patches - Habilitar parches para pantallas panorámicas + Habilitar parches de imagen panorámica - + Enables loading widescreen patches from pnach files. - Permite cargar parches para pantallas panorámicas de archivos .pnach. + Permite cargar parches de imagen panorámica a partir de archivos .pnach. - + Enable No-Interlacing Patches Habilitar parches para desactivar el entrelazado - + Enables loading no-interlacing patches from pnach files. - Permite cargar parches para desactivar el entrelazado de archivos .pnach. + Permite cargar parches para desactivar el entrelazado a partir de archivos .pnach. - + Bilinear Upscaling Escalado bilineal - + Smooths out the image when upscaling the console to the screen. Suaviza la imagen de la consola al escalar la imagen. - + Integer Upscaling Escalado por números enteros - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - Rellena el área de visualización para garantizar que la relación entre píxeles mostrados en el equipo y píxeles de la consola sea un número entero. Podría producir una imagen más nítida en algunos juegos 2D. + Rellena el área de visualización para que la relación entre píxeles del equipo y de la consola sea un número entero. Podría mejorar la nitidez en algunos juegos 2D. - + Screen Offsets Compensación de imagen - + Enables PCRTC Offsets which position the screen as the game requests. Activa las compensaciones del PCRTC, que posicionan la pantalla según lo requiera el juego. - + Show Overscan Mostrar área de sobrebarrido - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. - Permite mostrar el área de sobrebarrido para aquellos juegos que dibujan más allá del área segura de la pantalla. + Permite mostrar el área de sobrebarrido para aquellos juegos que muestran imágenes más allá del área segura de la pantalla. - + Anti-Blur Filtro antiborrosidad - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Activa las correcciones internas antiborrosidad. Es menos fiel al renderizado original de PS2, pero hará que muchos juegos parezcan menos borrosos. - + Rendering Renderizado - + Internal Resolution Resolución interna - + Multiplies the render resolution by the specified factor (upscaling). - Multiplica la resolución de renderizado por el factor especificado. + Multiplica la resolución de renderizado por el factor especificado para escalarla. - + Mipmapping «Mipmapping» - + Determines how mipmaps are used when rendering textures. Determina el uso de «mipmaps» al renderizar texturas. - + Bilinear Filtering Filtrado bilineal - + Selects where bilinear filtering is utilized when rendering textures. Selecciona cómo se aplicará el filtrado bilineal para renderizar texturas. - + Trilinear Filtering Filtrado trilineal - + Selects where trilinear filtering is utilized when rendering textures. Selecciona cómo se aplicará el filtrado trilineal para renderizar texturas. - + Anisotropic Filtering Filtrado anisotrópico - - Selects where anistropic filtering is utilized when rendering textures. - Selecciona cómo se aplicará el filtrado anisotrópico para renderizar texturas. - - - + Dithering Tramado - + Selects the type of dithering applies when the game requests it. - Selecciona el tipo de tramado que se aplicará cuando lo requiera el juego. + Selecciona el tipo de tramado que se aplicará cuando lo requiera un juego. - + Blending Accuracy Precisión de mezcla - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determina la precisión al emular modos de mezcla que no sean compatibles con la API gráfica del equipo. - + Texture Preloading Precarga de texturas - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Envía las texturas completas a la GPU en cuanto sean utilizadas, sin limitarse a las regiones utilizadas. Podría mejorar el rendimiento en algunos juegos. - + Software Rendering Threads - Hilos de renderizado por software + Subprocesos para el renderizado por software - + Number of threads to use in addition to the main GS thread for rasterization. - El número de hilos que se utilizarán a la vez que el hilo principal del GS para la rasterización. + El número de subprocesos que se utilizarán a la vez que el subproceso principal del GS para la rasterización. - + Auto Flush (Software) - Limpieza automática (software) + Vaciado automático (software) - + Force a primitive flush when a framebuffer is also an input texture. - Fuerza una limpieza de primitivos cuando un búfer de fotogramas sea también una textura de entrada. + Fuerza un vaciado de primitivos cuando un búfer de fotogramas sea también una textura de entrada. - + Edge AA (AA1) Suavizado de bordes (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Activa la emulación del sistema de suavizado de bordes del GS (AA1). - + Enables emulation of the GS's texture mipmapping. Activa la emulación del sistema de «mipmapping» de texturas del GS. - + Hardware Fixes Correcciones para hardware - + Manual Hardware Fixes - Correcciones manuales para hardware + Correcciones manuales para el renderizador por hardware - + Disables automatic hardware fixes, allowing you to set fixes manually. - Desactiva las correcciones automáticas para hardware, permitiéndote configurarlas manualmente. + Desactiva las correcciones automáticas para el renderizador por hardware, permitiéndote configurarlas manualmente. - + CPU Sprite Render Size Tamaño del renderizado de sprites en CPU - + Uses software renderer to draw texture decompression-like sprites. Utiliza el renderizador por software para aquellos dibujados que puedan ser utilizados en la descompresión de texturas. - + CPU Sprite Render Level Nivel del renderizado de sprites en CPU - + Determines filter level for CPU sprite render. - Determina el grado del filtro del renderizado de sprites en la CPU. + Determina el nivel del filtro del renderizado de sprites en la CPU. - + Software CLUT Render Renderizado de CLUT por software - + Uses software renderer to draw texture CLUT points/sprites. - Utiliza el renderizador por software para dibujar los puntos/sprites de los CLUT de las texturas. + Utiliza el renderizador por software para dibujar los puntos/sprites que utilicen los CLUT de las texturas. - + Skip Draw Start Inicio de omisión de dibujado - + Object range to skip drawing. Indica el rango de objetos que se omitirán. - + Skip Draw End Fin de omisión de dibujado - + Auto Flush (Hardware) - Limpieza automática (hardware) + Vaciado automático (hardware) - + CPU Framebuffer Conversion - Conversión de búfer de fotogramas en la CPU + Conversión del búfer de fotogramas en la CPU - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convierte los búferes de fotogramas de 4 y 8 bits en la CPU, no en la GPU. - - Disable Depth Support - Desactivar soporte de profundidad - - - - Disable the support of depth buffer in the texture cache. - Desactiva el soporte del búfer de profundidad en la caché de texturas. - - - + Disable Safe Features - Desactivar funcionalidades seguras + Deshabilitar funcionalidades seguras - + This option disables multiple safe features. Esta opción desactiva varias funcionalidades seguras. - - Disable Render Features - Desactivar funcionalidades de renderizado - - - + This option disables game-specific render fixes. Esta opción desactiva las correcciones de renderizado específicas para cada juego. - - Preload Frame - Precargar fotogramas - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. - Envía los datos del GS al renderizar un fotograma nuevo para poder reproducir algunos efectos fielmente. + Transmite los datos del GS al renderizar un fotograma nuevo para poder reproducir algunos efectos fielmente. - + Disable Partial Invalidation - Desactivar invalidación parcial + Deshabilitar invalidación parcial - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Elimina las entradas de la caché de texturas en cuanto ocurra alguna intersección en vez de eliminar solo las zonas donde haya intersecciones. - - Texture Inside Render Target - Texturas dentro de RT - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Permite a la caché de texturas reutilizar como textura de entrada la parte interior de un búfer de fotogramas anterior. - + Read Targets When Closing Leer objetivos al cerrar - + Flushes all targets in the texture cache back to local memory when shutting down. - Limpia todos los objetivos de la caché de texturas de vuelta a la memoria local al apagar la máquina virtual. + Vacía todos los objetivos de la caché de texturas en la memoria local al apagar la máquina virtual. - + Estimate Texture Region Calcular regiones de texturas - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Intenta reducir el tamaño de las texturas cuando los juegos no lo establezcan por sí mismos (por ejemplo, los juegos que utilicen el motor gráfico Snowblind). - + GPU Palette Conversion Conversión de paletas en la GPU - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Aplica las paletas a las texturas de la GPU en lugar de la CPU. Esto puede resultar en mejoras de velocidad en algunos juegos. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Compensación de medio píxel + Correcciones para escalado - + Adjusts vertices relative to upscaling. Ajusta los vértices en función del factor de escalado. - + Round Sprite Redondear sprites - + Adjusts sprite coordinates. Ajusta las coordenadas de los sprites. - + Bilinear Upscale Escalado bilineal - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - Podría suavizar las texturas al aplicarles un filtro bilineal tras escalarlas. P. ej.: destellos del sol. + Podría suavizar las texturas al aplicarles un filtro bilineal tras escalarlas. P. ej.: destellos del sol en Brave. - - TC Offset X - Compensación X de texturas - - - + Adjusts target texture offsets. Ajusta la compensación de las texturas objetivo. - - TC Offset Y - Compensación Y de texturas - - - + Align Sprite Alinear sprites - + Fixes issues with upscaling (vertical lines) in some games. Soluciona problemas al escalar la imagen (líneas verticales) en ciertos juegos. - + Merge Sprite Fusionar sprites - + Replaces multiple post-processing sprites with a larger single sprite. - Reemplaza el uso de varios fragmentos de sprites para el posprocesado por un único sprite más grande. + Reemplaza el uso de varios fragmentos de sprites con fines de posprocesado por un único sprite más grande. - + Wild Arms Hack Corrección para Wild Arms - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Reduce la precisión del GS para evitar vacíos entre píxeles al escalar la imagen. Corrige el texto en los juegos de Wild Arms. - + Unscaled Palette Texture Draws - Dibujar texturas de paletas sin escala + Dibujar texturas de paletas sin escalarlas - + Can fix some broken effects which rely on pixel perfect precision. - Puede corregir algunos efectos rotos que dependen de una precisión exacta al píxel. + Puede corregir algunos efectos rotos que requieran de una precisión exacta. - + Texture Replacement Reemplazo de texturas - + Load Textures Cargar texturas - + Loads replacement textures where available and user-provided. Carga texturas de reemplazo si están disponibles. - + Asynchronous Texture Loading Carga de texturas asincrónica - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - Carga las texturas de reemplazo en un hilo de trabajo, lo que reducirá los tirones al activar los reemplazos. + Carga las texturas de reemplazo en un subproceso de trabajo, lo que reducirá los tirones al activar los reemplazos. - + Precache Replacements Precachear reemplazos - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. - Precarga en la memoria todas las texturas de reemplazo. Opción no necesaria al usar la carga asincrónica. + Precarga en la memoria todas las texturas de reemplazo. No es necesario activar esta opción al usar la carga asincrónica. - + Replacements Directory Directorio de reemplazos - + Folders Carpetas - + Texture Dumping Volcado de texturas - + Dump Textures Volcar texturas - - Dumps replacable textures to disk. Will reduce performance. - Vuelca las texturas reemplazables al disco. El rendimiento se reducirá. - - - + Dump Mipmaps Volcar «mipmaps» - + Includes mipmaps when dumping textures. Vuelca las texturas con sus «mipmaps». - + Dump FMV Textures Volcar texturas de vídeos FMV - + Allows texture dumping when FMVs are active. You should not enable this. Habilita el volcado de texturas durante la reproducción de vídeos FMV. No se recomienda activar esta opción. - + Post-Processing Posprocesado - + FXAA FXAA - + Enables FXAA post-processing shader. Activa el sombreador de posprocesado FXAA (Fast approXimate Anti-Aliasing). - + Contrast Adaptive Sharpening Realce por contraste adaptativo (CAS) - + Enables FidelityFX Contrast Adaptive Sharpening. Habilita el realce por contraste adaptativo FidelityFX. - + CAS Sharpness Realzado del CAS - + Determines the intensity the sharpening effect in CAS post-processing. Determina la intensidad del efecto de realzado del posprocesado CAS. - + Filters Filtros - + Shade Boost - Ajustar tono + Mejora del tono - + Enables brightness/contrast/saturation adjustment. Permite ajustar el brillo, el contraste y la saturación. - + Shade Boost Brightness - Ajustar brillo + Mejorar brillo - + Adjusts brightness. 50 is normal. Ajusta el brillo. Un valor de 50 es lo normal. - + Shade Boost Contrast - Ajustar contraste + Mejorar contraste - + Adjusts contrast. 50 is normal. Ajusta el contraste. Un valor de 50 es lo normal. - + Shade Boost Saturation - Ajustar saturación + Mejorar saturación - + Adjusts saturation. 50 is normal. Ajusta la saturación. Un valor de 50 es lo normal. - + TV Shaders Sombreadores de TV - - Selects post-processing TV shader. - Selecciona un sombreador de posprocesado de tipo televisor. - - - + Advanced - Avanzadas + Avanzados - + Skip Presenting Duplicate Frames Omitir fotogramas duplicados - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Omite la presentación de fotogramas que no cambien en juegos a 25/30 FPS. Puede mejorar la velocidad, pero también aumentar el retraso de entrada o empeorar el ritmo de fotogramas. - - - + Disable Threaded Presentation - Desactivar presentación multihilo + Deshabilitar presentación multihilo - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presenta los fotogramas en el hilo principal del GS en vez de utilizar un hilo de trabajo. Podría mejorar las duraciones de fotogramas en algunos equipos a costa de poder afectar al ritmo de fotogramas. - - - + Hardware Download Mode Modo de descarga de hardware - + Changes synchronization behavior for GS downloads. Cambia el comportamiento de la sincronización en las descargas del GS. - + Allow Exclusive Fullscreen Pantalla completa exclusiva - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - Reemplaza la heurística del controlador para activar el modo de pantalla completa exclusiva o para volteados directos/«scanout». + Reemplaza la heurística del controlador para activar el modo de pantalla completa exclusiva o para volteados/«scanout» directos. - + Override Texture Barriers Invalidar barreras de texturas - + Forces texture barrier functionality to the specified value. Fuerza la funcionalidad de las barreras de texturas al valor especificado. - + GS Dump Compression Compresión de volcados del GS - + Sets the compression algorithm for GS dumps. Establece el algoritmo de compresión para los volcados del GS. - + Disable Framebuffer Fetch - Desactivar acceso al búfer de fotogramas + Deshabilitar acceso al búfer de fotogramas - + Prevents the usage of framebuffer fetch when supported by host GPU. Desactiva el acceso al búfer de fotogramas si la GPU del equipo es compatible con esta característica. - + Disable Dual-Source Blending - Desactivar mezcla de doble origen + Deshabilitar mezcla de doble origen - + Prevents the usage of dual-source blending when supported by host GPU. Desactiva el uso de las mezclas de doble origen si la GPU del equipo es compatible con esta característica. - + Disable Shader Cache - Desactivar caché de sombreadores + Deshabilitar caché de sombreadores - + Prevents the loading and saving of shaders/pipelines to disk. Impide la carga y almacenamiento de sombreadores/canalizaciones al disco. - + Disable Vertex Shader Expand - Desactivar expansión de sombreadores de vértices + Deshabilitar expansión de sombreadores de vértices - + Falls back to the CPU for expanding sprites/lines. Utiliza la CPU como respaldo para la expansión de sprites/líneas. - + Runtime Settings Ajustes de ejecución - + Applies a global volume modifier to all sound produced by the game. Aplica un modificador global de volumen a todos los sonidos que produzca el juego. - + Mixing Settings Ajustes de mezcla - + Changes when SPU samples are generated relative to system emulation. Cambia el momento en el que se generarán las muestras de la SPU con relación a la emulación del sistema. - + Determines how the stereo output is transformed to greater speaker counts. - Determina la forma en la que se transformará la salida estéreo a un número superior de altavoces. + Determina la forma en la que se transformará la salida estéreo a un número mayor de altavoces. - + Output Settings Ajustes de salida - + Determines which API is used to play back audio samples on the host. Determina la API que se utilizará para reproducir las muestras de audio en el equipo. - + Sets the average output latency when using the cubeb backend. Establece la latencia media de salida al utilizar el «back-end» Cubeb. - + + %d ms (avg) + %d ms (media) + + + Timestretch Settings Ajustes de expansión de tiempo - + Affects how the timestretcher operates when not running at 100% speed. Afecta al funcionamiento del expansor de tiempo cuando la emulación no se ejecute a una velocidad del 100 %. - + + %d ms + %d ms + + + Settings and Operations Ajustes y operaciones - + Creates a new memory card file or folder. Crea un nuevo archivo o carpeta de Memory Card. - + Simulates a larger memory card by filtering saves only to the current game. Simula que la Memory Card tiene más espacio filtrando los datos guardados para mostrar solo los del juego actual. - + Automatically ejects Memory Cards when they differ after loading a state. Expulsa automáticamente las Memory Cards al cargar un guardado rápido en el que sean diferentes. - + If not set, this card will be considered unplugged. Al desactivar esta opción, esta Memory Card se considerará desconectada. - + The selected memory card image will be used for this slot. La Memory Card que se utilizará para esta ranura. - + Resets the card name for this slot. Reinicia el nombre de la Memory Card de esta ranura. - + Create Memory Card Crear Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Introduce el nombre de la Memory Card que deseas crear y elige un tamaño. Por motivos de compatibilidad, recomendamos utilizar Memory Cards de 8 MB o carpetas de Memory Card. - + Card Name: Nombre de Memory Card: - + Configuration Configuración - + Uses game-specific settings for controllers for this game. Utiliza una configuración de mandos específica para este juego. - + Copies the global controller configuration to this game. - Copia la configuración global de mandos a este juego. + Copia la configuración global de mandos a la de este juego. - + Resets all configuration to defaults (including bindings). Restablece toda la configuración a sus valores predeterminados (incluyendo las asignaciones). - + Replaces these settings with a previously saved input profile. - Reemplaza esta configuración con un perfil de entrada existente. + Reemplaza esta configuración por la de un perfil de entrada existente. - + Stores the current settings to an input profile. Guarda la configuración actual a un perfil de entrada. - + Input Sources Orígenes de entrada - + The SDL input source supports most controllers. El origen de entrada SDL es compatible con la mayoría de mandos. - + Provides vibration and LED control support over Bluetooth. Ofrece soporte para vibración y control de luces led a través de Bluetooth. - + Allow SDL to use raw access to input devices. Permite que SDL pueda acceder a los datos sin procesar de los dispositivos de entrada. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. El origen XInput ofrece compatibilidad para los mandos de Xbox 360/Xbox One/Xbox Series. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. - Habilita tres puertos de mando adicionales. No todos los juegos lo permiten. + Habilita tres puertos de mando adicionales. El multitap no es compatible con todos los juegos. - + Attempts to map the selected port to a chosen controller. - Intenta asignar el puerto seleccionado a un mando concreto. + Intenta asignar los controles de este puerto a un mando o control. - + No Buttons Selected No se han seleccionado botones - + Determines how much pressure is simulated when macro is active. Determina la cantidad de presión que se simulará cuando se active la macro. - + Determines the pressure required to activate the macro. Determina la presión necesaria para activar la macro. - + Toggle every %d frames Alternar cada %d fotograma(s) - + Clears all bindings for this USB controller. Borra todas las asignaciones para este mando USB. - + Data Save Locations Ubicaciones de datos guardados - + Show Advanced Settings Mostrar ajustes avanzados - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - Cambiar estas opciones puede provocar que los juegos dejen de funcionar. Modifícalas por tu cuenta y riesgo: el equipo de PCSX2 no dará soporte técnico a configuraciones que tengan estos ajustes cambiados. + Cambiar estas opciones puede provocar que los juegos dejen de funcionar. El equipo de PCSX2 no te dará soporte técnico si has cambiado estos ajustes. - + Logging - Logging + Registros - + System Console Consola del sistema - + Writes log messages to the system console (console window/standard output). Escribe mensajes de registro en la consola del sistema (ventana de consola/salida estándar). - + File Logging - Registro de archivos + Registro en archivo - + Writes log messages to emulog.txt. - Escribe mensajes de registro en el archivo emulog.txt. + Escribe los mensajes del registro en el archivo emulog.txt. - + Verbose Logging Registro detallado - + Writes dev log messages to log sinks. Escribe mensajes de registro de desarrollo en los receptores de registro. - + Log Timestamps Marcas de tiempo en los registros - + Writes timestamps alongside log messages. - Escribe marcas de tiempo dentro de los mensajes de registro. + Escribe marcas de tiempo junto con los mensajes de registro. - + EE Console Consola del EE - + Writes debug messages from the game's EE code to the console. Escribe mensajes de depuración del código EE del juego a la consola. - + IOP Console Consola del IOP - + Writes debug messages from the game's IOP code to the console. Escribe mensajes de depuración del código IOP del juego a la consola. - + CDVD Verbose Reads Lecturas detalladas del CDVD - + Logs disc reads from games. - Registra las lecturas en disco de los juegos. + Registra las lecturas a disco de los juegos. - + Emotion Engine Emotion Engine - + Rounding Mode Modo de redondeo - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determina cómo se redondearán los resultados de las operaciones de coma flotante. Algunos juegos necesitan un ajuste concreto. - + Clamping Mode Modo de limitación - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determina cómo se gestionarán los números de coma flotante que estén fuera de rango. Algunos juegos necesitan un ajuste concreto. - + Enable EE Recompiler Habilitar recompilador del EE - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Realiza una traducción binaria «just-in-time» del código máquina MIPS-IV de 64 bits a código nativo. - + Enable EE Cache Habilitar caché del EE - + Enables simulation of the EE's cache. Slow. - Permite simular la caché del EE. Es una opción lenta. + Permite simular la caché del EE. Lento. - + Enable INTC Spin Detection - Detección de valores de INTC + Detección de bucles en el INTC - + Huge speedup for some games, with almost no compatibility side effects. Mejora en gran medida la velocidad de algunos juegos sin tener casi ningún efecto secundario en la compatibilidad. - + Enable Wait Loop Detection - Detección de bucles en espera + Detección de bucles de espera - + Moderate speedup for some games, with no known side effects. - Mejora moderadamente la velocidad de algunos juegos sin tener efectos secundarios conocidos. + Mejora moderadamente la velocidad de algunos juegos sin efectos secundarios conocidos. - + Enable Fast Memory Access Habilitar acceso rápido a memoria - + Uses backpatching to avoid register flushing on every memory access. Utiliza la técnica de «backpatching» (retroparcheado) para evitar que se vacíen los registros con cada acceso a memoria. - + Vector Units Vector Units (unidades vectoriales, VU) - + VU0 Rounding Mode Modo de redondeo de la VU0 - + VU0 Clamping Mode Modo de limitación de la VU0 - + VU1 Rounding Mode Modo de redondeo de la VU1 - + VU1 Clamping Mode Modo de limitación de la VU1 - + Enable VU0 Recompiler (Micro Mode) Habilitar recompilador de la VU0 (modo micro) - + New Vector Unit recompiler with much improved compatibility. Recommended. - Un nuevo recompilador de la Vector Unit con una compatibilidad muy mejorada. Opción recomendada. + Un nuevo recompilador de las Vector Units con una compatibilidad muy mejorada. Opción recomendada. - + Enable VU1 Recompiler Habilitar recompilador de la VU1 - + Enable VU Flag Optimization Habilitar optimización de indicadores de las VU - + Good speedup and high compatibility, may cause graphical errors. Mejora bastante la velocidad y tiene una alta compatibilidad, pero podría provocar errores gráficos. - + I/O Processor Procesador de E/S - + Enable IOP Recompiler Habilitar recompilador del IOP - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Realiza una traducción binaria «just-in-time» del código máquina MIPS-I de 32 bits a código nativo. - + Graphics Gráficos - + Use Debug Device Utilizar dispositivo de depuración - - Enables API-level validation of graphics commands - Activa una validación a nivel de API de los comandos de gráficos. - - - + Settings Ajustes - + No cheats are available for this game. No hay trucos disponibles para este juego. - + Cheat Codes Códigos de trucos - + No patches are available for this game. No hay parches disponibles para este juego. - + Game Patches Parches de juego - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - La activación de trucos puede provocar comportamientos impredecibles, cuelgues, bloqueos por software o dañar las partidas guardadas. + Los trucos pueden provocar comportamientos impredecibles, cuelgues, bloqueos por software o dañar tus partidas. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - La activación de parches puede provocar comportamientos impredecibles, cuelgues, bloqueos por software o dañar las partidas guardadas. + Los parches pueden provocar comportamientos impredecibles, cuelgues, bloqueos por software o dañar tus partidas. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - Utiliza los parches bajo tu propia responsabilidad: el equipo de PCSX2 no proporcionará soporte a aquellos usuarios que tengan activados parches de juegos. + Utiliza los parches bajo tu propia responsabilidad: el equipo de PCSX2 no dará soporte a quienes utilicen parches de juegos. - + Game Fixes Correcciones para juegos - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - Las correcciones para juegos no deberían ser modificadas a menos que sepas perfectamente qué hace cada opción y las consecuencias de modificarlas. + Estas correcciones no deberían cambiarse si no sabes perfectamente qué hace cada opción y sus consecuencias. - + FPU Multiply Hack - Corrección de multipliaciones de la FPU + Corrección de multiplicaciones de la FPU - + For Tales of Destiny. Para Tales of Destiny. - + FPU Negative Div Hack Corrección de división negativa en la FPU - + For Gundam games. Para los juegos de Gundam. - + Preload TLB Hack Corrección de precarga del TLB - - To avoid tlb miss on Goemon. - Para evitar los fallos de TLB en los juegos de Goemon. - - - - Switch to Software renderer for FMVs. - Utilizar el renderizador por software para los vídeos FMV - - - + Needed for some games with complex FMV rendering. Necesario para algunos juegos que renderizan los vídeos FMV de una forma compleja. - + Skip MPEG Hack Corrección para omitir el formato MPEG - + Skips videos/FMVs in games to avoid game hanging/freezes. Omite los vídeos o FMV de los juegos para evitar cuelgues o bloqueos. - + OPH Flag Hack Corrección del indicador OPH - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Afecta a los siguientes juegos: Bleach Blade Battlers, Growlanser II y III, Wizardry. - - - + EE Timing Hack Corrección de sincronización del EE - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Afecta a los siguientes juegos: Digital Devil Saga (corrige los vídeos FMV y los cuelgues), SSX (corrige gráficos dañados y cuelgues). - - - + Instant DMA Hack Corrección de DMA instantáneo - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Afecta a los siguientes juegos: Fire Pro Wrestling Z (gráficos del ring dañados). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Afecta a los siguientes juegos: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Gestionar las escrituras DMAC cuando esté saturado + + For SOCOM 2 HUD and Spy Hunter loading hang. + Para la interfaz de SOCOM 2 y los cuelgues al cargar en Spy Hunter. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Afecta a los siguientes juegos: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + Corrección de sumas de las VU - - Force GIF PATH3 transfers through FIFO - Forzar transferencias PATH3 del GIF a ir por el FIFO + + Full VU0 Synchronization + Sincronización total de la VU0 - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Fuerza una sincronización estricta de la VU0 por cada instrucción COP2. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simula las lecturas adelantadas FIFO del VIF1. Corrige los juegos de carga lenta. + + VU Overflow Hack + Corrección de desbordamiento de las VU - - Known to affect following games: Test Drive Unlimited, Transformers. - Afecta a los siguientes juegos: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + Comprueba los posibles desbordamientos en los valores de coma flotante (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Retrasar paralizaciones del VIF1 (FIFO del VIF1) + + Use accurate timing for VU XGKicks (slower). + Utiliza una sincronización precisa para los XGKicks de las VU (más lenta). - - For SOCOM 2 HUD and Spy Hunter loading hang. - Para la interfaz de SOCOM 2 y los cuelgues al cargar en Spy Hunter. + + Quadraphonic + Sonido cuadrafónico - - VU Add Hack - Corrección de sumas de las VU + + Load State + Cargar guardado rápido - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Juegos que necesitan esta corrección para poder arrancar: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Omite ciclos de procesamiento del Emotion Engine emulado. Ayuda a pocos juegos, como SOTC. En la mayoría de los casos es perjudicial para el rendimiento. - - VU I bit Hack avoid constant recompilation in some games - Corrección del bit I de las VU + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Suele mejorar la velocidad en aquellas CPU que tengan cuatro o más núcleos. Una opción segura para la mayoría de juegos, pero algunos son incompatibles y podrían quedarse colgados. - - Scarface The World Is Yours, Crash Tag Team Racing. - Para Scarface The World is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Ejecuta la VU1 de forma instantánea. Mejora levemente la velocidad en la mayoría de juegos. Es una opción segura para casi todos, pero algunos podrían mostrar errores gráficos. - - Full VU0 Synchronization - Sincronización total de la VU0 + + Scale To Host Refresh Rate + Escalar a la frecuencia de actualización del equipo - - Forces tight VU0 sync on every COP2 instruction. - Fuerza una sincronización estricta de la VU0 por cada instrucción COP2. + + Disable Depth Emulation + Deshabilitar emulación de profundidad - - VU Sync (Run behind) - Sincronizar las VU + + Disable the support of depth buffers in the texture cache. + Desactiva el soporte de los búferes de profundidad en la caché de texturas. - - To avoid sync problems when reading or writing VU registers. - Para evitar problemas de sincronización al leer o escribir en los registros de las VU. + + Disable Render Fixes + Deshabilitar correcciones de renderizado - - VU Overflow Hack - Corrección de desbordamiento de la VU + + Preload Frame Data + Precargar datos de fotograma - - To check for possible float overflows (Superman Returns). - Comprueba los posibles desbordamientos en los valores de coma flotante (Superman Returns). + + Texture Inside RT + Texturas dentro de RT - - VU XGkick Sync - Sincronizar XGKick de la VU + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + Al activar esta opción, la GPU convertirá las texturas con mapas de colores. En caso contrario, lo hará la CPU. Compensa la GPU y la CPU. - - Use accurate timing for VU XGKicks (slower). - Utiliza una sincronización precisa para los XGKicks de las VU (más lenta). + + Half Pixel Offset + Compensación de medio píxel - - Use Blit for internal FPS - Utilizar el BLIT para los FPS internos + + Texture Offset X + Compensación X de texturas - - Quadraphonic - Quadraphonic + + Texture Offset Y + Compensación Y de texturas - - Load State - Cargar guardado rápido + + Dumps replaceable textures to disk. Will reduce performance. + Vuelca las texturas reemplazables al disco. El rendimiento se reducirá. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Aplica un sombreador que reproduce los efectos visuales de varios tipos de televisores. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Omite los fotogramas que no cambien en juegos a 25/30 FPS. Puede mejorar la velocidad, pero también aumentar el retraso de entrada o empeorar el ritmo de fotogramas. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presenta los fotogramas en el subproceso principal del GS en vez de utilizar un subproceso de trabajo. Ideal para depurar problemas de duración de fotogramas. + + + + Enables API-level validation of graphics commands. + Activa una validación a nivel de API de los comandos de gráficos. + + + + Use Software Renderer For FMVs + Utilizar el renderizador por software para los vídeos FMV + + + + To avoid TLB miss on Goemon. + Para evitar los fallos del TLB en los juegos de Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Corrección de sincronización de uso general. Afecta a los siguientes juegos: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Ideal para problemas de emulación de caché. Afecta a los siguientes juegos: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Afecta a los siguientes juegos: Bleach Blade Battlers, Growlanser II y III, Wizardry. + + + + Emulate GIF FIFO + Emular FIFO del GIF + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Más correcto, pero más lento. Afecta a los siguientes juegos: Fifa Street 2. + + + + DMA Busy Hack + Corrección para DMA saturado + + + + Delay VIF1 Stalls + Retrasar paralizaciones del VIF1 + + + + Emulate VIF FIFO + Emular FIFO del VIF + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simula las lecturas adelantadas FIFO del VIF1. Afecta a los siguientes juegos: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + Corrección del bit I de las VU + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Evita la recompilación constante de algunos juegos. Afecta a los siguientes: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Para juegos de Tri-Ace: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + Sincronizar las VU - + + Run behind. To avoid sync problems when reading or writing VU registers. + Para evitar problemas de sincronización al leer o escribir en los registros de las VU. + + + + VU XGKick Sync + Sincronizar XGKicks de las VU + + + + Force Blit Internal FPS Detection + Forzar detección interna de FPS mediante el BLIT + + + Save State - Guardado rápido + Crear guardado rápido - + Load Resume State - Cargar guardado rápido de continuación + Cargar guardado de continuación - + A resume save state created at %s was found. Do you want to load this save and continue? - Se ha encontrado un guardado rápido de continuación para este juego en: %1. + Se ha encontrado un guardado de continuación con fecha: %s. ¿Deseas cargar este guardado rápido? - + Region: Región: - + Compatibility: Compatibilidad: - + No Game Selected No se ha seleccionado un juego - + Search Directories Directorios de búsqueda - + Adds a new directory to the game search list. Añade un directorio nuevo a la lista de búsqueda de juegos. - + Scanning Subdirectories Búsqueda en subdirectorios activada - + Not Scanning Subdirectories Búsqueda en subdirectorios desactivada - + List Settings Ajustes de la lista - + Sets which view the game list will open to. Establece la vista inicial de la lista de juegos. - + Determines which field the game list will be sorted by. Determina el campo que se utilizará para ordenar la lista de juegos. - + Reverses the game list sort order from the default (usually ascending to descending). Invierte el orden predeterminado de la lista de juegos (normalmente de ascendente a descendente). - + Cover Settings Ajustes de carátulas - + Downloads covers from a user-specified URL template. - Descarga las carátulas de una URL de plantilla especificada por el usuario. + Descarga las carátulas de un modelo de URL especificado por el usuario. - + Operations Operaciones - + + Selects where anisotropic filtering is utilized when rendering textures. + Selecciona cómo se aplicará el filtrado anisotrópico para renderizar texturas. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + Utiliza un método alternativo para calcular los FPS internos y evitar falsas lecturas en algunos juegos. - + Identifies any new files added to the game directories. Identifica cualquier archivo nuevo que se haya añadido a los directorios de juegos. - + Forces a full rescan of all games previously identified. Fuerza una búsqueda completa de todos los juegos ya identificados. - + Download Covers Descargar carátulas - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 puede descargar automáticamente las carátulas de aquellos juegos que no tengan una carátula asignada. No alojamos ninguna imagen: es el usuario quien debe proporcionarlas. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - Introduce en el siguiente cuadro de texto las direcciones URL desde las que se descargarán las carátulas, escribiendo una URL de plantilla por línea. Estas son las variables disponibles: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: título del juego. -${filetitle}: elemento del nombre de archivo del juego. -${serial}: número de serie del juego. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - número de serie del juego.: https://www.ejemplo-de-un-dominio-que-no-es-real.com/caratulas/${serial}.jpg - - - - Use Serial File Names - Usar números de serie como nombres de archivo - - - + About PCSX2 Acerca de PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 es un emulador de PlayStation 2 (PS2) gratuito y de código abierto, cuyo fin es emular el hardware de PS2 mediante una combinación de intérpretes y recompiladores de la CPU MIPS y una máquina virtual que gestiona los estados del hardware y la memoria del sistema de PS2. De esta forma puedes ejecutar juegos de PS2 en tu PC con todo tipo de prestaciones y beneficios adicionales. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 y PS2 son marcas registradas de Sony Interactive Entertainment. Esta aplicación no está afiliada de ninguna forma con Sony Interactive Entertainment. - - XXX points - XXX puntos - - - - Unlocked Achievements - Logros desbloqueados - - - - Locked Achievements - Logros bloqueados - - - - Active Challenge Achievements - Logros de desafío activos - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Se han desactivado los trucos porque el modo de logros «hardcore» está activado. Las tablas de clasificación están en modo de solo lectura. - - - - Rank - Rango - - - - Name - Nombre - - - - Time - Fecha - - - - Score - Puntuación - - - - Downloading leaderboard data, please wait... - Descargando datos de la tabla de clasificación, espera... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. Al activar esta opción y una vez hayas iniciado sesión, PCSX2 buscará logros al arrancar. - - When enabled, rich presence information will be collected and sent to the server where supported. - Al activar esta opción, se recopilará la información de presencia y se enviará al servidor en aquellos casos que sean compatibles. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. El modo más desafiante, que incluye un seguimiento de las tablas de clasificación. Desactiva las características de guardado rápido, trucos y ralentización. - - Enables tracking and submission of leaderboards in supported games. - Activa el seguimiento y envío de tablas de clasificación para aquellos juegos que sean compatibles. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Muestra mensajes emergentes en ciertas situaciones, como el desbloqueo de logros y el envío de puntuaciones a las tablas. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Reproduce efectos de sonido en ciertas situaciones, como el desbloqueo de logros y el envío de puntuaciones a las tablas. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Muestra iconos en la esquina inferior derecha de la pantalla cuando haya un logro activo o un desafío. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. Al activar esta opción, PCSX2 mostrará los logros de colecciones no oficiales. RetroAchievements no hará un seguimiento de estos logros. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Al activar esta opción, PCSX2 asumirá que todos los logros están bloqueados y no enviará notificaciones de desbloqueo al servidor. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Muestra mensajes emergentes al activar, enviar o fracasar un desafío de una tabla de clasificación. + + + + When enabled, each session will behave as if no achievements have been unlocked. + Al activar esta opción, cada sesión de juego se comportará como si no se hubiesen desbloqueado logros. + + + Account - Account + Cuenta - + Logs out of RetroAchievements. Cierra la sesión de RetroAchievements. - + Logs in to RetroAchievements. Inicia sesión en RetroAchievements. - + Current Game - Current Game + Juego actual - - Achievements Login - Inicio de sesión en RetroAchievements - - - - Please enter your user name and password for retroachievements.org. - Introduce tu nombre de usuario y contraseña de retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - PCSX2 no almacenará tu contraseña, sino que generará y utilizará un token de acceso. - - - - User Name: - Usuario: - - - - Password: - Contraseña: - - - + {} is not a valid disc image. {} no es una imagen de disco válida. - + Automatic mapping completed for {}. Asignación automática de {} finalizada. - + Automatic mapping failed for {}. Error en la asignación automática de {}. - + Game settings initialized with global settings for '{}'. Ajustes del juego «{}» creados con la configuración global. - + Game settings have been cleared for '{}'. Ajustes del juego «{}» borrados. - + Console Port {} - Console Port {} + Puerto {} de la consola - + {} (Current) {} (actual) - + {} (Folder) {} (carpeta) - + Memory card name '{}' is not valid. Nombre de Memory Card «{}» no válido. - + Memory Card '{}' created. Memory Card «{}» creada. - + Failed to create memory card '{}'. Error al crear la Memory Card «{}». - + A memory card with the name '{}' already exists. Ya existe una Memory Card con el nombre «{}». - + Failed to load '{}'. Error al cargar «{}». - + Input profile '{}' loaded. Perfil de entrada «{}» cargado. - + Input profile '{}' saved. Perfil de entrada «{}» guardado. - + Failed to save input profile '{}'. Error al guardar el perfil de entrada «{}». - + Port {} Controller Type Tipo de mando del puerto {} - + Select Macro {} Binds Seleccionar asignaciones de la macro {} - + + Macro {} Frequency + Frecuencia de la macro {} + + + Macro will toggle every {} frames. La macro se alternará cada {} fotogramas. - + Port {} Device Dispositivo del puerto {} - + Port {} Subtype Subtipo del puerto {} - + {} unlabelled patch codes will automatically activate. - Se activará(n) automáticamente {} código o códigos de parches sin etiquetar. + Se activará(n) automáticamente {} código(s) de parches sin etiquetar. - + {} unlabelled patch codes found but not enabled. - Se ha(n) encontrado {} código o códigos de parches, pero no ha(n) sido activados. + Se ha(n) encontrado {} código(s) de parches, pero no ha(n) sido activado(s). - + This Session: {} Esta sesión: {} - + All Time: {} - Absoluto: {} + Tiempo total: {} - + Save Slot {0} Espacio de guardado {0} - + Saved {} Fecha: {} - + {} does not exist. {} no existe. - + {} deleted. - {} ha sido eliminado. + Se ha eliminado: {}. - + Failed to delete {}. Error al eliminar {}. - + File: {} Archivo: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Tiempo jugado: {} - + Last Played: {} Última partida: {} - + Size: {:.2f} MB Tamaño: {:.2f} MB - - {} points - {} puntos + + Left: + Izda.: - - {} (Hardcore Mode) - {} (modo «hardcore») + + Top: + Arriba: - - You have unlocked all achievements and earned {} points! - ¡Has desbloqueado todos los logros y has ganado {} puntos! + + Right: + Dcha.: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - Has desbloqueado {} de {} logros, ganando {} de {} puntos. + + Bottom: + Abajo: - - This game has {} leaderboards. - Este juego tiene {} tablas de clasificación. - - - + Summary Resumen - + Interface Settings Ajustes de la interfaz - + BIOS Settings Ajustes de BIOS - + Emulation Settings Ajustes de emulación - + Graphics Settings Ajustes de gráficos - + Audio Settings Ajustes de audio - + Memory Card Settings - Ajustes de Memory Card + Ajustes de Memory Cards - + Controller Settings Ajustes de mandos - + Hotkey Settings Ajustes de teclas de acceso rápido - + Achievements Settings Ajustes de logros - + Folder Settings Ajustes de carpetas - + Advanced Settings Ajustes avanzados - + Patches Parches - + Cheats Trucos - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2 % [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10 % [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25 % [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50 % [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75 % [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90 % [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100 % [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110 % [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120 % [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150 % [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175 % [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200 % [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300 % [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400 % [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500 % [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000 % [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed Velocidad al 50 % - + 60% Speed Velocidad al 60 % - + 75% Speed Velocidad al 75 % - + 100% Speed (Default) Velocidad al 100 % (predeterminada) - + 130% Speed Velocidad al 130 % - + 180% Speed Velocidad al 180 % - + 300% Speed Velocidad al 300 % - + Normal (Default) Normal (valor predeterminado) - + Mild Underclock Bajar ligeramente la velocidad - + Moderate Underclock Bajar moderadamente la velocidad - + Maximum Underclock Bajada máxima de velocidad - + Disabled Opción desactivada - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 fotogramas (sincronización forzada) - + 1 Frame 1 fotograma - + 2 Frames 2 fotogramas - + 3 Frames 3 fotogramas - + None No hacer nada - + Extra + Preserve Sign Extra + conservar signo - + Full - Completo + Todo - + Extra Extra - + Automatic (Default) Ajuste automático (predeterminado) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Nulo - + Off No - + On - + Adaptive Adaptativo - + Bilinear (Smooth) Bilineal (suavizado) - + Bilinear (Sharp) Bilineal (realzado) - + Weave (Top Field First, Sawtooth) - «Weave» (empezando por el campo superior, muestra dientes de sierra) + «Weave» (campo superior, muestra dientes de sierra) - + Weave (Bottom Field First, Sawtooth) - «Weave» (empezando por el campo inferior, muestra dientes de sierra) + «Weave» (campo inferior, muestra dientes de sierra) - + Bob (Top Field First) Bob (empezando por el campo superior) - + Bob (Bottom Field First) Bob (empezando por el campo inferior) - + Blend (Top Field First, Half FPS) - Fusión («Blend», empezando por el campo superior, FPS a la mitad) + Fusión («Blend», campo superior, FPS a la mitad) - + Blend (Bottom Field First, Half FPS) - Fusión («Blend», empezando por el campo inferior, FPS a la mitad) + Fusión («Blend», campo inferior, FPS a la mitad) - + Adaptive (Top Field First) Adaptativo (empezando por el campo superior) - + Adaptive (Bottom Field First) Adaptativo (empezando por el campo inferior) - + Native (PS2) Nativa (PS2) - + 1.25x Native Nativa ×1,25 - + 1.5x Native Nativa ×1,5 - + 1.75x Native Nativa ×1,75 - + 2x Native (~720p) Nativa ×2 (~720p) - + 2.25x Native Nativa ×2,25 - + 2.5x Native Nativa ×2,5 - + 2.75x Native Nativa ×2,75 - + 3x Native (~1080p) Nativa ×3 (~1080p) - + 3.5x Native Nativa ×3,5 - + 4x Native (~1440p/2K) Nativa ×4 (~1440p/2K) - + 5x Native (~1620p) Nativa ×4 (~1620p) - + 6x Native (~2160p/4K) Nativa ×6 (~2160p/4K) - + 7x Native (~2520p) Nativa ×7 (~2520p) - + 8x Native (~2880p) Nativa ×8 (~2880p) - + Basic (Generated Mipmaps) Básico (mipmaps generados) - + Full (PS2 Mipmaps) Completo (mipmaps de PS2) - + Nearest Vecino más cercano - + Bilinear (Forced) Bilineal (forzado) - + Bilinear (PS2) Bilineal (estilo PS2) - + Bilinear (Forced excluding sprite) Bilineal (forzado salvo a sprites) - + Off (None) - Desactivado (no usar) + Desactivar filtro trilineal - + Trilinear (PS2) Trilineal (estilo PS2) - + Trilinear (Forced) Trilineal (forzado) - + Scaled A escala - + Unscaled (Default) Sin escalar (predeterminado) - + Minimum Mínima - + Basic (Recommended) Básica (recomendada) - + Medium Media - + High Alta - + Full (Slow) Completa (lenta) - + Maximum (Very Slow) Máxima (muy lenta) - + Off (Default) Sin cambiar (predeterminado) - + 2x x2 - + 4x x4 - + 8x x8 - + 16x x16 - + Partial Parcial - + Full (Hash Cache) Completa (caché con «hashes») - + Force Disabled Forzar desactivación - + Force Enabled Forzar activación - + Accurate (Recommended) Preciso (recomendado) - + Disable Readbacks (Synchronize GS Thread) - Desactivar cotejado (sincronizar el hilo del GS) + Deshabilitar cotejado (sincronizar el subproceso del GS) - + Unsynchronized (Non-Deterministic) Sin sincronizar (no determinista) - + Disabled (Ignore Transfers) Desactivado (ignorar las transferencias) - + Screen Resolution Resolución de pantalla - - Internal Resolution (Uncorrected) - Resolución interna (sin corregir) + + Internal Resolution (Aspect Uncorrected) + Resolución interna (sin corregir el aspecto) + + + + Cannot show details for games which were not scanned in the game list. + No se pueden mostrar detalles para aquellos juegos que no se encuentren en la lista de juegos. + + + + Full Boot + Arranque completo + + + + Achievement Notifications + Notificaciones de logros - + + Leaderboard Notifications + Notificaciones de tablas de clasificación + + + + Enable In-Game Overlays + Superposiciones dentro del juego + + + + Encore Mode + Modo «encore» (de nueva partida) + + + + Spectator Mode + Modo espectador + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (desactivar) - + 1 (64 Max Width) 1 (ancho máximo de 64) - + 2 (128 Max Width) 2 (ancho máximo de 128) - + 3 (192 Max Width) 3 (ancho máximo de 192) - + 4 (256 Max Width) 4 (ancho máximo de 256) - + 5 (320 Max Width) 5 (ancho máximo de 320) - + 6 (384 Max Width) 6 (ancho máximo de 384) - + 7 (448 Max Width) 7 (ancho máximo de 448) - + 8 (512 Max Width) 8 (ancho máximo de 512) - + 9 (576 Max Width) 9 (ancho máximo de 576) - + 10 (640 Max Width) 10 (ancho máximo de 640) - + Sprites Only Solo sprites - + Sprites/Triangles Sprites/Triángulos - + Blended Sprites/Triangles Sprites fusionados/Triángulos - + 1 (Normal) 1 (normal) - + 2 (Aggressive) 2 (agresivo) - + Inside Target Dentro del objetivo - + Merge Targets Fusionar objetivos - + Normal (Vertex) Normal (vértices) - + Special (Texture) Especial (texturas) - + Special (Texture - Aggressive) Especial (texturas, agresivo) - + Half - La mitad + Medio píxel - + Force Bilinear Forzar bilineal - + Force Nearest Forzar vecino más cercano - + Disabled (Default) Opción desactivada (predeterminado) - + Enabled (Sprites Only) Activada (solo sprites) - + Enabled (All Primitives) Activada (todos los primitivos) - + None (Default) No (predeterminado) - + Sharpen Only (Internal Resolution) Solo realzar (mediante resolución interna) - + Sharpen and Resize (Display Resolution) Realzar y redimensionar (resolución de visualización) - + Scanline Filter Filtro de líneas de exploración - + Diagonal Filter Filtro diagonal - + Triangular Filter Filtro triangular - + Wave Filter Filtro ondulado - + Lottes CRT CRT de Lottes - + 4xRGSS RGSSx4 - + NxAGSS AGSSxN - + Uncompressed Sin comprimir - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) Expansión de tiempo (recomendada) - + Async Mix (Breaks some games!) Mezcla asíncrona (¡rompe algunos juegos!) - + None (Audio can skip.) Ninguna (puede haber cortes de audio) - + Stereo (None, Default) Estéreo (ninguna, predeterminada) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) Sin sonido (emular solo la SPU2) - + Cubeb (Cross-platform) Cubeb (multiplataforma) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8 MB) - + PS2 (16MB) PS2 (16 MB) - + PS2 (32MB) PS2 (32 MB) - + PS2 (64MB) PS2 (64 MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [lo más compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Carpeta [recomendada] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negativo + + + + Positive + Positivo + + + + Chop/Zero (Default) + Eliminar/cero (predeterminado) + + + Game Grid Cuadrícula de juegos - + Game List Lista de juegos - + Game List Settings Ajustes de la lista de juegos - + Type Tipo - + Serial N.º de serie - + Title Título - + File Title Título del archivo - + CRC CRC - + Time Played Tiempo jugado - + Last Played Última partida - + Size Tamaño - + Select Disc Image Seleccionar imagen de disco - + Select Disc Drive Seleccionar unidad de disco - + Start File Ejecutar archivo - + Start BIOS Ejecutar BIOS - + Start Disc Ejecutar disco - + Exit Salir - + Set Input Binding - Establecer asignaciones de entrada + Establecer asignación de entrada - + Region Región - + Compatibility Rating Valoración de compatibilidad - + Path Ruta - + Disc Path Ruta del disco - + Select Disc Path Seleccionar ruta del disco - - Details unavailable for game not scanned in game list. - No hay detalles para un juego que no se encuentre en la lista de juegos. - - - + Copy Settings Copiar configuración - + Clear Settings Borrar configuración - + Inhibit Screensaver Desactivar salvapantallas - + + Enable Discord Presence + Habilitar presencia en Discord + + + Pause On Start Pausar nada más iniciar - + Pause On Focus Loss Pausar al pasar a segundo plano - + Pause On Menu Pausar al entrar en el menú - + Confirm Shutdown Confirmar apagado - + Save State On Shutdown Crear guardado rápido al apagar - + Enable Per-Game Settings Habilitar ajustes individuales para cada juego - + Use Light Theme Usar tema claro - + Start Fullscreen Iniciar a pantalla completa - + Double-Click Toggles Fullscreen Hacer doble clic para pantalla completa - + Hide Cursor In Fullscreen Ocultar cursor en pantalla completa - + OSD Scale Escala de presentación en pantalla - + Show Messages Mostrar mensajes - + Show Speed Mostrar velocidad - + Show FPS Mostrar FPS - + Show CPU Usage Mostrar uso de la CPU - + Show GPU Usage Mostrar uso de la GPU - + Show Resolution Mostrar resolución - + Show GS Statistics Mostrar estadísticas del GS - + Show Status Indicators Mostrar indicadores de estado - + Show Settings Mostrar ajustes - + Show Inputs Mostrar entradas - + Show Frame Times Mostrar duraciones de fotogramas - + Warn About Unsafe Settings Advertir de ajustes que no sean seguros - + Reset Settings Reiniciar ajustes - + Change Search Directory Cambiar directorio de búsqueda - + Fast Boot Arranque rápido - + Output Volume Volumen de salida - + Synchronization Mode Modo de sincronización - + Expansion Mode Modo de expansión - + Output Module Módulo de salida - + Latency Latencia - + Sequence Length Longitud de secuencia - + Seekwindow Size Tamaño de ventana de búsqueda - + Overlap Solapamiento - + Memory Card Directory Directorio de Memory Cards - + Folder Memory Card Filter - Filtrar carpeta de Memory Card + Filtrar carpetas de Memory Card - + Auto Eject When Loading Expulsar automáticamente al cargar - + Create Crear - + Cancel Cancelar - + Load Profile Cargar perfil - + Save Profile Guardar perfil - + Per-Game Configuration - Configuración manual del juego + Configuración específica para el juego - + Copy Global Settings Copiar configuración global - + Enable SDL Input Source Habilitar origen de entrada SDL - + SDL DualShock 4 / DualSense Enhanced Mode Modo SDL mejorado para DualShock 4/DualSense - + SDL Raw Input Entrada sin procesar SDL - + Enable XInput Input Source Habilitar origen de entrada XInput - + Enable Console Port 1 Multitap Habilitar multitap en el puerto de mando 1 - + Enable Console Port 2 Multitap Habilitar multitap en el puerto de mando 2 - + Controller Port {}{} Puerto de mando {}{} - + Controller Port {} Puerto de mando {} - + Controller Type Tipo de mando - + Automatic Mapping Asignación automática - + Controller Port {}{} Macros Macros del puerto de mando {}{} - + Controller Port {} Macros Macros del puerto de mando {} - + Macro Button {} - Botón de macro {} + Botones de macro {} - + Buttons Botones - + Frequency Frecuencia - + Pressure Presión - + Controller Port {}{} Settings Ajustes del puerto de mando {}{} - + Controller Port {} Settings Ajustes del puerto de mando {} - + USB Port {} Puerto USB {} - + Device Type Tipo de dispositivo - + Device Subtype Subtipo de dispositivo - + {} Bindings Asignaciones de {} - + Clear Bindings Borrar asignaciones - + {} Settings Ajustes de {} - + Cache Directory Directorio de la caché - + Covers Directory Directorio de carátulas - + Snapshots Directory Directorio de capturas de imagen - + Save States Directory Directorio de guardados rápidos - + Game Settings Directory Directorio de ajustes de juegos - + Input Profile Directory Directorio de perfiles de entrada - + Cheats Directory Directorio de trucos - + Patches Directory Directorio de parches - + Texture Replacements Directory Directorio de texturas de reemplazo - + Video Dumping Directory Directorio de volcado de vídeos - + Resume Game Continuar partida - + Toggle Frame Limit Alternar limitador de fotogramas - + Game Properties Propiedades del juego - + Achievements Logros - + Save Screenshot Guardar captura de pantalla - + Switch To Software Renderer Cambiar a renderizador por software - + Switch To Hardware Renderer Cambiar a renderizador por hardware - + Change Disc Cambiar disco - + Close Game Cerrar juego - + Exit Without Saving Salir sin guardar - + Back To Pause Menu Volver al menú de pausa - + Exit And Save State Salir y hacer un guardado rápido - + Leaderboards Tablas de clasificación - + Delete Save - Borrar archivo + Eliminar guardado rápido - + Close Menu Cerrar menú - - Clean Boot - Arranque limpio - - - + Delete State Eliminar guardado rápido - + Default Boot Arranque predeterminado - - Slow Boot - Arranque lento - - - + Reset Play Time Restablecer tiempo jugado - + Add Search Directory Añadir directorio de búsqueda - + Open in File Browser Abrir en el explorador de archivos - + Disable Subdirectory Scanning - Desactivar búsqueda en subdirectorios + Deshabilitar búsqueda en subdirectorios - + Enable Subdirectory Scanning - Activar búsqueda en subdirectorios + Habilitar búsqueda en subdirectorios - + Remove From List Quitar de la lista - + Default View Vista predeterminada - + Sort By - Ordenar por + Orden - + Sort Reversed Invertir orden - + Scan For New Games Buscar juegos nuevos - + Rescan All Games Volver a buscar todos los juegos - - Start Download - Comenzar descarga - - - + Website Página web - + Support Forums Foros para asistencia técnica - + GitHub Repository Repositorio de GitHub - + License Licencia - + Close Cerrar - + RAIntegration is being used instead of the built-in achievements implementation. Se está utilizando RAIntegration en vez de la implementación nativa de logros. - + Enable Achievements Habilitar logros - - Rich Presence - Rich Presence - - - + Hardcore Mode Modo «hardcore» - - Show Notifications - Mostrar notificaciones - - - + Sound Effects Efectos de sonido - - Show Challenge Indicators - Mostrar indicadores de desafío - - - + Test Unofficial Achievements Probar logros no oficiales - - Test Mode - Modo de pruebas - - - + Username: {} Usuario: {} - + Login token generated on {} Token de acceso generado el {} - + Logout Cerrar sesión - + Not Logged In No se ha iniciado sesión - + Login - Iniciar sesión - - - - Achievements are disabled. - Los logros están desactivados. - - - - Game ID: {} - ID del juego: {} - - - - Game Title: {} - Título del juego: {} + Iniciar sesión - - Achievements: {} ({} points) - Logros: {} ({} puntos) + + Game: {0} ({1}) + Juego: {0} ({1}) - + Rich presence inactive or unsupported. El modo de «Rich Presence» no se encuentra activo o no está soportado. - + Game not loaded or no RetroAchievements available. No se ha cargado un juego o no tiene RetroAchievements disponibles. - + Card Enabled - Memory Card activada + Activar Memory Card - + Card Name Nombre de Memory Card - + Eject Card Expulsar Memory Card @@ -8074,9 +8323,9 @@ ${serial}: número de serie del juego. Error al reabrir, restaurando la configuración antigua. - + Upscale multiplier set to {}x. - Multiplicador de escalado establecido en x{}. + Multiplicador de escalado cambiado a x{}. @@ -8101,12 +8350,12 @@ ${serial}: número de serie del juego. CAS is not available, your graphics driver does not support the required functionality. - CAS no está disponible: tu controlador gráfico no es compatible con la característica necesaria. + CAS no está disponible: tu controlador gráfico no es compatible con la funcionalidad necesaria. Saving {0} GS dump {1} to '{2}' - Guardando {0} volcado GS {1} en «{2}» + Guardando volcado del GS {0} {1} en «{2}» @@ -8116,7 +8365,7 @@ ${serial}: número de serie del juego. Saved GS dump to '{}'. - Guardando volcado GS en «{}». + Guardando volcado del GS en «{}». @@ -8129,12 +8378,12 @@ ${serial}: número de serie del juego. Desactivando los «mipmaps» autogenerados de una o más texturas de reemplazo comprimidas. Se recomienda generar «mipmaps» al comprimir tus texturas. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Los búferes de símbolos y las barreras de texturas no están disponibles: algunos efectos gráficos fallarán. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. La opción «Mantener la GPU en marcha al cotejar» está activada, pero las marcas de tiempo calibradas no están disponibles. El proceso podría ser muy lento. @@ -8184,13 +8433,13 @@ ${serial}: número de serie del juego. %1 unlabelled patch codes will automatically activate. - Se activará(n) automáticamente %1 código o códigos de parches sin etiquetar. + Se activará(n) automáticamente %1 código(s) de parches sin etiquetar. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8202,263 +8451,405 @@ del juego para mejorar la calidad gráfica, pero aumentarán los requisitos del sistema. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Se han activado las correcciones manuales para el renderizador por hardware del GS. No se han aplicado las siguientes correcciones automáticas: - + No tracks provided. No hay pistas. - + Hash {} is not in database. El «hash» {} no se encuentra en la base de datos. - + Data track number does not match data track in database. El número de la pista de datos no concuerda con el de la base de datos. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - La pista {} con el «hash» {} no existe en la base de datos. + La pista {0} con el «hash» {1} no existe en la base de datos. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - La pista {} con el «hash» {} corresponde a otro juego ({}). + La pista {0} con el «hash» {1} corresponde a otro juego ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - La pista {} con el «hash» {} no se corresponde con la pista de la base de datos. + La pista {0} con el «hash» {1} no se corresponde con la pista de la base de datos. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Correcciones para juegos (NO SE RECOMIENDA cambiarlos de forma global) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - Corrección de división negativa en la FPU (para los juegos de Gundam) + Corrección de división negativa en la FPU - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - Corrección de multiplicaciones de la FPU (para Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Utilizar el renderizador por software para los vídeos FMV + Corrección de multiplicaciones de la FPU - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Corrección para omitir el formato MPEG (omite los vídeos/FMV) + Corrección para omitir el formato MPEG - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Corrección de precarga del TLB (para los juegos de Goemon) + Corrección de precarga del TLB - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - Corrección de sincronización del EE (para uso general) + Corrección de sincronización del EE - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Corrección de DMA instantáneo (ideal si hay problemas de emulación de caché) + Corrección de DMA instantáneo - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - Corrección del indicador OPH (para Bleach Blade Battlers) + Corrección del indicador OPH - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emular FIFO del GIF (más correcto, pero más lento) + Emular FIFO del GIF - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - Corrección para DMA saturado (bloquea las escrituras al estar ocupado) + Corrección para DMA saturado - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Retrasar paralizaciones del VIF1 (para la interfaz de SOCOM 2 o Spy Hunter) + Retrasar paralizaciones del VIF1 - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emular FIFO del VIF (más correcto, pero más lento) + Emular FIFO del VIF - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Sincronización total de la VU0 (más correcta, pero más lenta) + Sincronización total de la VU0 - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - Corrección del bit I de la VU (para Scarface The World is Yours/Crash Tag Team Racing) + Corrección del bit I de las VU - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - Corrección de sumas de la VU (para los juegos de Tri-Ace) + Corrección de sumas de las VU - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - Corrección de desbordamiento de la VU (Superman Returns) + Corrección de desbordamiento de las VU - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - Sincronizar la VU (juegos con problemas de ralentizaciones o que usen M-Bits) + Sincronizar las VU - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - Sincronizar XGKick de la VU (más correcto, pero más lento) + Sincronizar XGKicks de las VU - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Forzar detección interna de FPS mediante el BLIT (para cuando falle la detección automática) + Forzar detección interna de FPS mediante el BLIT + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Utilizar el renderizador por software para los vídeos FMV + + + + + + + + + + + + + + + + + + + + + + Unchecked + desactivado + + + + For Tales of Destiny. + Para Tales of Destiny. + + + + For Gundam Games. + Para los juegos de Gundam. + + + + To avoid TLB miss on Goemon. + Para evitar los fallos del TLB en los juegos de Goemon. + + + + Needed for some games with complex FMV rendering. + Necesario para algunos juegos que renderizan los vídeos FMV de una forma compleja. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Omite los vídeos o FMV de los juegos para evitar cuelgues o bloqueos. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Afecta a los siguientes juegos: Bleach Blade Battlers, Growlanser II y III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Corrección de sincronización de uso general. Afecta a los siguientes juegos: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Ideal para problemas de emulación de caché. Afecta a los siguientes juegos: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Afecta a los siguientes juegos: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Más correcto, pero más lento. Afecta a los siguientes juegos: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simula las lecturas adelantadas FIFO del VIF1. Afecta a los siguientes juegos: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + Para la interfaz de SOCOM 2 y los cuelgues al cargar en Spy Hunter. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Para juegos de Tri-Ace: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Evita la recompilación constante de algunos juegos. Afecta a los siguientes: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Fuerza una sincronización estricta de la VU0 por cada instrucción COP2. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Para evitar problemas de sincronización al leer o escribir en los registros de las VU. + + + + To check for possible float overflows (Superman Returns). + Comprueba los posibles desbordamientos en los valores de coma flotante (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Utiliza una sincronización precisa para los XGKicks de las VU (más lenta). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Utiliza un método alternativo para calcular los FPS internos y evitar falsas lecturas en algunos juegos. GameList - + Never Nunca - + Today Hoy - + Yesterday Ayer - + {}h {}m {} h {} m - + {}h {}m {}s {} h {} m {} s - + {}m {}s {} m {} s - + {}s {} s - + {} hours {} horas - + {} minutes {} minutos + + + Downloading cover for {0} [{1}]... + Descargando carátula para {0} [{1}]... + GameListModel - + Type Tipo - + Code N.º serie - + Title Título - + File Title Título del archivo - + CRC CRC - + Time Played Tiempo jugado - + Last Played Última partida - + Size Tamaño - + Region Región - + Compatibility Compatibilidad @@ -8466,74 +8857,100 @@ los requisitos del sistema. GameListSettingsWidget - + + Game Scanning + Búsqueda de juegos + + + Search Directories (will be scanned for games) Directorios de búsqueda (de juegos) - + Add... Añadir... - - - + + + Remove Quitar - + Search Directory Directorio de búsqueda - + Scan Recursively - Búsqueda recursiva + Recursividad - + Excluded Paths (will not be scanned) Rutas a excluir (donde no se buscarán juegos) - + Directory... Directorio... - + File... Archivo... - + Scan For New Games Buscar juegos nuevos - + Rescan All Games Volver a buscar todos los juegos - + + Display + Visualización + + + + + Prefer English Titles + Preferir títulos en inglés + + + + Unchecked + desactivado + + + + For games with both a title in the game's native language and one in English, prefer the English title. + Si el título original de un juego no se corresponde con el título en inglés, mostrará el título en inglés. + + + Open Directory... Abrir directorio... - + Select Search Directory Seleccionar directorio de búsqueda - + Scan Recursively? ¿Buscar de forma recursiva? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8542,12 +8959,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. La búsqueda recursiva llevará más tiempo, pero identificará todo archivo que se encuentre en subdirectorios. - + Select File Seleccionar archivo - + Select Directory Seleccionar directorio @@ -8555,32 +8972,32 @@ La búsqueda recursiva llevará más tiempo, pero identificará todo archivo que GameListWidget - + Game List Lista de juegos - + Game Grid Cuadrícula de juegos - + Show Titles Mostrar títulos - + All Types Todos los tipos - + All Regions Todas las regiones - + Search... Buscar... @@ -8606,17 +9023,17 @@ La búsqueda recursiva llevará más tiempo, pero identificará todo archivo que <html><head/><body><p><span style=" font-weight:700;">Autor: </span>Autor del parche</p><p>Aquí iría la descripción</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Autor: </strong>%1<br>%2 - + Unknown Desconocido - + No description provided. No se ha proporcionado una descripción. @@ -8634,7 +9051,7 @@ La búsqueda recursiva llevará más tiempo, pero identificará todo archivo que Recargar parches - + There are no patches available for this game. No hay parches disponibles para este juego. @@ -8649,403 +9066,414 @@ La búsqueda recursiva llevará más tiempo, pero identificará todo archivo que Clear the line to restore the original title... - Borra la línea para restaurar el título original... + Deja la línea en blanco para restaurar el título original... - + Restore Restaurar + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Título a usar al ordenar: + + + + English Title: + Título en inglés: + + + Path: Ruta: - + Serial: N.º de serie: - + CRC: CRC: - + Type: Tipo: - + PS2 Disc Disco de PS2 - + PS1 Disc Disco de PS1 - + ELF (PS2 Executable) ELF (ejecutable de PS2) - + Region: Región: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brasil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japón) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Corea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwán) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (EE.UU.) - + Other Otra - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (Sudáfrica) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Bélgica) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europa/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (Francia) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finlandia) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Alemania) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Grecia) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italia) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europa/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Países Bajos) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Noruega) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Polonia) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Rusia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (España) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Escandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Suecia) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Suiza) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Reino Unido) - + Compatibility: Compatibilidad: - + Unknown Desconocida - + Not Bootable No ejecutable - + Reaches Intro Llega hasta la introducción - + Reaches Menu Llega hasta los menús - + In-Game Llega hasta dentro del juego - + Playable Jugable - + Perfect Perfecta - + Input Profile: Perfil de entrada: - + Shared Refers to the shared settings profile. Compartido - + Disc Path: Ruta del disco: - + Browse... Buscar... - + Clear Borrar - + Verify Verificar - + Search on Redump.org... Buscar en Redump.org... - + Select Disc Path Seleccionar ruta del disco - + Game is not a CD/DVD. El juego no es un CD/DVD. - + Track list unavailable while virtual machine is running. La lista de pistas no estará disponible mientras se ejecute la máquina virtual. - + # N.º - + Mode Modo - - + + Start Inicio - - + + Sectors Sectores - - + + Size Tamaño - - + + MD5 MD5 - - + + Status Estado - - - - - - + + + + + + %1 %1 - - + + <not computed> - <sin calcular> + (sin calcular) - + Error Error - + Cannot verify image while a game is running. No se puede verificar la imagen mientras se esté ejecutando un juego. - + One or more tracks is missing. Faltan una o más pistas. - + Verified as %1 [%2] (Version %3). Verificado como %1 [%2] (Versión %3). - + Verified as %1 [%2]. Verificado como %1 [%2]. @@ -9053,62 +9481,62 @@ La búsqueda recursiva llevará más tiempo, pero identificará todo archivo que GraphicsSettingsWidget - + Renderer: Renderizador: - + Adapter: Adaptador: - + Display Imagen - + Fullscreen Mode: Modo a pantalla completa: - + Aspect Ratio: Relación de aspecto: - + Fit to Window / Fullscreen Ajustar a ventana/pantalla completa - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Estándar automática (4:3/3:2 progresivo) - - + + Standard (4:3) Estándar (4:3) - - + + Widescreen (16:9) Panorámica (16:9) - + FMV Aspect Ratio: Relación de aspecto de vídeos FMV: - - - + + + @@ -9118,12 +9546,12 @@ La búsqueda recursiva llevará más tiempo, pero identificará todo archivo que Sin cambiar (predeterminado) - - - - - - + + + + + + @@ -9134,92 +9562,92 @@ La búsqueda recursiva llevará más tiempo, pero identificará todo archivo que Ajuste automático (predeterminado) - + None (Interlaced, also used by Progressive) - Nulo (imagen entrelazada, también se utiliza para el modo progresivo) + No desentrelazar (también se utiliza para el modo progresivo) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. «Weave» (empezando por el campo superior, muestra dientes de sierra) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. «Weave» (empezando por el campo inferior, muestra dientes de sierra) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (empezando por el campo superior, muestra los fotogramas completos) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (empezando por el campo inferior, muestra los fotogramas completos) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Fusión («Blend», empezando por el campo superior, fusiona ambos campos) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Fusión («Blend», empezando por el campo inferior, fusiona ambos campos) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptativo (empezando por el campo superior, similar a Bob + «Weave») - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptativo (empezando por el campo inferior, similar a Bob + «Weave») - + Bilinear Filtering: Filtrado bilineal: - - + + None No - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilineal (suavizado) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilineal (realzado) - + Vertical Stretch: Estiramiento vertical: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9227,355 +9655,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne  % - + Crop: Recortar: - + Left: Warning: short space constraints. Abbreviate if necessary. Izda.: - - - - + + + + px -   px +  px - + Top: Warning: short space constraints. Abbreviate if necessary. Arriba: - + Right: Warning: short space constraints. Abbreviate if necessary. Dcha.: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Abajo: - + Screen Offsets Compensación de imagen - + VSync Sincronización vertical («V-Sync») - + Show Overscan Mostrar área de sobrebarrido - + Enable Widescreen Patches - Habilitar parches para pantallas panorámicas + Habilitar parches de imagen panorámica - + Enable No-Interlacing Patches Habilitar parches para desactivar el entrelazado - + Anti-Blur Filtro antiborrosidad - + Ctrl+S Ctrl+S - + Disable Interlace Offset - Desactivar compensación de entrelazado + Deshabilitar compensación de entrelazado - + Screenshot Size: Tamaño de capturas de pantalla: - + Screen Resolution Resolución de pantalla - + Internal Resolution Resolución interna - + Internal Resolution (Aspect Uncorrected) Resolución interna (sin corregir el aspecto) - + PNG PNG - + JPEG JPEG - + Quality: Calidad: - - + + Rendering Renderizado - + Internal Resolution: Resolución interna: - + Mipmapping: - «Mipmapping» + «Mipmapping»: - - + + Off No - + Basic (Generated Mipmaps) Básico (mipmaps generados) - + Full (PS2 Mipmaps) Completo (mipmaps de PS2) - - + + Texture Filtering: Filtrado de texturas: - - + + Nearest Vecino más cercano - - + + Bilinear (Forced) Bilineal (forzado) - - + + Bilinear (PS2) Bilineal (estilo PS2) - - + + Bilinear (Forced excluding sprite) Bilineal (forzado salvo a sprites) - + Trilinear Filtering: Filtrado trilineal: - + Off (None) - Desactivado (no usar) + Desactivar filtro trilineal - + Trilinear (PS2) Trilineal (estilo PS2) - + Trilinear (Forced) Trilineal (forzado) - + Anisotropic Filtering: Filtrado anisotrópico: - + Dithering: Tramado: - + Scaled A escala - + Unscaled (Default) Sin escalar (predeterminado) - + Blending Accuracy: Precisión de mezcla: - + Minimum Mínima - + Basic (Recommended) Básica (recomendada) - + Medium Media - + High Alta - + Full (Slow) Completa (lenta) - + Maximum (Very Slow) Máxima (muy lenta) - + Texture Preloading: Precarga de texturas: - + Partial Parcial - + Full (Hash Cache) Completa (caché con «hashes») - + + Software Rendering Threads: + Subprocesos de renderizado: + + + + Skip Draw Range: + Rango de «skipdraw»: + + + GPU Palette Conversion Conversión de paletas en la GPU - + Manual Hardware Renderer Fixes Correcciones manuales para el renderizador por hardware - + Spin GPU During Readbacks Mantener la GPU en marcha al cotejar - + Spin CPU During Readbacks Mantener la CPU en marcha al cotejar - - Extra Rendering Threads: - Hilos adicionales de renderizado: - - - + threads - hilos + subprocesos - + Mipmapping «Mipmapping» - + Auto Flush - Limpieza automática + Vaciado automático - + Hardware Fixes Correcciones para hardware - + Force Disabled Forzar desactivación - + Force Enabled Forzar activación - + CPU Sprite Render Size: - Tamaño del renderizado de sprites en CPU: + Tamaño render. sprites en CPU: - - - + + + 0 (Disabled) @@ -9583,79 +10016,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (desactivar) - + 1 (64 Max Width) 1 (ancho máximo de 64) - + 2 (128 Max Width) 2 (ancho máximo de 128) - + 3 (192 Max Width) 3 (ancho máximo de 192) - + 4 (256 Max Width) 4 (ancho máximo de 256) - + 5 (320 Max Width) 5 (ancho máximo de 320) - + 6 (384 Max Width) 6 (ancho máximo de 384) - + 7 (448 Max Width) 7 (ancho máximo de 448) - + 8 (512 Max Width) 8 (ancho máximo de 512) - + 9 (576 Max Width) 9 (ancho máximo de 576) - + 10 (640 Max Width) 10 (ancho máximo de 640) - - Skipdraw Range: - Rango de «skipdraw»: - - - + Frame Buffer Conversion - Conversión de búfer de fotogramas + Conversión del búfer de fotogramas - + Disable Depth Emulation - Desactivar emulación de profundidad + Deshabilitar emulación de profundidad - + Disable Safe Features - Desactivar funcionalidades seguras + Deshabilitar funcionalidades seguras - + Preload Frame Data Precargar datos de fotograma @@ -9666,606 +10094,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texturas dentro de RT - + 1 (Normal) 1 (normal) - + 2 (Aggressive) 2 (agresivo) - + Software CLUT Render: Renderizado de CLUT por software: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. - Destinar CLUTs a GPU: + Destinar CLUT a GPU: - - - + + + Disabled (Default) Opción desactivada (predeterminado) - + Enabled (Exact Match) Opción activada (coincidencia exacta) - + Enabled (Check Inside Target) Opción activada (comprobar objetivos) - + Upscaling Fixes Correcciones para escalado - + Half Pixel Offset: Compensación de medio píxel: - + Normal (Vertex) Normal (vértices) - + Special (Texture) Especial (texturas) - + Special (Texture - Aggressive) Especial (texturas, agresivo) - + Round Sprite: Redondear sprites: - + Half - La mitad + Medio píxel - + Full Todo - + Texture Offsets: Compensación de texturas: - + X: X: - + Y: Y: - + Merge Sprite Fusionar sprites - + Align Sprite Alinear sprites - + Deinterlacing: Desentrelazado: - + Sprites Only Solo sprites - + Sprites/Triangles Sprites/Triángulos - + Blended Sprites/Triangles Sprites fusionados/Triángulos - + Auto Flush: - Limpieza automática: + Vaciado automático: - + Enabled (Sprites Only) - Activada (solo sprites) + Opción activada (solo sprites) - + Enabled (All Primitives) - Activada (todos los primitivos) + Opción activada (todos los primitivos) - + Texture Inside RT: Texturas dentro de RT: - + Inside Target Dentro del objetivo - + Merge Targets Fusionar objetivos - + Disable Partial Source Invalidation - Desactivar invalidación parcial de origen + Deshabilitar invalidación parcial de origen - + Read Targets When Closing Leer objetivos al cerrar - + Estimate Texture Region Calcular regiones de texturas - + Disable Render Fixes - Desactivar correcciones de renderizado + Deshabilitar correcciones de renderizado - + Unscaled Palette Texture Draws - Dibujar texturas de paletas sin escala + Dibujar texturas de paletas sin escalarlas - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Corrección para Wild Arms - + Bilinear Dirty Upscale: Escalado bilineal «sucio»: - + Force Bilinear Forzar bilineal - + Force Nearest Forzar vecino más cercano - + Texture Replacement Reemplazo de texturas - + Search Directory Directorio de búsqueda - - + + Browse... Buscar... - - + + Open... Abrir... - - + + Reset Reiniciar - + PCSX2 will dump and load texture replacements from this directory. - PCSX2 volcará y cargará las texturas de reemplazo de este directorio. + PCSX2 volcará y cargará las texturas de reemplazo usando este directorio. - + Options Opciones - + Dump Textures Volcar texturas - + Dump Mipmaps Volcar «mipmaps» - + Dump FMV Textures Volcar texturas de vídeos FMV - - - Async Texture Loading - Carga de texturas asincrónica - - - + Load Textures Cargar texturas - + Precache Textures Precachear texturas - + Post-Processing Posprocesado - + Sharpening/Anti-Aliasing Realce/suavizado de bordes - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx - Realce por contraste adaptativo: + Realce por contraste adaptativo (CAS): - - + + None (Default) No (predeterminado) - + Sharpen Only (Internal Resolution) Solo realzar (mediante resolución interna) - + Sharpen and Resize (Display Resolution) Realzar y redimensionar (resolución de visualización) - + Sharpness: Realzado: - + FXAA FXAA - + Filters Filtros - + TV Shader: Sombreador de TV: - + Scanline Filter Filtro de líneas de exploración - + Diagonal Filter Filtro diagonal - + Triangular Filter Filtro triangular - + Wave Filter Filtro ondulado - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. CRT de Lottes - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) Muestreo por reducción x4 RGSS («Rotated Grid SuperSampling») - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) Muestreo por reducción NxAGSS («Nx Automatic Grid SuperSampling») - + Shade Boost - Ajustar tono + Mejora del tono - + Brightness: Brillo: - + Contrast: Contraste: - Saturation - Saturación: + Saturación - + OSD Presentación en pantalla - + On-Screen Display Presentación en pantalla - + OSD Scale: Escala: - + Show Indicators Mostrar indicadores - + Show Resolution Mostrar resolución - + Show Inputs Mostrar entradas - + Show GPU Usage Mostrar uso de la GPU - + Show Settings Mostrar ajustes - + Show FPS Mostrar FPS - + + + Disable Dual-Source Blending + Deshabilitar mezcla de doble origen + + + Disable Shader Cache - Desactivar caché de sombreadores + Deshabilitar caché de sombreadores - + Disable Vertex Shader Expand - Desactivar expansión de sombreadores de vértices + Deshabilitar expansión de sombreadores de vértices - + Show Statistics Mostrar estadísticas - + + + Asynchronous Texture Loading + Carga de texturas asincrónica + + + + Saturation: + Saturación: + + + Show CPU Usage Mostrar uso de la CPU - + Warn About Unsafe Settings Advertir de ajustes que no sean seguros - + Show Frame Times Mostrar duraciones de fotogramas - + Recording Grabación - + Video Dumping Directory Directorio de volcado de vídeos - + Capture Setup Configuración de captura - + Container: Contenedor: - - + + Codec: Códec: - - + + Extra Arguments Argumentos adicionales - + Capture Audio Capturar audio - + Resolution: Resolución: - + x  ×  - + Auto Autom. - + Capture Video Capturar vídeo - + Advanced Advanced here refers to the advanced graphics options. - Avanzadas + Avanzado - + Advanced Options Opciones avanzadas - + Hardware Download Mode: Modo de descarga de hardware: - + Accurate (Recommended) Preciso (recomendado) - + Disable Readbacks (Synchronize GS Thread) - Desactivar cotejado (sincronizar el hilo del GS) + Deshabilitar cotejado (sincronizar el subproceso del GS) - + Unsynchronized (Non-Deterministic) Sin sincronizar (no determinista) - + Disabled (Ignore Transfers) Desactivado (ignorar las transferencias) - + GS Dump Compression: Compresión de volcados del GS: - + Uncompressed Sin comprimir - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Omitir fotogramas duplicados - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10275,72 +10713,66 @@ Swap chain: see Microsoft's Terminology Portal. Utilizar cadena de intercambio de BLITs - + Disable Threaded Presentation - Desactivar presentación multihilo + Deshabilitar presentación multihilo - - + + Bitrate: Tasa de bits: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language.  kbps - + Allow Exclusive Fullscreen: Pantalla completa exclusiva: - + Disallowed Desactivada - + Allowed Activada - + Debugging Options Opciones de depuración - + Override Texture Barriers: Invalidar barreras de texturas: - + Use Debug Device Utilizar dispositivo de depuración - - - Disable Dual Source Blending - Desactivar mezcla de doble origen - - - + Show Speed Percentages Mostrar porcentajes de velocidad - + Disable Framebuffer Fetch - Desactivar acceso al búfer de fotogramas + Deshabilitar acceso al búfer de fotogramas @@ -10406,8 +10838,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Utilizar configuración global [%1] @@ -10459,13 +10891,14 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked desactivado Automatically loads and applies widescreen patches on game start. Can cause issues. - Carga y aplica automáticamente los parches de pantalla panorámica al iniciar el juego. Podría causar problemas. + Carga y aplica automáticamente los parches de imagen panorámica al iniciar el juego. Podría provocar problemas. @@ -10485,7 +10918,7 @@ Swap chain: see Microsoft's Terminology Portal. Enables bilinear post processing filter. Smooths the overall picture as it is displayed on the screen. Corrects positioning between pixels. - Activa el filtro de posprocesado lineal. Suaviza la imagen completa a medida que se muestre en pantalla. Corrige la posición entre píxeles. + Activa el filtro de posprocesado lineal. Suaviza la imagen completa al mostrarla en pantalla. Corrige la colocación entre píxeles. @@ -10501,7 +10934,7 @@ Swap chain: see Microsoft's Terminology Portal. FMV Aspect Ratio - Relación de aspecto de FMV + Relación de aspecto de vídeos FMV @@ -10518,11 +10951,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Controla el grado de precisión de la emulación de la unidad de mezclas del GS.<br> Cuanto más elevado sea el ajuste, más mezclas se emularán en el sombreador con precisión y más repercutirá en la velocidad.<br> Ten en cuenta que las mezclas en Direct3D tienen una capacidad reducida respecto a OpenGL/Vulkan. + + + Software Rendering Threads + Subprocesos para el renderizado por software + Software CLUT Render Renderizado de CLUT por software + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Desactiva el soporte de los búferes de profundidad en la caché de texturas. Podría ayudar a mejorar la velocidad, pero es probable que provoque todo tipo de problemas. + This option disables game-specific render fixes. @@ -10536,7 +10979,7 @@ Swap chain: see Microsoft's Terminology Portal. Framebuffer Conversion - Conversión de búfer de fotogramas + Conversión del búfer de fotogramas @@ -10546,12 +10989,12 @@ Swap chain: see Microsoft's Terminology Portal. Uploads GS data when rendering a new frame to reproduce some effects accurately. - Envía los datos del GS al renderizar un fotograma nuevo para poder reproducir algunos efectos fielmente. + Transmite los datos del GS al renderizar un fotograma nuevo para poder reproducir algunos efectos fielmente. Disabled - Desactivada + desactivada @@ -10561,7 +11004,7 @@ Swap chain: see Microsoft's Terminology Portal. Flushes all targets in the texture cache back to local memory when shutting down. Can prevent lost visuals when saving state or switching renderers, but can also cause graphical corruption. - Limpia todos los objetivos de la caché de texturas de vuelta a la memoria local al apagar la máquina virtual. Puede evitar que se pierdan elementos visuales al hacer guardados rápidos o al cambiar de renderizador, pero también puede provocar corrupción gráfica. + Vacía todos los objetivos de la caché de texturas en la memoria local al apagar la máquina virtual. Puede evitar que se pierdan elementos visuales al hacer guardados rápidos o al cambiar de renderizador, pero también puede provocar corrupción gráfica. @@ -10574,6 +11017,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Soluciona problemas al escalar la imagen (líneas verticales) en juegos de Namco, tales como Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Vuelca las texturas reemplazables al disco. El rendimiento se reducirá. + + + + Includes mipmaps when dumping textures. + Vuelca las texturas con sus «mipmaps». + + + + Allows texture dumping when FMVs are active. You should not enable this. + Habilita el volcado de texturas durante la reproducción de vídeos FMV. No se recomienda activar esta opción. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Carga las texturas de reemplazo en un subproceso de trabajo, lo que reducirá los tirones al activar los reemplazos. + + + + Loads replacement textures where available and user-provided. + Carga texturas de reemplazo si están disponibles. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Precarga en la memoria todas las texturas de reemplazo. No es necesario activar esta opción al usar la carga asincrónica. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Habilita el realce por contraste adaptativo (CAS) FidelityFX. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determina la intensidad del efecto de realzado del posprocesado CAS. + + + + Adjusts brightness. 50 is normal. + Ajusta el brillo. Un valor de 50 es lo normal. + + + + Adjusts contrast. 50 is normal. + Ajusta el contraste. Un valor de 50 es lo normal. + + + + Adjusts saturation. 50 is normal. + Ajusta la saturación. Un valor de 50 es lo normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10582,18 +11080,13 @@ Swap chain: see Microsoft's Terminology Portal. Shows OSD icon indicators for emulation states such as Pausing, Turbo, Fast-Forward, and Slow-Motion. - Muestra indicadores con forma de iconos en pantalla para los estados de emulación, como al pausar, el modo turbo, el avance rápido y la cámara lenta. + Muestra indicadores con forma de iconos en pantalla para los estados de emulación, como la pausa, el modo turbo, el avance rápido y la cámara lenta. Displays various settings and the current values of those settings, useful for debugging. Muestra varios ajustes y los valores actuales de los mismos. Ideal para depurar. - - - Shows the current controller state of the system in the bottom left corner of the display. - Muestra el estado actual del mando del sistema en la esquina inferior izquierda de la pantalla. - Displays a graph showing the average frametimes. @@ -10607,7 +11100,7 @@ Swap chain: see Microsoft's Terminology Portal. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout.<br>Disallowing exclusive fullscreen may enable smoother task switching and overlays, but increase input latency. - Reemplaza la heurística del controlador para activar el modo de pantalla completa exclusiva o para volteados directos/«scanout».<br>Al desactivar la pantalla completa exclusiva, el cambio de tareas y las superposiciones podrían ir de forma más fluida a costa de aumentar la latencia de entrada. + Reemplaza la heurística del controlador para activar el modo de pantalla completa exclusiva o para volteados/«scanout» directos.<br>Al desactivar la pantalla completa exclusiva, el cambio de tareas y las superposiciones podrían ir de forma más fluida a costa de aumentar la latencia de entrada. @@ -10631,7 +11124,7 @@ Swap chain: see Microsoft's Terminology Portal. Activa esta opción para igualar la frecuencia de actualización de PCSX2 con la de tu monitor o pantalla actual. Se desactivará automáticamente la sincronía vertical cuando no sea posible aplicarla (p. ej.: una velocidad de ejecución que no sea del 100 %). - + Integer Scaling Escalado por números enteros @@ -10639,7 +11132,7 @@ Swap chain: see Microsoft's Terminology Portal. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - Rellena el área de visualización para garantizar que la relación entre píxeles mostrados en el equipo y píxeles de la consola sea un número entero. Podría producir una imagen más nítida en algunos juegos 2D. + Rellena el área de visualización para que la relación entre píxeles mostrados en el equipo y píxeles de la consola sea un número entero. Podría producir una imagen más nítida en algunos juegos 2D. @@ -10654,7 +11147,7 @@ Swap chain: see Microsoft's Terminology Portal. Changes the aspect ratio used to display the console's output to the screen. The default is Auto Standard (4:3/3:2 Progressive) which automatically adjusts the aspect ratio to match how a game would be shown on a typical TV of the era. - Cambia la relación de aspecto con la que se mostrará en pantalla la salida de la consola. El valor predeterminado es «Estándar automático (4:3/3:2 progresivo)», el cual ajustará automáticamente la relación de aspecto a la que tendrían los juegos en un televisor de la época. + Cambia la relación de aspecto con la que se mostrará en pantalla la salida de imagen de la consola. El valor predeterminado es «Estándar automático (4:3/3:2 progresivo)», el cual ajustará automáticamente la relación de aspecto a la que tendrían los juegos en un televisor de la época. @@ -10720,8 +11213,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Pantalla completa sin bordes @@ -10816,7 +11309,7 @@ Swap chain: see Microsoft's Terminology Portal. Reduces texture aliasing at extreme viewing angles. - Reduce los dientes de sierra en aquellas texturas que se muestren con ángulos de visión extremos. + Reduce el efecto de escalones en aquellas texturas que se muestren con ángulos de visión extremos. @@ -10841,7 +11334,7 @@ Swap chain: see Microsoft's Terminology Portal. Uploads entire textures at once instead of small pieces, avoiding redundant uploads when possible. Improves performance in most games, but can make a small selection slower. - Transmite texturas enteras a la vez en vez de fragmentos pequeños, evitando transmitir materiales redundantes cuando sea posible. Mejora el rendimiento en la mayoría de juegos, pero una pequeña cantidad de los mismos podría ir más lento. + Envía texturas enteras de un golpe en vez de fragmentos pequeños, evitando transmitir materiales redundantes cuando sea posible. Mejora el rendimiento en la mayoría de juegos, pero una pequeña cantidad de los mismos podría ir más lento. @@ -10863,26 +11356,21 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Envía tareas inútiles a la GPU mientras está cotejando para evitar que entre en un modo de ahorro de energía. Podría mejorar el rendimiento, pero aumentará significativamente el consumo de energía. - - - Extra Rendering Threads - Hilos adicionales de renderizado - 2 threads - 2 hilos + 2 subprocesos Number of rendering threads: 0 for single thread, 2 or more for multithread (1 is for debugging). If you have 4 threads on your CPU pick 2 or 3. You can calculate how to get the best performance (amount of CPU threads - 2). 7+ threads will not give much more performance and could perhaps even lower it. - El número de hilos destinados a renderizar: 0 significa usar un solo hilo, 2 o más usar varios hilos (1 es para fines de depuración). Si tienes 4 hilos en tu CPU, elige 2 o 3. También puedes calcular la forma de conseguir el mejor rendimiento (cantidad de hilos de CPU - 2). Con 7 o más hilos no ganarás mucho más rendimiento, o incluso podrías empeorarlo. + El número de subprocesos destinados a renderizar: 0 significa usar uno solo, 2 o más significa usar varios subprocesos (1 es para fines de depuración). Si tienes 4 núcleos en tu CPU, elige 2 o 3. También puedes calcular la forma de conseguir el mejor rendimiento (cantidad de núcleos de CPU - 2). Con 7 o más subprocesos no ganarás mucho más rendimiento, o incluso podrías empeorarlo. Force a primitive flush when a framebuffer is also an input texture. Fixes some processing effects such as the shadows in the Jak series and radiosity in GTA:SA. - Fuerza una limpieza de primitivos cuando un búfer de fotogramas sea también una textura de entrada. Corrige algunos efectos de procesado, como las sombras de la saga Jak y la radiosidad en GTA:SA. + Fuerza un vaciado de primitivos cuando un búfer de fotogramas sea también una textura de entrada. Corrige algunos efectos de procesado, como las sombras de la saga Jak y la radiosidad en GTA:SA. @@ -10892,7 +11380,7 @@ Swap chain: see Microsoft's Terminology Portal. CPU Sprite Renderer Size - Tamaño del renderizador de sprites en CPU + Tamaño del renderizado de sprites en CPU @@ -10911,18 +11399,13 @@ Swap chain: see Microsoft's Terminology Portal. Completely skips drawing surfaces from the surface in the left box up to the surface specified in the box on the right. - Omite el dibujado de superficies, desde la superficie del cuadro izquierdo hasta la superficie indicada en el cuadro derecho. + Omite el dibujado de superficies desde la superficie indicada en el cuadro izquierdo hasta la indicada en el cuadro derecho. Skipdraw Range End Fin del rango de «skipdraw» - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Desactiva el soporte del búfer de profundidad en la caché de texturas. Podría ayudar a mejorar la velocidad, pero es probable que provoque todo tipo de problemas. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -10979,18 +11462,18 @@ Swap chain: see Microsoft's Terminology Portal. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - Podría suavizar las texturas al aplicarles un filtro bilineal tras escalarlas. P. ej.: destellos del sol. + Podría suavizar las texturas al aplicarles un filtro bilineal tras escalarlas. P. ej.: destellos del sol en Brave. Replaces post-processing multiple paving sprites by a single fat sprite. It reduces various upscaling lines. - Reemplaza el uso de varios fragmentos de sprites para el posprocesado por un único sprite más grande. Reduce la aparición de líneas al escalar la imagen. + Reemplaza el uso de varios fragmentos de sprites con fines de posprocesado por un único sprite más grande. Reduce la aparición de líneas al escalar la imagen. Contrast Adaptive Sharpening You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx - Realce por contraste adaptativo + Realce por contraste adaptativo (CAS) @@ -11005,7 +11488,7 @@ Swap chain: see Microsoft's Terminology Portal. Applies the FXAA anti-aliasing algorithm to improve the visual quality of games. - Aplica el algoritmo de suavizado de bordes FXAA para mejorar la calidad visual de los juegos. + Aplica el algoritmo de suavizado de bordes FXAA (Fast approXimate Anti-Aliasing) para mejorar la calidad visual de los juegos. @@ -11040,7 +11523,7 @@ Swap chain: see Microsoft's Terminology Portal. Escala de la presentación - + Show OSD Messages Mostrar mensajes en pantalla @@ -11068,18 +11551,23 @@ Swap chain: see Microsoft's Terminology Portal. Shows host's CPU utilization. - Muestra el consumo de la CPU del equipo. + Muestra el uso de la CPU del equipo. Shows host's GPU utilization. - Muestra el consumo de la GPU del equipo. + Muestra el uso de la GPU del equipo. Shows counters for internal graphical utilization, useful for debugging. Muestra contadores sobre el uso gráfico interno, útiles para fines de depuración. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Muestra el estado actual del mando del sistema en la esquina inferior izquierda de la pantalla. + Displays warnings when settings are enabled which may break games. @@ -11093,7 +11581,7 @@ Swap chain: see Microsoft's Terminology Portal. Leave It Blank - Dejar en blanco + dejar en blanco @@ -11119,43 +11607,53 @@ Swap chain: see Microsoft's Terminology Portal. Uses a blit presentation model instead of flipping when using the Direct3D 11 renderer. This usually results in slower performance, but may be required for some streaming applications, or to uncap framerates on some systems. Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit - Cuando se utilice el renderizador de Direct3D 11, este utilizará un modelo de presentación por BLIT en vez de voltear la imagen. Suele producir un rendimiento más lento pero podría ser necesario para utilizar ciertas aplicaciones de «streaming» o para desbloquear las velocidades de fotogramas en algunos equipos. + Cuando se utilice el renderizador de Direct3D 11, este utilizará un modelo de presentación por BLIT en vez de voltear la imagen. Suele producir un rendimiento más lento, pero podría ser necesario para utilizar ciertas aplicaciones de «streaming» o para desbloquear las velocidades de fotogramas en algunos equipos. Detects when idle frames are being presented in 25/30fps games, and skips presenting those frames. The frame is still rendered, it just means the GPU has more time to complete it (this is NOT frame skipping). Can smooth our frame time fluctuations when the CPU/GPU are near maximum utilization, but makes frame pacing more inconsistent and can increase input lag. - Detecta cuándo se van a presentar fotogramas inactivos en juegos a 25/30 FPS y omite su presentación. El fotograma seguirá renderizándose, pero la GPU tendrá más tiempo para completarlo (esto NO ES omitir fotogramas). Puede suavizar las fluctuaciones en las duraciones de fotogramas cuando la CPU y la GPU estén siendo utilizadas al máximo, pero hará que la sincronización de fotogramas sea más inconsistente y puede aumentar el retraso de la señal de entrada. + Detecta cuándo se van a presentar fotogramas inactivos en juegos a 25/30 FPS y omite su presentación. El fotograma seguirá renderizándose, pero la GPU tendrá más tiempo para completarlo (esto NO ES omitir fotogramas). Puede suavizar las fluctuaciones en las duraciones de fotogramas cuando la CPU y la GPU estén siendo utilizadas al máximo, pero hará que el ritmo de fotogramas sea más inconsistente y puede aumentar el retraso de la señal de entrada. Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. Could reduce chance of missing a frame or reduce tearing at the expense of more erratic frame times. Only applies to the Vulkan renderer. - Presenta los fotogramas en el hilo principal del GS en vez de utilizar un hilo de trabajo. Se utiliza para depurar problemas de duración de fotogramas. Podría reducir la probabilidad de omitir algún fotograma o reducir el rasgado de imagen a costa de provocar duraciones de fotogramas más erráticas. Solo funciona con el renderizador de Vulkan. + Presenta los fotogramas en el subproceso principal del GS en vez de utilizar un subproceso de trabajo. Se utiliza para depurar problemas de duración de fotogramas. Podría reducir la probabilidad de omitir algún fotograma o reducir el rasgado de imagen a costa de provocar duraciones de fotogramas más erráticas. Solo funciona con el renderizador de Vulkan. + + + + Enable Debug Device + Habilitar dispositivo de depuración + + + + Enables API-level validation of graphics commands. + Activa una validación a nivel de API de los comandos de gráficos. - + GS Download Mode Modo de descarga del GS - + Accurate Preciso - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Deja de sincronizar las descargas del GS entre el subproceso del GS y la GPU del equipo. Podría aumentar significativamente la velocidad en sistemas más lentos a costa de romper muchos efectos gráficos. Si los juegos se muestran mal y tienes esta opción activada, te recomendamos que la desactives antes de nada. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Predeterminado - - + + (Default) (Valor predeterminado) @@ -11163,405 +11661,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Gráficos - + Save Screenshot Guardar captura de pantalla - + Toggle Video Capture Alternar captura de vídeo - + Save Single Frame GS Dump Guardar volcado de un fotograma del GS - + Save Multi Frame GS Dump Guardar volcado multifotograma del GS - + Toggle Software Rendering Alternar renderizador por software - + Increase Upscale Multiplier Aumentar multiplicador de escalado - + Decrease Upscale Multiplier Reducir multiplicador de escalado - + Toggle On-Screen Display Alternar presentación en pantalla - + Cycle Aspect Ratio Alternar relación de aspecto - + Aspect ratio set to '{}'. Relación de aspecto establecida en «{}». - + Cycle Hardware Mipmapping Alternar «mipmapping» de hardware - + Hardware mipmapping set to '{}'. «Mipmapping» de hardware establecido en «{}». - + Cycle Deinterlace Mode Alternar modo de desentrelazado - + Deinterlace mode set to '{}'. Modo de desentrelazado establecido en «{}». - + Toggle Texture Dumping Alternar volcado de texturas - + Texture dumping is now enabled. Volcado de texturas activado. - + Texture dumping is now disabled. Volcado de texturas desactivado. - + Toggle Texture Replacements Alternar reemplazo de texturas - + Texture replacements are now enabled. Reemplazo de texturas activado. - + Texture replacements are now disabled. Reemplazo de texturas desactivado. - + Reload Texture Replacements Recargar texturas de reemplazo - + Texture replacements are not enabled. El reemplazo de texturas no está activado. - + Reloading texture replacements... Recargando texturas de reemplazo... - + Target speed set to {:.0f}%. Velocidad objetivo establecida en {:.0f} %. - + Volume: Muted Volumen: silenciado - + Volume: {}% Volumen: {} % - - Save slot {} selected (last save: {}). - Espacio de guardado {} seleccionado (último guardado: {}). + + Save slot {0} selected (last save: {1}). + Espacio de guardado {0} seleccionado (último guardado: {1}). - + Save slot {} selected (no save yet). Espacio de guardado {} seleccionado (sin guardado). - + No save state found in slot {}. No se ha encontrado un guardado rápido en el espacio {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System Sistema - + Open Pause Menu Abrir menú de pausa - + Open Achievements List Abrir lista de logros - + Open Leaderboards List Abrir lista de tablas de clasificación - + Toggle Pause Alternar pausa - + Toggle Fullscreen Alternar pantalla completa - + Toggle Frame Limit Alternar limitador de fotogramas - + Toggle Turbo / Fast Forward Alternar turbo/avance rápido - + Toggle Slow Motion Alternar cámara lenta - + Turbo / Fast Forward (Hold) Turbo/Avance rápido (mantener) - + Increase Target Speed Aumentar velocidad objetivo - + Decrease Target Speed Reducir velocidad objetivo - + Increase Volume Subir volumen - + Decrease Volume Bajar volumen - + Toggle Mute Alternar silencio de audio - + Frame Advance Avanzar fotograma - + Shut Down Virtual Machine Apagar máquina virtual - + Reset Virtual Machine Reiniciar máquina virtual - + Toggle Input Recording Mode Alternar modo de grabación de entrada - - - - + + + + Save States Guardados rápidos - + Select Previous Save Slot Seleccionar espacio de guardado anterior - + Select Next Save Slot Seleccionar espacio de guardado siguiente - + Save State To Selected Slot Crear guardado rápido en el espacio seleccionado - + Load State From Selected Slot Cargar guardado rápido del espacio seleccionado - + Save State To Slot 1 Crear guardado rápido en el espacio 1 - + Load State From Slot 1 Cargar guardado rápido del espacio 1 - + Save State To Slot 2 Crear guardado rápido en el espacio 2 - + Load State From Slot 2 Cargar guardado rápido del espacio 2 - + Save State To Slot 3 Crear guardado rápido en el espacio 3 - + Load State From Slot 3 Cargar guardado rápido del espacio 3 - + Save State To Slot 4 Crear guardado rápido en el espacio 4 - + Load State From Slot 4 Cargar guardado rápido del espacio 4 - + Save State To Slot 5 Crear guardado rápido en el espacio 5 - + Load State From Slot 5 Cargar guardado rápido del espacio 5 - + Save State To Slot 6 Crear guardado rápido en el espacio 6 - + Load State From Slot 6 Cargar guardado rápido del espacio 6 - + Save State To Slot 7 Crear guardado rápido en el espacio 7 - + Load State From Slot 7 Cargar guardado rápido del espacio 7 - + Save State To Slot 8 Crear guardado rápido en el espacio 8 - + Load State From Slot 8 Cargar guardado rápido del espacio 8 - + Save State To Slot 9 Crear guardado rápido en el espacio 9 - + Load State From Slot 9 Cargar guardado rápido del espacio 9 - + Save State To Slot 10 Crear guardado rápido en el espacio 10 - + Load State From Slot 10 Cargar guardado rápido del espacio 10 @@ -11649,7 +12147,8 @@ Mayús. + Clic izquierdo: añadir más asignaciones Right click to clear binding - Clic derecho: eliminar asignación + +Clic derecho: eliminar asignación @@ -11718,6 +12217,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Analógico izdo. + + + + Right Analog + Analógico dcho. + + + + Cross + Cruz/X + + + + Square + Cuadrado + + + + Triangle + Triángulo + + + + Circle + Círculo + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + Botón abajo + + + + D-Pad Right️ + Botón dcha. + + + + D-Pad Up️ + Botón arriba + + + + D-Pad Left️ + Botón izda. + + + + L3 + L3 + + + + R3 + R3 + + + + Select + SELECT + + + + Start + START + Input Recording Files (*.p2m2) @@ -11745,137 +12334,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Comportamiento - + Pause On Focus Loss Pausar al pasar a segundo plano - + Inhibit Screensaver Desactivar salvapantallas - + Save State On Shutdown Crear guardado rápido al apagar - + Pause On Start Pausar nada más iniciar - + Confirm Shutdown Confirmar apagado - + Create Save State Backups Crear copias de seguridad de guardados rápidos - + Enable Discord Presence Habilitar presencia en Discord - + Enable Per-Game Settings Habilitar ajustes individuales para cada juego - + Game Display - Imagen del juego + Visualización del juego - + Start Fullscreen Iniciar a pantalla completa - + Double-Click Toggles Fullscreen Hacer doble clic para pantalla completa - + Render To Separate Window Renderizar en una ventana independiente - + Hide Main Window When Running Ocultar ventana principal al ejecutar - + Disable Window Resizing Desactivar cambio de tamaño de ventana - + Hide Cursor In Fullscreen Ocultar cursor en pantalla completa - + Preferences Preferencias - + Language: Idioma: - + Theme: Tema: - + Automatic Updater Actualizador automático - + Update Channel: Canal de actualizaciones: - + Current Version: Versión actual: - + Enable Automatic Update Check Habilitar comprobación automática de actualizaciones - + Check for Updates... Buscar actualizaciones... @@ -11980,7 +12569,7 @@ Right click to clear binding Prevents the screen saver from activating and the host from sleeping while emulation is running. - Evita que el salvapantallas se active y que el equipo entre en suspensión cuando se esté ejecutando la emulación. + Evita que el salvapantallas se active o que el equipo entre en suspensión cuando se esté ejecutando una emulación. @@ -12034,7 +12623,7 @@ Right click to clear binding Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - Pausa el emulador al minimizar la ventana o cambiar a otra aplicación, saliendo de la pausa al volver. + Pausa el emulador al minimizar la ventana o cambiar a otra aplicación. La emulación se reanudará al volver a PCSX2. @@ -12068,7 +12657,7 @@ Right click to clear binding Muestra en tu perfil de Discord el nombre del juego al que estés jugando. - + System Language [Default] Idioma del sistema [predeterminado] @@ -12125,14 +12714,14 @@ Right click to clear binding - - + + Change Disc Cambiar disco - + Load State Cargar guardado rápido @@ -12563,7 +13152,7 @@ Right click to clear binding Enable Verbose Logging - Habilitar registros detallados + Habilitar registro detallado @@ -12618,7 +13207,7 @@ Right click to clear binding Enable &File Logging - Habilitar registros de &archivos + Habilitar registro en &archivo @@ -12637,13 +13226,13 @@ Right click to clear binding - + Start Big Picture Mode Iniciar modo Big Picture - + Big Picture In Toolbar Big Picture @@ -12655,7 +13244,7 @@ Right click to clear binding - + Show Advanced Settings Mostrar ajustes avanzados @@ -12666,7 +13255,7 @@ Right click to clear binding - + Video Capture Capturar vídeo @@ -12681,27 +13270,27 @@ Right click to clear binding Editar parches... - + Internal Resolution Resolución interna - + %1x Scale Escala x%1 - + Select location to save block dump: Seleccionar dónde se guardará el volcado de bloque: - + Do not show again No volver a mostrar - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12714,168 +13303,173 @@ El equipo de PCSX2 no dará soporte técnico alguno a cualquier configuración q ¿Seguro que quieres continuar? - + %1 Files (*.%2) Archivos %1 (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: sesión iniciada como %1 (%2, %3 en modo normal). %4 mensajes sin leer. + + + Confirm Shutdown Confirmar apagado - + Are you sure you want to shut down the virtual machine? ¿Seguro que quieres apagar la máquina virtual? - + Save State For Resume - Crear un guardado rápido para continuar más tarde + Crear un guardado para continuar más tarde - - - - - - + + + + + + Error Error - + You must select a disc to change discs. Es necesario seleccionar un disco para poder cambiar de disco. - + Properties... Propiedades... - + Open Containing Directory... Refers to the directory where a game is contained. Abrir carpeta que contiene el archivo... - + Set Cover Image... Establecer imagen de carátula... - + Exclude From List Excluir de la lista - + Reset Play Time Restablecer tiempo jugado - + Default Boot Arranque predeterminado - + Fast Boot Arranque rápido - + Full Boot Arranque completo - + Boot and Debug Arrancar con depurador - + Add Search Directory... Añadir directorio de búsqueda... - + Start File Ejecutar archivo - + Start Disc Ejecutar disco - + Select Disc Image Seleccionar imagen de disco - + Updater Error Error del actualizador - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Lamentablemente, estás intentando actualizar una versión de PCSX2 que no es una versión oficial de GitHub. El actualizador automático solo está activado en las compilaciones oficiales para evitar incompatibilidades.</p><p>Si deseas conseguir una compilación oficial, te rogamos que la descargues del siguiente enlace:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Las actualizaciones automáticas no son compatibles con esta plataforma. - + Confirm File Creation Confirmar creación de archivo - + The pnach file '%1' does not currently exist. Do you want to create it? No existe el archivo pnach «%1». ¿Deseas crearlo? - + Failed to create '%1'. Error al crear «%1». - + Input Recording Files (*.p2m2) Archivos de grabaciones de entrada (*.p2m2) - + Paused En pausa - + Load State Failed Error al cargar el guardado rápido - + Cannot load a save state without a running VM. No se puede guardar rápidamente si no se está ejecutando una VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? No se puede cargar el ELF nuevo sin reiniciar la máquina virtual. ¿Deseas reiniciarla ahora? - + Cannot change from game to GS dump without shutting down first. No se puede cambiar de un juego a un volcado del GS sin apagar la máquina virtual primero. - + Failed to get window info from widget Error al obtener la información de la ventana a partir del widget @@ -12890,97 +13484,97 @@ El equipo de PCSX2 no dará soporte técnico alguno a cualquier configuración q Todos los tipos de archivo (*.bin *.iso *.cue *.chd *.cso *.gz *.dump);;Imágenes RAW de una sola pista (*.bin *.iso);;Archivo CUE (*.cue);;Archivo de Media Descriptor (*.mdf);;Imágenes CHD de MAME (*.chd);;Imágenes CSO (*.cso);;Imágenes GZ (*.gz);;Volcados de bloque (*.dump) - + Stop Big Picture Mode Detener modo Big Picture - + Exit Big Picture In Toolbar Salir de Big Picture - + Game Properties Propiedades del juego - + Game properties is unavailable for the current game. No hay propiedades disponibles para el juego actual. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. No se han podido encontrar dispositivos de CD/DVD-ROM. Asegúrate de tener una unidad conectada y los permisos necesarios para poder acceder a la misma. - + Select disc drive: Seleccionar unidad de disco: - + This save state does not exist. Este guardado rápido no existe. - + Select Cover Image Seleccionar imagen de carátula - - All Cover Image Types (*.jpg *.jpeg *.png) - Todos los tipos de imágenes de carátula (*.jpg *.jpeg *.png) - - - + Cover Already Exists La carátula ya existe - + A cover image for this game already exists, do you wish to replace it? Ya existe una imagen de carátula para este juego, ¿deseas reemplazarla? - - - - + + + + Copy Error Error de copiado - + Failed to remove existing cover '%1' - Error al eliminar la portada existente «%1» + Error al eliminar la carátula existente «%1» - + Failed to copy '%1' to '%2' Error al copiar «%1» a «%2» - + Failed to remove '%1' Error al eliminar «%1». - - + + Confirm Reset Confirmar reinicio - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + Todos los tipos de imágenes de carátula (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. - Debes seleccionar un archivo distinto a la imagen actual de la carátula. + Debes seleccionar un archivo que no sea la imagen actual de la carátula. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12989,132 +13583,132 @@ This action cannot be undone. Esta acción no se puede deshacer. - + Load Resume State - Cargar guardado rápido de continuación + Cargar guardado de continuación - + A resume save state was found for this game, saved at: %1. Do you want to load this state, or start from a fresh boot? - Se ha encontrado un guardado rápido de continuación para este juego en: + Se ha encontrado un guardado de continuación para este juego en: %1. ¿Deseas cargar este guardado rápido o empezar desde el principio? - + Fresh Boot Empezar de cero - + Delete And Boot Eliminar y empezar - + Failed to delete save state file '%1'. Error al eliminar el archivo de guardado rápido «%1». - + Load State File... Cargar archivo de guardado rápido... - + Load From File... Cargar archivo... - - + + Select Save State File Seleccionar archivo de guardado rápido - - + + Save States (*.p2s) Archivos de guardado rápido (*.p2s) - + Delete Save States... Eliminar guardados rápidos... - + Undo Load State Deshacer carga de guardado rápido - + Resume (%2) Continuación (%2) - + Load Slot %1 (%2) Cargar espacio %1 (%2) - - + + Delete Save States Eliminar guardados rápidos - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. ¿Seguro que deseas eliminar todos los guardados rápidos de: %1? -No podrás recuperar los archivos de guardado. +Si continúas, no podrás recuperarlos. - + %1 save states deleted. Guardados rápidos eliminados: %1. - + Save To File... Guardar en archivo... - + Empty Vacío - + Save Slot %1 (%2) Espacio de guardado %1 (%2) - + Confirm Disc Change Confirmar cambio de disco - + Do you want to swap discs or boot the new image (via system reset)? ¿Desas cambiar de disco o ejecutar la imagen nueva (reiniciando el sistema)? - + Swap Disc Cambiar de disco - + Reset Reiniciar @@ -13122,8 +13716,8 @@ No podrás recuperar los archivos de guardado. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card «{}» guardada en almacenamiento. @@ -13204,6 +13798,7 @@ No podrás recuperar los archivos de guardado. + 2x larger than a standard Memory Card. May have some compatibility issues. El doble de grande que una Memory Card estándar. Podría dar algunos problemas de compatibilidad. @@ -13254,11 +13849,6 @@ No podrás recuperar los archivos de guardado. Cannot Convert Memory Card No se puede convertir la Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - El doble de grande que una Memory Card estándar. Podría dar algunos problemas de compatibilidad. - MemoryCardCreateDialog @@ -13384,103 +13974,104 @@ No podrás recuperar los archivos de guardado. MemoryCardSettingsWidget - + Console Ports Puertos de la consola - + Memory Cards Memory Cards - + Folder: Carpeta: - + Browse... Buscar... - + Open... Abrir... - + Reset Reiniciar - + Name Nombre - + Type Tipo - + Formatted Formateada - + Last Modified Última modificación - + Refresh Actualizar - + + Create Crear - + Duplicate Duplicar - + Rename Renombrar - + Convert Convertir - + Delete Eliminar - + Settings Ajustes - + Automatically manage saves based on running game Administrar automáticamente los archivos guardados según el juego ejecutado - + Auto-eject Memory Cards when loading save states Expulsar automáticamente las Memory Cards al cargar un guardado rápido @@ -13650,58 +14241,58 @@ Esta acción no se puede deshacer y perderás cualquier partida guardada que ten Memoria - + Copy Address Copiar dirección - + Go to in disassembly Ver en desensamblador - - + + Go to address Ir a dirección - + Show as 1 byte Mostrar como 1 byte - + Show as 2 bytes Mostrar como 2 bytes - + Show as 4 bytes Mostrar como 4 bytes - + Show as 8 bytes Mostrar como 8 bytes - + Copy Byte Copiar byte - + Copy Segment Copiar segmento - + Copy Character Copiar carácter - + Paste Pegar @@ -13751,10 +14342,15 @@ Esta acción no se puede deshacer y perderás cualquier partida guardada que ten Nombre del autor - + Input Recording Files (*.p2m2) Archivos de grabaciones de entrada (*.p2m2) + + + Select a File + Seleccionar archivo + Pad @@ -13950,6 +14546,16 @@ Esta acción no se puede deshacer y perderás cualquier partida guardada que ten Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Establece la zona muerta de los joysticks analógicos, es decir, cuánto movimiento se ignorará de los joysticks. + + + + + + + + %.0f%% + %.0f %% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13966,14 +14572,14 @@ Esta acción no se puede deshacer y perderás cualquier partida guardada que ten Establece la zona de inactividad para activar los botones o gatillos, es decir, la distancia de la pulsación que será ignorada. - - Analog light is now on for port {} / slot {} - La luz del modo analógico ha sido activada en el puerto {}/ranura {} + + Analog light is now on for port {0} / slot {1} + La luz del modo analógico ha sido activada en el puerto {0}/ranura {1} - - Analog light is now off for port {} / slot {} - La luz del modo analógico ha sido desactivada en el puerto {}/ranura {} + + Analog light is now off for port {0} / slot {1} + La luz del modo analógico ha sido desactivada en el puerto {0}/ranura {1} @@ -13988,7 +14594,7 @@ Esta acción no se puede deshacer y perderás cualquier partida guardada que ten Increases or decreases the intensity of low frequency vibration sent by the game. - Aumenta o disminuye la intensidad de las vibraciones de baja frecuencia enviadas por el juego. + Aumenta o disminuye la intensidad de las vibraciones de baja frecuencia transmitidas por el juego. @@ -13998,7 +14604,7 @@ Esta acción no se puede deshacer y perderás cualquier partida guardada que ten Increases or decreases the intensity of high frequency vibration sent by the game. - Aumenta o disminuye la intensidad de las vibraciones de alta frecuencia enviadas por el juego. + Aumenta o disminuye la intensidad de las vibraciones de alta frecuencia transmitidas por el juego. @@ -14020,15 +14626,6 @@ Esta acción no se puede deshacer y perderás cualquier partida guardada que ten DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - El puerto de mando {}, ranura {}, tiene conectado un dispositivo {}, -pero el guardado rápido tiene un dispositivo {}. -Manteniendo el tipo de mando original conectado, pero podría -haber problemas. - Strum Up @@ -14099,38 +14696,63 @@ haber problemas. Guitar Guitarra + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + El puerto de mando {0}, ranura {1}, tiene conectado un dispositivo {2}, +pero el guardado rápido tiene un dispositivo {3}. +Manteniendo el tipo de mando original conectado, pero podría +haber problemas. + Patch - + Failed to open {}. Built-in game patches are not available. Error al abrir {}. Los parches de juego integrados no están disponibles. - + {} GameDB patches {} parche(s) en GameDB - + {}{} game patches {}{} parche(s) de juego - + {}{} cheat patches {}{} parche(s) de trucos - + {} are active. {} activos. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. - No se han encontrado o activado trucos o parches (de pantalla panorámica, compatibilidad u otros). + No se han encontrado o activado trucos o parches (de imagen panorámica, compatibilidad u otros). + + + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 usa tu cámara para poder emular una cámara EyeToy conectada a la PS2 virtual + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 usa tu micrófono para poder emular un micrófono USB conectado a la PS2 virtual @@ -14150,13 +14772,13 @@ The URL was: %1 URL introducida: %1 - + HDD Creator - Creador de imágenes de disco duro + Creador de imágenes - + Failed to create HDD image Error al crear la imagen de disco duro @@ -14351,7 +14973,7 @@ URL introducida: %1 You can download PCSX2 {} from pcsx2.net and make a normal memory card save. Otherwise delete the savestate and do a fresh boot. - Este guardado rápido es de una versión no compatible y no puede ser utilizado. + Este guardado rápido es de una versión no compatible y no puede utilizarse. Puedes descargar la versión {} de PCSX2 desde la web pcsx2.net y guardar con ella una partida normal en una Memory Card. @@ -14362,7 +14984,6 @@ De lo contrario, elimina el guardado rápido y arranca el emulador desde cero.SettingWidgetBinder - @@ -14412,222 +15033,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Utilizar configuración global [activar] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Utilizar configuración global [desactivar] + + + + + Use Global Setting [%1] + Utilizar configuración global [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings Ajustes de PCSX2 - + Restore Defaults Restaurar valores predeterminados - + Copy Global Settings Copiar configuración global - + Clear Settings Borrar configuración - + Close Cerrar - - - Summary - Resumen + + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. + <strong>Resumen</strong><hr>Esta página muestra información detallada sobre el juego seleccionado. Si cambias el perfil de entrada, se utilizará el esquema de control del mando que selecciones para este juego en lugar de la configuración predeterminada (el perfil compartido). La lista de pistas y la verificación del volcado sirven para determinar si tu imagen de disco coincide con la de un volcado correcto conocido. En caso de no coincidir, el juego podría estar dañado. - - <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - <strong>Resumen</strong><hr>Esta página muestra información detallada sobre el juego seleccionado. Si cambias el perfil de entrada, seleccionarás el esquema de control del mando de este juego del perfil elegido en lugar de la configuración predeterminada (el perfil compartido). La lista de pistas y la verificación del volcado sirven para determinar si tu imagen de disco coincide con la de un volcado correcto conocido. En caso de no coincidir, el juego podría estar dañado. + + + Summary + Resumen - + Summary is unavailable for files not present in game list. - Los archivos que no se encuentran presentes en la lista de juegos no tienen resumen. + Los archivos que no se encuentren presentes en la lista de juegos no tienen resumen. - + Interface Interfaz - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - <strong>Ajustes de la interfaz</strong><hr>Estas opciones controlan la aparicencia y comportamiento de la aplicación.<br><br>Mueve el cursor del ratón sobre una opción para obtener información adicional. + <strong>Ajustes de la interfaz</strong><hr>Estas opciones controlan la apariencia y comportamiento de la aplicación.<br><br>Mueve el cursor del ratón sobre una opción para ver más información. - + Game List Lista de juegos - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - <strong>Ajustes de la lista de juegos</strong><hr>La lista que hay encima muestra los directorios donde PCSX2 buscará juegos con los que llenar la lista. Se pueden añadir o quitar directorios, así como hacer que se busquen en ellos de forma recursiva o no recursiva. + <strong>Ajustes de la lista de juegos</strong><hr>La lista de la parte superior muestra los directorios en los que PCSX2 buscará juegos para llenar la lista. Se pueden añadir o quitar directorios, así como hacer que la búsqueda sea recursiva o no recursiva. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - <strong>Ajustes de la BIOS</strong><hr>Aquí podrás configurar tu BIOS.<br><br>Mueve el cursor del ratón sobre una opción para obtener información adicional. + <strong>Ajustes de la BIOS</strong><hr>Aquí podrás configurar tu BIOS.<br><br>Mueve el cursor del ratón sobre una opción para ver más información. - + Emulation Emulación - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - <strong>Ajustes de la emulación</strong><hr>Estas opciones determinan la configuración de la fluidez de los fotogramas y los ajustes de los juegos.<br><br>Mueve el cursor del ratón sobre una opción para obtener información adicional. + <strong>Ajustes de la emulación</strong><hr>Estas opciones determinan la configuración del ritmo de fotogramas y los ajustes para los juegos.<br><br>Mueve el cursor del ratón sobre una opción para ver más información. - + Patches Parches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Parches</strong><hr>Esta sección te permite elegir los parches opcionales que puedes aplicar al juego, los cuales podrían ofrecer mejoras de rendimiento, visuales o de jugabilidad. - + Cheats Trucos - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - <strong>Trucos</strong><hr>Esta sección te permite elegir los trucos que quieras activar. No podrás activar o desactivar trucos sin etiquetar de los archivos .pnach del formato antiguo: estos se activarán automáticamente si activas la opción principal de trucos. + <strong>Trucos</strong><hr>Esta sección te permite elegir los trucos que quieras activar. No podrás activar o desactivar trucos sin etiquetar de los archivos .pnach del formato antiguo: estos se activarán automáticamente al activar la opción general de trucos. - + Game Fixes - Correcciones para juegos + Correcciones - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - <strong>Ajustes de correcciones de juegos</strong><hr>Las correcciones de juegos ofrecen soluciones alternativas a problemas de emulación incorrecta en ciertos juegos.<br>No obstante, si se usan incorrectamente, también pueden provocar problemas en los juegos.<br>Lo mejor es dejar todo desactivado a menos que se aconseje lo contrario. + <strong>Ajustes de correcciones de juegos</strong><hr>Las correcciones de juegos ofrecen soluciones alternativas a problemas de emulación incorrecta en ciertos juegos.<br>No obstante, un mal uso de las correcciones también puede provocar problemas en los juegos.<br>Lo mejor es dejar todo desactivado a menos que se aconseje lo contrario. - + Graphics Gráficos - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - <strong>Ajustes de gráficos</strong><hr>Estas opciones determinan la configuración de los gráficos mostrados.<br><br>Mueve el cursor del ratón sobre una opción para obtener información adicional. + <strong>Ajustes de gráficos</strong><hr>Estas opciones determinan la configuración de la salida de gráficos.<br><br>Mueve el cursor del ratón sobre una opción para ver más información. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - <strong>Ajustes de audio</strong><hr>Estas opciones controlan la salida de audio de la consola.<br><br>Mueve el cursor del ratón sobre una opción para obtener información adicional. + <strong>Ajustes de audio</strong><hr>Estas opciones controlan la salida de audio de la consola.<br><br>Mueve el cursor del ratón sobre una opción para ver más información. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - <strong>Ajustes de las Memory Card</strong><hr>Aquí podrás crear y configurar las Memory Cards.<br><br>Mueve el cursor del ratón sobre una opción para obtener información adicional. + <strong>Ajustes de las Memory Cards</strong><hr>Aquí podrás crear Memory Cards y configurarlas.<br><br>Mueve el cursor del ratón sobre una opción para ver más información. - + Network & HDD Red y disco duro - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - <strong>Ajustes de red y disco duro</strong><hr>Estas opciones controlan la conectividad de red y el almacenamiento del disco duro interno de la consola.<br><br>Mueve el cursor del ratón sobre una opción para obtener información adicional. + <strong>Ajustes de red y disco duro</strong><hr>Estas opciones controlan la conectividad de red y el almacenamiento del disco duro interno de la consola.<br><br>Mueve el cursor del ratón sobre una opción para ver más información. - + Folders Carpetas - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Ajustes de carpetas</strong><hr>Estas opciones controlan las rutas donde PCSX2 almacenará datos durante su ejecución. - + Achievements Logros - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - <strong>Ajustes de logros</strong><hr>Estas opciones controlan la implementación de RetroAchievements en PCSX2, con la que podrás ganar logros en tus juegos. + <strong>Ajustes de logros</strong><hr>Estas opciones controlan la implementación de RetroAchievements en PCSX2, con la que podrás obtener logros en tus juegos. - + RAIntegration is being used, built-in RetroAchievements support is disabled. Se está utilizando RAIntegration, pero el soporte integrado de RetroAchievements está desactivado. - + Advanced - Avanzados + Avanzado - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - <strong>Ajustes avanzados</strong><hr>Estos ajustes avanzados determinan la configuración de la consola emulada.<br><br>Mueve el cursor del ratón sobre una opción para obtener información adicional. + <strong>Ajustes avanzados</strong><hr>Estas opciones avanzadas determinan la configuración de la consola emulada.<br><br>Mueve el cursor del ratón sobre una opción para ver más información. - + Debug Depuración - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - <strong>Ajustes de depuración</strong><hr>Estas opciones se pueden utilizar para registrar la información interna de la aplicación. <strong>No modifiques estos ajustes a menos que sepas lo que estás haciendo</strong>, provocarán ralentizaciones importantes y podrías ocupar buena parte de tu espacio en disco. + <strong>Ajustes de depuración</strong><hr>Estas opciones se pueden utilizar para registrar la información interna de la aplicación. <strong>No modifiques estos ajustes a menos que sepas lo que estás haciendo</strong>, ya que provocarán ralentizaciones importantes y podrías saturar buena parte de tu espacio en disco. - + Confirm Restore Defaults Confirmar restauración de valores predeterminados - + Are you sure you want to restore the default settings? Any preferences will be lost. ¿Seguro que deseas restaurar la configuración predeterminada? Se perderán todas tus preferencias. - + Reset UI Settings Reiniciar ajustes de interfaz - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14640,12 +15282,12 @@ Se sobrescribirá cualquier ajuste actual. ¿Deseas continuar? - + Per-game configuration copied from global settings. - Configuración del juego copiada de la configuración global. + Configuración específica para el juego copiada de la configuración global. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14658,33 +15300,15 @@ Se perderá cualquier ajuste actual. ¿Deseas continuar? - + Per-game configuration cleared. - Configuración del juego borrada. + Configuración específica para el juego borrada. - + Recommended Value Valor recomendado - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Utilizar configuración global [activar] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Utilizar configuración global [desactivar] - - - - - Use Global Setting [%1] - Utilizar configuración global [%1] - SetupWizardDialog @@ -14770,8 +15394,8 @@ Se perderá cualquier ajuste actual. - Open in Explorer... - Abrir en el explorador... + Open BIOS Folder... + Abrir carpeta de BIOS... @@ -15038,97 +15662,97 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se TIPO DE ESPERA - + BAD Refers to a Thread State in the Debugger. MALO - + RUN Refers to a Thread State in the Debugger. EJECUTANDO - + READY Refers to a Thread State in the Debugger. LISTO - + WAIT Refers to a Thread State in the Debugger. EN ESPERA - + SUSPEND Refers to a Thread State in the Debugger. SUSPENDIDO - + WAIT SUSPEND Refers to a Thread State in the Debugger. ESPERA SUSPENDIDO - + DORMANT Refers to a Thread State in the Debugger. INACTIVO - + NONE Refers to a Thread Wait State in the Debugger. NINGUNO - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. REACTIVACIÓN SOLICITADA - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMÁFORO - + SLEEP Refers to a Thread Wait State in the Debugger. SUSPENSIÓN - + DELAY Refers to a Thread Wait State in the Debugger. RETRASO - + EVENTFLAG Refers to a Thread Wait State in the Debugger. MARC. EVENTO - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15334,6 +15958,11 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se Scales the crosshair image set above. Cambia la escala de la imagen de punto de mira establecida arriba. + + + %.0f%% + %.0f %% + Cursor Color @@ -15365,6 +15994,12 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se Scales the position to simulate CRT curvature. Escala la posición para simular la curvatura de un televisor CRT. + + + + %.2f%% + %.2f %% + Y Scale (Sensitivity) @@ -15380,6 +16015,12 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se Sets the horizontal center position of the simulated screen. Establece el centro horizontal de la pantalla simulada. + + + + %.0fpx + %.0f px + Center Y @@ -15400,6 +16041,12 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se Sets the width of the simulated screen. Establece el ancho de la pantalla simulada. + + + + %dpx + %d px + Screen Height @@ -15455,6 +16102,15 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se Specifies the latency to the host input device. Especifica la latencia respecto al dispositivo de entrada del «host». + + + + + + + %dms + %d ms + Output Latency @@ -15655,6 +16311,26 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se Y Y + + + Off + Desactivada + + + + Low + Baja + + + + Medium + Media + + + + High + Alta + Steering Smoothing @@ -15665,6 +16341,12 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Suaviza los cambios en la dirección al porcentaje especificado por cada sondeo. Necesario si vas a utilizar un teclado. + + + + %d%% + %d %% + Steering Deadzone @@ -16164,117 +16846,117 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se USBBindingWidget_DrivingForce - + Hints Consejos - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Si quieres asignar la dirección a la mayoría de volantes modernos con 900°, da una vuelta completa con el volante en la dirección deseada y luego vuelve a llevarlo a su posición neutral. - + Force Feedback Force Feedback - + D-Pad Botones de dirección - + Down Abajo - + Left Izquierda - + Up Arriba - + Right Derecha - + L1 L1 - + L2 L2 - + Brake Freno - + Steering Left Girar a la izquierda - + Steering Right Girar a la derecha - + Select SELECT - + Start START - + Face Buttons Botones de acción - + Circle Círculo - + Cross Cruz/X - + Triangle Triángulo - + Square Cuadrado - + R1 R1 - + R2 R2 - + Accelerator Acelerador @@ -16282,67 +16964,67 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se USBBindingWidget_GTForce - + Hints Consejos - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Si quieres asignar la dirección a la mayoría de volantes modernos con 900°, da una vuelta completa con el volante en la dirección deseada y luego vuelve a llevarlo a su posición neutral. - + Force Feedback Force Feedback - + X X - + A A - + Brake Freno - + Steering Left Girar a la izquierda - + Steering Right Girar a la derecha - + Left Paddle Pedal izquierdo - + Right Paddle Pedal derecho - + Y Y - + B B - + Accelerator Acelerador @@ -16350,71 +17032,71 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se USBBindingWidget_GunCon2 - + Buttons Botones - + A A - + C C - + Start START - + Select SELECT - + B B - + D-Pad Botones de dirección - - + + Down Abajo - - + + Left Izquierda - - + + Up Arriba - - + + Right Derecha - + Pointer Setup Configuración del puntero - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16423,29 +17105,29 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se <p>Si quieres utilizar un mando o una pistola de luz que simule ser un mando en vez de un ratón, debes asignarlo a los elementos de Apuntado relativo. En caso contrario, esta sección <strong>debe quedar sin asignar</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Apuntado relativo - - + + Trigger Gatillo - + Shoot Offscreen Disparar fuera de la pantalla - + Calibration Shot Disparar para calibrar - + Calibration shot is required to pass the setup screen in some games. Algunos juegos necesitan los disparos de calibración para poder avanzar más allá de sus pantallas de calibración. @@ -16453,27 +17135,27 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se USBDeviceWidget - + Device Type Tipo de dispositivo - + Bindings Asignaciones - + Settings Configuración - + Automatic Mapping Asignación automática - + Clear Mapping Borrar asignaciones @@ -16511,32 +17193,32 @@ La búsqueda recursiva lleva más tiempo, pero identificará los archivos que se VMManager - + Failed to back up old save state {}. Error al crear la copia de seguridad del guardado rápido antiguo {}. - + Failed to save save state: {}. Error al crear el guardado rápido {}. - + PS2 BIOS ({}) BIOS de PS2 ({}) - + Unknown Game Juego desconocido - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16553,197 +17235,217 @@ Una vez hayas volcado una imagen de la BIOS, deberás guardarla en la carpeta « Para más instrucciones, consulta las páginas de preguntas frecuentes («FAQ») y las guías. - + + Resuming state + guardados rápidos de continuación + + + State saved to slot {}. Guardado rápido creado en el espacio {}. - + Failed to save save state to slot {}. Error al crear el guardado rápido en el espacio {}. - + + + Loading state + carga de guardados rápidos + + + There is no save state in slot {}. No hay un guardado rápido en el espacio {}. - + Loading state from slot {}... Cargando guardado rápido del espacio {}... - + Saving state to slot {}... Creando guardado rápido en el espacio {}... - + + Frame advancing + avance de fotogramas + + + Disc removed. Disco extraído. - + Disc changed to '{}'. Disco cambiado a «{}». - - Failed to open new disc image '{}'. Reverting to old image. - Error al abrir la nueva imagen de disco «{}». Cambiando a la imagen antigua. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Error al abrir la nueva imagen de disco «{}». Cambiando a la imagen antigua. +Mensaje de error: {} - - Failed to switch back to old disc image. Removing disc. - Error al cambiar a la imagen del disco antiguo. Eliminando disco. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Error al cambiar a la imagen del disco antiguo. Extrayendo disco. +Mensaje de error: {} - + Cheats have been disabled due to achievements hardcore mode. Se han desactivado los trucos porque el modo de logros «hardcore» está activado. - + Fast CDVD is enabled, this may break games. CDVD rápido activado: podrían romperse los juegos. - + Cycle rate/skip is not at default, this may crash or make games run too slow. La frecuencia/omisión de ciclos no están en sus valores predeterminados: podría haber cuelgues o los juegos podrían ir muy lentos. - + Audio is using async mix, expect desynchronization in FMVs. El audio está utilizando una mezcla asíncrona: los vídeos FMV se mostrarán desincronizados. - + Upscale multiplier is below native, this will break rendering. El multiplicador de escala está por debajo del valor nativo: el renderizado fallará. - + Mipmapping is not set to automatic. This may break rendering in some games. El «mipmapping» no está configurado en automático. Podría fallar el renderizado de algunos juegos. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. El filtrado de texturas no está configurado como bilineal (PS2). Fallará el renderizado de algunos juegos. - + Trilinear filtering is not set to automatic. This may break rendering in some games. El filtro trilineal no está configurado en automático. Podría fallar el renderizado de algunos juegos. - + Blending is below basic, this may break effects in some games. La mezcla está configurada a un nivel por debajo del básico: podrían fallar los efectos de algunos juegos. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. El modo de descarga de hardware no está configurado como preciso: podría fallar el renderizado en algunos juegos. - + EE FPU Round Mode is not set to default, this may break some games. El modo de redondeo de la FPU del EE no está configurado con su valor predeterminado: podrían fallar algunos juegos. - + EE FPU Clamp Mode is not set to default, this may break some games. El modo de limitación de la FPU del EE no está configurado con su valor predeterminado: podrían fallar algunos juegos. - + VU Round Mode is not set to default, this may break some games. El modo de redondeo de las VU no está configurado con su valor predeterminado: podrían fallar algunos juegos. - + VU Clamp Mode is not set to default, this may break some games. El modo de limitación de las VU no está configurado con su valor predeterminado: podrían fallar algunos juegos. - + Game Fixes are not enabled. Compatibility with some games may be affected. - Las correcciones para juegos no están activadas. La compatibilidad con algunos juegos puede verse afectada. + Las correcciones para juegos no están activadas. La compatibilidad con algunos juegos podría verse afectada. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. - Los parches de compatibilidad no están activados. La compatibilidad con algunos juegos puede verse afectada. + Los parches de compatibilidad no están activados. La compatibilidad con algunos juegos podría verse afectada. - + Frame rate for NTSC is not default. This may break some games. La velocidad de fotogramas NTSC no tiene su valor predeterminado: podrían fallar algunos juegos. - + Frame rate for PAL is not default. This may break some games. La velocidad de fotogramas PAL no tiene su valor predeterminado: podrían fallar algunos juegos. - + EE Recompiler is not enabled, this will significantly reduce performance. El recompilador del EE no está activado: el rendimiento se reducirá significativamente. - + VU0 Recompiler is not enabled, this will significantly reduce performance. El recompilador de la VU0 no está activado: el rendimiento se reducirá significativamente. - + VU1 Recompiler is not enabled, this will significantly reduce performance. El recompilador de la VU1 no está activado: el rendimiento se reducirá significativamente. - + IOP Recompiler is not enabled, this will significantly reduce performance. El recompilador del IOP no está activado: el rendimiento se reducirá significativamente. - + EE Cache is enabled, this will significantly reduce performance. - La caché del E está activada: el rendimiento se reducirá significativamente. + La caché del EE está activada: el rendimiento se reducirá significativamente. - + EE Wait Loop Detection is not enabled, this may reduce performance. - La detección de bucles en espera no está activada: el rendimiento podría reducirse. + La detección de bucles de espera en el EE no está activada: el rendimiento podría reducirse. - + INTC Spin Detection is not enabled, this may reduce performance. - La detección de valores de INTC no está activada: el rendimiento podría reducirse. + La detección de bucles en el INTC no está activada: el rendimiento podría reducirse. - + Instant VU1 is disabled, this may reduce performance. La VU1 instantánea está desactivada: el rendimiento podría reducirse. - + mVU Flag Hack is not enabled, this may reduce performance. La corrección del indicador de mVU no está activada: el rendimiento podría reducirse. - + GPU Palette Conversion is enabled, this may reduce performance. La conversión de paletas en la GPU está activada: el rendimiento podría reducirse. - + Texture Preloading is not Full, this may reduce performance. La precarga de texturas no está configurada como completa: el rendimiento podría reducirse. - + Estimate texture region is enabled, this may reduce performance. El cálculo de regiones de texturas está activado: el rendimiento podría reducirse. diff --git a/pcsx2-qt/Translations/pcsx2-qt_fa-IR.ts b/pcsx2-qt/Translations/pcsx2-qt_fa-IR.ts index a1f0d908e7e239..554040579afcbd 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_fa-IR.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_fa-IR.ts @@ -80,32 +80,38 @@ آماده... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>توکن ورود به سیستم RetroAchievements شما دیگر معتبر نیست.</strong> برای ردیابی دستاوردهای خود، باید خود را دوباره به سیستم وارد کنید. رمز عبور شما در PCSX2 ذخیره نمی شود. بنابراین یک توکن درست و ذخیره می شود. - + &Login &ورود - + Logging in... درحال ورود شدن به سیستم... - + Login Error خطا در ورود به سیستم - - Login failed. Please check your username and password, and try again. - خطایی پیش آمد. لطفا نام کاربری و گذرواژه خود را بررسی، و دوباره امتحان کنید. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + ورود به سیستم ناموفق بود. +خطا: %1 + +لطفاً نام کاربری و رمز عبور خود را بررسی کنید و دوباره امتحان کنید. - + Login failed. ورود به سیستم ناموفق بود. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - تنظیمات عمومی - - - - + + Enable Achievements فعال کردن دستاورد ها - - - Show Challenge Indicators - نمایش شاخص های چالش - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - فعال کردن همسان سازی RA با برنامه دیسکورد - - - - + + Enable Hardcore Mode فعال کردن حالت هاردکور - - - Enable Leaderboards - فعال کردن تابلو های امتیازات - - - + Test Unofficial Achievements امتحان کردن دستاوردهای غیر رسمی - - - Enable Test Mode - فعال کردن حالت آزمایشی - - - - + + Enable Sound Effects فعال کردن افکت های صوتی - + Notifications اعلانات - - - Show Notifications - نمایش اعلان ها - - - - Duration - مدت - - - - - - + + 5 seconds ۵ ثانیه - + Account حساب کاربری - - + + Login... ورود به سیستم... - + View Profile... مشاهده پروفایل... - + + Settings + تنظیمات + + + + + Enable Spectator Mode + فعال کردن حالت تماشاگر + + + + + Enable Encore Mode + فعال کردن حالت اِنکور + + + + + Show Achievement Notifications + نمایش اعلان های دستاورد ها + + + + + Show Leaderboard Notifications + نمایش اعلان های جدول امتیاز ها + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + نام کاربری: +کد (توکن) ورود در ایجاد شد: + + + Game Info اطلاعات بازی - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">برنامه PCSX2 از RetroAchievements به عنوان پایگاه داده دستاوردها و برای ردیابی پیشرفت استفاده می کند. برای استفاده از دستاوردها، لطفاً برای یک حساب در <a href="https://retroachievements.org/">retroachievements.org</a> ثبت نام کنید.</p><p align="justify">برای مشاهده فهرست دستاوردها در بازی، کلید میانبر را برای <span style=" font-weight:600;">باز کردن منوی مکث</span> فشار دهید و سپس <span style=" font-weight:600;">دستاورد ها</span> را از منو انتخاب کنید.</p></body></html> + - seconds - ثانیه - - - - + + - - Unchecked فعال نشده - - When enabled and logged in, PCSX2 will scan for achievements on game load. - وقتی فعال شد و به سیستم وارد شدید، PCSX2 دستاوردها را در بارگذاری بازی اسکن می کند. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. وقتی فعال باشد، PCSX2 فرض می‌کند که تمام دستاوردها قفل شده‌اند و هیچ اعلان باز کردن قفل را به سرور ارسال نمی‌کند. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. وقتی PCSX2 فعال باشد، دستاوردهای مجموعه‌های غیر رسمی را فهرست می‌کند. لطفاً توجه داشته باشید که این دستاوردها توسط RetroAchievements ردیابی نمی شوند، بنابراین هر بار قفل آن ها را باز می کنند. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - وقتی فعال باشد، اطلاعات حضور غنی جمع‌آوری می‌شود و به سرورهای RetroAchievements که در آن پشتیبانی می‌شود، ارسال می‌شود. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "حالت" چالش برای دستاورد ها، دارای ردیابی جدول امتیازات. ذخیره حالت کنونی بازی، تقلبات و امکانات کند کردن بازی غیر فعال می شود. - - - - + + + + Checked فعال شده - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - ردیابی و ارسال تابلوهای امتیازات را در بازی های پشتیبانی شده، فعال می کند. اگر تابلوی امتیازات غیرفعال باشد، همچنان می‌توانید تابلوی امتیازات را مشاهده کنید، اما هیچ امتیازی آپلود نخواهد شد. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - پیام‌های پاپ آپ در رویدادهایی مانند باز کردن قفل دستاوردها و ارسال‌های تابلوی امتیازات نمایش داده می‌شود. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. جلوه های صوتی را برای رویدادهایی مانند باز کردن قفل دستاوردها و ارسال امتیازات پخش می کند. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. هنگامی که یک چالش یا دستاورد اولیه فعال است، آیکون ها را در گوشه سمت راست پایین صفحه نمایش نشان می‌دهد. - - - - Notification Duration - مدت زمان اعلان + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - مدت زمان، در ثانیه، یک اعلان پاپ آپ دستاورد روی صفحه باقی می ماند. + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - + Reset System بازنشانی سیستم - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? حالت هاردکور فعال نخواهد شد تا وقتی که سیستم بازنشانی نشده است. آیا میخواهید سیستم را بازنشانی کنید؟ + + + + %n seconds + + %n ثانيه + %n ثانيه + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. نام کاربری: %1 کد ورود در %2 ایجاد شد. - + Logout خروج از سیستم - + Not Logged In. وارد نشده اید. - - - %1 seconds - %1 ثانيه - Achievements - + Hardcore mode will be enabled on system reset. حالت هاردکور بعد از شروع مجدد سیستم فعال خواهد شد. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. وقتی حالت هاردکور فعال است، {0} قابل اجرا نیست. آیا می خواهید حالت هاردکور را غیرفعال کنید؟ اگر گزینه «خیر» را انتخاب کنید، {0} لغو خواهد شد. - + Hardcore mode is now enabled. حالت هاردکور فعال شد. - + + {} (Hardcore Mode) + {} (حالت هاردکور) + + + + {} (Unofficial) + {} (غیر رسمی) + + + + Mastered {} + مسلط به {} + + + + Leaderboard attempt started. + تلاش برای تابلوی امتیازات آغاز شد. + + + + Leaderboard attempt failed. + تلاش برای تابلوی امتیازات شکست خورد. + + + + Your Time: {}{} + زمان شما: {}{} + + + + Your Score: {}{} + امتیاز شما: {}{} + + + + Your Value: {}{} + مقدار شما: {}{} + + + + (Submitting) + (درحال ثبت کردن) + + + + Achievements Disconnected + اتصال به دستاوردها قطع شد + + + + An unlock request could not be completed. We will keep retrying to submit this request. + درخواست باز کردن قفل تکمیل نشد. ما به تلاش مجدد برای ارسال این درخواست ادامه خواهیم داد. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. حالت هاردکور غیرفعال شد. - + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (حالت هاردکور) - - You have earned {0} of {1} achievements, and {2} of {3} points. - شما {0} دستاورد از {1} دستاورد بدست آورده اید، و {2} امتیاز از {3} امتیاز را بدست آورده اید. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - این بازی دستاوردی ندارد. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + شما قفل {0} دستاورد از {1} دستاوردها را باز کرده‌اید و {2} از {3} امتیاز کسب کرده‌اید. + + + + {0} achievements, {1} points + {0} دستاورد، {1} امتیاز + + + + Your Time: {0} (Best: {1}) + زمان شما: {0} (بهترین: {1}) + + + + Your Score: {0} (Best: {1}) + امتیاز شما: {0} (بهترین: {1}) + + + + Your Value: {0} (Best: {1}) + مقدار شما: {0} (بهترین: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +موقعیت تابلوی امتیازات: {1} از {2} + + + + Server error in {0}: +{1} + خطا سرور در {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + شما قفل {0} از {1} دستاوردها را باز کرده‌اید و {2} از {3} امتیاز ممکن را کسب کرده‌اید. + + + + Unknown + ناشناخته + + + + Locked + قفل شد + + + + Unlocked + باز شده + + + + Unsupported + پشتیبانی نشده + + + + Unofficial + غیر رسمی + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + تقریبا نزدیکی + + + + {} points + {} امتیاز + + + + {} point + {} امتیاز + + + + XXX points + XXX امتیاز + + + + Unlocked: {} + باز شده: {} + + + + This game has {} leaderboards. + این بازی {} جدول امتیازات دارد. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + ارسال نمرات غیرفعال است زیرا حالت هاردکور خاموش است. تابلوهای امتیازات روی حالت فقط خواندن هستند. + + + + Show Best + نمایش بهترین + + + + Show Nearby + نمایش نزدیکترین + + + + Rank + رتبه + + + + Name + نام + + + + Time + زمان + + + + Score + امتیاز - - Leaderboard submission is enabled. - ثبت امتیاز در جدول امتیازات فعال است. + + Value + مقدار + + + + Date Submitted + تاریخ ارسال + + + + Downloading leaderboard data, please wait... + در حال بارگیری داده های تابلوی امتیازات، لطفاً صبر کنید... + + + + + Loading... + در حال بارگذاری... + + + + + Leaderboard download failed + دانلود تابلوی امتیازات انجام نشد + + + + This game has no achievements. + این بازی دستاوردی ندارد. - + Failed to read executable from disc. Achievements disabled. فایل اجرایی از دیسک خوانده نشد. دستاوردها غیرفعال شدند. @@ -578,220 +815,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. تغییر این تنظیمات ممکن است باعث شود بازی ها غیرقابل پخش شوند. با مسئولیت خود تغییر دهید، تیم PCSX2 از تنظیمات با تغییر این تنظیمات پشتیبانی نمی کند. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). پردازنده EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. حالت گرد کردن: - - - + + + Nearest نزدیک‌ترین - - - + + + Negative منفی - - - + + + Positive مثبت - - - + + + Chop / Zero (Default) خورد کردن یا صفر (پیش‌فرض) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. حالت محدود کردن: - - + + None هیچ‌کدام - - - + + + Normal (Default) معمولی (پیش‌فرض) - + None ClampMode هیچ‌کدام - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). اضافات + نگه داشتن علامت - + Full کامل - + Wait Loop Detection تشخیص حلقه انتظار - - + + Enable Recompiler فعال کردن مفسیر - + Enable Fast Memory Access فعال کردن دسترسی سریع به حافظه - + Enable Cache (Slow) فعال کردن حافظه پنهان (کند) - + INTC Spin Detection تشخیص چرخش INTC - + Pause On TLB Miss مکث کردن در TLB هنگام خطا - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: حالت گرد کردن VU1: - + mVU Flag Hack نادیده گرفتن پرچمگذاری mVU - + Enable VU1 Recompiler فعال کردن مفسیر VU1 - + Enable VU0 Recompiler (Micro Mode) فعال کردن مفسیر VU0 (حالت میکرو) - - + + Extra اضافات - + VU0 Clamping Mode: حالت محدود کردن VU0: - + VU0 Rounding Mode: حالت گرد کردن VU0: - + VU1 Clamping Mode: حالت محدود کردن VU1: - + I/O Processor (IOP, MIPS-I) پردازنده ورودی/خروجی (IOP، MIPS-I) - + Game Settings تنظیمات بازی - + Enable Game Fixes فعال سازی رفع ایرادات و اصلاحات بازی - + Enable Compatibility Patches فعال کردن پچ های سازگاری - + Frame Rate Control کنترل نرخ فریم - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. هرتز - + PAL Frame Rate: نرخ فریم PAL: - + NTSC Frame Rate: نرخ فریم NTSC: - + PINE Settings تنظیمات PINE - + Slot: اسلات: - + Enable فعال کردن @@ -799,182 +1036,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings تنظیمات Timestretch - + Sequence Length: میزان توالی: - + 30 ۳۰ - + Seekwindow Size: پیدا کزدن اندازه پنجره: - + 20 ۲۰ - + Overlap: همپوشانی: - + 10 ۱۰ - + Restore Defaults بازیابی تنظیمات پیش‌فرض - + Volume درجه صدا - + 100% ۱۰۰٪ - + Mixing Settings تنظیمات میکسینگ - + Synchronization: همگام سازی: - + TimeStretch (Recommended) TimeStretch (توصیه شده) - + Async Mix (Breaks some games!) Async Mix (ممکن است بازی ها را خراب کند!) - + None (Audio can skip.) هیچ‌کدام (صدا رد شود.) - + Expansion: افزونه: - + Stereo (None, Default) استریو (پیش‌فرض) - + Quadraphonic - Quadraphonic + کوادروفونیک - + Surround 5.1 صدای فراگیر ۵٫۱ - + Surround 7.1 صدای فراگیر ۷٫۱ - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. میزان ProLogic: - + None (Default) هیچکدام (پیش‌فرض) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. رمزگشایی ProLogic (معمولی) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. رمزگشایی ProLogic II (گیگاهرتز) - + Target Latency: زمان تاخیر هدفگیری شده: - + 60 ms ۶۰ میلی‌ثانیه - + Output Settings تنظیمات خروجی - + Output Module: ماژول خروجی: - + Output Latency: زمان تاخیر خروجی: - + 20 ms ۲۰ میلی‌ثانیه - + Minimal کمترین - + Output Backend: خروجی بک‌اند: - + Maximum Latency: زمان تاخیر حداکثر: - + Output Device: دستگاه خروجی: @@ -1162,17 +1399,22 @@ Login token generated on %2. نسخه جدید: - + + Download Size: + Download Size: + + + Download and Install... دانلود و نصب... - + Skip This Update گذشتن از این بروزرسانی - + Remind Me Later بعدا یادآوری کن @@ -1182,17 +1424,17 @@ Login token generated on %2. خطا در برنامه بروزرسان - + <h2>Changes:</h2> <h2>تغییرات:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>اخطار در ذخیره کردن وضعیت:</h2><p>نصب این به‌روزرسانی باعث می شود که وضعیت هایی که ذخیره کرده اید<b>دچار ایراد شود</b>. لطفاً قبل از نصب این به‌روزرسانی، مطمئن شوید که بازی‌های خود را در کارت حافظه این شبیه‌ساز ذخیره کرده‌اید، وگرنه پیشرفت خود را از دست خواهید داد.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>اخطار تنظیمات</h2><p>نصب این به‌روزرسانی، تنظیمات برنامه شما را بازنشانی می‌کند. لطفاً توجه داشته باشید که پس از این به‌روزرسانی باید تنظیمات خود را مجدداً تنظیم کنید.</p> @@ -1233,6 +1475,11 @@ Login token generated on %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... در حال بارگذاری... @@ -1240,63 +1487,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory پوشه BIOS - + PCSX2 will search for BIOS images in this directory. PCSX2 فیال های BIOS را در این پوشه جستجو می کند. - + Browse... مسیر... - + Reset بازنشانی - + BIOS Selection انتخاب BIOS - - Open in Explorer... - باز کردن اکسپلورر... + + Open BIOS Folder... + باز کردن پوشه بایوس... - + Refresh List تازه سازی لیست - + Filename نام فایل - + Version نسخه - + Options and Patches تنظیمات و پچ ها - + Fast Boot بوت سریع - + Fast Forward Boot جلو بردن سریع بوت @@ -1424,91 +1671,84 @@ Login token generated on %2. BreakpointModel - + Execute اجرا - - No Condition - بدون وضعیت - - - - + + -- -- - - + Enabled فعال - - + Disabled غیرفعال - + Read خواندن - + Write(C) (C) = changes, as in "look for changes". نوشتن(تغییرات) - + Write نوشتن - + TYPE Warning: limited space available. Abbreviate if needed. نوع - + OFFSET Warning: limited space available. Abbreviate if needed. آفست - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. سایز یا برچسب - + INSTRUCTION Warning: limited space available. Abbreviate if needed. راهنما - + CONDITION Warning: limited space available. Abbreviate if needed. شرایط - + HITS Warning: limited space available. Abbreviate if needed. ضربات - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - فعال شد + X @@ -1519,7 +1759,7 @@ Login token generated on %2. محل دیسک بازی روی یک درایو قابل جابجایی است، ممکن است مشکلات عملکردی مانند لگ و فریز شدن رخ دهد. - + Saving CDVD block dump to '{}'. درحال ذخیره‌سازی اطلاغات سی دی یا دی وی دی به «{}». @@ -1555,32 +1795,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type نوع دسته مجازی - + Bindings اتصالات - + Settings تنظیمات - + Macros ماکروها - + Automatic Mapping پیوند کردن خودکار - + Clear Mapping پاک کردن اتصالات دسته @@ -1620,146 +1860,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. دی-پد - - - + + + Down پایین - - - + + + Left چپ - - - + + + Up بالا - - - + + + Right راست - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. آنالوگ چپ - + Large Motor موتور بزرگ - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. دکمه های اصلی - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. ضرب در - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. مربع - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. مثلث - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. دایره - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. آنالوگ راست - + Small Motor موتور کوچک - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier تعدیل کننده فشار - + Analog آنالوگ @@ -1767,77 +2007,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - فرم - - - + Yellow زرد - - - - - - - - - - - + + + + + + + + + + + PushButton دکمه را فشار دهید - + Start شروع - + Red قرمز - + Green سبز - + Orange Orange - + Select انتخاب - + Strum Up استرام بالا - + Strum Down استرام پایین - + Blue آبی - + Whammy Bar Whammy Bar - + Tilt کج @@ -1863,123 +2098,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source منبع ورودی SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). منبع ورودی SDL از اکثر دسته ها پشتیبانی می کند و قابلیت های پیشرفته ای را برای دسته های DualShock 4 و یا DualSense در حالت بلوتوث (لرزش، کنترل و LED) ارائه می دهد. - + Enable SDL Input Source فعال کردن منبع ورودی SDL - + DualShock 4 / DualSense Enhanced Mode حالت پیشرفته DualShock 4 یا DualSense - + XInput Source منبع XInput - + Enable XInput Input Source فعال کردن منبع ورودی XInput - + DInput Source منبع DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. منبع DInput از دسته های قدیمی که از XInput پشتیبانی نمی کنند را پشتیبانی می کند. دسترسی به این دسته ها از طریق SDL توصیه می شود، اما DirectInput می تواند در صورتی که دسته با SDL سازگار نباشد، استفاده شود. - + Enable DInput Input Source فعال کردن منبع ورودی DInput - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>برخی از کنترل‌کننده‌های شخص ثالث به اشتباه میله‌های آنالوگ خود را به‌عنوان معکوس روی مولفه مثبت علامت‌گذاری می‌کنند، اما منفی نیستند.</p><p>در نتیجه، آنالوگ گیر می‌کند. حتی در حالت استراحت و موقعیت خنثی (استفاده نشدن) هم آنالوگ ایراد دار باشد. </p><p>فعال کردن این تنظیم به PCSX2 می‌گوید که هنگام ایجاد پیوند‌ها، وارونگی آنالوگ را نادیده بگیرد و به چنین دسته هایی اجازه می‌دهد تا به طور عادی کار کنند.</p></body></html> + + + + Ignore Inversion + نادیده گرفتن وارونگی + + + Profile Settings تنظیمات پروفایل - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. هنگامی که این گزینه فعال است، کلیدهای میانبر را می توان در این پروفایل ورودی تنظیم کرد و به جای کلیدهای میانبر سراسری استفاده می شود. به طور پیش فرض، کلیدهای میانبر همیشه بین همه پروفایل ها به اشتراک گذاشته می شود. - + Use Per-Profile Hotkeys میانبر ها بر اساس پروفایل - - + + Controller LED Settings تنظیمات LED دسته - + Enable SDL Raw Input فعال کردن منبع ورودی خام SDL - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. منبع XInput از دسته های Xbox 360 ،Xbox One ،Xbox Series و دسته های متفرقه که پروتکل XInput را پیاده‌سازی می کنند، پشتیبانی می کند. - + Controller Multitap Controller Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. مولتی تپ می تواند تا ۸ دسته را به کنسول متصل کند. هر مولتی تپ دارای ۴ درگاه است. مولتی تپ توسط همه بازی ها پشتیبانی نمی شود. - + Multitap on Console Port 1 Multitap on Console Port 1 - + Multitap on Console Port 2 Multitap on Console Port 2 - + Mouse/Pointer Source منبع ماوس یا اشاره‌گر - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 به شما امکان می دهد از ماوس خود برای شبیه سازی حرکت آنالوگ استفاده کنید. - + Settings... تنظیمات... - + Enable Mouse Mapping Enable Mouse Mapping - + Detected Devices دستگاه های شناخته شده @@ -2015,58 +2260,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons اتصالات یا دکمه‌ها - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. دکمه هایی را که می خواهید با این ماکرو فعال کنید، انتخاب کنید. همه دکمه ها به طور همزمان فعال می شوند. - + Pressure فشار - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. برای دکمه‌هایی که به فشار حساس هستند، این اسلایدر کنترل می‌کند که چه مقدار نیرو در هنگام فعال بودن ماکرو شبیه‌سازی شود. - - + + 100% ۱۰۰٪ - + Trigger اجرا - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. دکمه شروع را برای فعال کردن این ماکرو انتخاب کنید. این می تواند یک دکمه یا ترکیبی از دکمه ها باشد. برای داشتن چندین شروع کننده ماکرو، شیفت و کلیک کنید. - + Deadzone: ددزون: - + Frequency فرکانس - + Macro will toggle every N frames. ماکرو از n فریم شروع می‌شود. - + Set... تنظیم... @@ -2169,101 +2414,103 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - تنظیمات دسته PCSX2 + PCSX2 Controller Settings - + Editing Profile: - ویرایش پروفایل: + Editing Profile: - + New Profile - پروفایل جدید + New Profile - + Load Profile - بارگذاری پروفایل + Load Profile - + Delete Profile - حذف پروفايل + Delete Profile - - + + Restore Defaults - بازیابی تنظیمات پیش‌فرض + Restore Defaults - - + + Create Input Profile - ایجاد پروفایل ورودی + Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - پروفایل های ورودی سفارشی برای لغو پروفایل ورودی مشترک برای بازی های خاص استفاده می شود. -برای اعمال پروفایل ورودی سفارشی به یک بازی، به بخش «ویژگی های بازی» بروید، سپس «نمایه ورودی» را در برگه «خلاصه» تغییر دهید. + Custom input profiles are used to override the Shared input profile for specific games. +To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. -نام پروفایل ورودی جدید را وارد کنید: +Enter the name for the new input profile: - - - - + + + + Error - خطا + Error - + A profile with the name '%1' already exists. - پروفایلی با نام «%1» وجود دارد. + A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - آیا می خواهید همه پیوندها را از پروفایل انتخاب شده فعلی در پروفایل جدید کپی کنید؟ با انتخاب گزینه «خیر»، یک پروفایل کاملا خالی ایجاد می شود. + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. - خطا در ذخیره پروفایل جدید در «%1». + Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - آیا مطمئن هستید که می خواهید پروفایل ورودی با نام «%1» را بارگیری کنید؟ + Are you sure you want to load the input profile named '%1'? + +All current global bindings will be removed, and the profile bindings loaded. -همه پیوند های فعلی حذف خواهند شد و پیوندهای پروفایل بارگیری می شوند. +You cannot undo this action. - + Delete Input Profile - حذف پروفايل ورودی + Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2272,67 +2519,67 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. - حذف «%1» ناموفق بود. + Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - آیا مطمئن هستید که می خواهید پیکربندی دسته پیش فرض را بازیابی کنید؟ + Are you sure you want to restore the default controller configuration? -همه پیوند های مشترک و پیکربندی از بین خواهند رفت، اما پروفایل های ورودی شما باقی خواهند ماند. +All shared bindings and configuration will be lost, but your input profiles will remain. -شما نمی توانید این عمل را واگرد کنید. +You cannot undo this action. - + Global Settings - تنظیمات عمومی + Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - پورت دسته %1%2 + Controller Port %1%2 %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - پورت دسته %1 + Controller Port %1 %2 - - + + USB Port %1 %2 - درگاه USB %1 + USB Port %1 %2 - + Hotkeys - کلیدهای میانبر + Hotkeys - + Shared "Shared" refers here to the shared input profile. - مشترک + Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2404,204 +2651,242 @@ You cannot undo this action. تابع‌ها - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh رفرش - + Filter فیلتر - + Memory Search جستجوی حافظه - + End پایان - + Value مقدار - + Start شروع - + Type نوع - + 1 Byte (8 bits) ١ بایت (۸ بیت) - + 2 Bytes (16 bits) ۲ بایت (١۶ بیت) - + 4 Bytes (32 bits) ۴ بایت (۳۲ بیت) - + 8 Bytes (64 bits) ۸ بایت (۶۴ بیت) - + Float Float - + Double Double - + String رشته متنی - + Array of byte چیدمان از بایت - + Hex هگزادسیمال - + Search جستجو - + Memory حافظه - + Breakpoints نقاط توقف - + Threads رشته های اجرایی - + Active Call Stack پشته فراخوانی فعال - + Breakpoint List Context Menu Breakpoint List Context Menu - + New جدید - + Edit ویرایش - - - + + + Copy کپی - + Delete حذف - + + + + Copy all as CSV + کپی کردن همه به‌صورت CSV + + + + Paste from CSV + الصاق کردن همه به‌صورت CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ دستکاری سمبل ها - + + Copy Function Name کپی نام تابع - + + Copy Function Address کپی کردن آدرس تابع - + + Go to in Disassembly رفتن به حالت دیس‌اسمبلی - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger اشکال زدا - + Invalid start address آدرس شروع اشتباه - + Invalid end address آدرس پایانی اشتباه - + Start address can't be equal to or greater than the end address آدرس شروع نمی تواند مساوی یا بزرگتر از آدرس پایان باشد - + Invalid search value مقدار نامعتبر برای جستجو - + Value is larger than type مقدار بیشتر از نوع است @@ -2657,22 +2942,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet اترنت - + Ethernet Device: دستگاه اترنت: - + Ethernet Device Type: نوع دستگاه اترنت: - + Intercept DHCP Intercept DHCP @@ -2682,135 +2967,130 @@ You cannot undo this action. فعال - + Enabled InterceptDHCP فعال - + Subnet Mask: ساب‌نت ماسک: - + Gateway Address: آدرس گیت‌وی: - - + + Auto خودکار - + Intercept DHCP: Intercept DHCP: - + PS2 Address: آدرس PS2: - + DNS1 Address: آدرس DNS1: - + DNS2 Address: آدرس DNS2: - + Internal DNS DNS داخلی - + Add افزودن - + Delete حذف - + Export اکسپورت - + Import ایمپورت - + Per game برای هر بازی - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable فعال - + Hard Disk Drive هارد دیسک درایو - + HDD File: فایل هارد: - + 40 ۴۰ - + 120 ۱۲۰ - + HDD Size (GiB): سایز هارد (گیگابایت): - + Enabled HDD فعال - + Browse مسیر - + Create Image فایل را بساز - - - - - PCAP Bridged @@ -2843,7 +3123,7 @@ You cannot undo this action. - + Use Global Setting [%1] استفاده از تنظیمات عمومی [%1] @@ -2863,78 +3143,78 @@ You cannot undo this action. آدرس - - + + Hosts File فایل هاست‌ها - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts هاست های DNS - + Exported Successfully با موفقیت اکسپورت شد - + Failed to open file باز شدن فایل‌ ناموفق بود - + No Hosts in file No Hosts in file - + Imported Successfully با موفقیت وارد شد - - + + Per Game Host list Per Game Host list - + Copy global settings? کپی تنظیمات عمومی؟ - + Delete per game host list? Delete per game host list? - + HDD Image File فایل هارد - + HDD (*.raw) هارد (*.raw) - + Overwrite File? فایل بازنویسی شود؟ - + HDD image "%1" already exists? Do you want to overwrite? @@ -2943,22 +3223,22 @@ Do you want to overwrite? آیا میخواهید ادامه دهید؟ - + HDD Creator سازنده هارد - + HDD image created فایل هارد تولید شد - + Use Global استفاده از تنظیمات عمومی - + Override بازنویسی @@ -2966,69 +3246,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping استخراج اطلاعات شبیه سازی - + Dump GS Draws استخراج اطلاعات GS - + Save RT ذخیره کردن هدف رندر - + Save Frame ذخیره فریم - + Save Texture ذخیرهٔ بافت - + Save Depth ذخیره عمق - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... مسیر... - - + + Open... باز... @@ -3041,29 +3321,53 @@ Do you want to overwrite? اشکال زدا PCSX2 - - - + + Run اجرا - + Step Into اجرای مرحله به مرحله کد - + + F11 + F١١ + + + Step Over رد شدن از کد هایی که لازم به اجرا نیست - + + F10 + F١۰ + + + Step Out خروج از کد و شروع از اول اشکال زدایی - + + Shift+F11 + Shift+F١١ + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause مکث @@ -3076,149 +3380,174 @@ Do you want to overwrite? دیس‌اسمبلی - + Copy Address کپی کردن آدرس - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor اجرای به سمت مکان‌نما - + Jump to Cursor پریدن به سمت مکان‌نما - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch دنبال کردن شعبه - + Go to Address رفتن به آدرس - + Go to in Memory View Go to in Memory View - - + + Add Function افزودن تابع - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address رفتن به آدرس - + Go to address error خطا در رفتن به آدرس - + Invalid address آدرس اشتباه - + Add Function Error خطا در افزودن تابع - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name نام تابع - - + + Rename Function Error خطا در تغییر نام تابع - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 آدرس درست نیست @@ -3226,17 +3555,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">هیچ بازیی در پسوند و فرمت های پشتیبانی شده پیدا نشد.</span></p><p>لطفا یک پوشه دارای بازی برای شروع اضافه کنید.</p><p>پسوند و فرمت های پشتیبانی شده در این لیست اسکن خواهد شد:</p></body></html> - + Add Game Directory... افزودن پوشه بازی... - + Scan For New Games اسکن برای بازی های جدید @@ -3244,48 +3573,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS بازی: %1 فریم‌در‌ثانیه - + Video: %1 FPS (%2%) ویدیو: %1 فریم‌در‌ثانیه (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - کد بازی: %1 -اسم بازی: %2 -دستاورد ها: %5 (%6) - + بازی: %1 (%2) - - - %n points - - %n امتیاز - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. بازی بارگذاری نشده است یا دستاوردی در RetroAchievements وجود ندارد. @@ -3293,192 +3618,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control کنترل سرعت - + Normal Speed: سرعت عادی: - + Enable Speed Limiter فعال کردن محدود کننده سرعت - + System Settings تنظیمات سیستم - + Enable Instant VU1 فعال کردن VU1 فوری - + Enable Cheats فعال کردن تقلب ها - + Slow-Motion Speed: سرعت حرکت آهسته: - + Fast-Forward Speed: سزعت جلو بردن: - + Enable Multithreaded VU1 (MTVU) فعال کردن VU1 (MTVU) چندرشته ای - + Enable Host Filesystem فعال کردن فایل‌سیستم کاربر - + Enable Fast CDVD فعال کردن سی دی و دی وی دی سریع - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled غیرفعال - + Mild Underclock آندرکلاک نسبتا متوسط - + Moderate Underclock آندرکلاک متوسط - + Maximum Underclock آندرکلاک ماکسیموم (حداکثر) - + EE Cycle Rate: نرخ چرخه EE: - + 50% (Underclock) ۵۰% (آندرکلاک) - + 60% (Underclock) ۶۰% (اندرکلاک) - + 75% (Underclock) ۷۵% (آندرکلاک) - + 100% (Normal Speed) ١۰۰ (سرعت معمولی) - + 130% (Overclock) ١۳۰% (اورکلاک) - + 180% (Overclock) ١۸۰% (اورکلاک) - + 300% (Overclock) ٣٠٠% (اورکلاک) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. فریم - + Maximum Frame Latency: زمان تاخیر حداکثر فریم: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3566,12 +3891,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + سرعت شبیه‌سازی را افزایش می‌دهد تا نرخ تازه‌سازی شبیه‌ساز با میزبان مطابقت داشته باشد. این منجر به نرم‌ترین انیمیشن‌های ممکن می‌شود، به قیمت افزایش بالقوه سرعت شبیه‌سازی کمتر از ١%. در صورتی که نرخ تازه سازی کنسول بیش از حد از نرخ تازه سازی میزبان فاصله داشته باشد، گزینه «مقیاس به نرخ تازه سازی میزبان» اعمال نمی شود. کاربرانی که نمایشگرهای نرخ نوسازی متغیر دارند باید این گزینه را غیرفعال کنند. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" سزعت جلو بردن + + + 100% + ۱۰۰٪ + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3612,7 +3947,7 @@ Achievements: %5 (%6) Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + به طور کلی سرعت را در پردازنده هایی با ۴ هسته یا بیشتر را افزایش می دهد. برای اکثر بازی‌ها ایمن است، اما تعداد کمی از آنها ناسازگار هستند و ممکن است هنگ بکنند. @@ -3635,45 +3970,40 @@ Achievements: %5 (%6) حداکثر تعداد فریم‌هایی را که می‌توان در صف GS قرار داد را تنظیم می‌کند، قبل از اینکه رشته های پردازنده قبل از ادامه منتظر بماند تا یکی از آنها کارش تکمیل شود. مقادیر بالاتر می تواند به نرم کردن زمان های فریم نامنظم کمک کند، اما تاخیر ورودی اضافی پیش می آید. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - وقتی تنظیمات VSync و نمونه گیری مجدد صوتی فعال هستند، سرعت شبیه‌سازی را طوری تنظیم می‌کند که نرخ تازه‌سازی کنسول با نرخ تازه‌سازی سیستم مطابقت داشته باشد. این منجر به درست شدن تمیزترین انیمیشن‌های ممکن می‌شود و باعث می شود سرعت شبیه سازی کمتر از ١% بالا برود. اگر نرخ تازه‌سازی کنسول بیش از حد از نرخ تازه‌سازی سیستم فاصله داشته باشد، گزینه تطابق با نرخ تازه سازی سیستم اعمال نمی‌شود. اگر مانیتوری دارید که نرخ تازه سازی متغیر دارد باید این گزینه را غیرفعال کنید. - - - + Use Global Setting [%1%] استفاده از تنظیمات عمومی [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 فریم در ثانیه در NTSC و یا %3 فریم‌درثانیه در PAL] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. نامحدود - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. سفارشی - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] دلخواه [سرعت شبیه‌سازی %1%، %2 فریم در ثانیه در NTSC و یا %3 فریم‌درثانیه در PAL] - + Custom Speed سرعت دلخواه - + Enter Custom Speed سرعت دلخواه مورد نظر را وارد کنید @@ -3681,79 +4011,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory پوشه حافظه پنهان - - - - - + + + + + Browse... مسیر... - - - - - + + + + + Open... باز کردن... - - - - - + + + + + Reset بازنشانی - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3761,2082 +4091,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. هیچ دستگاه درایو سی دی یا دی وی دی پیدا نشد. لطفاً مطمئن شوید که یک درایو متصل و مجوزهای کافی برای دسترسی به آن را دارد. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... ایجاد... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. آیا شما مطمئن هستید که میخواید به تنظیمات پیش فرض برگردید؟ تمامی تغییرات ایجاد شده از بین می رود. - + Settings reset to defaults. - Settings reset to defaults. + تنظیمات به حالت پیش‌فرض بازنشانی شد. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. - This game has no achievements. + این بازی دستاوردی ندارد. - + This game has no leaderboards. This game has no leaderboards. - + Reset System بازنشانی سیستم - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. - Exits the program. + از برنامه خارج می شود. - + No Binding بدون اتصال - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown ناشناخته - + OK تأیید - + Select Device - Select Device + دستگاه را انتخاب کنید - + Details جزئیات - + Options گزینه‌ها - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour عملکرد - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. هنگامی که پنجره را مینیمایز می‌کنید یا برنامه دیگری را استفاده می‌کنید، شبیه‌ساز موقتاً متوقف می‌کند و وقتی که به شبیه‌ساز برمیگردید، شبیه‌ساز شروع به کار می‌کند. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. تعیین می کند که آیا هنگام فشار دادن کلید میانبر، درخواستی برای تأیید خاموش شدن ماشین مجازی یا بازی نمایش داده می شود. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. به طور خودکار وضعیت شبیه‌ساز را هنگام خاموش کردن یا خارج شدن ذخیره می کند. سپس می‌توانید دفعه بعد مستقیماً از جایی که بازی را ترک کردید، ادامه بدهید. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display نمایش بازی - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. هنگامی که رویدادهایی مانند ایجاد یا بارگیری حالت های ذخیره شده، گرفتن اسکرین شات و غیره رخ می دهد، پیام هایی را روی صفحه نمایش را نشان می دهد. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - Shows the current emulation speed of the system in the top-right corner of the display as a percentage. + سرعت شبیه سازی فعلی سیستم را در گوشه سمت راست بالای صفحه نمایش به صورت درصد نشان می دهد. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. تعداد فریم های ویدیویی (یا v-sync) نمایش داده شده در هر ثانیه توسط سیستم در گوشه سمت راست بالای صفحه نمایش را نشان می دهد. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic خودکار - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + پیش‌فرض + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + وقتی فعال باشد، تنظیمات سفارشی برای هر بازی اعمال خواهد شد. غیرفعال کنید تا همیشه از تنظیمات عمومی استفاده کنید. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration - BIOS Configuration + تنظیمات بایوس - + BIOS Selection - BIOS Selection + انتخاب BIOS - + Options and Patches - Options and Patches + تنظیمات و پچ ها - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control - Speed Control + کنترل سرعت - + Normal Speed سرعت معمولی - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed - Fast Forward Speed + سزعت جلو بردن - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed - Slow Motion Speed + سرعت حرکت آهسته - + Sets the speed when using the slow motion hotkey. - Sets the speed when using the slow motion hotkey. + سرعت حرکت آهسته را تنظیم می کند موقعی که کلید میانبر حرکت آهسته فشار داده می شود. - + Enable Speed Limiter - Enable Speed Limiter + فعال کردن محدود کننده سرعت - + When disabled, the game will run as fast as possible. - When disabled, the game will run as fast as possible. + وقتی که غیر فعال باشد، بازی با حداکثر سرعت ممکن اجرا می شود. - + System Settings - System Settings + تنظیمات سیستم - + EE Cycle Rate - EE Cycle Rate + نرخ چرخه EE - + Underclocks or overclocks the emulated Emotion Engine CPU. - Underclocks or overclocks the emulated Emotion Engine CPU. + آندکلاک یا اورکلاک پردازنده شبیه سازی شده Emotion Engine را انجام می دهد. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 - Enable Instant VU1 - - - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. + فعال کردن VU1 فوری - + Enable Cheats - Enable Cheats + فعال کردن تقلب ها - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD - Enable Fast CDVD + فعال کردن سی دی و دی وی دی سریع - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate + رشته های EE و GS را بعد از هر فریم همگام سازی کنید. کمترین تأخیر ورودی را دارد، اما نیازمند مشخصات بالاتری است. - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer رندر کننده - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display صفحه نمایش - + Aspect Ratio نسبت تصویر - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size اندازه اسکرین‌شات - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format فرمت اسکرین‌شات - + Selects the format which will be used to save screenshots. - Selects the format which will be used to save screenshots. + فرمتی را انتخاب می کند که برای ذخیره اسکرین شات استفاده می شود. - + Screenshot Quality - Screenshot Quality + کیفیت اسکرین‌شات - + Selects the quality at which screenshots will be compressed. - Selects the quality at which screenshots will be compressed. + کیفیت فشرده سازی اسکرین شات ها را انتخاب می کند. - + Vertical Stretch - Vertical Stretch + کشش عمودی - + Increases or decreases the virtual picture size vertically. - Increases or decreases the virtual picture size vertically. + اندازه تصویر مجازی را به صورت عمودی افزایش یا کاهش می دهد. - + Crop بریدن - + Crops the image, while respecting aspect ratio. - Crops the image, while respecting aspect ratio. + تصویر را برش می دهد، در حالی که نسبت تصویر را رعایت می کند. - + + %dpx + %dپیکسل + + + Enable Widescreen Patches - Enable Widescreen Patches + فعال کردن پچ های صفحه عریض (وایداسکرین) - + Enables loading widescreen patches from pnach files. - Enables loading widescreen patches from pnach files. + بارگیری پچ های صفحه عریض (وایداسکرین) را از فایل های Pnach فعال می کند. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. برای اطمینان از اینکه نسبت بین پیکسل های سیستم اصلی به پیکسل های کنسول یک عدد صحیح باشد، به ناحیه های نمایش پدینگ اضافه می کند. ممکن است در برخی از بازی‌های دوبعدی تصویر واضح‌تری ایجاد کند. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan - Show Overscan + نمایش ناحیه خارج از صفحه نمایش - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. - Enables the option to show the overscan area on games which draw more than the safe area of the screen. + گزینه نمایش «ناحیه خارج از صفحه نمایش» را در بازی هایی که بیشتر از ناحیه امن صفحه نمایش ترسیم می کنند، فعال می کند. - + Anti-Blur ضد تاری - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. + هک های داخلی ضد تاری را فعال می کند. دقت کمتری نسبت به رندر پلی‌استیشن ۲ دارد اما باعث می شود بسیاری از بازی ها کمتر تار به نظر برسند. - + Rendering - درحال رندر + رندرینگ - + Internal Resolution - Internal Resolution + رزولوشن داخلی - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping میپ‌مپینگ - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering دیترینگ - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - Determines the level of accuracy when emulating blend modes not supported by the host graphics API. + سطح دقت را هنگام شبیه‌سازی حالت‌های ترکیبی که توسط API گرافیک میزبان پشتیبانی نمی‌شوند را تعیین می‌کند. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. در هنگام استفاده، به جای مناطق مورد استفاده، بافت‌های کامل را در GPU آپلود می‌کند. می تواند عملکرد را در برخی از بازی ها بهبود بخشد. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. - Removes texture cache entries when there is any intersection, rather than only the intersected areas. + ورودی‌های کش بافت را در صورت وجود هر تقاطعی، به جای مناطق متقاطع، حذف می‌کند. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite گرد کردن اسپرایت - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite تراز کردن اسپرایت - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite ادغام کردن اسپرایت - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. + دقت GS را برای جلوگیری از شکاف بین پیکسل ها هنگام ارتقاء رزولوشن کاهش می دهد. متن بازی‌های Wild Arms را درست می‌کند. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures - Load Textures + بارگذاری بافت ها - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + بافت های جایگزین را بر روی یک رشته عملکردی بار می کند و در صورت فعال بودن جایگزینی، لگ های ریز را کاهش می دهد. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders پوشه ها - + Texture Dumping Texture Dumping - + Dump Textures - Dump Textures - - - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. + ذخیرهٔ بافت ها - + Dump Mipmaps ذخیره کردن بافت های میپ‌مپ - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing - Post-Processing + پس پردازش - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness - CAS Sharpness + تیزی CAS - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters فیلتر ها - + Shade Boost - Shade Boost + تقویت شیدر - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders شیدرهای تلویزیون - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced پیشرفته - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - از نمایش فریم هایی که در بازی های ۲۵ یا ۳۰ فریم بر ثانیه تغییر نمی کنند، صرفنظر می کند. می تواند سرعت را بهبود ببخشد، اما تاخیر ورودی را افزایش می دهد یا سرعت فریم را بدتر می کند. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - فریم ها را به جای رشته GS، روی یک رشته کارگر ارائه می دهد. می‌تواند زمان‌های فریم را در برخی از سیستم‌ها، به قیمت سرعت‌دهی بالقوه بدتر فریم، بهبود بخشد. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings - Runtime Settings + تنظیمات ران‌تایم (Runtime) - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings - Mixing Settings + تنظیمات میکسینگ - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings - Output Settings + تنظیمات خروجی - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d میلی‌ثانیه (میانگین) + + + Timestretch Settings - Timestretch Settings + تنظیمات Timestretch - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ميلي‌ثانيه + + + Settings and Operations - Settings and Operations + تنظیمات و عملیات ها - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card - Create Memory Card + درست کردن مموری کارت - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. نام مموری کارتی را که می خواهید ایجاد کنید، وارد کنید و اندازه آن را انتخاب کنید. توصیه می‌کنیم از مموری کارت های ۸ مگابایتی یا مموری کارت های پوشه ای برای بهترین سازگاری استفاده کنید. - + Card Name: - Card Name: + نام کارت: - + Configuration - Configuration + تنظیمات - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources - Input Sources + منبع ورودی ها - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap - Multitap + مولتی‌تپ - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings - Show Advanced Settings + نمایش تنظیمات پیشرفته - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. تغییر این تنظیمات ممکن است باعث شود بازی ها غیرقابل پخش شوند. با مسئولیت خود تغییر دهید، تیم PCSX2 از تنظیمات با تغییر این تنظیمات پشتیبانی نمی کند. - + Logging - Logging + ایجاد تاریخچه - + System Console - System Console + کنسول سیستم - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging لاگ کردن فایل - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE کنسول - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine - Emotion Engine + ایموشن انجین (Emotion Engine) - + Rounding Mode - Rounding Mode + حالت گرد کردن - + Determines how the results of floating-point operations are rounded. Some games need specific settings. - Determines how the results of floating-point operations are rounded. Some games need specific settings. + نحوه گرد شدن نتایج عملیات ممیز شناور (floating-point) را مشخص می کند. برخی از بازی ها نیاز به تنظیمات مشخصی دارند. - + Clamping Mode - Clamping Mode + حالت محدود کردن - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. ترجمه باینری به‌موقع کد ماشین MIPS-IV ۶۴ بیتی را به کد بومی انجام می‌دهد. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor - I/O Processor + پردازنده ورودی و خروجی - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. ترجمه باینری به‌موقع کد ماشین MIPS-I ۳۲ بیتی را به کد بومی انجام می‌دهد. - + Graphics گرافیک - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings تنظیمات - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes - Cheat Codes + کد های تقلب - + No patches are available for this game. No patches are available for this game. - + Game Patches پچ های بازی - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. + فعال کردن پچ های بازی می‌تواند باعث رفتار غیرقابل پیش‌بینی، خرابی، قفل های نرم افزاری یا خرابی بازی‌های ذخیره شده شود. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. + از پچ ها با مسئولیت خود استفاده کنید، تیم PCSX2 هیچ پشتیبانی برای کاربرانی که پچ های بازی را فعال کرده‌اند ارائه نمی‌کند. - + Game Fixes پچ های بازی - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. اصلاحات بازی نباید اصلاح شود مگر اینکه از عملکرد هر گزینه و پیامدهای آن آگاه باشید. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - شناخته شده است که بر روی بازی های زیر تأثیر می گذارد: Digital Devil Saga (رفع FMV و خرابی ها)، SSX (رفع مشکلات گرافیکی و خرابی ها). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + VU Add Hack + VU Add Hack - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + Full VU0 Synchronization + Full VU0 Synchronization - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - (Fifa Street 2). - (فیفا خیابونی ۲). + + VU Overflow Hack + VU Overflow Hack - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Quadraphonic + کوادروفونیک - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Load State + بارگیری وضعیت ذخیره شده - - VU Add Hack - VU Add Hack + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + چرخه‌های پرش پردازنده EmotionEngine (EE) شبیه‌سازی شده را انجام می‌دهد. به زیر مجموعه کوچکی از بازی هایی مانند Shadow of the Colossus کمک می کند. بیشتر اوقات برای عملکرد شبیه‌ساز مضر است. - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + به طور کلی سرعت را در پردازنده هایی با ۴ هسته یا بیشتر را افزایش می دهد. برای اکثر بازی‌ها ایمن است، اما تعداد کمی از آنها ناسازگار هستند و ممکن است هنگ بکنند. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + VU1 را فوراً اجرا می کند. در اکثر بازی‌ها، سرعت خیلی کم بهبود می‌یابد. برای اکثر بازی ها استفاده از VU1 ایمن است، اما تعداد کمی از بازی ها ممکن است خطاهای گرافیکی داشته باشند. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Full VU0 Synchronization - Full VU0 Synchronization + + Disable Depth Emulation + Disable Depth Emulation - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable Render Fixes + Disable Render Fixes - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Preload Frame Data + Preload Frame Data - - VU Overflow Hack - VU Overflow Hack + + Texture Inside RT + Texture Inside RT - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + هنگامی که پردازنده گرافیکی فعال باشد، بافت های نقشه رنگی را تبدیل می کند، در غیر این صورت پردازنده این کار را انجام می دهد. این یک معامله بین پردازنده گرافیکی و پردازنده است. - - VU XGkick Sync - VU XGkick Sync + + Half Pixel Offset + Half Pixel Offset - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Texture Offset X + Texture Offset X - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset Y + Texture Offset Y - - Quadraphonic - Quadraphonic + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. - - Load State - بارگیری وضعیت ذخیره شده + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + از نمایش فریم هایی که در بازی های ۲۵ یا ۳۰ فریم بر ثانیه تغییر نمی کنند، صرفنظر می کند. می تواند سرعت را بهبود ببخشد، اما تاخیر ورودی را افزایش می دهد یا سرعت فریم را بدتر می کند. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + فریم هایی را به جای رشته عملکردی ازائه دهد، بر روی رشته اصلی GS ارائه می دهد. برای اشکال زدایی مسائل فریم تایم استفاده می شود. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + شناخته شده است که بر روی بازی های زیر تأثیر می گذارد: Bleach Blade Battlers، Growlanser II and III، Wizardry. + + + + Emulate GIF FIFO + GIF FIFO را شبیه سازی کن + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls - + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + پیش خوانی VIF1 FIFO را شبیه سازی میکند. شناخته شده است که بر بازی های زیر تأثیر می گذارد: Test Drive Unlimited، Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + از کامپایل مجدد مداوم در برخی بازی ها جلوگیری می کند. بر روی بازی های زیر تأثیر می گذارد: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + همگام‌سازی VU + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State ذخیرهٔ وضعیت - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5845,2221 +6195,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: ریجن: - + Compatibility: - Compatibility: + سازگاری: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings - List Settings + تنظيمات ليست - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings - Cover Settings + تنظیمات کاور - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations عملیات - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers - Download Covers - - - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 می‌تواند به‌طور خودکار کاور بازی‌هایی را که در حال حاضر عکس کاور ندارند، دانلود کند. ما هیچ تصویر جلدی را در وبسایتمان برای دانلود نمیگذاریم، کاربر باید منبع خود را برای تصاویر ارائه دهد. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - در فرم زیر، نشانی‌های اینترنتی را برای دانلود کاورها با یک لینک یا URL الگو در هر خط مشخص کنید. متغیرهای زیر در دسترس هستند: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: عنوان بازی. -${filetitle}: نام جزء نام فایل بازی. -${serial}: سریال بازی. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names + دانلود کاور ها - + About PCSX2 - About PCSX2 + درباره PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 یک شبیه ساز رایگان و منبع باز پلی استیشن 2 (PS2) است. هدف این برنامه، شبیه سازی سخت افزار پلی استیشن ۲ با استفاده از ترکیبی از کامپایلر یا مترجمان CPU MIPS و مفسیر می باشد و دارای یک ماشین مجازی است که سخت افزار و حافظه سیستم پلی استیشن ۲ را مدیریت می کند. این به شما امکان می دهد که بازی های پلی استیشن ۲ را با بسیاری از ویژگی ها و مزایا بازی کنید. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 و PS2 علائم تجاری ثبت شده شرکت Sony Interactive Entertainment هستند. این برنامه به هیچ وجه به شرکت Sony Interactive Entertainment وابسته نیست. - - XXX points - XXX امتیاز - - - - Unlocked Achievements - دستاورد های فعال شده - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - رتبه - - - - Name - نام - - - - Time - زمان - - - - Score - امتیاز - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. «حالت چالش» برای دستاورد ها، دارای ردیابی جدول امتیازات. ذخیره حالت کنونی بازی، تقلبات و امکانات کند کردن بازی غیر فعال می شود. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. وقتی فعال باشد، PCSX2 دستاوردهای مجموعه‌های غیر رسمی را فهرست می‌کند. این دستاوردها توسط RetroAchievements ردیابی نمی شوند. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. وقتی فعال باشد، PCSX2 فرض می‌کند که تمام دستاوردها قفل شده‌اند و هیچ اعلان باز کردن قفل را به سرور ارسال نمی‌کند. - - Account - Account - - - - Logs out of RetroAchievements. - Logs out of RetroAchievements. - - - - Logs in to RetroAchievements. - Logs in to RetroAchievements. + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - Current Game - Current Game + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. + + Account + حساب کاربری - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. + + Logs out of RetroAchievements. + از RetroAchievements خارج می شود. - - User Name: - User Name: + + Logs in to RetroAchievements. + وارد RetroAchievements می شود. - - Password: - گذرواژه: + + Current Game + بازی فعلی - + {} is not a valid disc image. - {} is not a valid disc image. + {} یک فایل دیسک معتبر نیست. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} - Console Port {} + پورت کنسول {} - + {} (Current) {} (فعلی) - + {} (Folder) - {} (Folder) + {} (پوشه) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} همه زمان: {} - + Save Slot {0} - Save Slot {0} + اسلات ذخیره {0} - + Saved {} {} ذخیره شد - + {} does not exist. - {} does not exist. + {} وجود ندارد. - + {} deleted. - {} deleted. + {} حذف شد. - + Failed to delete {}. Failed to delete {}. - + File: {} فایل: {} - + CRC: {:08X} - CRC: {:08X} + CRC: {:08X} - + Time Played: {} - Time Played: {} + زمان سپری شده در این بازی: {} - + Last Played: {} - Last Played: {} + آخرین دفعه بازی شده: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} امتیاز - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + چپ: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + بالا: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + راست: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + پایین: - + Summary خلاصه - + Interface Settings - Interface Settings + تنظیمات رابط کاربری - + BIOS Settings - BIOS Settings + تنظیمات BIOS - + Emulation Settings - Emulation Settings + تنظیمات شبیه ساز - + Graphics Settings - Graphics Settings + تنظیمات گرافیک - + Audio Settings - Audio Settings + تنظیمات صدا - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings - Folder Settings + تنظیمات پوشه - + Advanced Settings - Advanced Settings + تنظیمات پیشرفته - + Patches پچ ها - + Cheats تقلبات - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed ۵۰% سرعت - + 60% Speed ۶۰% سرعت - + 75% Speed ۷۵% سرعت - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed سرعت ١۳۰% - + 180% Speed سرعت ١۸۰% - + 300% Speed سرعت ٣٠٠% - + Normal (Default) - Normal (Default) + معمولی (پیش‌فرض) - + Mild Underclock - Mild Underclock + آندرکلاک نسبتا متوسط - + Moderate Underclock Moderate Underclock - + Maximum Underclock - Maximum Underclock + آندرکلاک ماکسیموم (حداکثر) - + Disabled غیرفعال - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame ١ فریم - + 2 Frames ۲ فریم - + 3 Frames ۳ فریم - + None هیچ‌کدام - + Extra + Preserve Sign Extra + Preserve Sign - + Full کامل - + Extra اضافات - + Automatic (Default) Automatic (Default) - + Direct3D 11 - Direct3D 11 + Direct3D 11 - + Direct3D 12 - Direct3D 12 + Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal فلزی - + Software نرم‌افزاری - + Null خالی - + Off خاموش - + On روشن - + Adaptive تطبیقی - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) پیش‌فرض (PS2) - + 1.25x Native ۲۵/١ برابر پیش‌فرض - + 1.5x Native ۵/١ برابر پیش‌فرض - + 1.75x Native ۷۵/١ برابر پیش‌فرض - + 2x Native (~720p) ۲ برابر پیش‌فرض (حدود ۷۲۰p) - + 2.25x Native ۲/۲۵ برابر پیش‌فرض - + 2.5x Native ۲/۵ برابر پیش‌فرض - + 2.75x Native ۲/۷۵ برابر پیش‌فرض - + 3x Native (~1080p) ۳ برابر پیش‌فرض (حدود ١۰۸۰p) - + 3.5x Native ۳/۵ برابر پیش‌فرض - + 4x Native (~1440p/2K) ۴ برابر پیش‌فرض (حدود ١۴۴۰p یا ۲K) - + 5x Native (~1620p) ۵ برابر پیش‌فرض (حدود ١۶۲۰p) - + 6x Native (~2160p/4K) ۶ برابر پیش‌فرض (حدود ۲١۶۰p یا ۴K) - + 7x Native (~2520p) ۷ برابر پیش‌فرض (حدود ۲۵۲۰p) - + 8x Native (~2880p) ۸ برابر پیش‌فرض (حدود ۲۸۸۰p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest نزدیک‌ترین - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) - Bilinear (PS2) + دوخطی (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) خاموش (هیچ‌کدام) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled مقیاس یافته - + Unscaled (Default) Unscaled (Default) - + Minimum حداقل - + Basic (Recommended) Basic (Recommended) - + Medium متوسط - + High زیاد - + Full (Slow) کامل (کند) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) - Off (Default) + خاموش (پیش‌فرض) - + 2x ۲ برابر - + 4x ۴ برابر - + 8x ۸ برابر - + 16x ١۶ برابر - + Partial جزئی - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled - Force Disabled + غیرفعال شده اجباری - + Force Enabled - Force Enabled + فعال شده اجباری - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution - Screen Resolution + رزولوشن صفحه + + + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + بوت کامل + + + + Achievement Notifications + Achievement Notifications - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Leaderboard Notifications + Leaderboard Notifications - + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + حالت اِنکور + + + + Spectator Mode + حالت تماشاگر + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) ۰ (غیرفعال) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only فقط اسپرایت - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) ١ (معمولی) - + 2 (Aggressive) - 2 (Aggressive) + ۲ (تهاجمی) - + Inside Target - Inside Target + داخل هدف - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half نصف - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) - Disabled (Default) + غیرفعال (پیش فرض) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) - None (Default) + هیچکدام (پیش‌فرض) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter فیلتر موجی - + Lottes CRT شیدر سی‌آر‌تی لوتِس - + 4xRGSS ۴xRGSS - + NxAGSS NxAGSS - + Uncompressed فشرده سازی نشده - + LZMA (xz) LZMA (xz) - + Zstandard (zst) - Zstandard (zst) + Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) - None (Audio can skip.) + هیچ‌کدام (صدا رد شود.) - + Stereo (None, Default) - Stereo (None, Default) + استریو (هیچ‌کدام، پیش‌فرض) - + Surround 5.1 صدای فراگیر ۵٫۱ - + Surround 7.1 صدای فراگیر ۷٫۱ - + No Sound (Emulate SPU2 only) - No Sound (Emulate SPU2 only) + بدون صدا: (فقط SPU2 را شبیه‌سازی کند) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (۸ مگابایت) - + PS2 (16MB) PS2 (١۶ مگابایت) - + PS2 (32MB) PS2 (۳۲ مگابایت) - + PS2 (64MB) PS2 (۶۴ مگابایت) - + PS1 PS1 - + 8 MB [Most Compatible] - 8 MB [Most Compatible] + ۸ مگابایت [بهترین] - + 16 MB ١۶ مگابایت - + 32 MB ۳۲ مگابایت - + 64 MB ۶۴ مگابایت - + Folder [Recommended] - Folder [Recommended] + پوشه [توصیه شده] - + 128 KB [PS1] ١۲۸ كيلوبايت [PS1] - + + Negative + منفی + + + + Positive + مثبت + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid نماد های بازی - + Game List لیست بازی - + Game List Settings - Game List Settings + تنظيمات ليست بازی - + Type نوع - + Serial سریال - + Title عنوان - + File Title عنوان فایل - + CRC CRC - + Time Played زمان سپری شده در این بازی - + Last Played آخرین دفعه بازی شده - + Size حجم - + Select Disc Image - Select Disc Image + انتخاب فایل دیسک - + Select Disc Drive - Select Disc Drive + انتخاب دیسک درایو - + Start File شروع از فایل - + Start BIOS شروع بایوس - + Start Disc شروع از دیسک - + Exit خروج - + Set Input Binding Set Input Binding - + Region ریجن - + Compatibility Rating Compatibility Rating - + Path مسیر - + Disc Path مسیر دیسک - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings - Copy Settings + کپی کردن تنظیمات - + Clear Settings - Clear Settings + پاک کردن تنظیمات - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale مقیاس متن اطلاعات‌ها - + Show Messages - Show Messages + نمایش پیام‌ها - + Show Speed نمایش سرعت - + Show FPS نمایش نرخ فریم - + Show CPU Usage - Show CPU Usage + نمایش کارکرد پردازنده - + Show GPU Usage - Show GPU Usage + نمایس کارکرد پردازنده گرافیکی - + Show Resolution - Show Resolution + نمایش رزولوشن - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings - Show Settings + نمایش تنظیمات - + Show Inputs نشان دادن ورودی ها - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings - Reset Settings + تنظیم مجدد تنظیمات - + Change Search Directory Change Search Directory - + Fast Boot بوت سریع - + Output Volume - Output Volume + حجم صدای خروجی - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module - Output Module + ماژول خروجی - + Latency تاخیر - + Sequence Length - Sequence Length + میزان توالی - + Seekwindow Size - Seekwindow Size + پیدا کزدن اندازه پنجره - + Overlap همپوشانی - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create ایجاد - + Cancel انصراف - + Load Profile - Load Profile + بارگذاری پروفایل - + Save Profile - Save Profile + ذخیره پروفایل - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input - SDL Raw Input + منبع ورودی خام SDL - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} - Controller Port {}{} + پورت دسته {}{} - + Controller Port {} - Controller Port {} + پورت دسته {} - + Controller Type Controller Type - + Automatic Mapping - Automatic Mapping + پیوند کردن خودکار - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons دکمه‌‌ها - + Frequency فرکانس - + Pressure فشار - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} درگاه USB {} - + Device Type نوع دستگاه - + Device Subtype Device Subtype - + {} Bindings {} پیوند ها - + Clear Bindings - Clear Bindings + پاک کردن پیوند ها - + {} Settings {} تنظیمات - + Cache Directory - Cache Directory + پوشه حافظه پنهان - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game ادامه بازی - + Toggle Frame Limit Toggle Frame Limit - + Game Properties - Game Properties + مشخصات بازی - + Achievements - Achievements + دستاوردها - + Save Screenshot - Save Screenshot + ذخیره اسکرین‌شات - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc تغییر دیسک - + Close Game بستن بازی - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards - Leaderboards + تابلو امتیازات - + Delete Save حذف سیو - + Close Menu بستن منو - - Clean Boot - بوت تازه - - - + Delete State - Delete State + حذف وضعیت ذخیره شده - + Default Boot - Default Boot - - - - Slow Boot - بوت کند + بوت پیش‌فرض - + Reset Play Time - Reset Play Time + بازنشانی زمان سپری شده در این بازی - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List - Remove From List + حذف از لیست - + Default View - Default View + نمای پیش‌فرض - + Sort By ترتیب بر اساس - + Sort Reversed - Sort Reversed + ترتيب به صورت معكوس - + Scan For New Games - Scan For New Games + اسکن برای بازی های جدید - + Rescan All Games - Rescan All Games - - - - Start Download - Start Download + اسکن دوباره تمام بازی ها - + Website وبسایت - + Support Forums - Support Forums + انجمن های پشتیبانی - + GitHub Repository - GitHub Repository + منبع GitHub - + License مجوز ها - + Close بستن - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode - Hardcore Mode + حالت هاردکور - - Show Notifications - Show Notifications - - - + Sound Effects - Sound Effects - - - - Show Challenge Indicators - Show Challenge Indicators + جلوه های صوتی - + Test Unofficial Achievements - Test Unofficial Achievements - - - - Test Mode - حالت آزمایشی + امتحان کردن دستاوردهای غیر رسمی - + Username: {} نام کاربری: {} - + Login token generated on {} Login token generated on {} - + Logout - خروج از سیستم - - - - Not Logged In - Not Logged In - - - - Login - ورود به سیستم - - - - Achievements are disabled. - Achievements are disabled. + خروج از سیستم - - Game ID: {} - آی‌دی بازی: {} + + Not Logged In + وارد نشده اید - - Game Title: {} - Game Title: {} + + Login + ورود به سیستم - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + بازی: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled - Card Enabled + کارت فعال شده - + Card Name نام کارت - + Eject Card خارج کردن کارت @@ -8072,9 +8323,9 @@ ${serial}: سریال بازی. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. - Upscale multiplier set to {}x. + ضریب ارتقاء رزولوشن بر روی {} برابر تنظیم شده است. @@ -8127,14 +8378,14 @@ ${serial}: سریال بازی. غیرفعال کردن میپ‌مپ های تولید شده خودکار در یک یا چند بافت جایگزین فشرده. لطفاً هنگام فشرده سازی بافت های خود، میپ‌مپ ها را ایجاد کنید. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. - Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. + چرخش پردازنده گرافیکی در حین بازخوانی‌ها فعال است، اما مهرهای زمانی کالیبره‌شده در دسترس نیستند. این ممکن است خیلی کند باشد. @@ -8188,7 +8439,7 @@ ${serial}: سریال بازی. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8199,266 +8450,408 @@ graphical quality, but this will increase system requirements. که باعث بهتر شدن کیفیت گرافیکی، اما این قدرت مورد نیاز برای اجرا را افزایش می دهد. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) اصلاحات و پچ های بازی (توصیه نمی شود برای تغییر در کل برنامه) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + همگام‌سازی VU - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + فعال نشده + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + برای بازی های گان‌دم (Gundam). + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + پیش خوانی VIF1 FIFO را شبیه سازی میکند. شناخته شده است که بر بازی های زیر تأثیر می گذارد: Test Drive Unlimited، Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + از کامپایل مجدد مداوم در برخی بازی ها جلوگیری می کند. بر روی بازی های زیر تأثیر می گذارد: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never هرگز - + Today امروز - + Yesterday دیروز - + {}h {}m {}س {}د - + {}h {}m {}s {}س {}د {}ث - + {}m {}s {}د {}ث - + {}s {}ث - + {} hours {} ساعت - + {} minutes {} دقیقه + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type نوع - + Code کد - + Title عنوان - + File Title عنوان فایل - + CRC CRC - + Time Played زمان سپری شده در این بازی - + Last Played آخرین دفعه بازی شده - + Size حجم - + Region ریجن - + Compatibility سازگاری @@ -8466,74 +8859,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... افزودن... - - - + + + Remove حذف - + Search Directory - Search Directory + پوشه مورد جستجو - + Scan Recursively زیرمجموعه‌ای اسکن کند - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... پوشه... - + File... فایل... - + Scan For New Games - Scan For New Games + اسکن برای بازی های جدید - + Rescan All Games اسکن دوباره تمام بازی ها - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... - Open Directory... + باز کردن پوشه... - + Select Search Directory Select Search Directory - + Scan Recursively? زیرمجموعه‌ای اسکن کند؟ - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8542,45 +8961,45 @@ Scanning recursively takes more time, but will identify files in subdirectories. اسکن کرد به طور زیرمجموعه ای وقت بیشتری می برد، ولی فایل های داخل پوشه های دیگر هم اسکن و شناسایی می کند. - + Select File انتخاب فایل - + Select Directory - Select Directory + انتخاب پوشه GameListWidget - + Game List جدول بازی - + Game Grid نماد های بازی - + Show Titles نمایش عنوان‌ها - + All Types همه انواع - + All Regions تمامی ریجن ها - + Search... جستجو... @@ -8606,17 +9025,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">نویسنده پچ: </span>برنامه‌نویس پچ</p><p>توضیحات اینجا می‌رود</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown ناشناخته - + No description provided. توضیحی ارائه نشده است. @@ -8634,7 +9053,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8653,399 +9072,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore بازیابی + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: مسیر: - + Serial: سریال: - + CRC: CRC: - + Type: نوع: - + PS2 Disc دیسک PS2 - + PS1 Disc دیسک PS1 - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: ریجن: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (برزیل) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (چین) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (هنگ کنگ) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (ژاپن) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (کره) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (تایوان) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (آمریکا) - + Other دیگر - + PAL-A (Australia) Leave the code as-is, translate the country's name. - PAL-A (Australia) + PAL-A (استرالیا) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (آفریقا جنوبی) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (اتریش) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (بلژیک) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (اروپا/استرالیا) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (فرانسه) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (فلاند) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (آلمان) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (یونان) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (ایتالیا) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (هند) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (اروپا/استرالیا) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (هلند) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (نروژ) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (پرتغال) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (لهستان) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (روسیه) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (اسپانیا) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (اسکاندیناوی) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (سوئد) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (سوییس) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (انگلستان) - + Compatibility: سازگاری: - + Unknown ناشناخته - + Not Bootable غیرقابل بوت - + Reaches Intro Reaches Intro - + Reaches Menu به منو می رسد - + In-Game داخل بازی - + Playable قابل پخش - + Perfect عالی - + Input Profile: پروفايل ورودی: - + Shared Refers to the shared settings profile. مشترک - + Disc Path: مسیر دیسک: - + Browse... مسیر... - + Clear پاک کردن - + Verify بررسی - + Search on Redump.org... Search on Redump.org... - + Select Disc Path انتخاب مسیر دیسک - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode حالت - - + + Start شروع - - + + Sectors سکتورها - - + + Size حجم - - + + MD5 MD۵ - - + + Status وضعیت - - - - - - + + + + + + %1 %1 - - + + <not computed> - <not computed> + <محاسبه نشده> - + Error خطا - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9053,62 +9483,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: رندر کننده: - + Adapter: کارت گرافیک: - + Display صفحه نمایش - + Fullscreen Mode: - Fullscreen Mode: + حالت تمام‌صفحه: - + Aspect Ratio: نسبت تصویر: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) استاندارد (۴:۳) - - + + Widescreen (16:9) - Widescreen (16:9) + صفحه عریض (۱۶ در ۹) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9118,12 +9548,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. خاموش (پیش‌فرض) - - - - - - + + + + + + @@ -9134,92 +9564,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None هیچ‌کدام - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9227,355 +9657,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: بریدن: - + Left: Warning: short space constraints. Abbreviate if necessary. چپ: - - - - + + + + px پیکسل - + Top: Warning: short space constraints. Abbreviate if necessary. بالا: - + Right: Warning: short space constraints. Abbreviate if necessary. راست: - + Bottom: Warning: short space constraints. Abbreviate if necessary. پایین: - + Screen Offsets Screen Offsets - + VSync همگام‌سازی عمودی یا V-Sync - + Show Overscan - Show Overscan + نمایش ناحیه خارج از صفحه نمایش - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur ضد تاری - + Ctrl+S Ctrl + S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: - Screenshot Size: + اندازه اسکرین‌شات: - + Screen Resolution - Screen Resolution + رزولوشن صفحه - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: کیفیت: - - + + Rendering - درحال رندر + رندرینگ - + Internal Resolution: Internal Resolution: - + Mipmapping: بافت های میپ‌مپینگ: - - + + Off خاموش - + Basic (Generated Mipmaps) معمولی (میپ‌مپ تولید شده) - + Full (PS2 Mipmaps) کامل (میپ‌مپ های PS2) - - + + Texture Filtering: Texture Filtering: - - + + Nearest نزدیک‌ترین - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) دوخطی (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) خاموش (هیچ‌کدام) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: دیترینگ: - + Scaled مقیاس یافته - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum حداقل - + Basic (Recommended) معمولی (توصیه شده) - + Medium متوسط - + High زیاد - + Full (Slow) کامل (کند) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial جزئی - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads رشته های اجرایی - + Mipmapping بافت های میپ‌مپینگ - + Auto Flush فلاش خودکار - + Hardware Fixes Hardware Fixes - + Force Disabled غیرفعال شده اجباری - + Force Enabled - Force Enabled + فعال شده اجباری - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9583,79 +10018,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne ۰ (غیرفعال) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9666,606 +10096,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) ١ (معمولی) - + 2 (Aggressive) ۲ (تهاجمی) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) - Disabled (Default) + غیرفعال (پیش فرض) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: گرد کردن اسپرایت: - + Half نصف - + Full کامل - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite ادغام کردن اسپرایت - + Align Sprite تراز کردن اسپرایت - + Deinterlacing: Deinterlacing: - + Sprites Only فقط اسپرایت - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: فلاش خودکار: - + Enabled (Sprites Only) فعال (فقط اسپرایت) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target داخل هدف - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory - Search Directory + پوشه مورد جستجو - - + + Browse... مسیر... - - + + Open... باز... - - + + Reset بازنشانی - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options گزینه‌ها - + Dump Textures ذخیرهٔ بافت ها - + Dump Mipmaps ذخیره کردن بافت های میپ‌مپ - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures - Load Textures + بارگذاری بافت ها - + Precache Textures Precache Textures - + Post-Processing پس پردازش - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) هیچکدام (پیش‌فرض) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: تیزی: - + FXAA FXAA - + Filters فیلتر ها - + TV Shader: شیدر تلویزیون: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter فیلتر موجی - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. شیدر سی‌آر‌تی لوتِس - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost تقویت شیدر - + Brightness: روشنایی: - + Contrast: کنتراست: - Saturation اشباع رنگ - + OSD تنظیمات اطلاعات شبیه سازی بر روی صفحه - + On-Screen Display On-Screen Display - + OSD Scale: مقیاس متن اطلاعات‌ها: - + Show Indicators Show Indicators - + Show Resolution نمایش رزولوشن - + Show Inputs نشان دادن ورودی ها - + Show GPU Usage نمایس کارکرد پردازنده گرافیکی - + Show Settings نمایش تنظیمات - + Show FPS نمایش نرخ فریم - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics نشان دادن امارها - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + اشباع رنگ: + + + Show CPU Usage نمایش کارکرد پردازنده - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording - در حال ضبط + ضبط - + Video Dumping Directory Video Dumping Directory - + Capture Setup تنظیمات ضبط - + Container: فرمت: - - + + Codec: کدک: - - + + Extra Arguments Extra Arguments - + Capture Audio ضبط صدا - + Resolution: رزولوشن: - + x x - + Auto خودکار - + Capture Video ضبط ویدئو - + Advanced Advanced here refers to the advanced graphics options. تنظیمات پیشرفته - + Advanced Options - Advanced Options + تنظیمات پیشرفته - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) دقیق (توصیه شده) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed فشرده سازی نشده - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10275,69 +10715,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: نرخ بیت‌ریت: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. كيلوبايت - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed اجازه داده نشده - + Allowed مجاز - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages - Show Speed Percentages + نمایش درصد سرعت - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10406,8 +10840,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] استفاده از تنظیمات عمومی [%1] @@ -10459,6 +10893,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked فعال نشده @@ -10496,7 +10931,7 @@ Swap chain: see Microsoft's Terminology Portal. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - Enables the option to show the overscan area on games which draw more than the safe area of the screen. + گزینه نمایش «ناحیه خارج از صفحه نمایش» را در بازی هایی که بیشتر از ناحیه قابل نمایش در صفحه نمایش ترسیم می کنند را فعال می کند. @@ -10518,11 +10953,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. سطح دقت شبیه‌سازی واحد ترکیب GS را کنترل کنید.<br> هر چه تنظیم بالاتر باشد، ترکیب بافت بیشتری در سایه‌زن شبیه‌سازی می‌شود و کاهش سرعت بالاتر خواهد بود.<br> توجه داشته باشید که ترکیب کننده Direct3D سازگاری کمتری نسبت به OpenGL و یا Vulkan دارد. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + پشتیبانی از بافرهای عمق را در کش بافت غیرفعال کنید. این می تواند به افزایش سرعت کمک کند، اما احتمالاً اشکالات مختلفی را ایجاد می کند. + This option disables game-specific render fixes. @@ -10572,7 +11017,62 @@ Swap chain: see Microsoft's Terminology Portal. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. - Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + مشکلات افزایش رزولوشن (خطوط عمودی) در بازی های Namco مانند Ace Combat، Tekken، Soul Calibur و غیره را برطرف می کند. + + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + بافت های جایگزین را بر روی یک رشته عملکردی بار می کند و در صورت فعال بودن جایگزینی، لگ های ریز را کاهش می دهد. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. @@ -10582,18 +11082,13 @@ Swap chain: see Microsoft's Terminology Portal. Shows OSD icon indicators for emulation states such as Pausing, Turbo, Fast-Forward, and Slow-Motion. - Shows OSD icon indicators for emulation states such as Pausing, Turbo, Fast-Forward, and Slow-Motion. + نشانگرهای نماد های «اطلاعات شبیه سازی بر روی صفحه» را برای حالت های شبیه سازی مانند توقف، توربو، سریع به جلو و حرکت آهسته نشان می دهد. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10623,7 +11118,7 @@ Swap chain: see Microsoft's Terminology Portal. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. + هک های داخلی ضد تاری را فعال می کند. دقت کمتری نسبت به رندر پلی‌استیشن ۲ دارد اما باعث می شود بسیاری از بازی ها کمتر تار به نظر برسند. @@ -10631,7 +11126,7 @@ Swap chain: see Microsoft's Terminology Portal. این گزینه را فعال کنید تا نرخ تازه سازی PCSX2 را با مانیتور یا صفحه نمایش فعلی شما مطابقت داشته باشد. VSync امکان‌پذیر نباشد و به طور خودکار غیرفعال می شود (مثلاً با سرعت غیر 100٪ اجرا می شود). - + Integer Scaling Integer Scaling @@ -10679,7 +11174,7 @@ Swap chain: see Microsoft's Terminology Portal. Selects the format which will be used to save screenshots. JPEG produces smaller files, but loses detail. - Selects the format which will be used to save screenshots. JPEG produces smaller files, but loses detail. + فرمتی را انتخاب می کند که برای ذخیره اسکرین شات استفاده می شود. فرمت JPEG فایل های کوچکتری تولید می کند، اما جزئیات داخل اسکرین شات از دست می رود. @@ -10720,8 +11215,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10846,7 +11341,7 @@ Swap chain: see Microsoft's Terminology Portal. When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + هنگامی که پردازنده گرافیکی فعال باشد، بافت های نقشه رنگی را تبدیل می کند، در غیر این صورت پردازنده این کار را انجام می دهد. این یک معامله بین پردازنده گرافیکی و پردازنده است. @@ -10863,11 +11358,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. کارهای بیهوده را در حین بازخوانی به پردازنده گرافیکی ارسال می کند تا از رفتن آن به حالت های ذخیره انرژی جلوگیری کند. ممکن است عملکرد را بهبود بخشد اما با افزایش قابل توجهی در مصرف برق ممکن است داشته باشد. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10918,11 +11408,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - پشتیبانی از بافر عمق را در کش بافت غیرفعال می کند. این می تواند به افزایش سرعت کمک کند اما احتمالاً اشکالات مختلفی ایجاد می کند. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -10969,7 +11454,7 @@ Swap chain: see Microsoft's Terminology Portal. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Wild Arms: name of a game series. Leave as-is or use an official translation. - Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. + دقت GS را برای جلوگیری از شکاف بین پیکسل ها هنگام ارتقاء رزولوشن کاهش می دهد. متن در بازی‌های Wild Arms را درست می کند. @@ -10984,7 +11469,7 @@ Swap chain: see Microsoft's Terminology Portal. Replaces post-processing multiple paving sprites by a single fat sprite. It reduces various upscaling lines. - Replaces post-processing multiple paving sprites by a single fat sprite. It reduces various upscaling lines. + اسپرايت هاي متعدد با حالت سنگفرشي را با یک اسپرایت بزرگ جایگزین می کند. خطوط مختلف افزایش مقیاس را کاهش می دهد. @@ -11040,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. مقیاس متن اطلاعات‌ها - + Show OSD Messages Show OSD Messages @@ -11058,7 +11543,7 @@ Swap chain: see Microsoft's Terminology Portal. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - Shows the current emulation speed of the system in the top-right corner of the display as a percentage. + سرعت شبیه سازی فعلی سیستم را در گوشه سمت راست بالای صفحه نمایش به صورت درصد نشان می دهد. @@ -11080,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11093,7 +11583,7 @@ Swap chain: see Microsoft's Terminology Portal. Leave It Blank - Leave It Blank + خالی بگذارید @@ -11133,29 +11623,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate دقت - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. از همگام سازی با رشته GS و GPU سیستم برای دانلودهای GS صرفنظر می کند. می تواند منجر به افزایش سرعت زیاد در سیستم های کندتر شود و باعث خرابی بسیاری از جلوه های گرافیکی شود. اگر بازی ها نادرست اجرا میشوند و این گزینه را فعال کرده اید، لطفاً ابتدا آن را غیرفعال کنید. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. پیش‌فرض - - + + (Default) (پیش‌فرض) @@ -11163,405 +11663,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics گرافیک - + Save Screenshot ذخیره اسکرین‌شات - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping چرخه میپ‌مپینگ سخت افزاری - + Hardware mipmapping set to '{}'. میپ‌مپینگ سخت‌افزار بر روی «{}» تنظیم شده است. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted درجه صدا: بی ضدا - + Volume: {}% درجه صدا: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System سیستم - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause فعال کردن مکث کردن - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume افزایش میزان صدا - + Decrease Volume کاهش میزان صدا - + Toggle Mute حالت بی‌صدا - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine - Reset Virtual Machine + بازنشانی ماشین مجازی - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States ذخیرهٔ وضعیت ها - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11719,6 +12219,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + آنالوگ چپ + + + + Right Analog + آنالوگ راست + + + + Cross + ضرب در + + + + Square + مربع + + + + Triangle + مثلث + + + + Circle + دایره + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + دی-پد پایین + + + + D-Pad Right️ + دی-پد راست️ + + + + D-Pad Up️ + دی-پد بالا️ + + + + D-Pad Left️ + دی-پد چپ️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + انتخاب + + + + Start + شروع + Input Recording Files (*.p2m2) @@ -11746,137 +12336,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour عملکرد - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown ذخیره وضعیت موقع خاموش کردن - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence فعال کردن همسان سازی با برنامه دیسکورد - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display نمایش بازی - + Start Fullscreen شروع در حالت تمام صفحه - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences ترجیحات رابط کاربری - + Language: زبان: - + Theme: تم: - + Automatic Updater - Automatic Updater + به‌روزرسان خودکار - + Update Channel: Update Channel: - + Current Version: - Current Version: + نسخه فعلی: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -11996,7 +12586,7 @@ Right click to clear binding When enabled, custom per-game settings will be applied. Disable to always use the global configuration. - When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + وقتی فعال باشد، تنظیمات سفارشی برای هر بازی اعمال خواهد شد. برای استفاده از تنظیمات عمومی، آن را غیرفعال کنید. @@ -12069,9 +12659,9 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] - System Language [Default] + زبان سیستم [پیش‌فرض] @@ -12099,7 +12689,7 @@ Right click to clear binding Preferences... - Preferences... + ترجیحات رابط کاربری... @@ -12126,14 +12716,14 @@ Right click to clear binding - - + + Change Disc تغییر دیسک - + Load State بارگیری وضعیت ذخیره شده @@ -12210,7 +12800,7 @@ Right click to clear binding &Rescan All Games - &Rescan All Games + &اسکن دوباره تمام بازی ها @@ -12300,7 +12890,7 @@ Right click to clear binding Check for &Updates... - Check for &Updates... + بررسي برای &بروزرسانی‌ها... @@ -12362,7 +12952,7 @@ Right click to clear binding From Game List... - From Game List... + از لیست بازی... @@ -12494,7 +13084,7 @@ Right click to clear binding Game &Properties - Game &Properties + مشخصات& بازی @@ -12559,7 +13149,7 @@ Right click to clear binding Enable System Console - Enable System Console + فعال کردن کنسول سیستم @@ -12638,13 +13228,13 @@ Right click to clear binding - + Start Big Picture Mode شروع حالت تصویر بزرگ - + Big Picture In Toolbar تصویر بزرگ @@ -12656,7 +13246,7 @@ Right click to clear binding - + Show Advanced Settings نمایش تنظیمات پیشرفته @@ -12667,7 +13257,7 @@ Right click to clear binding - + Video Capture ضبط ویدئو @@ -12682,27 +13272,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale مقیاس %1x - + Select location to save block dump: Select location to save block dump: - + Do not show again - Do not show again + دوباره نشان داده نشود - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12715,168 +13305,173 @@ Are you sure you want to continue? آیا مطمئن هستید که میخواهید ادامه دهید؟ - + %1 Files (*.%2) %1 فایل (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error خطا - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... مشخصات... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... تنطیم تصویر کاور... - + Exclude From List Exclude From List - + Reset Play Time بازنشانی زمان سپری شده در این بازی - + Default Boot بوت پیش‌فرض - + Fast Boot بوت سریع - + Full Boot بوت کامل - + Boot and Debug بوت و اشکال زدایی - + Add Search Directory... Add Search Directory... - + Start File شروع از فایل - + Start Disc شروع از دیسک - + Select Disc Image Select Disc Image - + Updater Error خطا در برنامه بروزرسان - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>با عرض پوزش، شما در حال به روز رسانی نسخه PCSX2 هستید که نسخه رسمی GitHub نیست. برای جلوگیری از ناسازگاری‌ها، به‌روزرسانی خودکار فقط در نسخه‌های رسمی فعال است.</p><p>برای دریافت نسخه رسمی، لطفاً از لینک زیر دانلود کنید:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation - Confirm File Creation + تایید ایجاد فایل - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused مکث شد - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? ELF جدید بدون تنظیم مجدد ماشین مجازی قابل بارگیری نیست. آیا اکنون می خواهید ماشین مجازی را ریست کنید؟ - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12891,97 +13486,97 @@ Are you sure you want to continue? تمامی فرمت ها: (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;فایل خام تک تراک (*.bin *.iso);;فایل نشانه‌گذاری دیسک (*.cue);;فایل توضیح دهنده زسانه ای(*.mdf);;فایل MAME CHD (*.chd);;فایل CSO (*.cso);;فایل GZ (*.gz);;داده های استخراجی بلوکی (*.dump) - + Stop Big Picture Mode - Stop Big Picture Mode + توقف حالت تصویر بزرگ - + Exit Big Picture In Toolbar - Exit Big Picture + خروج از تصویر بزرگ - + Game Properties مشخصات بازی - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. هیچ درایو سی‌دی یا دی‌وی‌دی پیدا نشد. لطفاً مطمئن شوید که یک درایو متصل و مجوزهای کافی برای دسترسی به آن دارید. - + Select disc drive: انتخاب درایو سی‌دی: - + This save state does not exist. This save state does not exist. - + Select Cover Image انتخاب تصویر کاور - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists کاور از قبل وجود داشت - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error کپی خطا - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset تأیید بازنشاندن کنسول - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12990,12 +13585,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13008,70 +13603,70 @@ Do you want to load this state, or start from a fresh boot? آیا می خواهید این وضعیت را بارگیری کنید یا از یک بوت تازه شروع کنید؟ - + Fresh Boot بوت تازه - + Delete And Boot حذف و بوت - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... - Load State File... + بارگیری از فایل وضعیت ذخیره شده... - + Load From File... Load From File... - - + + Select Save State File - Select Save State File + انتخاب فایل وضعیت ذخیره شده - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) ادامه (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States - Delete Save States + حذف وضعیت ذخیره شده - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13080,42 +13675,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. - %1 save states deleted. + %1 وضعیت ذخیره پاک شد. - + Save To File... ذخیره کردن در فایل... - + Empty خالی - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc عوض کردن دیسک - + Reset بازنشانی کنسول @@ -13123,8 +13718,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13205,6 +13800,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13255,11 +13851,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13270,7 +13861,7 @@ The saves will not be recoverable. Create Memory Card - Create Memory Card + درست کردن مموری کارت @@ -13285,7 +13876,7 @@ The saves will not be recoverable. 8 MB [Most Compatible] - 8 MB [Most Compatible] + ۸ مگابایت [بهترین] @@ -13321,7 +13912,7 @@ The saves will not be recoverable. Folder [Recommended] - Folder [Recommended] + پوشه [توصیه شده] @@ -13351,12 +13942,12 @@ The saves will not be recoverable. Failed to create the Memory Card, because the name '%1' contains one or more invalid characters. - Failed to create the Memory Card, because the name '%1' contains one or more invalid characters. + ایجاد کارت حافظه ناموفق بود، زیرا نام «%1» حاوی یک یا چند کاراکتر نامعتبر است. Failed to create the Memory Card, because another card with the name '%1' already exists. - Failed to create the Memory Card, because another card with the name '%1' already exists. + مموری کارت ایجاد نشد، زیرا کارت دیگری با نام «%1» درحال حاضر وجود دارد. @@ -13385,103 +13976,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports پورت های کنسول - + Memory Cards مموری کارت ها - + Folder: پوشه: - + Browse... مسیر... - + Open... باز... - + Reset بازنشانی - + Name نام - + Type نوع - + Formatted فرمت شد - + Last Modified آخرین ویرایش - + Refresh رفرش - + + Create ایجاد - + Duplicate نسخه برداری - + Rename تغییر نام - + Convert تبدیل - + Delete حذف - + Settings تنظیمات - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13528,7 +14120,7 @@ The saves will not be recoverable. Delete Memory Card - Delete Memory Card + حذف مموری کارت @@ -13536,7 +14128,7 @@ The saves will not be recoverable. Rename Memory Card - Rename Memory Card + تغییر نام مموری کارت @@ -13561,7 +14153,7 @@ The saves will not be recoverable. This Memory Card is unknown. - This Memory Card is unknown. + مموری کارت ناشناخته می باشد. @@ -13651,58 +14243,58 @@ This action cannot be reversed, and you will lose any saves on the card.حافظه - + Copy Address - Copy Address + کپی کردن آدرس - + Go to in disassembly Go to in disassembly - - + + Go to address رفتن به آدرس - + Show as 1 byte نمایش بر اساس ١ بایت - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte کپی کردن بایت - + Copy Segment کپی کردن سگمنت - + Copy Character کپی کردن کاراکتر - + Paste جای گذاری @@ -13752,10 +14344,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13951,6 +14548,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13967,19 +14574,19 @@ This action cannot be reversed, and you will lose any saves on the card.ددزون را برای فعال کردن دکمه ها یا دکمه های ماشه‌ای تنظیم می کند. به طور مثال، یعنی بخشی از ماشه نادیده گرفته میشود. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} Analog Sensitivity - Analog Sensitivity + حساسیت آنالوگ @@ -14021,13 +14628,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - پورت دسته {}، اسلات {} یک {} متصل است، اما حالت ذخیره دارای {} است. -اتصال بر روی نوع کنترل‌کننده اصلی می ماند، اما ممکن است مشکلاتی ایجاد کند. - Strum Up @@ -14098,46 +14698,69 @@ Leaving the original controller type connected, but this may cause issues.Guitar گیتار + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + پورت دسته {0}، اسلات {1} یک {2} متصل است، اما حالت ذخیره دارای {3} است. +اتصال بر روی نوع کنترل‌کننده اصلی می ماند، اما ممکن است مشکلاتی ایجاد کند. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches - {}{} cheat patches + {}{} پچ های تقلب - + {} are active. {} فعال هستند. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. هیچ تقلب یا پچ (صفحه عریض، سازگارسازی یا موارد دیگر) یافت یا فعال نشد. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject Failed to open URL - Failed to open URL + باز کردن لینک ناموفق بود @@ -14149,16 +14772,16 @@ The URL was: %1 The URL was: %1 - + HDD Creator سازنده فایل هارد - + Failed to create HDD image - Failed to create HDD image + خطا در ایجاد فایل هارد درایو @@ -14333,7 +14956,7 @@ The URL was: %1 No Sound (Emulate SPU2 only) - No Sound (Emulate SPU2 only) + بدون صدا: (فقط SPU2 را شبیه‌سازی کند) @@ -14360,7 +14983,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14399,7 +15021,7 @@ Do you want to create this directory? Folder path cannot be empty. - Folder path cannot be empty. + مسیر پوشه نمی‌تواند خالی باشد. @@ -14410,278 +15032,281 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + استفاده از تنظیمات عمومی [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings - تنظیمات PCSX2 + PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close - بستن + Close - - - Summary - خلاصه + + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - - <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - <strong>خلاصه</strong><hr>این صفحه جزئیات بازی انتخاب شده را نشان می دهد. با تغییر پروفایل ورودی، به‌جای پیکربندی پیش‌فرض (اشتراک‌گذاری شده)، طرح نوع اتصال دسته برای این بازی به هر پروفایلی که انتخاب شده، انتخاب می‌شود. فهرست آهنگ و تأیید داده استخراج شده را می توان برای تعیین اینکه آیا فایل دیسک شما با یک استخراج درست و خوب شناخته شده مطابقت دارد یا خیر، استفاده می شود. اگر مطابقت نداشته باشد، ممکن است بازی خراب شود. + + + Summary + Summary - + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface - رابط کاربری + Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - <strong>تنظیمات رابط کاربری</strong><hr>این گزینه‌ها نحوه ظاهر و رفتار نرم‌افزار را کنترل می‌کنند.<br><br>برای اطلاعات بیشتر، ماوس را روی گزینه‌ای قرار دهید. + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List - جدول بازی + Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - <strong>تنظیمات فهرست بازی</strong><hr>لیست بالا فهرست راهنماهایی را نشان می‌دهد که توسط PCSX2 برای تکمیل فهرست بازی جستجو می‌شوند. پوشه های مورد نیاز برای جستجو را می توان اضافه، حذف و به حالت های زیرمجموعه‌ای و تک پوشه‌ای اسکن کرد. + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS - بایوس + BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - <strong>تنظیمات بایوس</strong><hr>بایوس خود را در اینجا تنظیم کنید.<br><br>برای اطلاعات بیشتر، ماوس خود را روی گزینه ای قرار دهید. + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation - شبیه‌سازی + Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - <strong>تنظیمات شبیه‌ساز</strong><hr>این گزینه‌ها تنظیمات سرعت فریم و تنظیمات بازی را تعیین می‌کنند.<br><br>برای اطلاعات بیشتر، ماوس را روی یک گزینه قرار دهید. + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches - پچ ها + Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - <strong>پچ ها</strong><hr>این بخش به شما امکان می‌دهد پچ های اختیاری را برای اعمال در بازی انتخاب کنید، که ممکن است بهبود عملکرد، دیداری یا بازی را ارائه دهد. + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats - تقلبات + Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - <strong>تقلب‌ها</strong><hr>این بخش به شما امکان می‌دهد تقلب‌هایی را که می‌خواهید فعال کنید، انتخاب کنید. شما نمی‌توانید تقلب‌های بدون برچسب را برای فرمت های قدیمی فایل‌های PNACH را فعال یا غیرفعال کنید، اگر گزینه فعال کردن تقلب اصلی علامت زده شود، به‌طور خودکار فعال می‌شود. + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes - پچ های بازی + Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - <strong>تنظیمات اصلاحات بازی</strong><hr>اصلاخات بازی را می‌توانند در مواقعی که شبیه‌سازی نادرست اجرا می شود را برطرف کنند.<br>اما، در صورت استفاده نادرست از این اصلاحات می‌توانند در بازی‌ها نیز مشکل ایجاد کنند.<br>بهتر است همه آنها را غیرفعال رها کنید مگر اینکه توصیه دیگری داده شود. + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics - گرافیک + Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - <strong>تنظیمات گرافیک</strong><hr>این گزینه‌ها پیکربندی خروجی گرافیکی را تعیین می‌کنند.<br><br>برای اطلاعات بیشتر، ماوس را روی یک گزینه قرار دهید. + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio - صدا + Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - <strong>تنظیمات صوتی</strong><hr>این گزینه‌ها خروجی صوتی کنسول را کنترل می‌کنند.<br><br>برای اطلاعات بیشتر، ماوس را روی گزینه‌ای قرار دهید. + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards - مموری کارت ها + Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - <strong>تنظیمات کارت حافظه</strong><hr>کارت های حافظه را در اینجا ایجاد و پیکربندی کنید.<br><br>برای اطلاعات بیشتر، ماوس را روی گزینه ای قرار دهید. + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD - شبکه و هارد درایو + Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - <strong>تنظیمات شبکه و هارد دیسک</strong><hr>این گزینه‌ها برای اتصال شبکه و حافظه داخلی هارد دیسک کنسول را کنترل می‌کنند.<br><br>برای اطلاعات بیشتر، ماوس را روی گزینه‌ای قرار دهید. + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders - پوشه ها + Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - <strong>تنظیمات پوشه</strong><hr>این گزینه‌ها کنترل می‌کنند که PCSX2 کجا فایل‌های داده‌ای زمان اجرا را ذخیره کند. + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements - دستاوردها + Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - <strong>تنظیمات دستاوردها</strong><hr>این گزینه‌ها اجرای RetroAchievements را در PCSX2 کنترل می‌کنند و به شما امکان می‌دهند که در بازی‌های خود دستاوردهایی را کسب کنید. + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced - پیشرفته + Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - <strong>تنظیمات پیشرفته</strong><hr>اینها گزینه‌های پیشرفته‌ای برای تعیین پیکربندی کنسول شبیه‌سازی شده هستند.<br><br>برای اطلاعات بیشتر، ماوس را روی یک گزینه قرار دهید. + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug - اشکال زدايي + Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - <strong>تنظیمات اشکال زدایی</strong><hr>اینها گزینه هایی هستند که می توانند برای ثبت اطلاعات داخلی برنامه مورد استفاده قرار گیرند. <strong>اگر نمی دانید چه کاری انجام می دهید، تغییر ندهید</strong>، این کار باعث کندی قابل توجهی می شود و می تواند حجم زیادی از فضای دیسک را هدر دهد. + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. Do you want to continue? - پیکربندی های این بازی با تنظیمات عمومی فعلی جایگزین خواهد شد. + The configuration for this game will be replaced by the current global settings. -هر مقداری که در تنظیمات هست، بازنویسی خواهد شد. +Any current setting values will be overwritten. -آیا می خواهید ادامه دهید؟ +Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. Do you want to continue? - پیکربندی های این بازی پاک خواهد شد. + The configuration for this game will be cleared. -هر مقداری که در تنظیمات هست از دست خواهد رفت. +Any current setting values will be lost. -آیا می خواهید ادامه دهید؟ +Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value - مقدار پیشنهادی - - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] + Recommended Value @@ -14768,8 +15393,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + باز کردن پوشه بایوس... @@ -14800,7 +15425,7 @@ Do you want to continue? Search Directory - Search Directory + پوشه مورد جستجو @@ -14827,7 +15452,7 @@ Do you want to continue? Controller Type: - Controller Type: + نوع دسته: @@ -14944,7 +15569,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic Binding - Automatic Binding + پیوند دادن خودکار @@ -15036,97 +15661,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. نوع انتظاز - + BAD Refers to a Thread State in the Debugger. بد - + RUN Refers to a Thread State in the Debugger. اجرا - + READY Refers to a Thread State in the Debugger. آماده - + WAIT Refers to a Thread State in the Debugger. انتظار - + SUSPEND Refers to a Thread State in the Debugger. تعلیق - + WAIT SUSPEND Refers to a Thread State in the Debugger. انتظار و تعلیق - + DORMANT Refers to a Thread State in the Debugger. غیرفعال - + NONE Refers to a Thread Wait State in the Debugger. هیجکدام - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. سمافور - + SLEEP Refers to a Thread Wait State in the Debugger. خواب - + DELAY Refers to a Thread Wait State in the Debugger. تأخير - + EVENTFLAG Refers to a Thread Wait State in the Debugger. پرچم رویداد - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15147,7 +15772,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Konami Capture Eye - Konami Capture Eye + Konami Capture Eye @@ -15197,7 +15822,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Konami Keyboard - Konami Keyboard + کیبورد کونامی (Konami) @@ -15325,17 +15950,22 @@ Scanning recursively takes more time, but will identify files in subdirectories. Cursor Scale - Cursor Scale + مقیاس مکان نما Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color - Cursor Color + رنگ مکان نما @@ -15363,6 +15993,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15378,6 +16014,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15398,6 +16040,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15453,6 +16101,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15501,7 +16158,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Logitech USB Mic - Logitech USB Mic + میکروفون یواس‌بی لوجیتک @@ -15540,7 +16197,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Steering Right - Steering Right + چرخش به راست @@ -15614,7 +16271,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Shift Up / R1 - Shift Up / R1 + دنده بالا / R1 @@ -15653,6 +16310,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15663,6 +16340,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -15696,7 +16379,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Driving Force Pro - Driving Force Pro + Driving Force Pro @@ -15846,7 +16529,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. KeyboardMania - KeyboardMania + کیبورد‌مانیا @@ -16162,117 +16845,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints نکات - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. برای پیوند فرمان از اکثر چرخ‌های 900 درجه مدرن، چرخ را یک دور در جهت دلخواه بچرخانید و سپس دوباره به مرکز برگردانید. - + Force Feedback ﺑﺎﺯﺧﻮﺭﺩ اجباری - + D-Pad دی-پد - + Down پایین - + Left چپ - + Up بالا - + Right راست - + L1 L1 - + L2 L2 - + Brake ترمز - + Steering Left چرخش به چپ - + Steering Right چرخش به راست - + Select Select - + Start Start - + Face Buttons دکمه های اصلی - + Circle دایره - + Cross ضرب‌در - + Triangle مثلث - + Square مربع - + R1 R1 - + R2 R2 - + Accelerator شتاب دهنده @@ -16280,67 +16963,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints نکات - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. برای پیوند فرمان از اکثر چرخ‌های 900 درجه مدرن، چرخ را یک دور در جهت دلخواه بچرخانید و سپس دوباره به مرکز برگردانید. - + Force Feedback ﺑﺎﺯﺧﻮﺭﺩ اجباری - + X X - + A A - + Brake ترمز - + Steering Left چرخش به چپ - + Steering Right چرخش به راست - + Left Paddle پدال چپ - + Right Paddle پدال راست - + Y Y - + B B - + Accelerator شتاب دهنده @@ -16348,71 +17031,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons دکمه‌‌ها - + A A - + C C - + Start شروع - + Select انتخاب - + B B - + D-Pad دی-پد - - + + Down پایین - - + + Left چپ - - + + Up بالا - - + + Right راست - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16421,29 +17104,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>اگر می خواهید از یک کنترلر یا لایت‌گان استفاده کنید که یک کنترلر را به جای ماوس شبیه سازی می کند، باید آن را بر روی گزینه «هدف گیری نسبی» متصل کنید. در غیر این صورت، هدف نسبی باید <strong>قید نشده باشد</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger اجرا - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16451,27 +17134,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type نوع دستگاه - + Bindings پیوند ها - + Settings تنظیمات - + Automatic Mapping پیوند خودکار - + Clear Mapping پاک کردن اتصالات دسته @@ -16509,32 +17192,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. پشتیبان گیری از وضعیت ذخیره شذه {} ناموفق بود. - + Failed to save save state: {}. ذخیره وضعیت ذخیره شده در {} انجام نشد. - + PS2 BIOS ({}) - PS2 BIOS ({}) + بایوس PS2 ({}) - + Unknown Game - Unknown Game + بازی ناشناخته - + Error خطا - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16545,197 +17228,217 @@ Please consult the FAQs and Guides for further instructions. برنامه PCSX2 برای اجرا به بایوس PS2 نیاز دارد. به دلایل قانونی، باید یک بایوس از یک دستگاه PS2 واقعی که مالک آن هستید، تهیه کنید (قرض گرفتن به حساب نمی آید). پس از استخراج بایوس، این فایل بایوس باید در پوشه «bios» در فهرست داده های نشان داده شده در زیر قرار گیرد، و یا می توانید به PCSX2 دستور دهید تا یک فهرست دیگر را اسکن کند. راهنمای استخراج بایوس خود را می‌توانید در این سایت پیدا کنید: pcsx2.net. - + + Resuming state + Resuming state + + + State saved to slot {}. وضعیت به {} ذخیره شد. - + Failed to save save state to slot {}. ذخیره وضعیت در اسلات {} انجام نشد. - + + + Loading state + در حال بارگیری وضعیت ذخیره شده + + + There is no save state in slot {}. هیچ وضعیت ذخیره شده ای در اسلات {} وجود ندارد. - + Loading state from slot {}... در حال بارگیری وضعیت از اسلات {}... - + Saving state to slot {}... درحال ذخیره وضعیت به اسلات{}... - + + Frame advancing + Frame advancing + + + Disc removed. دیسک حذف شد. - + Disc changed to '{}'. دیسک به «{}» عوض شد. - - Failed to open new disc image '{}'. Reverting to old image. - فایل دیسک جدید در «{}» باز نشد. درحال بازگشت به فایل دیسک قدیمی. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - بازگشت به فایل دیسک قدیمی انجام نشد. در حال برداشتن دیسک. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. تقلب ها به علت روشن بودن حالت هاردکور در دستاوردها غیرفعال شده است. - + Fast CDVD is enabled, this may break games. بارگذاری سریع سی دی و دی وی دی فعال است، این ممکن است بعضی از بازی ها را نادرست اجرا کند. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. صدا از ترکیب غیر هماهنگ استفاده می‌کند، انتظار عدم همگام‌سازی در FMV را داشته باشید. - + Upscale multiplier is below native, this will break rendering. ضریب ارتقاء رزولوشن کمتر از معمولی است، این رندر را خراب می‌کند. - + Mipmapping is not set to automatic. This may break rendering in some games. میپ‌مپینگ کردن بافت ها روی اتوماتیک تنظیم نشده است. این ممکن است رندر را در بعضی ها خراب کند. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. فیلترینگ بافت بر روی دوخطی (PS2) تنظیم نشده است. این باعث خراب شدن رندر در برخی بازی ها می شود. - + Trilinear filtering is not set to automatic. This may break rendering in some games. فیلتر سه خطی روی خودکار تنظیم نشده است. این ممکن است رندر در برخی بازی ها را خراب کند. - + Blending is below basic, this may break effects in some games. دقت ترکیب بافت پایین‌تر از معمولی تنظیم شده است، این ممکن است در برخی از بازی ها جلوه ها را خراب کند. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. حالت گرد کردن EE FPU روی پیش‌فرض تنظیم نشده است، ممکن است برخی از بازی‌ها را درس اجرا نکند. - + EE FPU Clamp Mode is not set to default, this may break some games. حالت گرد کردن EE FPU روی پیش‌فرض تنظیم نشده است، ممکن است برخی از بازی‌ها را درست اجرا نکند. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. حالت محدود کردن VU روی پیش‌فرض تنظیم نشده است، ممکن است برخی از بازی‌ها را درست اجرا نکند. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. پچ های سازگارسازی فعال نیستند. سازگاری با برخی از بازی ها ممکن است تحت تأثیر قرار گیرد. - + Frame rate for NTSC is not default. This may break some games. نرخ فریم برای NTSC به صورت پیش‌فرض نیست. این ممکن است برخی از بازی ها را نادرست اجرا کند. - + Frame rate for PAL is not default. This may break some games. نرخ فریم برای PAL به صورت پیش‌فرض نیست. این ممکن است برخی از بازی ها را نادرست اجرا کند. - + EE Recompiler is not enabled, this will significantly reduce performance. مفسیر EE فعال نیست، این به طور قابل توجهی سرعت عملکرد را کاهش می دهد. - + VU0 Recompiler is not enabled, this will significantly reduce performance. مفسیر VU0 فعال نیست، این به طور قابل توجهی سرعت عملکرد را کاهش می دهد. - + VU1 Recompiler is not enabled, this will significantly reduce performance. مفسیر VU1 فعال نیست، این به طور قابل توجهی سرعت عملکرد را کاهش می دهد. - + IOP Recompiler is not enabled, this will significantly reduce performance. مفسیر IOP فعال نیست، این به طور قابل توجهی سرعت عملکرد را کاهش می دهد. - + EE Cache is enabled, this will significantly reduce performance. حافظه پنهان EE فعال است، این به طور قابل توجهی سرعت عملکرد را کاهش می دهد. - + EE Wait Loop Detection is not enabled, this may reduce performance. تشخیص حلقه انتظار EE، این به طور قابل توجهی سرعت عملکرد را کاهش می دهد. - + INTC Spin Detection is not enabled, this may reduce performance. تشخیص چرخش INTC فعال نیست، این ممکن است سرعت عملکرد را کاهش دهد. - + Instant VU1 is disabled, this may reduce performance. VU1 فوری غیرفعال است، این ممکن است سرعت عملکرد را کاهش دهد. - + mVU Flag Hack is not enabled, this may reduce performance. پرچمگذاری mVU فعال نیست، این ممکن است عملکرد را کاهش دهد. - + GPU Palette Conversion is enabled, this may reduce performance. تبدیل پالت کارت گرافیک فعال است، این ممکن است سرعت عملکرد را کاهش دهد. - + Texture Preloading is not Full, this may reduce performance. پیش بارگذاری بافت کامل نیست، این ممکن است سزعت عملکرد را کاهش دهد. - + Estimate texture region is enabled, this may reduce performance. منطقه بافت تخمینی فعال است، این ممکن است سرعت عملکرد را کاهش دهد. diff --git a/pcsx2-qt/Translations/pcsx2-qt_fi-FI.ts b/pcsx2-qt/Translations/pcsx2-qt_fi-FI.ts index 8239a4c8ae39fd..85c7632d633efb 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_fi-FI.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_fi-FI.ts @@ -80,32 +80,38 @@ Valmis... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Sinun RetroAchievements kirjautumistunnuksesi ei ole enää voimassa.</strong> Sinun on syötettävä tunnuksesi uudelleen, jotta saavutuksia voidaan seurata. Salasanasi ei tallennu PCSX2:ssa; sen sijaan luodaan ja käytetään kirjautumistunnusta. - + &Login &Sisäänkirjautuminen - + Logging in... Kirjaudutaan sisään... - + Login Error - Kirjautumisvirhe + Virhe sisäänkirjautumisessa - - Login failed. Please check your username and password, and try again. - Kirjautuminen epäonnistui. Tarkista käyttäjänimesi ja salasanasi ja yritä uudelleen. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Kirjautuminen epäonnistui. +Vika: %1 + +Tarkista tunnuksesi ja salasanasi ja yritä uudestaan. - + Login failed. Kirjautuminen epäonnistui. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Yleiset asetukset - - - - + + Enable Achievements Ota saavutukset käyttöön - - - Show Challenge Indicators - Näytä haasteilmaisimet - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Ota RA:n Rich Presence käyttöön - - - - + + Enable Hardcore Mode - Ota Kovanaamatila käyttöön - - - - - Enable Leaderboards - Ota tulostaulukot käyttöön + Ota hardcore-tila käyttöön - + Test Unofficial Achievements Testaa epävirallisia saavutuksia - - - Enable Test Mode - Ota testitila käyttöön - - - - + + Enable Sound Effects Ota äänitehosteet käyttöön - + Notifications Ilmoitukset - - - Show Notifications - Näytä ilmoitukset - - - - Duration - Kestoaika - - - - - - + + 5 seconds 5 sekuntia - + Account Tili - - + + Login... Sisäänkirjautuminen... - + View Profile... Näytä profiili... - + + Settings + Asetukset + + + + + Enable Spectator Mode + Enable Spectator Mode + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Show Achievement Notifications + + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info Pelitiedot - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 käyttää RetroAchievements:ia saavutustietokantana ja edistymisen seurantaan. Voit käyttää saavutuksia rekisteröimällä tilin osoitteessa <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Voit tarkastella saavutusluetteloa pelissä painamalla <span style=" font-weight:600;">avaa taukovalikko</span> -pikanäppäintä, ja valitsemalla <span style=" font-weight:600;">saavutukset</span> valikosta.</p></body></html> + - seconds - sekuntit - - - - + + - - Unchecked Ei käytössä - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Kun tämä on käytössä ja olet kirjautunut sisään, PCSX2 etsii saavutuksia pelin latauksen aikana. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Kun tämä on käytössä, PCSX2 olettaa, että kaikki saavutukset on lukittu, eikä lähetä lukituksen avausilmoituksia palvelimelle. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Kun tämä on käytössä, PCSX2 listaa saavutukset epävirallisista lajitelmista. Huomaa, että RetroAchievements ei seuraa näitä saavutuksia, joten ne avautuvat joka kerta. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Kun käytössä, rich presence -tiedot kerätään ja lähetetään RetroAchievements-palvelimille, joissa sitä tuetaan. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Haaste" tila saavutuksille, mukaan lukien tulosten seuranta. Poistaa käytöstä tallennus pisteet, cheatit, ja hidastustoiminnot. - - - - + + + + Checked Käytössä - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Mahdollistaa tulostaulukoiden seurannan ja lähettämisen tuetuissa peleissä. Jos tulostaulukot on poistettu käytöstä, voit silti tarkastella tulostaulukkoa ja tuloksia, mutta pisteitä ei lähetetä. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Näyttää ponnahdusviestit tapahtumista, kuten saavutusten avaamisesta ja tulosten lähettämisestä. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Toistaa äänitehosteita tietyissä tapauksissa, kuten saavutusten avaamisessa ja tulosten lähettämisessä. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Näyttää kuvakkeita näytön oikeassa alakulmassa, kun haaste/saavutus on aktiivinen. - - - - Notification Duration - Ilmoituksen Kestoaika + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Aika sekunneissa saavutusten ilmoitus ikkunan näkymiselle. + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - + Reset System - Palauta järjestelmä alkutilaan + Nollaa järjestelmä - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - Kovanaamatilaa ei oteta käyttöön ennen järjestelmän nollausta. Haluatko nollata järjestelmän nyt? + Hardcore-tilaa ei oteta käyttöön ennen järjestelmän nollausta. Haluatko nollata järjestelmän nyt? + + + + + %n seconds + + %n sekunttia + %n seconds + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Käyttäjätunnus: %1 Kirjautumistunnus luotu %2. - + Logout Kirjaudu ulos - + Not Logged In. Ei kirjautuneena. - - - %1 seconds - %1 sekunttia - Achievements - + Hardcore mode will be enabled on system reset. - Hardcore tila otetaan käyttöön järjestelmän resetoituessa. + Hardcore-tila otetaan käyttöön järjestelmän nollautuessa. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} ei voida suorittaa kun hardcore-tila on aktiivinen. Haluatko hardcore-tilan pois käytöstä? {0} peruutetaan jos valitset Ei. - + Hardcore mode is now enabled. - Kovanaama-tila on nyt käytössä. + Hardcore-tila on nyt käytössä. + + + + {} (Hardcore Mode) + {} (Hardcore-tila) + + + + {} (Unofficial) + {} (Epävirallinen) + + + + Mastered {} + Masteroitu {} + + + + Leaderboard attempt started. + Tulostaulu yritys aloitettu. + + + + Leaderboard attempt failed. + Tulostaulu yritys epäonnistui. + + + + Your Time: {}{} + Sinun Aikasi: {}{} - + + Your Score: {}{} + Sinun Tuloksesi: {}{} + + + + Your Value: {}{} + Sinun Arvosi: {}{} + + + + (Submitting) + (Lähetetään) + + + + Achievements Disconnected + Saavutukset Katkaistu + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Avaus pyyntöä ei pystytty suorittamaan. Jatkamme pyynnön lähetyksen yrittämistä. + + + + Achievements Reconnected + Saavutukset Yhdistetty Uudelleen + + + + All pending unlock requests have completed. + Kaikki vireillä olevat avaus pyynnöt on suoritettu. + + + Hardcore mode is now disabled. - Kovanaamatila on poistettu käytöstä. + Hardcore-tila on poistettu käytöstä. + + + + Confirm Hardcore Mode + Vahvista Hardcore-tila - + + Active Challenge Achievements + Aktiivi Haaste Saavutukset + + + (Hardcore Mode) - (Kovanaamatila) + (Hardcore-tila) + + + + You have unlocked all achievements and earned {} points! + Olet avannut kaikki saavutukset ja ansainnut {} pistettä! - - You have earned {0} of {1} achievements, and {2} of {3} points. - Olet avannut {0} {1} saavutuksesta ja saanut {2} {3} pisteestä. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Olet avannut {0} / {1} saavutuksista ja ansainnut {2} / {3} pistettä. - - This game has no achievements. - Tämä peli ei tue saavutuksia. + + {0} achievements, {1} points + {0} saavutusta, {1} pistettä + + + + Your Time: {0} (Best: {1}) + Sinun Aikasi: {0} (Paras: {1}) + + + + Your Score: {0} (Best: {1}) + Sinun Tuloksesi: {0} (Paras: {1}) + + + + Your Value: {0} (Best: {1}) + Sinun Arvosi: {0} (Paras: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Tulostaulu Sija: {1} / {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Tulos: {0} ({1} softcore) +Lukemattomat viestit: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Olet avannut {0} / {1} saavutusta ja ansainnut {2} / {3} pistettä. + + + + Unknown + Tuntematon + + + + Locked + Lukittu + + + + Unlocked + Avattu + + + + Unsupported + Tukematon + + + + Unofficial + Epävirallinen + + + + Recently Unlocked + Äskettäin Avattu + + + + Active Challenges + Aktiiviset Haasteet + + + + Almost There + Melkein Valmis + + + + {} points + {} pisteet + + + + {} point + {} piste + + + + XXX points + XXX pisteet + + + + Unlocked: {} + Avattu: {} + + + + This game has {} leaderboards. + Tällä pelillä on {} tulostaulua. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Tuloksien lähetys ei ole käytössä koska hardcore-tila on pois päältä. Tulostaulut ovat vain luettavia. + + + + Show Best + Näytä Paras + + + + Show Nearby + Näytä Lähin + + + + Rank + Sijoitus + + + + Name + Nimi + + + + Time + Aika + + + + Score + Tulos + + + + Value + Arvo + + + + Date Submitted + Lähetys Päivä + + + + Downloading leaderboard data, please wait... + Ladataan tulostaulu dataa, odota... + + + + + Loading... + Ladataan... + + + + + Leaderboard download failed + Tulostaulu lataus epäonnistui - - Leaderboard submission is enabled. - Tulosten lähettäminen on päällä. + + This game has no achievements. + Tällä pelillä ei ole saavutuksia. - + Failed to read executable from disc. Achievements disabled. Ajotiedoston lukeminen levyltä epäonnistui. Saavutukset poistettu käytöstä. @@ -386,19 +623,19 @@ Kirjautumistunnus luotu %2. Use Global Setting [%1] - Käytä yleisiä asetuksia [%1] + Käytä Globaaleja Asetuksia [%1] Rounding Mode - Pyöristystila + Pyöristys-tila Chop / Zero (Default) - Pilko / nolla (oletus) + Pilko / Nolla (Oletus) @@ -462,7 +699,7 @@ Kirjautumistunnus luotu %2. Interpreter only, provided for diagnostic. - Vain interpreter, tarkoitettu diagnosointiin. + Vain tulkki, tarkoitettu diagnosointiin. @@ -499,22 +736,22 @@ Kirjautumistunnus luotu %2. VU0 Rounding Mode - VU0-pyöristystila + VU0 Pyöristys-tila VU1 Rounding Mode - VU1-pyöristystila + VU1 Pyöristys-tila VU0 Clamping Mode - VU0-rajoitustila + VU0 Rajoitus-tila VU1 Clamping Mode - VU1-rajoitustila + VU1 Rajoitus-tila @@ -578,220 +815,220 @@ Kirjautumistunnus luotu %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Näiden asetusten muuttaminen voi aiheuttaa sen, että pelit eivät toimi. Muokkaa omalla vastuullasi, PCSX2-tiimi ei tarjoa tukea kokoonpanoille, joissa näitä asetuksia on muutettu. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. - Pyöristystila: + Pyöristys-tila: - - - + + + Nearest Lähin - - - + + + Negative Negatiivinen - - - + + + Positive Positiivinen - - - + + + Chop / Zero (Default) - Pilko / nolla (oletus) + Pilko / Nolla (Oletus) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. - Rajoitustila: + Rajoitus-tila: - - + + None Ei mitään - - - + + + Normal (Default) Normaali (oletus) - + None ClampMode Ei mitään - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Ekstra + Säilytä Etumerkki - + Full Täysi - + Wait Loop Detection Odotussilmukoiden havaitseminen - - + + Enable Recompiler Ota uudelleenkääntäjä käyttöön - + Enable Fast Memory Access Ota käyttöön nopea muistin käyttö - + Enable Cache (Slow) Ota välimuisti käyttöön (hidas) - + INTC Spin Detection INTC Spin -tunnistus - + Pause On TLB Miss Pysäytys TLB:n puuttuessa - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vektoriyksiköt (VU) - + VU1 Rounding Mode: - VU1-pyöristystila: + VU1 Pyöristys-tila: - + mVU Flag Hack mVU-korjaus - + Enable VU1 Recompiler Ota käyttöön VU1-uudelleenkääntäjä - + Enable VU0 Recompiler (Micro Mode) Ota käyttöön VU0-uudelleenkääntäjä (mikrotila) - - + + Extra Extra - + VU0 Clamping Mode: VU0-rajoitustila: - + VU0 Rounding Mode: VU0-pyöristystila: - + VU1 Clamping Mode: VU1-rajoitustila: - + I/O Processor (IOP, MIPS-I) I/O-prosessori (IOP, MIPS-I) - + Game Settings Peliasetukset - + Enable Game Fixes Ota pelikorjaukset käyttöön - + Enable Compatibility Patches Ota yhteensopivuuskorjaukset käyttöön - + Frame Rate Control Kuvataajuuden säätö - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. Hz - + PAL Frame Rate: PAL-kuvataajuus: - + NTSC Frame Rate: NTSC-kuvataajuus: - + PINE Settings PINE-asetukset - + Slot: Korttipaikka: - + Enable Päälle @@ -799,182 +1036,182 @@ Kirjautumistunnus luotu %2. AudioSettingsWidget - + Timestretch Settings Äänenvenytysasetukset - + Sequence Length: Sekvenssin pituus: - + 30 30 - + Seekwindow Size: Hakuikkunan koko: - + 20 20 - + Overlap: Päällekkäisyys: - + 10 10 - + Restore Defaults - Palauta oletusarvot + Palauta Oletusarvot - + Volume Äänenvoimakkuus - + 100% 100 % - + Mixing Settings Miksausasetukset - + Synchronization: Synkronointi: - + TimeStretch (Recommended) TimeStretch (Suositeltu) - + Async Mix (Breaks some games!) Async Mix (Rikkoo joitakin pelejä!) - + None (Audio can skip.) Ei mitään (ääni voi hyppiä) - + Expansion: Laajennus: - + Stereo (None, Default) Stereo (ei mitään, oletus) - + Quadraphonic Quadraphonic - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Taso: - + None (Default) Ei mitään (oletus) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Dekoodaus (perus) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II Dekoodaus (gigaherz) - + Target Latency: Tavoite viive: - + 60 ms 60 ms - + Output Settings Lähtöasetukset - + Output Module: Lähtömoduuli: - + Output Latency: Lähtöviive: - + 20 ms 20 ms - + Minimal Minimaalinen - + Output Backend: Lähdön taustaohjelma: - + Maximum Latency: Maksimiviive: - + Output Device: Ulostulolaite: @@ -1162,17 +1399,22 @@ Kirjautumistunnus luotu %2. Uusi versio: - + + Download Size: + Download Size: + + + Download and Install... Lataa ja asenna... - + Skip This Update Ohita tämä päivitys - + Remind Me Later Muistuta myöhemmin @@ -1182,17 +1424,17 @@ Kirjautumistunnus luotu %2. Päivitysvirhe - + <h2>Changes:</h2> <h2>Muutokset:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Varoitus tilatallennuksista</h2><p>Tämän päivityksen asennus tekee tilatallennuksistasi <b>yhteensopimattomia</b>. Varmista, että olet tallentanut pelisi muistikortille, ennen tämän päivityksen asentamista, jotta vältyt edistymisesi katoamiselta.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Varoitus</h2><p>Tämän päivityksen asentaminen nollaa ohjelman asetukset. Huomioithan, että sinun täytyy määrittää asetukset uudelleen tämän päivityksen jälkeen.</p> @@ -1233,6 +1475,11 @@ Kirjautumistunnus luotu %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... Ladataan... @@ -1240,63 +1487,63 @@ Kirjautumistunnus luotu %2. BIOSSettingsWidget - + BIOS Directory BIOS-kansio - + PCSX2 will search for BIOS images in this directory. PCSX2 etsii BIOS-tiedostoja tästä kansiosta. - + Browse... Selaa... - + Reset Nollaa muutokset - + BIOS Selection BIOS:ksen valinta - - Open in Explorer... - Avaa Explorerissa... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List Päivitä lista - + Filename Tiedoston nimi - + Version Versio - + Options and Patches Asetukset ja korjaukset - + Fast Boot Nopea käynnistys - + Fast Forward Boot Pikakäynnistys @@ -1424,91 +1671,84 @@ Kirjautumistunnus luotu %2. BreakpointModel - + Execute Suorita - - No Condition - Ei ehtoa - - - - + + -- -- - - + Enabled Käytössä - - + Disabled Ei käytössä - + Read Lue - + Write(C) (C) = changes, as in "look for changes". Kirjoita(M) - + Write Kirjoita - + TYPE Warning: limited space available. Abbreviate if needed. TYYPPI - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. KOKO / NIMI - + INSTRUCTION Warning: limited space available. Abbreviate if needed. - KÄSKY + OHJE - + CONDITION Warning: limited space available. Abbreviate if needed. EHTO - + HITS Warning: limited space available. Abbreviate if needed. OSUMAT - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - KÄYTÖSSÄ + X @@ -1519,7 +1759,7 @@ Kirjautumistunnus luotu %2. Pelilevyn sijainti on siirrettävällä levyllä, saattaa aiheuttaa suorituskyvyn ongelmia, kuten nykimistä ja jäätymistä. - + Saving CDVD block dump to '{}'. Tallentaa CDVD-lohkon kopion kohteeseen '{}'. @@ -1556,34 +1796,34 @@ Tallentaa CDVD-lohkon kopion kohteeseen '{}'. ControllerBindingWidget - + Virtual Controller Type Virtuaalisen ohjaimen tyyppi - + Bindings Näppäinsidokset - + Settings Asetukset - + Macros Makrot - + Automatic Mapping - Automaattinen kartoitus + Automaattinen Kartoitus - + Clear Mapping - Tyhjennä kartoitus + Tyhjennä Kartoitus @@ -1599,7 +1839,7 @@ Tallentaa CDVD-lohkon kopion kohteeseen '{}'. Clear Bindings Binding: A pair of (host button, target button); Mapping: A list of bindings covering an entire controller. These are two different things (which might be the same in your language, please make sure to verify this). - Poista sidokset + Poista Sidokset @@ -1610,7 +1850,7 @@ Tallentaa CDVD-lohkon kopion kohteeseen '{}'. Automatic Binding - Automaattinen sidonta + Automaattinen Sidonta @@ -1621,146 +1861,146 @@ Tallentaa CDVD-lohkon kopion kohteeseen '{}'. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Ristiohjain - - - + + + Down Alas - - - + + + Left Vasen - - - + + + Up Ylös - - - + + + Right Oikea - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Vasen sauva - + Large Motor Iso moottori - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Etupuolen näppäimet - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Risti - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Neliö - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kolmio - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Ympyrä - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Oikea sauva + Oikea Sauva - + Small Motor - Pieni moottori + Pieni Moottori - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Paineensäädin - + Analog Analoginen @@ -1768,77 +2008,72 @@ Tallentaa CDVD-lohkon kopion kohteeseen '{}'. ControllerBindingWidget_Guitar - - Form - Muoto - - - + Yellow Keltainen - - - - - - - - - - - + + + + + + + + + + + PushButton PainaPainiketta - + Start Start - + Red Punainen - + Green Vihreä - + Orange Oranssi - + Select Select - + Strum Up Ylössoitto - + Strum Down Alassoitto - + Blue Sininen - + Whammy Bar Vibrakampi - + Tilt Kallistus @@ -1848,7 +2083,7 @@ Tallentaa CDVD-lohkon kopion kohteeseen '{}'. Restore Default Settings - Palauta oletusasetukset + Palauta Oletusasetukset @@ -1864,125 +2099,135 @@ Tallentaa CDVD-lohkon kopion kohteeseen '{}'. ControllerGlobalSettingsWidget - + SDL Input Source SDL-syöttölähde - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). SDL-syötelähde tukee useimpia ohjaimia ja tarjoaa edistyneitä toimintoja DualShock 4 / DualSense -tyypeille Bluetooth-tilassa (värinä / LED-ohjaus). - + Enable SDL Input Source Ota SDL-syöttölähde käyttöön - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense tehostettu tila - + XInput Source XInput-lähde - + Enable XInput Input Source Ota XInput-syöttölähde käyttöön - + DInput Source DInput-lähde - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. DInput-lähde tarjoaa tuen perinteisille ohjaimille, jotka eivät tue XInputia. Näiden ohjainten käyttäminen SDL:n kautta on suositeltavaa, mutta DirectInputia voidaan käyttää, jos ne eivät ole yhteensopivia SDL:n kanssa. - + Enable DInput Input Source Ota DInput-syöttölähde käyttöön - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Profiiliasetukset - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Kun asetus on käytössä, pikanäppäimet voidaan määrittää tässä syöttöprofiilissa, ja niitä voidaan käyttää yleisten pikanäppäinten asemesta. Kaikki profiilit käyttävät oletuksena aina samoja pikanäppäimiä. - + Use Per-Profile Hotkeys - Käytä profiilikohtaisia pikanäppäimiä + Käytä Profiilikohtaisia Pikanäppäimiä - - + + Controller LED Settings Ohjaimen LED-asetukset - + Enable SDL Raw Input Ota SDL-raakasyöte käyttöön - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. XInput-lähde tarjoaa tukea Xbox 360 / Xbox One / Xbox Series -ohjaimille ja kolmannen osapuolen ohjaimille, jotka käyttävät XInput-yhteyskäytäntöä. - + Controller Multitap Moniohjainsovitin - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Moniohjainsovitin mahdollistaa jopa 8 ohjaimen yhdistämisen konsoliin. Jokaisessa moniohjainsovitimessa on 4 porttia. Kaikki pelit eivät tue moniohjainsovitinta. - + Multitap on Console Port 1 Moniohjainsovitin konsolin portissa 1 - + Multitap on Console Port 2 Moniohjainsovitin konsolin portissa 2 - + Mouse/Pointer Source Hiiren/osoittimen lähde - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 mahdollistaa hiiren käytön analogisen sauvan liikkeen simuloimiseksi. - + Settings... Asetukset... - + Enable Mouse Mapping Ota hiiren kartoitus käyttöön - + Detected Devices - Havaitut laitteet + Havaitut Laitteet @@ -2016,58 +2261,58 @@ Tallentaa CDVD-lohkon kopion kohteeseen '{}'. ControllerMacroEditWidget - + Binds/Buttons Näppäinsidokset/painikkeet - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Valitse näppäimet, jotka haluat käynnistää tällä makrolla. Kaikki näppäimet aktivoituvat samanaikaisesti. - + Pressure Paine - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Paineherkkien näppäinten kohdalla tämä liukusäädin ohjaa, kuinka paljon voimaa simuloidaan makron ollessa aktiivinen. - - + + 100% 100 % - + Trigger Liipaisin - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Valitse laukaisin joka aktivoi tämän makron. Tämä voi olla yksittäinen nappi, tai yhdistelmä nappeja (sointu). Shift-klikkaa käyttääksesi useampaa laukaisinta. - + Deadzone: Katvealue: - + Frequency Taajuus - + Macro will toggle every N frames. Macro lukitsee joka N ruudunpäivityksellä. - + Set... Aseta... @@ -2085,7 +2330,7 @@ Tallentaa CDVD-lohkon kopion kohteeseen '{}'. Set Frequency - Aseta taajuus + Aseta Taajuus @@ -2127,7 +2372,7 @@ Not Configured/Buttons configured Mouse Mapping Settings - Hiiren kartoituksen asetukset + Hiiren Kartoituksen Asetukset @@ -2170,172 +2415,174 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - PCSX2-ohjainasetukset + PCSX2 Controller Settings - + Editing Profile: - Muokataan profiilia: + Editing Profile: - + New Profile Uusi profiili - + Load Profile Lataa profiili - + Delete Profile Poista profiili - - + + Restore Defaults - Palauta oletusarvot + Restore Defaults - - + + Create Input Profile - Luo syöteprofiili + Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - Mukautettuja ohjausprofiileja käytetään ylikirjoittamaan Jaettuja ohjausprofiileja tiettyihin peleihin. -Asettaaksesi mukautetun ohjausprofiilin tietylle pelille, mene kohtaan Pelin Ominaisuudet, muuta 'Ohjausprofiili' Yhteenveto täbissä. + Custom input profiles are used to override the Shared input profile for specific games. +To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. -Syötä ohjausprofiilin nimi: +Enter the name for the new input profile: - - - - + + + + Error Virhe - + A profile with the name '%1' already exists. - '%1'-niminen profiili on jo olemassa. + A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - Haluatko kopioida kaikki näppäinsidokset valitusta profiilista uuteen profiiliin? Jos valitset Ei, profiili luodaan täysin tyhjänä. + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. - Uuden profiilin tallentaminen kohteeseen '%1' epäonnistui. + Failed to save the new profile to '%1'. - + Load Input Profile - Lataa syöteprofiili + Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - Haluatko varmasti ladata syöteprofiilin nimeltä '%1'? + Are you sure you want to load the input profile named '%1'? -Kaikki nykyiset yleiset sidokset poistetaan ja profiilin sidokset ladataan. +All current global bindings will be removed, and the profile bindings loaded. -Tätä toimintoa ei voi kumota. +You cannot undo this action. - + Delete Input Profile - Poista syöteprofiili + Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - Haluatko varmasti poistaa syöteprofiilin nimeltä '%1'? + Are you sure you want to delete the input profile named '%1'? -Et voi kumota tätä toimintoa. +You cannot undo this action. - + Failed to delete '%1'. - Kohteen '%1' poistaminen epäonnistui. + Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - Oletko varma, että haluat palauttaa ohjaimen oletusasetukset? + Are you sure you want to restore the default controller configuration? -Kaikki jaetut sidokset ja määritelmät katoavat, mutta syöteprofiilisi säilyvät. +All shared bindings and configuration will be lost, but your input profiles will remain. -Tätä toimintoa ei voi peruuttaa. +You cannot undo this action. - + Global Settings - Yleiset asetukset + Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Ohjainportti %1%2%3 + Controller Port %1%2 +%3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Ohjainportti %1%2 + Controller Port %1 +%2 - - + + USB Port %1 %2 - USB-portti %1 + USB Port %1 %2 - + Hotkeys Pikanäppäimet - + Shared "Shared" refers here to the shared input profile. - Jaettu + Shared - + The input profile named '%1' cannot be found. - Syöteprofiilia '%1' ei löytynyt. + The input profile named '%1' cannot be found. @@ -2405,204 +2652,242 @@ Tätä toimintoa ei voi peruuttaa. Toiminnot - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Virkistä - + Filter Suodatin - + Memory Search Muistihaku - + End Lopeta - + Value Arvo - + Start Aloita - + Type Tyyppi - + 1 Byte (8 bits) 1 tavu (8 bittiä) - + 2 Bytes (16 bits) 2 tavua (16 bittiä) - + 4 Bytes (32 bits) 4 tavua (32 bittiä) - + 8 Bytes (64 bits) 8 tavua (64 bittiä) - + Float Liukuluku - + Double Kahden tarkkuuden liukuluku - + String Merkkijono - + Array of byte Taulukko tavuista - + Hex Heksa - + Search Etsi - + Memory Muisti - + Breakpoints Pysäytyskohdat - + Threads Säikeet - + Active Call Stack Aktiivinen kutsupino - + Breakpoint List Context Menu Keskeytyspisteiden luettelon pikavalikko - + New Uusi - + Edit Muokkaa - - - + + + Copy Kopioi - + Delete Poista - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Säieluettelon pikavalikko - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Pura symbolit - + + Copy Function Name Kopioi toiminnonnimi - + + Copy Function Address Kopioi funktion osoite - + + Go to in Disassembly Siirry purkukoodinäkymään - + + Go to in Memory View Siirry muistinäkymään - + + + Module Tree + Module Tree + + + Stack List Context Menu Pinoluettelon pikavalikko - - - - - + + + + + Debugger Virheenjäljitin - + Invalid start address Virheellinen alkuosoite - + Invalid end address Virheellinen loppuosoite - + Start address can't be equal to or greater than the end address Aloitusosoite ei voi olla yhtä suuri tai suurempi kuin loppuosoite - + Invalid search value Virheellinen hakuarvo - + Value is larger than type Arvo on suurempi kuin tyyppi @@ -2658,22 +2943,22 @@ Tätä toimintoa ei voi peruuttaa. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet-laite: - + Ethernet Device Type: Ethernet-laitteen tyyppi: - + Intercept DHCP Pysäytä DHCP @@ -2683,135 +2968,130 @@ Tätä toimintoa ei voi peruuttaa. Käytössä - + Enabled InterceptDHCP Käytössä - + Subnet Mask: Aliverkon peite: - + Gateway Address: Yhdyskäytävän osoite: - - + + Auto Automaattinen - + Intercept DHCP: Pysäytä DHCP: - + PS2 Address: PS2-osoite: - + DNS1 Address: DNS1-osoite: - + DNS2 Address: DNS2-osoite: - + Internal DNS Sisäinen DNS - + Add Lisää - + Delete Poista - + Export Vie - + Import Tuo - + Per game Peliä kohti - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Sisäinen DNS voidaan valita käyttämällä DNS1/2 pudotusta tai asettamalla ne 192.0.2.1 - + Enabled InternalDNSTable Käytössä - + Hard Disk Drive Kiintolevy - + HDD File: HDD-tiedosto: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Koko (GiB): - + Enabled HDD Käytössä - + Browse Selaa - + Create Image Luo kuva - - - - - PCAP Bridged @@ -2844,7 +3124,7 @@ Tätä toimintoa ei voi peruuttaa. - + Use Global Setting [%1] Käytä yleistä asetusta [%1] @@ -2864,78 +3144,78 @@ Tätä toimintoa ei voi peruuttaa. Osoite - - + + Hosts File Isännän Tiedosto - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Isännät - + Exported Successfully Viety onnistuneesti - + Failed to open file Tiedoston avaaminen epäonnistui - + No Hosts in file Ei Isäntiä tiedostossa - + Imported Successfully Tuotu onnistuneesti - - + + Per Game Host list Per Peli Isäntä lista - + Copy global settings? Kopioidaanko yleiset asetukset? - + Delete per game host list? Poista per peli isäntä lista? - + HDD Image File HDD-kuvatiedosto - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Haluatko korvata tiedoston? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2944,22 +3224,22 @@ Do you want to overwrite? Haluatko korvata sen? - + HDD Creator HDD Luoja - + HDD image created HDD-kuva luotu - + Use Global Käytä Globaalia - + Override Ohita @@ -2967,69 +3247,69 @@ Haluatko korvata sen? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Tallenna RT - + Save Frame Tallenna Frame - + Save Texture Tallenna Tekstuuri - + Save Depth Tallenna Syvyys - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Laitteisto Dumppi Kansio: - + Software Dump Directory: Ohjelmisto Dumppi Kansio: - - + + Browse... Selaa... - - + + Open... Avaa... @@ -3042,29 +3322,53 @@ Haluatko korvata sen? PCSX2-virheenjäljitin - - - + + Run Suorita - + Step Into Astu Sisään - + + F11 + F11 + + + Step Over Astu Yli - + + F10 + F10 + + + Step Out Astu Ulos - + + Shift+F11 + Vaihto+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Tauko @@ -3077,149 +3381,174 @@ Haluatko korvata sen? Purku - + Copy Address Kopioi osoite - + Copy Instruction Hex Kopioi Ohje Hexi - + Copy Instruction Text Kopioi ohjeteksti - + Assemble new Instruction(s) Kokoa uudet ohjeet - + NOP Instruction(s) NOP-ohjeet - + Run to Cursor Suorita kursoriin asti - + Jump to Cursor Siirry kursoriin asti - + Toggle Breakpoint Vaihda keskeytyskohta - + Follow Branch Seuraa haaraa - + Go to Address Siirry osoitteeseen - + Go to in Memory View Siirry muistinäkymään - - + + Add Function Lisää funktio - - + + Rename Function Nimeä funktio uudelleen - + Remove Function Poista funktio - - + + Assemble Error Kokoamisvirhe - + Unable to change assembly while core is running Kokoamista ei voida muuttaa, kun ydin on käynnissä - + Assemble Instruction Kokoamisen ohjeistus - + Go to address Siirry osoitteeseen - + Go to address error Virhe osoitteeseen siirtymisessä - + Invalid address Virheellinen osoite - + Add Function Error Virhe toiminnonlisäyksessä - + A function entry point already exists here. Consider renaming instead. Funktion aloituspiste on jo olemassa. Harkitse uudelleennimeämistä. - - + + Function will be (0x%1) instructions long. Enter function name Funktio on (0x%1) ohjeen pituinen. Anna funktion nimi - + Function name Toiminnonnimi - - + + Rename Function Error Virhe toiminnon uudelleenimeämisessä - + Function name cannot be nothing. Funktion nimi ei voi olla tyhjä. - + No function / symbol is currently selected. Yhtään funktiota / symbolia ei ole tällä hetkellä valittu. - + + Restore Function Error + Virhe toiminnon palauttamisessa + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Palauta toiminto + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 PÄTEMÄTÖN OSOITE @@ -3227,17 +3556,17 @@ Anna funktion nimi EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">Yhtään pelejä ei löytynyt tuetussa muodossa.</span></p><p>Lisää kansio, jossa on pelejä aloittaaksesi.</p><p>Pelikopiot seuraavissa muodoissa skannataan ja lisätään listaan:</p></body></html> - + Add Game Directory... Lisää pelikansio... - + Scan For New Games Etsi uusia pelejä @@ -3245,48 +3574,44 @@ Anna funktion nimi EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Peli: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2 %) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Pelin ID: %1 -Peli otsikko: %2 -Saavutukset: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n pistettä - %n pistettä - - - + Rich presence inactive or unsupported. Rikas läsnäolo epäaktiivinen tai tukematon. - + Game not loaded or no RetroAchievements available. Peliä ei ole ladattu tai RetroAchievements-saavutuksia ei ole saatavilla. @@ -3294,192 +3619,192 @@ Saavutukset: %5 (%6) EmulationSettingsWidget - + Speed Control Nopeuden hallinta - + Normal Speed: Normaali nopeus: - + Enable Speed Limiter Ota käyttöön nopeudenrajoitin - + System Settings Järjestelmäasetukset - + Enable Instant VU1 Ota käyttöön välitön VU1 - + Enable Cheats Ota huijaukset käyttöön - + Slow-Motion Speed: Hidastuksen nopeus: - + Fast-Forward Speed: Pikakelauksen nopeus: - + Enable Multithreaded VU1 (MTVU) Ota käyttöön monisäikeinen VU1 (MTVU) - + Enable Host Filesystem Ota isäntätiedostojärjestelmä käyttöön - + Enable Fast CDVD Ota nopea CDVD käyttöön - + EE Cycle Skipping: EE-syklin ohitus: - - + + Disabled Ei käytössä - + Mild Underclock Lievä alikellotus - + Moderate Underclock Kohtalainen alikellotus - + Maximum Underclock Enimmäisalikellotus - + EE Cycle Rate: EE-syklitaajuus: - + 50% (Underclock) 50 % (alikellotus) - + 60% (Underclock) 60 % (alikellotus) - + 75% (Underclock) 75 % (alikellotus) - + 100% (Normal Speed) 100 % (normaalinopeus) - + 130% (Overclock) 130 % (ylikellotus) - + 180% (Overclock) 180 % (ylikellotus) - + 300% (Overclock) 300 % (ylikellotus) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Kuvanrytmitys / viiveen hallinta - + frames This string will appear next to the amount of frames selected, in a dropdown box. kuvaa - + Maximum Frame Latency: Kuvan maksimi viive: - + Optimal Frame Pacing Optimaalinen ruudnpäivityksen tahditus - + Scale To Host Refresh Rate Skaalaa isännän päivitysnopeuteen @@ -3567,12 +3892,22 @@ Saavutukset: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Mahdollistaa pelien ja kotitekoisten ohjelmistojen pääsyn tiedostoihin / kansioihin suoraan isäntätietokoneella. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Pikakelauksen nopeus + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3636,45 +3971,40 @@ Saavutukset: %5 (%6) Asettaa enimmäismäärän kuvia, jotka voidaan laittaa jonoon GS:lle, ennen kuin prosessorin säie odottaa yhden niistä valmistumista ennen jatkamista. Suuremmat arvot voivat auttaa tasoittamaan epäsäännöllisiä ruutuaikoja, mutta lisäävät ylimääräistä syöttöviivettä. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Säätää emulointinopeutta, jotta konsolin virkistystaajuus vastaa isännän virkistystaajuutta, kun sekä pystytahdistus- että äänen uudelleenotanta -asetukset ovat käytössä. Tämä johtaa mahdollisimman sileisiin animaatioihin, mikä saattaa lisätä emulointinopeutta alle 1 prosentilla. Scale To Host -virkistystaajuus ei astu voimaan, jos konsolin virkistystaajuus eroaa liikaa isännän virkistystaajuudesta. Käyttäjien, joilla on vaihteleva virkistystaajuusnäyttö, kannattaisi poistaa tämä asetus käytöstä. - - - + Use Global Setting [%1%] - Käytä yleistä asetusta [%1%] + Käytä globaalia asetusta [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Rajoittamaton - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Mukautettu - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Mukautettu [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Mukautettu nopeus - + Enter Custom Speed Anna mukautettu nopeus @@ -3682,79 +4012,79 @@ Saavutukset: %5 (%6) FolderSettingsWidget - + Cache Directory Välimuistin hakemisto - - - - - + + + + + Browse... Selaa... - - - - - + + + + + Open... Avaa... - - - - - + + + + + Reset Nollaa - + Used for storing shaders, game list, and achievement data. Käytetään shaderin, peliluettelon ja saavutustietojen tallentamiseen. - + Cheats Directory Huijaushakemisto - + Used for storing .pnach files containing game cheats. Säilyttää .pnach tiedostoja joissa peli huijauksia. - + Covers Directory Kansi Kansio - + Used for storing covers in the game grid/Big Picture UIs. Säilyttää kansia peli grid/Big Picture Käyttöliittymissä. - + Snapshots Directory Snäppikuvien Kansio - + Used for screenshots and saving GS dumps. Käytetään kuvakaappauksiin ja GS dumppeihin. - + Save States Directory Tilatallennushakemisto - + Used for storing save states. Käytetään tilatallennusten tallentamiseen. @@ -3762,2082 +4092,2102 @@ Saavutukset: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. CD/DVD-ROM-laitteita ei löytynyt. Varmista että laite on yhdistetty ja sinulla on lupa sen käyttöön. - + Use Global Setting Käytä Globaalia Asetusta - + Automatic binding failed, no devices are available. Automaattinen sidonta epäonnistui, ei laitteita saatavilla. - + Game title copied to clipboard. Pelin nimi kopioitu leikepöydälle. - + Game serial copied to clipboard. Pelin numerosarja kopioitu leikepöydälle. - + Game CRC copied to clipboard. Pelin CRC kopioitu leikepöydälle. - + Game type copied to clipboard. Pelin tyyppi kopioitu leikepöydälle. - + Game region copied to clipboard. Pelin alue kopioitu leikepöydälle. - + Game compatibility copied to clipboard. Pelin yhteensopivuus kopioitu leikepöydälle. - + Game path copied to clipboard. Pelin polku kopioitu leikepöydälle. - + Per-game controller configuration initialized with global settings. Per peli ohjain konfiguraatio alustettu globaaleilla asetuksilla. - + Controller settings reset to default. Ohjain asetukset nollattu oletusarvoisiksi. - + No input profiles available. No input profiles available. - + Create New... Luo Uusi... - + Enter the name of the input profile you wish to create. Syötä syöte profiilin nimi jonka tahdot luoda. - + Are you sure you want to restore the default settings? Any preferences will be lost. Oletko varma että tahdot palauttaa oletusarvoiset asetukset? Kaikki mukautukset menetetään. - + Settings reset to defaults. Asetukset nollattu oletusarvoisiksi. - - Quick Save Slot - Pika Tallennus Paikka - - - + No save present in this slot. Ei tallennuksia tällä paikalla. - + No save states found. Ei tallennus tiloja löydetty. - + Failed to delete save state. Tallennus tilan poisto epäonnistui. - + Failed to copy text to clipboard. Tekstin kopiointi leikepöydälle epäonnistui. - + This game has no achievements. Tässä pelissä ei ole saavutuksia. - + This game has no leaderboards. Tässä pelissä ei ole tulostauluja. - + Reset System Nollaa Järjestelmä - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore-tilaa ei kytketä päälle kunnes järjestelmä on nollattu. Tahdotko nollata systeemin nyt? - + Launch a game from images scanned from your game directories. Käynnistä peli kuvista jotka ovat skannattu sinun peli-kansioista. - + Launch a game by selecting a file/disc image. Käynnistä peli valitsemalla file/disc kuva. - + Start the console without any disc inserted. Käynnistä konsoli ilman syötettyä levyä. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Muuta emulaattorin asetuksia. - + Exits the program. Poistuu ohjelmasta. - + No Binding Ei Sidontaa - + Setting %s binding %s. Asetetaan %s sidontaa %s. - + Push a controller button or axis now. Paina ohjaimen näppäintä tai ohjaustattia nyt. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Tuntematon - + OK OK - + Select Device Valitse laite - + Details Tiedot - + Options Asetukset - + Copies the current global settings to this game. Kopioi nykyiset yleiset asetukset tähän peliin. - + Clears all settings set for this game. Poistaa kaikki tämän pelin asetukset. - + Behaviour Käyttäytyminen - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Estää näytönsäästäjää aktivoitumasta ja koneen menemisen lepotilaan emuloinnin aikana. - + Shows the game you are currently playing as part of your profile on Discord. Näyttää pelin, jota paraikaa pelaat osana profiiliasi Discordissa. - + Pauses the emulator when a game is started. Pysäyttää emulaattorin kun peli on käynnistetty. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pysäyttää emulaattorin kun minimoit ikkunan tai vaihdat toiseen applikaatioon ja jatkaa kun vaihdat takaisin. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pysäyttää emulaattorin kun avaat pikavalikon ja jatkaa kun suljet sen. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Määrittää näytetäänkö konfirmaatio prompti kun emulaattori/peli suljetaan pikanäppäimellä. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automaattisesti tallentaa emulaattorin tilan kun emulaattorista poistutaan tai koneen virtaa sammutetaan. Voit siten jatkaa suoraan siitä mihin viimeksi jäit. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Mahdollistaa ini overlayn latauksen peliasetuksista tai per peli mukautetuista asetuksista. - - - + Uses a light coloured theme instead of the default dark theme. Käyttää vaalean väristä teemaa oletusarvoisen tumman teeman sijasta. - + Game Display - Game Display - - - - Automatically switches to fullscreen mode when the program is started. - Automaattisesti vaihtaa koko näyttö-tilaan kun ohjelma käynnistetään. + Pelinäkymä - + Switches between full screen and windowed when the window is double-clicked. Vaihtuu koko näytön ja ikkunan väliin, kun ikkunaa napsautetaan kahdesti. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Piilottaa hiiren osoittimen/kohdistimen emulaattorin ollessa koko näytön tilassa. - + Determines how large the on-screen messages and monitor are. Määrittää ruudulla olevien viestien ja näytön suuruuden. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Näyttää järjestelmän nykyisen emulointinopeuden näytön oikeassa yläkulmassa prosentteina. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Näyttää suorittimen käytön säikeeseen, näytön oikeassa yläkulmassa. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. - Displays warnings when settings are enabled which may break games. + Näyttää varoituksia kun päällä on asetuksia jotka saattavat hajoittaa pelejä. - + Resets configuration to defaults (excluding controller settings). - Resets configuration to defaults (excluding controller settings). + Nollaa konfiguraation oletusarvoiseksi (ohjainasetuksia lukuunottamatta). - + Changes the BIOS image used to start future sessions. - Changes the BIOS image used to start future sessions. + Muuttaa BIOS kuvaa mitä käytetään tulevaisuuden sessioiden starttaukseen. - + Automatic Automaattinen - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Siirtyy automaattisesti koko näytön tilaan, kun peli käynnistetään. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration - BIOS Configuration + BIOS konfiguraatio - + BIOS Selection BIOS:ksen valinta - + Options and Patches - Options and Patches + Asetukset ja Paikkaukset - + Skips the intro screen, and bypasses region checks. Ohittaa intro ruudun, ja ohittaa alue tarkistukset. - + Speed Control Nopeuden hallinta - + Normal Speed Normaali nopeus - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Pikakelauksen nopeus - + Sets the speed when using the fast forward hotkey. - Sets the speed when using the fast forward hotkey. + Asettaa nopeuden kun käytössä on eteenpäin kelaus pikanappi. - + Slow Motion Speed Hidastuksen nopeus - + Sets the speed when using the slow motion hotkey. Asettaa nopeuden kun käyttää nopeuden hidastus pikanäppäintä. - + Enable Speed Limiter Ota käyttöön nopeudenrajoitin - + When disabled, the game will run as fast as possible. Kun pois käytöstä, peli käy niin nopeasti kuin mahdollista. - + System Settings Järjestelmäasetukset - + EE Cycle Rate EE-syklitaajuus - + Underclocks or overclocks the emulated Emotion Engine CPU. Alikellottaa tai ylikellottaa emuloidun Emotion Engine CPU:un. - + EE Cycle Skipping EE-syklin ohitus - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Lisää rangaistuksen Emuloituun Emotion Engine:en VU ohjelman toteutuksesta. - - - + Affinity Control Mode Taipumus Hallinta Tila - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Ota huijaukset käyttöön - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Ota nopea CDVD käyttöön - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Kuvanrytmitys / viiveen hallinta - + Maximum Frame Latency Kuvan maksimi viive - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderöijä - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display - Display + Näyttö - + Aspect Ratio - Aspect Ratio + Kuvasuhde - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio - FMV Aspect Ratio + FMV Kuvasuhde - + Selects the aspect ratio for display when a FMV is detected as playing. - Selects the aspect ratio for display when a FMV is detected as playing. + Valitsee kuvasuhteen ruudulle kun FMV pyörii. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size - Screenshot Size + Kuvakaappauksen Koko - + Determines the resolution at which screenshots will be saved. - Determines the resolution at which screenshots will be saved. + Päättää resoluution jolla kuvakaappaukset tallennetaan. - + Screenshot Format - Screenshot Format + Kuvakaappauksen Formaatti - + Selects the format which will be used to save screenshots. - Selects the format which will be used to save screenshots. + Valitsee formaatin mitä käytetään kuvakaappauksien tallentamiseen. - + Screenshot Quality - Screenshot Quality + Kuvakaappauksen Laatu - + Selects the quality at which screenshots will be compressed. - Selects the quality at which screenshots will be compressed. + Valitsee laadun millä kuvakaappaukset kompressoidaan. - + Vertical Stretch - Vertical Stretch + Vertikaalinen Venytys - + Increases or decreases the virtual picture size vertically. - Increases or decreases the virtual picture size vertically. + Kasvattaa tai pienentää virtuaalisen kuvan kokoa vertikaalisesti. - + Crop - Crop + Rajaa - + Crops the image, while respecting aspect ratio. - Crops the image, while respecting aspect ratio. + Rajaa kuvan kunnioittamalla kuvasuhdetta. + + + + %dpx + %dpx - + Enable Widescreen Patches - Enable Widescreen Patches + Käytä Leveänruudun Paikkauksia - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilineaarinen Skaalaus - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets - Screen Offsets + Ruutu Offsetit - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Sumennuksenesto - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Renderöinti - + Internal Resolution Sisäinen resoluutio - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmappaus - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilineaarinen suodatus - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotrooppinen Suodatus - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Tekstuurin Esilataus - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Laitteistokorjaukset - + Manual Hardware Fixes - Manual Hardware Fixes + Manuaaliset Laitteisto Korjaukset - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features - Disable Safe Features + Poista Käytöstä Turvaominaisuudet - + This option disables multiple safe features. - This option disables multiple safe features. + Tämä vaihtoehto poistaa käytöstä useita turvaominaisuuksia. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Half-Pixel Offset + Skaalaus Korjaukset - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement - Texture Replacement + Tekstuurin Korvaus - + Load Textures - Load Textures + Lataa Tekstuuri - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Kansiot - + Texture Dumping - Texture Dumping + Tekstuuri Dumppaus - + Dump Textures - Dump Textures - - - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. + Dumppaa Tekstuureja - + Dump Mipmaps - Dump Mipmaps + Dumppaa MipMäppejä - + Includes mipmaps when dumping textures. - Includes mipmaps when dumping textures. + Sisältää mipmäpit kun tekstuureja dumpataan. - + Dump FMV Textures - Dump FMV Textures + Dumppaa FMV Tekstuureja - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Jälkikäsittely - + FXAA FXAA - + Enables FXAA post-processing shader. Ottaa FXAA-jälkikäsittelyn shaderin käyttöön. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters - Filters + Filtterit - + Shade Boost - Shade Boost + Varjo Boostaus - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Lisäasetukset - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Ulostulon asetukset - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Asetukset ja toiminnot - + Creates a new memory card file or folder. - Creates a new memory card file or folder. + Luo uuden muistikortti-tiedoston tai kansion. - + Simulates a larger memory card by filtering saves only to the current game. - Simulates a larger memory card by filtering saves only to the current game. + Simuloi suurempaa muistikorttia filtteroimalla tallennuksia ainoastaan nykyiseen peliin. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Luo muistikortti - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Kortin nimi: - + Configuration Asetukset - + Uses game-specific settings for controllers for this game. - Uses game-specific settings for controllers for this game. + Käytä peli kohtaisia asetuksia ohjaimille tässä pelissä. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected Painikkeita Ei Valittu - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations - Data Save Locations + Datan Tallennus Paikat - + Show Advanced Settings - Show Advanced Settings + Näytä Kehittyneet Asetukset - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console - System Console + Systeemi Konsoli - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Konsoli - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Konsoli - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Pyöristystila - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Rajoitustila - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units - Vector Units + Vektori Yksiköt - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics - Graphics + Grafiikat - + Use Debug Device - Use Debug Device + Käytä Debug Laitetta - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Asetukset - + No cheats are available for this game. Ei huijauskoodeja saatavilla tälle pelille. - + Cheat Codes Huijauskoodit - + No patches are available for this game. - No patches are available for this game. + Ei paikkauksia saatavilla tähän peliin. - + Game Patches - Pelin Patchit + Pelin Korjaukset - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. + Huijausten aktivointi voi aiheuttaa arvaamatonta käyttäytymistä, cräshejä, soft-lockeja tai hajonneita pelitallennuksia. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. + Peli paikkausten aktivointi voi aiheuttaa arvaamatonta käyttäytymistä, cräshejä, soft-lockeja tai hajonneita pelitallennuksia. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. + Käytä paikkauksia omalla vastuulla, PCSX2 tiimi ei anna tukea käyttäjille jotka ovat käyttäneet peli paikkauksia. - + Game Fixes Pelikorjaukset - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. + Peli korjauksia ei pitäisi muokata ellet ymmärrä mitä jokainen vaihtoehto tekee ja mitä seuraksia niillä on. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Lataa Tila - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emuloi GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emuloi VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - + Save State - Save State + Tallenna Tila - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5846,2221 +6196,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: - Region: + Alue: - + Compatibility: - Compatibility: + Yhteensopivuus: - + No Game Selected - No Game Selected + Ei Peliä Valittuna - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings - List Settings + Lista Asetukset - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Kansiasetukset - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations - Operations + Operaatiot + + + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. - + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Lataa kannet - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 Tietoja PCSX2:sta - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. + PCSX2 on ilmainen ja open-source PlayStation 2 (PS2) emulaattori. Sen tarkoitus on emuloida PS2' laitteistoa käyttäen MIPS CPU Tulkkaajia, Uudelleenkääntäjiä ja Virtuaalista Konetta joka käsittelee laitteisto tiloja ja PS2 systeemin muistia. Tämä mahdollistaa PS2:n pelien pelaamisen PC:llä monilla uusilla mahdollisuuksilla ja eduilla. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements + Playstation 2 ja PS2 ovat Sony Interactive Enternainment:in rekisteröityjä tavaramerkkejä. Tämä applikaatio ei ole millään tavalla tekemisissä Sony Interactive Enternainment:in kanssa. - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Sija - - - - Name - Nimi - - - - Time - Aika - - - - Score - Pisteet - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account - Account + Tili - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game - Current Game + Nykyinen Peli - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - Käyttäjänimi: - - - - Password: - Salasana: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} Tämä Istunto: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Tallennettu {} - + {} does not exist. - {} does not exist. + {} ei ole olemassa. - + {} deleted. {} poistettu. - + Failed to delete {}. - Failed to delete {}. + Epäonnistui poistamaan {}. - + File: {} Tiedosto: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} - Time Played: {} + Pelattu Aika: {} - + Last Played: {} Viimeksi pelattu: {} - + Size: {:.2f} MB - Size: {:.2f} MB - - - - {} points - {} pistettä + Koko: {:.2f} MB - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Yhteenveto - + Interface Settings Käyttöliittymän asetukset - + BIOS Settings BIOS Asetukset - + Emulation Settings Emulaatio Asetukset - + Graphics Settings Grafiikka Asetukset - + Audio Settings Ääni Asetukset - + Memory Card Settings Muistikortin Asetukset - + Controller Settings Ohjaimen Asetukset - + Hotkey Settings Pikanäppäin Asetukset - + Achievements Settings Saavutusten Asetukset - + Folder Settings Kansio Asetukset - + Advanced Settings Lisäasetukset - + Patches Korjaukset - + Cheats Huijaukset - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2 % [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50 % [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75 % [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90 % [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110 % [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120 % [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150 % [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed - 50% Speed + 50% Nopeus - + 60% Speed - 60% Speed + 60% Nopeus - + 75% Speed - 75% Speed + 75% Nopeus - + 100% Speed (Default) - 100% Speed (Default) + 100% Nopeus (Oletus) - + 130% Speed - 130% Speed + 130% Nopeus - + 180% Speed - 180% Speed + 180% Nopeus - + 300% Speed - 300% Speed + 300% Nopeus - + Normal (Default) - Normal (Default) + Normaali (Oletus) - + Mild Underclock - Mild Underclock + Mieto Alikellotus - + Moderate Underclock - Moderate Underclock + Kohtalainen Alikellotus - + Maximum Underclock - Maximum Underclock + Maksimi Alikellotus - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full - Full + Täysi - + Extra - Extra + Ekstra - + Automatic (Default) - Automatic (Default) + Automaattinen (Oletus) - + Direct3D 11 - Direct3D 11 + Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Ohjelmisto - + Null Tyhjä - + Off Pois - + On Päällä - + Adaptive Mukautuva - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Natiivi (PS2) - + 1.25x Native 1.25x Natiivi - + 1.5x Native 1.5x Natiivi - + 1.75x Native 1.75x Natiivi - + 2x Native (~720p) 2x Natiivi (~720p) - + 2.25x Native 2.25x Natiivi - + 2.5x Native 2.5x Natiivi - + 2.75x Native 2.75x Natiivi - + 3x Native (~1080p) 3x Natiivi (~1080p) - + 3.5x Native 3.5x Natiivi - + 4x Native (~1440p/2K) 4x Natiivi (~1440p/2K) - + 5x Native (~1620p) 5x Natiivi (~1620p) - + 6x Native (~2160p/4K) 6x Natiivi (~2160p/4K) - + 7x Native (~2520p) 7x Natiivi (~2520p) - + 8x Native (~2880p) 8x Natiivi (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) - Full (PS2 Mipmaps) + Täysi (PS2 Mipmapit) - + Nearest Lähin - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Pois (Ei mitään) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Skaalattu - + Unscaled (Default) Skaalaamaton (oletus) - + Minimum Minimi - + Basic (Recommended) Perus (Suositeltu) - + Medium - Medium + Keskiverto - + High - High + Korkea - + Full (Slow) - Full (Slow) + Täysi (Hidas) - + Maximum (Very Slow) - Maximum (Very Slow) + Maksimi (Tosi Hidas) - + Off (Default) - Off (Default) + Pois (Oletus) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial - Partial + Osittainen - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution - Screen Resolution + Ruutu Resoluutio - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) - + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Täysi käynnistys + + + + Achievement Notifications + Saavutus Ilmoitukset + + + + Leaderboard Notifications + Tulostaulu Ilmoitukset + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode + + + PNG - PNG + PNG - + JPEG - JPEG + JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half - Half + Puoli - + Force Bilinear Force Bilinear - + Force Nearest - Force Nearest + Pakoita Lähin - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) - Sharpen Only (Internal Resolution) + Vain Terävöitys (Sisäinen Resoluutio) - + Sharpen and Resize (Display Resolution) - Sharpen and Resize (Display Resolution) + Terävöitä ja Muuta Kokoa (Näyttö Resoluutio) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Yhteensopivin] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Kansio [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid - Game Grid + Peli Gridi - + Game List - Game List + Peli Lista - + Game List Settings - Game List Settings + Peli Lista Asetukset - + Type - Type + Tyyppi - + Serial Serial - + Title - Title + Nimike - + File Title - File Title + Tiedosto Nimike - + CRC CRC - + Time Played - Time Played + Pelattu Aika - + Last Played - Last Played + Viimeksi Pelattu - + Size - Size + Koko - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File - Start File + Käynnistä Tiedosto - + Start BIOS Käynnistä BIOS - + Start Disc Start Disc - + Exit Poistu - + Set Input Binding Set Input Binding - + Region Alue - + Compatibility Rating - Compatibility Rating + Yhteensopivuus Arvio - + Path Polku - + Disc Path Levyn Polku - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Kopioi Asetukset - + Clear Settings Tyhjennä Asetukset - + Inhibit Screensaver Estä Näytönsäästäjä - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Vahvista Sammutus - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Näytä Viestit - + Show Speed Näytä Nopeus - + Show FPS Näytä FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings - Show Settings + Näytä Asetukset - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings - Reset Settings + Nollaa Asetukset - + Change Search Directory - Change Search Directory + Muuta Haku Luettelo - + Fast Boot Nopea käynnistys - + Output Volume - Output Volume + Ulostulo Volyymi - + Synchronization Mode - Synchronization Mode + Synkronisaatio-tila - + Expansion Mode - Expansion Mode + Laajennus-tila - + Output Module - Output Module + Ulostulo Moduuli - + Latency Viive - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create - Create + Luo - + Cancel - Cancel + Peruuta - + Load Profile - Load Profile + Lataa Profiili - + Save Profile - Save Profile + Tallenna Profiili - + Per-Game Configuration - Per-Game Configuration + Per-peli Konfiguraatio - + Copy Global Settings - Copy Global Settings + Kopioi Globaalit Asetukset - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons - Buttons + Napit - + Frequency - Frequency + Taajuus - + Pressure - Pressure + Paine - + Controller Port {}{} Settings - Controller Port {}{} Settings + Ohjain Portti {}{} Asetukset - + Controller Port {} Settings - Controller Port {} Settings + Ohjain Portti {} Asetukset - + USB Port {} - USB Port {} + USB Portti {} - + Device Type - Device Type + Laite Tyyppi - + Device Subtype - Device Subtype + Laite Alityyppi - + {} Bindings - {} Bindings + {} Sidokset - + Clear Bindings - Clear Bindings + Tyhjennä Sidokset - + {} Settings - {} Settings + {} Asetukset - + Cache Directory Cache Directory - + Covers Directory - Covers Directory + Kansi Luettelo - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game - Resume Game + Jatka Peliä - + Toggle Frame Limit Toggle Frame Limit - + Game Properties - Game Properties + Peli Ominaisuudet - + Achievements - Achievements + Saavutukset - + Save Screenshot - Save Screenshot + Tallenna Kuvakaappaus - + Switch To Software Renderer - Switch To Software Renderer + Vaihda Software Renderöijään - + Switch To Hardware Renderer - Switch To Hardware Renderer + Vaihda Hardware Renderöijään - + Change Disc - Change Disc + Vaihda Levy - + Close Game - Close Game + Sulje Peli - + Exit Without Saving - Exit Without Saving + Poistu Tallentamatta - + Back To Pause Menu - Back To Pause Menu + Takaisin Taukovalikkoon - + Exit And Save State - Exit And Save State + Poistu Ja Tallenna Tila - + Leaderboards - Leaderboards + Tulostaulut - + Delete Save - Delete Save + Poista Tallennus - + Close Menu - Close Menu + Sulje Valikko - - Clean Boot - Clean Boot - - - + Delete State - Delete State + Poista Tila - + Default Boot - Default Boot - - - - Slow Boot - Slow Boot + Oletus Käynnistys - + Reset Play Time - Reset Play Time + Nollaa Peli Aika - + Add Search Directory - Add Search Directory + Lisää Hakuluettelo - + Open in File Browser - Open in File Browser + Avaa Tiedosto Selaimessa - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List - Remove From List + Poista Listalta - + Default View - Default View + Oletus Näkymä - + Sort By - Sort By + Järjestele - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Aloita Lataus - - - + Website Verkkosivu - + Support Forums Tukifoorumit - + GitHub Repository GitHub-repositorio - + License Lisenssi - + Close Sulje - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode - Hardcore Mode - - - - Show Notifications - Show Notifications + Hardcore-tila - + Sound Effects - Sound Effects + Ääniefektit - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements - Test Unofficial Achievements - - - - Test Mode - Testitila + Testaa Epävirallisia Saavutuksia - + Username: {} Käyttäjätunnus: {} - + Login token generated on {} Login token generated on {} - + Logout Kirjaudu ulos - + Not Logged In Ei kirjautuneena - + Login Kirjaudu - - Achievements are disabled. - Achievements are disabled. + + Game: {0} ({1}) + Game: {0} ({1}) - - Game ID: {} - Pelin ID: {} - - - - Game Title: {} - Pelin Nimi: {} - - - - Achievements: {} ({} points) - Saavutukset: {} ({} pistettä) - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Kortin Nimi - + Eject Card Poista Kortti @@ -8070,10 +8321,10 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - Failed to reopen, restoring old configuration. + Uudelleenavaus epäonnistui, palautetaan vanhaa konfiguraatiota. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8128,12 +8379,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8158,7 +8409,7 @@ ${serial}: Serial of the game. Author - Tekijä + Julkaisija @@ -8189,7 +8440,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8200,266 +8451,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - - Hash {} is not in database. - Hash {} is not in database. + + Hash {} is not in database. + Hash {} is not in database. + + + + Data track number does not match data track in database. + Data track number does not match data track in database. + + + + Track {0} with hash {1} is not found in database. + + Track {0} with hash {1} is not found in database. + + + + + Track {0} with hash {1} is for a different game ({2}). + + Track {0} with hash {1} is for a different game ({2}). + + + + + Track {0} with hash {1} does not match database track. + + Track {0} with hash {1} does not match database track. + + + + + GameFixSettingsWidget + + + Game Fixes (NOT recommended to change globally) + Game Fixes (NOT recommended to change globally) + + + + + FPU Negative Divide Hack + FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. + FPU Negative Divide Hack + + + + + FPU Multiply Hack + FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. + FPU Multiply Hack + + + + + Skip MPEG Hack + MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. + Skip MPEG Hack + + + + + Preload TLB Hack + TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. + Preload TLB Hack + + + + + EE Timing Hack + EE: Emotion Engine. Leave as-is. + EE Timing Hack + + + + + Instant DMA Hack + DMA: Direct Memory Access. Leave as-is. + Instant DMA Hack + + + + + OPH Flag Hack + OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. + OPH Flag Hack + + + + + Emulate GIF FIFO + GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. + Emulate GIF FIFO + + + + + DMA Busy Hack + DMA: Direct Memory Access. Leave as-is. + DMA Busy Hack + + + + + Delay VIF1 Stalls + VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. + Delay VIF1 Stalls + + + + + Emulate VIF FIFO + VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. + Emulate VIF FIFO + + + + + Full VU0 Synchronization + VU0 = VU (Vector Unit) 0. Leave as-is. + Full VU0 Synchronization + + + + + VU I Bit Hack + VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. + VU I Bit Hack + + + + + VU Add Hack + VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. + VU Add Hack + + + + + VU Overflow Hack + VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. + VU Overflow Hack - - Data track number does not match data track in database. - Data track number does not match data track in database. + + + VU Sync + VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). + VU Sync - - Track {} with hash {} is not found in database. - - Track {} with hash {} is not found in database. - + + + VU XGKick Sync + VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. + VU XGKick Sync - - Track {} with hash {} is for a different game ({}). - - Track {} with hash {} is for a different game ({}). - + + + Force Blit Internal FPS Detection + Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. + Force Blit Internal FPS Detection - - Track {} with hash {} does not match database track. - - Track {} with hash {} does not match database track. - + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs - - - GameFixSettingsWidget - - Game Fixes (NOT recommended to change globally) - Game Fixes (NOT recommended to change globally) + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked - - FPU Negative Divide Hack (For Gundam Games) - FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + + For Tales of Destiny. + For Tales of Destiny. - - FPU Multiply Hack (For Tales of Destiny) - FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) + + For Gundam Games. + For Gundam Games. - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. - - Skip MPEG Hack (Skips Videos/FMVs) - MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. - - Preload TLB Hack (For Goemon) - TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. - - EE Timing Hack (General Purpose Timing Hack) - EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. - - Instant DMA Hack (Good for cache emulation problems) - DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. - - OPH Flag Hack (For Bleach Blade Battlers) - OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. - - Emulate GIF FIFO (Correct But Slower) - GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - DMA Busy Hack (Deny Writes When Busy) - DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) - VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. - - Emulate VIF FIFO (Correct But Slower) - VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Full VU0 Synchronization (Correct But Slower) - VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) - VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. - - VU Add Hack (For Tri-Ace Games) - VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - VU Overflow Hack (Superman Returns) - VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. - - VU Sync (Run Behind, M-Bit games) - VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - VU XGKick Sync (Correct But Slower) - VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - Force Blit Internal FPS Detection (When auto-detection fails) - Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Ei Koskaan - + Today Tänään - + Yesterday Eilen - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} tuntia - + {} minutes {} minuuttia + + + Downloading cover for {0} [{1}]... + Ladataan kantta kohteelle {0} [{1}]... + GameListModel - + Type Tyyppi - + Code - Code + Koodi - + Title - Title + Nimike - + File Title - File Title + Tiedosto Nimike - + CRC CRC-arvo - + Time Played Peliaika - + Last Played Viimeksi pelattu - + Size Koko - + Region Alue - + Compatibility Yhteensopivuus @@ -8467,74 +8860,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Lisää... - - - + + + Remove Poista - + Search Directory - Search Directory + Hakuluettelo - + Scan Recursively Skannaa rekursiivisesti - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Hakemisto... - + File... Tiedosto... - + Scan For New Games Etsi uusia pelejä - + Rescan All Games Uudelleenskannaa kaikki pelit - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Avaa hakemisto... - + Select Search Directory - Select Search Directory + Valitse Hakuluettelo - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8543,12 +8962,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemistoista. - + Select File Valitse tiedosto - + Select Directory Valitse hakemisto @@ -8556,32 +8975,32 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist GameListWidget - + Game List Peliluettelo - + Game Grid Game Grid - + Show Titles - Show Titles + Näytä Nimikkeet - + All Types Kaikki tyypit - + All Regions Kaikki alueet - + Search... Etsi... @@ -8592,7 +9011,7 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Patch Title - Patch Title + Paikka Nimike @@ -8607,17 +9026,17 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Tekijä: </strong>%1<br>%2 - + Unknown Tuntematon - + No description provided. Ei kuvausta. @@ -8635,7 +9054,7 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Lataa korjaukset uudelleen - + There are no patches available for this game. Ei korjauksia saatavilla tähän peliin. @@ -8645,408 +9064,419 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Title: - Title: + Nimike: Clear the line to restore the original title... - Clear the line to restore the original title... + Tyhjennä linja palauttaaksesi alkuperäisen nimikkeen... - + Restore - Restore + Palauta - Path: - Path: + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + English Title: + English Title: + + + + Path: + Polku: + + + Serial: Sarjanumero: - + CRC: CRC: - + Type: Tyyppi: - + PS2 Disc PS2-levy - + PS1 Disc PS1-levy - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Alue: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brasilia) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (Kiina) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hongkong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japani) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (Yhdysvallat) - + Other - Other + Muu - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (Etelä-Afrikka) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Itävalta) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgia) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Eurooppa/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (Ranska) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Suomi) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Saksa) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Kreikka) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italia) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (Intia) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Eurooppa/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Alankomaat) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norja) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugali) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Puola) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Venäjä) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Espanja) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Skandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Ruotsi) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Sveitsi) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Iso-Britannia) - + Compatibility: Yhteensopivuus: - + Unknown Tuntematon - + Not Bootable Käynnistymätön - + Reaches Intro Reaches Intro - + Reaches Menu Pääsee valikkoon - + In-Game In-Game - + Playable Pelattava - + Perfect - Perfect + Täydellinen - + Input Profile: Syöteprofiili: - + Shared Refers to the shared settings profile. Jaettu - + Disc Path: Disc Path: - + Browse... Selaa... - + Clear - Clear + Tyhjennä - + Verify - Verify + Vahvista - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode - Mode + Tila - - + + Start - Start + Käynnistä - - + + Sectors - Sectors + Sektorit - - + + Size Koko - - + + MD5 MD5 - - + + Status - Status + Tila - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Virhe - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9054,62 +9484,62 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist GraphicsSettingsWidget - + Renderer: Hahmonnin: - + Adapter: - Adapter: + Adapteri: - + Display Näyttö - + Fullscreen Mode: Koko näytön tila: - + Aspect Ratio: Kuvasuhde: - + Fit to Window / Fullscreen Sovita ikkunaan / koko näyttöön - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Automaattinen Standardi (4:3 Interloitu / 3:2 Progressiivi) - - + + Standard (4:3) Vakio (4:3) - - + + Widescreen (16:9) Laajakuva (16:9) - + FMV Aspect Ratio: FMV-kuvasuhde: - - - + + + @@ -9119,12 +9549,12 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Pois Käytöstä (Oletus) - - - - - - + + + + + + @@ -9135,92 +9565,92 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Automaattinen (oletus) - + None (Interlaced, also used by Progressive) Ei mitään (Interlaced, Progressive myös käyttää) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None Ei mitään - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9228,355 +9658,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: - Crop: + Rajaa: - + Left: Warning: short space constraints. Abbreviate if necessary. - Left: + Vasen: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. - Top: + Yläosa: - + Right: Warning: short space constraints. Abbreviate if necessary. - Right: + Oikea: - + Bottom: Warning: short space constraints. Abbreviate if necessary. - Bottom: + Alaosa: - + Screen Offsets - Screen Offsets + Ruutu Offsetit - + VSync Pystytahdistus - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Sumennuksenesto - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Kuvakaappauksen koko: - + Screen Resolution Näytön kuvatarkkuus - + Internal Resolution - Internal Resolution + Sisäinen Resoluutio - + Internal Resolution (Aspect Uncorrected) - Internal Resolution (Aspect Uncorrected) + Sisäinen Resoluutio (Korjaamaton Aspekti) - + PNG PNG - + JPEG JPEG - + Quality: Laatu: - - + + Rendering Hahmonnus - + Internal Resolution: - Internal Resolution: + Sisäinen Resoluutio: - + Mipmapping: Mipmapping: - - + + Off Pois päältä - + Basic (Generated Mipmaps) - Basic (Generated Mipmaps) + Perus (Generoidut Mipmapit) - + Full (PS2 Mipmaps) - Full (PS2 Mipmaps) + Täysi (PS2 Mipmaps) - - + + Texture Filtering: - Texture Filtering: + Tekstuuri Filtterointi: - - + + Nearest Lähin - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Pois (Ei mitään) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: - Anisotropic Filtering: + Anisotrooppinen Filtteröinti: - + Dithering: Dithering: - + Scaled Skaalattu - + Unscaled (Default) Skaalaamaton (oletus) - + Blending Accuracy: Blending Accuracy: - + Minimum - Minimum + Minimi - + Basic (Recommended) - Basic (Recommended) + Perus (Suositeltu) - + Medium Medium - + High Korkea - + Full (Slow) - Full (Slow) + Täysi (Hidas) - + Maximum (Very Slow) - Maximum (Very Slow) + Maksimi (Tosi Hidas) - + Texture Preloading: - Texture Preloading: + Tekstuuri Esilataus: - + Partial Osittainen - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads säikeet - + Mipmapping - Mipmapping + Mipmäppäys - + Auto Flush Auto Flush - + Hardware Fixes Laitteistokorjaukset - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9584,79 +10019,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (ei käytössä) - + 1 (64 Max Width) 1 (64 enimmäisleveys) - + 2 (128 Max Width) 2 (128 enimmäisleveys) - + 3 (192 Max Width) 3 (192 enimmäisleveys) - + 4 (256 Max Width) 4 (256 enimmäisleveys) - + 5 (320 Max Width) 5 (320 enimmäisleveys) - + 6 (384 Max Width) 6 (384 enimmäisleveys) - + 7 (448 Max Width) 7 (448 enimmäisleveys) - + 8 (512 Max Width) 8 (512 enimmäisleveys) - + 9 (576 Max Width) 9 (576 enimmäisleveys) - + 10 (640 Max Width) 10 (640 enimmäisleveys) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9667,606 +10097,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (normaali) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Ei käytössä (oletus) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes - Upscaling Fixes + Skaalaus Korjaukset - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) - Normal (Vertex) + Normaali (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half - Half + Puolikas - + Full - Full + Täysi - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Poista hahmonnuskorjaukset käytöstä - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Selaa... - - + + Open... Avaa... - - + + Reset - Reset + Nollaa - + PCSX2 will dump and load texture replacements from this directory. - PCSX2 will dump and load texture replacements from this directory. + PCSX2 dumppaa ja lataa tekstuuri korvauksia tästä luettelosta. - + Options Asetukset - + Dump Textures - Dump Textures + Dumppaa Tekstuureja - + Dump Mipmaps - Dump Mipmaps + Dumppaa Mipmäppejä - + Dump FMV Textures - Dump FMV Textures - - - - - Async Texture Loading - Async Texture Loading + Dumppaa FMV Tekstuureja - + Load Textures Lataa tekstuurit - + Precache Textures Precache Textures - + Post-Processing - Post-Processing + Jälkiprosessointi - + Sharpening/Anti-Aliasing - Sharpening/Anti-Aliasing + Terävöitys/Anti-Aliasiointi - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) Ei mitään (oletus) - + Sharpen Only (Internal Resolution) - Sharpen Only (Internal Resolution) + Vain Terävöitys (Sisäinen Resoluutio) - + Sharpen and Resize (Display Resolution) - Sharpen and Resize (Display Resolution) + Terävöitys ja Koon Muutto (Ruudun Resoluutio) - + Sharpness: Terävyys: - + FXAA FXAA - + Filters Suodattimet - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Kirkkaus: - + Contrast: - Contrast: + Kontrasti: - Saturation - Saturation + Kylläisyys - + OSD OSD - + On-Screen Display Kuvaruutunäyttö - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Näytä syötteet - + Show GPU Usage Näytä grafiikkasuorittimen käyttö - + Show Settings Näytä asetukset - + Show FPS Näytä kuvataajuus - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Näytä tilastot - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Nauhoitetaan - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments - Extra Arguments + Ekstra Argumentteja - + Capture Audio Tallenna ääntä - + Resolution: Kuvatarkkuus: - + x x - + Auto - Auto + Auto - + Capture Video - Capture Video + Ota Video - + Advanced Advanced here refers to the advanced graphics options. Lisäasetukset - + Advanced Options Lisäasetukset - + Hardware Download Mode: - Hardware Download Mode: + Laitteisto Lataus-tila: - + Accurate (Recommended) Tarkka (Suositeltu) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Pakkaamaton - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10276,69 +10716,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bittinopeus: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed - Disallowed + Epähyväksytty - + Allowed - Allowed + Hyväksytty - + Debugging Options Virheenjäljitysasetukset - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10383,7 +10817,7 @@ Swap chain: see Microsoft's Terminology Portal. Null Null here means that this is a graphics backend that will show nothing. - Null + Tyhjä @@ -10407,10 +10841,10 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] - Use Global Setting [%1] + Käytä Globaalia Asetusta [%1] @@ -10460,6 +10894,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10519,11 +10954,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10575,6 +11020,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Säätää kirkkautta. 50 on normaali. + + + + Adjusts contrast. 50 is normal. + Säätää kontrastia. 50 on normaali. + + + + Adjusts saturation. 50 is normal. + Säätää saturaatiota. 50 on normaali. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10590,11 +11090,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10632,7 +11127,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10707,12 +11202,12 @@ Swap chain: see Microsoft's Terminology Portal. Vertical Stretch - Vertical Stretch + Vertikaali Venytys Stretches (&lt; 100%) or squashes (&gt; 100%) the vertical component of the display. - Stretches (&lt; 100%) or squashes (&gt; 100%) the vertical component of the display. + Venyttää (&lt; 100%) tai kasaa (&gt; 100%) ruudun vertikaalisen komponentin. @@ -10721,8 +11216,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10734,7 +11229,7 @@ Swap chain: see Microsoft's Terminology Portal. Left - Left + Vasen @@ -10752,7 +11247,7 @@ Swap chain: see Microsoft's Terminology Portal. Top - Top + Yläosa @@ -10762,7 +11257,7 @@ Swap chain: see Microsoft's Terminology Portal. Right - Right + Oikea @@ -10772,7 +11267,7 @@ Swap chain: see Microsoft's Terminology Portal. Bottom - Bottom + Alaosa @@ -10797,7 +11292,7 @@ Swap chain: see Microsoft's Terminology Portal. Texture Filtering - Texture Filtering + Tekstuuri Filtterointi @@ -10864,11 +11359,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10919,11 +11409,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11041,7 +11526,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Näytä kuvaruutunäytön viestit @@ -11081,6 +11566,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11134,29 +11624,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Tarkka - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Oletus - - + + (Default) (Oletus) @@ -11164,405 +11664,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Grafiikat - + Save Screenshot Tallenna kuvakaappaus - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Äänenvoimakkuus: mykistetty - + Volume: {}% Äänenvoimakkuus: {}% - - Save slot {} selected (last save: {}). - Tallennuspaikka {} valittu (viimeinen tallennus: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Tallennuspaikka {} valittu (ei vielä tallennusta). - + No save state found in slot {}. Tallennettua tilaa ei löytynyt paikasta {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System Järjestelmä - + Open Pause Menu Avaa taukovalikko - + Open Achievements List Avaa saavutusluettelo - + Open Leaderboards List - Open Leaderboards List + Avaa Tulostaulu Lista - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Lisää äänenvoimakkuutta - + Decrease Volume Vähennä äänenvoimakkuutta - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Sammuta virtuaalikone - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Tallennetut tilat - + Select Previous Save Slot Valitse edellinen tallennuspaikka - + Select Next Save Slot Valitse seuraava tallennuspaikka - + Save State To Selected Slot Tallenna tila valittuun paikkaan - + Load State From Selected Slot Lataa tila valitusta paikasta - + Save State To Slot 1 Tallenna tila paikkaan 1 - + Load State From Slot 1 Lataa tila paikasta 1 - + Save State To Slot 2 Tallenna tila paikkaan 2 - + Load State From Slot 2 Lataa tila paikasta 2 - + Save State To Slot 3 Tallenna tila paikkaan 3 - + Load State From Slot 3 Lataa tila paikasta 3 - + Save State To Slot 4 Tallenna tila paikkaan 4 - + Load State From Slot 4 Lataa tila paikasta 4 - + Save State To Slot 5 Tallenna tila paikkaan 5 - + Load State From Slot 5 Lataa tila paikasta 5 - + Save State To Slot 6 Tallenna tila paikkaan 6 - + Load State From Slot 6 Lataa tila paikasta 6 - + Save State To Slot 7 Tallenna tila paikkaan 7 - + Load State From Slot 7 Lataa tila paikasta 7 - + Save State To Slot 8 Tallenna tila paikkaan 8 - + Load State From Slot 8 Lataa tila paikasta 8 - + Save State To Slot 9 Tallenna tila paikkaan 9 - + Load State From Slot 9 Lataa tila paikasta 9 - + Save State To Slot 10 Tallenna tila paikkaan 10 - + Load State From Slot 10 Lataa tila paikasta 10 @@ -11720,6 +12220,96 @@ Poista sidos napsauttamalla hiiren kakkospainikkeella %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11747,137 +12337,137 @@ Poista sidos napsauttamalla hiiren kakkospainikkeella InterfaceSettingsWidget - + Behaviour - Behaviour + Käyttäytyminen - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Estä näytönsäästäjä - + Save State On Shutdown Tallenna tila sammuttaessa - + Pause On Start Pause On Start - + Confirm Shutdown Vahvista sammutus - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Pelinäkymä - + Start Fullscreen Käynnistä koko näytön tilassa - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Piilota kohdistin kokonäyttötilassa - + Preferences Preferences - + Language: Kieli: - + Theme: Teema: - + Automatic Updater Automaattinen päivittäjä - + Update Channel: Update Channel: - + Current Version: Nykyinen versio: - + Enable Automatic Update Check Ota automaattinen päivitysten tarkistus käyttöön - + Check for Updates... Tarkista päivitykset... @@ -12070,7 +12660,7 @@ Poista sidos napsauttamalla hiiren kakkospainikkeella Näyttää pelin, jota paraikaa pelaat osana profiiliasi Discordissa. - + System Language [Default] Järjestelmän kieli [Default] @@ -12085,12 +12675,12 @@ Poista sidos napsauttamalla hiiren kakkospainikkeella Hide %1 - Hide %1 + Piiloita %1 Hide Others - Hide Others + Piiloita Muut @@ -12100,12 +12690,12 @@ Poista sidos napsauttamalla hiiren kakkospainikkeella Preferences... - Preferences... + Mieltymykset... Quit %1 - Quit %1 + Lopeta %1 @@ -12127,14 +12717,14 @@ Poista sidos napsauttamalla hiiren kakkospainikkeella - - + + Change Disc Vaihda levy - + Load State Lataa pelitallenne @@ -12161,7 +12751,7 @@ Poista sidos napsauttamalla hiiren kakkospainikkeella Switch Renderer - Switch Renderer + Vaihda Renderöijää @@ -12281,7 +12871,7 @@ Poista sidos napsauttamalla hiiren kakkospainikkeella Resolution Scale - Resolution Scale + Resoluution Skaala @@ -12317,7 +12907,7 @@ Poista sidos napsauttamalla hiiren kakkospainikkeella Fullscreen In Toolbar - Fullscreen + Koko Näyttö @@ -12402,31 +12992,31 @@ Poista sidos napsauttamalla hiiren kakkospainikkeella Shut Down In Toolbar - Shut Down + Sammuta Reset In Toolbar - Reset + Nollaa Pause In Toolbar - Pause + Pysäytä Load State In Toolbar - Load State + Lataa Tila Save State In Toolbar - Save State + Tallenna Tila @@ -12639,71 +13229,71 @@ Poista sidos napsauttamalla hiiren kakkospainikkeella - + Start Big Picture Mode Käynnistä televisiotila - + Big Picture In Toolbar - Big Picture + Iso Kuva Cover Downloader... - Cover Downloader... + Kansi Lataaja... - + Show Advanced Settings Näytä lisäasetukset Recording Viewer - Recording Viewer + Tallennus Katsoja - + Video Capture - Video Capture + Videon Otto Edit Cheats... - Edit Cheats... + Muokkaa Huijauksia... Edit Patches... - Edit Patches... + Muokkaa Paikkauksia... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Älä näytä uudelleen - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12716,168 +13306,173 @@ PCSX2-tiimi ei tarjoa mitään tukea määrtityksille, jotka muokkaavat näitä Haluatko varmasti jatkaa? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Vahvista sammutus - + Are you sure you want to shut down the virtual machine? Haluatko varmasti sammuttaa virtuaalikoneen? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Virhe - + You must select a disc to change discs. - You must select a disc to change discs. + Valitse levy tai vaihda levyjä. - + Properties... Ominaisuudet... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Aseta kansikuva... - + Exclude From List Jätä luettelosta pois - + Reset Play Time Nollaa peliaika - + Default Boot Oletus Käynnistys - + Fast Boot Nopea käynnistys - + Full Boot Täysi käynnistys - + Boot and Debug Käynnistys ja virheenjäljitys - + Add Search Directory... Lisää hakukansio... - + Start File Käynnistä tiedosto - + Start Disc Käynnistä levy - + Select Disc Image Valitse levykuva - + Updater Error - Updater Error + Päivittäjä Virhe - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Nykyisellä alustalla ei tueta automaattista päivitystä. - + Confirm File Creation - Confirm File Creation + Vahvista Tiedoston Luonti - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Pysäytetty - + Load State Failed - Load State Failed + Lataa Tila Epäonnistui - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12892,111 +13487,111 @@ Haluatko varmasti jatkaa? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode - Stop Big Picture Mode + Lopeta Iso Kuva-tila - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Pelin ominaisuudet - + Game properties is unavailable for the current game. Pelin ominaisuudet eivät ole saatavilla nykyiselle pelille. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Valitse levyasema: - + This save state does not exist. Tätä tilatallennusta ei ole olemassa. - + Select Cover Image Valitse kansikuva - - All Cover Image Types (*.jpg *.jpeg *.png) - Kaikki kansikuvatyypit (*.jpg *.jpeg *.png) - - - + Cover Already Exists - Cover Already Exists + Kansi On Jo Olemassa - + A cover image for this game already exists, do you wish to replace it? Kansikuva tälle pelille on jo olemassa, haluatko korvata sen? - - - - + + + + Copy Error Kopiointivirhe - + Failed to remove existing cover '%1' - Failed to remove existing cover '%1' + Nykyisen kannen '%1' poisto epäonnistui - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' - Failed to remove '%1' + '%1' poisto epäonnistui - - + + Confirm Reset Vahvista nollaus - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. - You must select a different file to the current cover image. + Valitse eri tiedosto nykyiseen kansi kuvaan. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. - Are you sure you want to reset the play time for '%1'? + Oletko varma että tahdot nollata peli ajan pelille '%1'? -This action cannot be undone. +Tätä toimintoa ei voi kumota. - + Load Resume State - Load Resume State + Lataa Jatko Tila - + A resume save state was found for this game, saved at: %1. @@ -13009,70 +13604,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot - Fresh Boot + Uusi Käynnistys - + Delete And Boot - Delete And Boot + Poista Ja Käynnistä - + Failed to delete save state file '%1'. Tallennetun tilan tiedoston '%1' poistaminen epäonnistui. - + Load State File... - Load State File... + Lataa Tila Tiedosto... - + Load From File... Lataa tiedostosta... - - + + Select Save State File Valitse pelitilan tallennustiedosto - - + + Save States (*.p2s) Pelitallenteet (*.p2s) - + Delete Save States... Poista pelitallenteet... - + Undo Load State Kumoa pelitilan lataus - + Resume (%2) Jatka (%2) - + Load Slot %1 (%2) Lataa paikka %1 (%2) - - + + Delete Save States Poista pelitallenteet - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13081,42 +13676,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 tallennettua tilaa poistettu. - + Save To File... Tallenna tiedostoon... - + Empty Tyhjä - + Save Slot %1 (%2) Tallenna paikka %1 (%2) - + Confirm Disc Change Vahvista levyn vaihto - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Vaihda levy - + Reset Nollaa @@ -13124,8 +13719,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13145,12 +13740,12 @@ The saves will not be recoverable. Convert Memory Card - Convert Memory Card + Konvertoi Muistikortti Conversion Type - Conversion Type + Konversio Tyyppi @@ -13206,6 +13801,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13227,7 +13823,7 @@ The saves will not be recoverable. Convert Memory Card Failed MemoryCardType should be left as-is. - Convert Memory Card Failed + Muistikortin Konvertointi Epäonnistui @@ -13239,7 +13835,7 @@ The saves will not be recoverable. Conversion Complete - Conversion Complete + Konversio Suoritettu @@ -13254,12 +13850,7 @@ The saves will not be recoverable. Cannot Convert Memory Card - Cannot Convert Memory Card - - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2 kertaa suurempi kuin tavallinen muistikortti. Todennäköisesti yhteensopivuusongelmia. + Muistikorttia Ei Voi Konvertoida @@ -13291,7 +13882,7 @@ The saves will not be recoverable. This is the standard Sony-provisioned size, and is supported by all games and BIOS versions. - This is the standard Sony-provisioned size, and is supported by all games and BIOS versions. + Tämä on standardi Sony varattu koko ja on tuettu kaikissa peleissä ja BIOS versioissa. @@ -13302,7 +13893,7 @@ The saves will not be recoverable. A typical size for third-party Memory Cards which should work with most games. - A typical size for third-party Memory Cards which should work with most games. + Tyypillinen koko kolmannen osapuolen Muistikortille jonka pitäisi toimia suurimmassa osassa peleistä. @@ -13386,103 +13977,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports - Console Ports + Konsoli Portit - + Memory Cards Muistikortit - + Folder: Kansio: - + Browse... Selaa... - + Open... Avaa... - + Reset - Reset + Nollaa - + Name Nimi - + Type Tyyppi - + Formatted - Formatted + Formatoitu - + Last Modified Viimeksi muokattu - + Refresh Lataa uudelleen - + + Create Luo - + Duplicate - Kahdenna + Monista - + Rename Nimeä uudelleen - + Convert - Convert + Konvertoi - + Delete Poista - + Settings Asetukset - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13652,58 +14244,58 @@ Tätä toimintoa ei voi peruuttaa, ja menetät jokaisen kortilla oleva tallennuk Muisti - + Copy Address - Copy Address + Kopioi Osoite - + Go to in disassembly Go to in disassembly - - + + Go to address Siirry osoitteeseen - + Show as 1 byte Näytä 1:nä tavuna - + Show as 2 bytes Näytä 2:na tavuna - + Show as 4 bytes Näytä 4:nä tavuna - + Show as 8 bytes Näytä 8:na tavuna - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Liitä @@ -13753,10 +14345,15 @@ Tätä toimintoa ei voi peruuttaa, ja menetät jokaisen kortilla oleva tallennuk Anna tekijän nimi - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13810,12 +14407,12 @@ Tätä toimintoa ei voi peruuttaa, ja menetät jokaisen kortilla oleva tallennuk Start - Start + Aloita L1 (Left Bumper) - L1 (Left Bumper) + L1 (Vasen Puskuri) @@ -13825,7 +14422,7 @@ Tätä toimintoa ei voi peruuttaa, ja menetät jokaisen kortilla oleva tallennuk R1 (Right Bumper) - R1 (Right Bumper) + R1 (Oikea Puskuri) @@ -13952,6 +14549,16 @@ Tätä toimintoa ei voi peruuttaa, ja menetät jokaisen kortilla oleva tallennuk Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13968,14 +14575,14 @@ Tätä toimintoa ei voi peruuttaa, ja menetät jokaisen kortilla oleva tallennuk Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14022,13 +14629,6 @@ Tätä toimintoa ei voi peruuttaa, ja menetät jokaisen kortilla oleva tallennuk DualShock 2 DualShock 2 -ohjain - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14072,7 +14672,7 @@ Leaving the original controller type connected, but this may cause issues. Tilt Up - Tilt Up + Ylös Kallistus @@ -14099,40 +14699,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Kitara + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. {} ei voitu avata. Sisäänrakennettuja pelikorjauksia ei ole saatavilla. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14150,13 +14773,13 @@ The URL was: %1 URL-osoite oli: %1 - + HDD Creator HDD Creator - + Failed to create HDD image HDD-kuvaa ei voitu luoda @@ -14190,7 +14813,7 @@ URL-osoite oli: %1 Information - Information + Tietoa @@ -14218,7 +14841,7 @@ URL-osoite oli: %1 Information - Information + Tietoa @@ -14258,7 +14881,7 @@ URL-osoite oli: %1 Copy Value - Kopioi arvo + Kopioi Arvo @@ -14288,7 +14911,7 @@ URL-osoite oli: %1 Go to in Memory - Siirry muistiin + Siirry Muistiin @@ -14361,12 +14984,11 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - Reset - Reset + Nollaa @@ -14377,7 +14999,7 @@ Otherwise delete the savestate and do a fresh boot. Confirm Folder - Confirm Folder + Vahvista Kansio @@ -14395,7 +15017,7 @@ Do you want to create this directory? Error - Error + Virhe @@ -14411,222 +15033,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Käytä yleistä asetusta [Käytössä] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Käytä yleistä asetusta [Disabled] + + + + + Use Global Setting [%1] + Käytä Globaalia Asetusta [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings - PCSX2-asetukset + PCSX2 Settings - + Restore Defaults - Palauta oletusarvot + Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close - Sulje - - - - - Summary - Yhteenveto + Close - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List - Peliluettelo + Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS - BIOS + BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - <strong>BIOS-asetukset</strong><hr>Määritä BIOS tässä.<br><br>Siirrä hiiri vaihtoehdon päälle lisätietojen saamiseksi. + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation - Emulaatio + Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches - Korjaukset + Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - <strong>Korjaukset</strong><hr>Tässä osiossa voit valita peliin lisättävät valinnaiset korjaukset, jotka voivat parantaa suorituskykyä, visuaalisuutta tai pelattavuutta. + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats - Huijaukset + Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes - Pelikorjaukset + Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics - Grafiikat + Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio - Ääni + Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards - Muistikortit + Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - <strong>Muistikortin asetukset</strong><hr>Luo ja määritä muistikortit täällä.<br><br>Siirrä hiiri asetuksen päälle lisätietojen saamiseksi. + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD - Verkko ja kiintolevy + Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders - Kansiot + Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements - Saavutukset + Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. - RAIntegration on käytössä, sisäänrakennettu RetroAchievements-tuki otetaan pois käytöstä. + RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced - Lisäasetukset + Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings - Palauta käyttöliittymäasetusten oletusarvot + Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14639,12 +15282,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14657,32 +15300,14 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value - Suositus - - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Käytä yleistä asetusta [Käytössä] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Käytä yleistä asetusta [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] + Recommended Value @@ -14769,8 +15394,8 @@ Do you want to continue? - Open in Explorer... - Avaa Explorerissa... + Open BIOS Folder... + Open BIOS Folder... @@ -14841,7 +15466,7 @@ Do you want to continue? Automatic Mapping - Automatic Mapping + Automaattinen Mappaus @@ -15037,97 +15662,97 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. VALMIS - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. EI MITÄÄN - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. - SLEEP + NUKU - + DELAY Refers to a Thread Wait State in the Debugger. - DELAY + VIIVÄSTYS - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15198,7 +15823,7 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Konami Keyboard - Konami Keyboard + Konami Näppäimistö @@ -15285,7 +15910,7 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Select - Select + Valitse @@ -15333,6 +15958,11 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15364,6 +15994,12 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15379,6 +16015,12 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15392,17 +16034,23 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Screen Width - Screen Width + Ruudun Leveys Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height - Screen Height + Ruudun Korkeus @@ -15426,7 +16074,7 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Selects the device to read audio from. - Selects the device to read audio from. + Valitsee laitteen mistä lukea audiota. @@ -15454,6 +16102,15 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15534,14 +16191,14 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Steering Left - Steering Left + Ohjaus Vasen Steering Right - Steering Right + Ohjaus Oikea @@ -15635,12 +16292,12 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Menu Up - Menu Up + Valikko Ylös Menu Down - Menu Down + Valikko Alas @@ -15654,6 +16311,26 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15664,6 +16341,12 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -15687,7 +16370,7 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Wheel Device - Wheel Device + Ratti Laite @@ -15972,12 +16655,12 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist Wheel Up - Wheel Up + Ratti Ylös Wheel Down - Wheel Down + Ratti Alas @@ -16163,117 +16846,117 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist USBBindingWidget_DrivingForce - + Hints Vihjeet - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad Ristiohjain - + Down Alas - + Left Vasen - + Up Ylös - + Right Oikea - + L1 L1 - + L2 L2 - + Brake Jarru - + Steering Left Rattiohjaus vasemmalle - + Steering Right Rattiohjaus oikealle - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Ympyrä - + Cross Risti - + Triangle Kolmio - + Square Neliö - + R1 R1 - + R2 R2 - + Accelerator Kiihdytin @@ -16281,67 +16964,67 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist USBBindingWidget_GTForce - + Hints Vihjeet - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Määrittääksesi ohjauksen useimmille nykyaikaisille 900 asteen ohjauspyörille, käännä ohjauspyörä yksi kierros haluttuun suuntaan, ja sitten takaisin keskiasentoon. - + Force Feedback Force Feedback - + X X - + A A - + Brake Jarru - + Steering Left Rattiohjaus vasemmalle - + Steering Right Rattiohjaus oikealle - + Left Paddle Vasen poljin - + Right Paddle Oikea poljin - + Y Y - + B B - + Accelerator Kiihdytin @@ -16349,71 +17032,71 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist USBBindingWidget_GunCon2 - + Buttons Näppäimet - + A A - + C C - + Start Start - + Select - Select + Valitse - + B B - + D-Pad D-Pad - - + + Down - Down + Alas - - + + Left - Left + Vasemmalle - - + + Up - Up + Ylös - - + + Right - Right + Oikealle - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16422,29 +17105,29 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist <p>Jos haluat käyttää ohjainta tai valopistoolia, joka simuloi ohjainta hiiren asemesta, sinun tulee sitoa se Relative Aimingiin. Muussa tapauksessa Relative Aiming tulee <strong>tulee jättää sidostamatta</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger - Trigger + Liipaisin - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Kalibrointilaukaus - + Calibration shot is required to pass the setup screen in some games. Joissakin peleissä vaaditaan kalibrointilaukaus, jotta asetusnäytöstä pääsee etenemään. @@ -16452,29 +17135,29 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist USBDeviceWidget - + Device Type Laitetyyppi - + Bindings Näppäinsidokset - + Settings Asetukset - + Automatic Mapping - Automatic Mapping + Automaattiset Mäppäykset - + Clear Mapping - Clear Mapping + Tyhjennä Mäppäykset @@ -16510,32 +17193,32 @@ Rekursiivinen skannaus vie enemmän aikaa, mutta tunnistaa tiedostot alihakemist VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Tuntematon peli - + Error Virhe - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16552,197 +17235,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. Tila tallennettu paikkaan {}. - + Failed to save save state to slot {}. Tilan tallennus paikkaan {} epäonnistui. - + + + Loading state + Loading state + + + There is no save state in slot {}. Paikassa {} ei ole tilatallennusta. - + Loading state from slot {}... Ladataan tilaa paikasta {}... - + Saving state to slot {}... Tallennetaan tilaa paikkaan {}... - + + Frame advancing + Frame advancing + + + Disc removed. Levy poistettu asemasta. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. - Huijaukset on poistettu käytöstä saavutusten kovanaamatilassa. + Huijaukset on poistettu käytöstä saavutusten hardcore-tilassa. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU-Rajoitustila ei ole oletusarvossa, tämä voi rikkoa joitakin pelejä. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU-Rajoitustila ei ole oletusarvossa, tämä voi rikkoa joitakin pelejä. - + Game Fixes are not enabled. Compatibility with some games may be affected. Pelikorjaukset eivät ole käytössä. Tämä saattaa vaikuttaa joidenkin pelien yhteensopivuuteen. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Yhteensopivuuskorjaukset eivät ole käytössä. Tämä saattaa vaikuttaa joidenkin pelien yhteensopivuuteen. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler ei ole käytössä, tämä vähentää merkittävästi suorituskykyä. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler ei ole käytössä, tämä vähentää merkittävästi suorituskykyä. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler ei ole käytössä, tämä vähentää merkittävästi suorituskykyä. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler ei ole käytössä, tämä vähentää merkittävästi suorituskykyä. - + EE Cache is enabled, this will significantly reduce performance. EE-välimuisti on käytössä, tämä vähentää merkittävästi suorituskykyä. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 on poistettu käytöstä, tämä saattaa heikentää suorituskykyä. - + mVU Flag Hack is not enabled, this may reduce performance. mVU korjaus ei ole käytössä, tämä voi heikentää suorituskykyä. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. - Texture Preloading is not Full, this may reduce performance. + Tekstuurin Esilataus ei ole Täysi, tämä saattaa vähentää suorituskykyä. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_fr-FR.ts b/pcsx2-qt/Translations/pcsx2-qt_fr-FR.ts index 027c620184ad05..547e7f9a28224b 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_fr-FR.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_fr-FR.ts @@ -17,12 +17,12 @@ <html><head/><body><p>PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits.</p></body></html> - <html><head/><body><p>PCSX2 est un émulateur de PlayStation 2 (PS2) libre et open-source. Il vise à reproduire le comportement du matériel de la PS2 en combinant des interpréteurs et recompilateurs de CPU MIPS avec une machine virtuelle servant à gérer les états matériels et la mémoire système de la PS2. PCSX2 vous permet de jouer à des jeux de PS2 sur votre PC et d'améliorer votre expérience de jeu en tirant partie du grand nombre de fonctionnalités mises à votre disposition.</p></body></html> + <html><head/><body><p>PCSX2 est un émulateur de PlayStation 2 (PS2) libre et open-source. Il vise à reproduire le comportement du matériel de la PS2 en combinant des interpréteurs et recompilateurs de CPU MIPS, avec une machine virtuelle servant à gérer les états matériels et la mémoire système de la PS2. PCSX2 vous permet de jouer à des jeux de PS2 sur votre PC et d'améliorer votre expérience de jeu en tirant partie du grand nombre de fonctionnalités mises à votre disposition.</p></body></html> <html><head/><body><p>PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment.</p></body></html> - <html><head/><body><p>PlayStation 2 et PS2 sont des marques déposées de Sony Interactive Entertainment. Cette application n'est aucunement affiliée à Sony Interactive Entertainment.</p></body></html> + <html><head/><body><p>PlayStation 2 et PS2 sont des marques déposées de Sony Interactive Entertainment. Cette application n'est pas affiliée de quelque manière que ce soit à Sony Interactive Entertainment.</p></body></html> @@ -62,7 +62,7 @@ Please enter user name and password for retroachievements.org below. Your password will not be saved in PCSX2, an access token will be generated and used instead. - Veuillez entrer le nom d'utilisateur et le mot de passe pour retroachievements.org ci-dessous. Votre mot de passe ne sera pas sauvegardé dans PCSX2, un jeton d'accès sera généré et utilisé à la place. + Veuillez saisir ci-dessous votre nom d'utilisateur et votre mot de passe pour vous connecter à retroachievements.org. Votre mot de passe ne sera pas enregistré dans PCSX2. À la place, un jeton d'accès sera généré et utilisé pour vous authentifier. @@ -77,306 +77,543 @@ Ready... - Prêt... + Prêt… - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. - <strong>Votre jeton de connexion RetroAcheivement n'est plus valide.</strong> Il faut saisir vos lettres de créance à nouveau pour que les accomplissements sont suivies. Votre mot de passe ne sauvegardera pas dans PCSX2, un jeton d'accès va être généré et utilisé au lieu. + <strong>Votre jeton de connexion RetroAcheivements n'est plus valide.</strong> Vous devez saisir à nouveau vos identifiants pour continuer à effectuer le suivi des succès. Votre mot de passe ne sera pas enregistré dans PCSX2. À la place, un jeton d'accès sera généré et utilisé pour vous authentifier. - + &Login - &Connexion + &Se connecter - + Logging in... - Connexion en cours... + Connexion en cours… - + Login Error - Erreur de Connexion + Erreur de connexion - - Login failed. Please check your username and password, and try again. - Impossible de se connecter. Veuillez vérifier votre nom d'utilisateur et mot de passe puis réessayez. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Échec de la connexion. +Erreur : %1 + +Veuillez vérifier votre nom d'utilisateur et votre mot de passe et réessayer. - + Login failed. - La connexion a échoué. + Échec de la connexion. AchievementSettingsWidget - - Global Settings - Réglages Globaux - - - - + + Enable Achievements - Activer les Succès - - - - - Show Challenge Indicators - Afficher les alertes défis - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Activer Rich Presence sur RA + Activer les succès - - + + Enable Hardcore Mode Activer le mode hardcore - - - Enable Leaderboards - Participer aux classements - - - + Test Unofficial Achievements - Tester les Succès Non-Officiels - - - - - Enable Test Mode - Activer le Mode Test + Tester les succès non officiels - - + + Enable Sound Effects - Activer les Effets Sonores + Activer les effets sonores - + Notifications Notifications - - - Show Notifications - Afficher les Notifications - - - - Duration - Durée - - - - - - + + 5 seconds - 5 secondes + 5 secondes - + Account Compte - - + + Login... - Connexion... + Se connecter… - + View Profile... - Voir le Profil... + Accéder au profil… - - Game Info - Informations du jeu + + Settings + Paramètres - - <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> - <html><head/><body><p align="justify">PCSX2 se connecte à RetroAchievements pour récupérer les succès et suivre votre progression. Pour utiliser les succès, créez un compte sur <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Pour afficher la liste des succès quand vous êtes en jeu, utilisez le raccourci clavier <span style=" font-weight:600;">Ouvrir le menu pause</span> et sélectionnez <span style=" font-weight:600;">Succès</span>.</p></body></html> + + + Enable Spectator Mode + Activer le mode spectateur - - seconds - secondes + + + Enable Encore Mode + Activer le mode encore + + + Show Achievement Notifications + Afficher les notifications succès + + + + Show Leaderboard Notifications + Afficher les notifications classement + + + - - - - Unchecked - Non coché + Enable In-Game Overlays + Activer les overlays - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Lorsqu'elle est activée et connectée, PCSX2 scannera les succès au lancement du jeu. + + Username: +Login token generated at: + Nom d'utilisateur : +Jeton de connexion généré le : + + + + Game Info + Informations sur le jeu + + + + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + <html><head/><body><p align="justify">PCSX2 se connecte à RetroAchievements pour récupérer les succès et suivre votre progression. Pour utiliser les succès, créez un compte sur <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Pour afficher la liste des succès pendant une partie, utilisez le raccourci <span style=" font-weight:600;">Ouvrir le menu pause</span> et sélectionnez <span style=" font-weight:600;">Succès</span>.</p></body></html> + + - When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - Lorsqu'elle est activée, PCSX2 supposera que tous les succès sont verrouillés et n'enverra aucune notification de déverrouillage au serveur. + + + Unchecked + décoché - - When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. - Lorsqu'elle est activée, PCSX2 listera l'ensemble des succès non-officiels. Veuillez noter que ces succès ne sont pas suivis par RetroAchievements, ils se déverrouillent donc à chaque fois. + + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. + Lorsque cette option est activée, PCSX2 considère que tous les succès sont verrouillés et aucune notification de déverrouillage n'est envoyée au serveur. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Lorsque cette option est activée, les informations rich presence sont collectées et envoyées aux serveurs RetroAchievements. + + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. + Lorsque cette option est activée, PCSX2 liste les succès provenant d'ensembles non officiels. Veuillez noter que RetroAchievements n'effectue pas le suivi de ces succès, ils peuvent donc être déverrouillés plusieurs fois. - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. Activer le mode défi et les classements. La sauvegarde d'état, les codes de triche et le ralenti seront désactivés. - - - - + + + + Checked - Coché + coché - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Activer le suivi et la participation aux classements dans les jeux pris en charge. Si vous désactivez la participation aux classements, vous pourrez toujours voir les classements et les scores mais aucun score ne sera envoyé. + + Plays sound effects for events such as achievement unlocks and leaderboard submissions. + Jouer des effets sonores lors d'événements tels qu'un succès déverrouillé ou la participation à un classement. - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Afficher un pop-up lors d'événements tels que l'obtention d'un succès ou la participation à un classement. + + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + Afficher l'icône des succès pouvant être débloqués dans le coin inférieur droit de l'écran. - - Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Jouer des effets sonores lors d'événements tels que l'obtention d'un succès ou la participation à un classement. + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Lorsque cette option est activée et que vous êtes connecté(e) à RetroAchievements, PCSX2 scanne les succès à son lancement. - - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - Afficher l'icône des succès pouvant être débloqués dans le coin inférieur droit de l'écran. + + Displays popup messages on events such as achievement unlocks and game completion. + Afficher un pop-up lors d'événements tels qu'un succès déverrouillé ou lorsque vous finissez un jeu. - - - - Notification Duration - Durée de la notification + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Afficher un pop-up lorsqu'un défi débute, lors de l'envoi de votre participation et lorsque vous échouez. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - La durée, en secondes, qu'une notification de l'achèvement restera à l'écran. + + When enabled, each session will behave as if no achievements have been unlocked. + Lorsque cette option est activée, les succès sont verrouillés à chaque nouvelle session de jeu. - + Reset System - Réinitialiser le Système + Réinitialiser le système - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Le mode hardcore sera activé après la réinitialisation du système. Voulez-vous réinitialiser le système maintenant ? + + + + %n seconds + + %n seconde + %n secondes + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Nom d'utilisateur : %1 Jeton de connexion généré le %2. - + Logout - Déconnexion + Se déconnecter - + Not Logged In. - Non connecté. - - - - %1 seconds - %1 secondes + Déconnecté(e). Achievements - + Hardcore mode will be enabled on system reset. Le mode hardcore sera activé après la réinitialisation du système. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - Impossible d'effectuer « {0} » lorsque le mode hardcore est activé. Voulez-vous désactiver le mode hardcore ? L'opération « {0} » sera annulée si vous sélectionnez Non. + {0} est impossible lorsque le mode hardcore est activé. Voulez-vous désactiver le mode hardcore ? L'opération sera annulée si vous sélectionnez Non. - + Hardcore mode is now enabled. Le mode hardcore est maintenant activé. - + + {} (Hardcore Mode) + {} (mode hardcore) + + + + {} (Unofficial) + {} (non officiel) + + + + Mastered {} + Vous maîtrisez {} + + + + Leaderboard attempt started. + Début du défi. + + + + Leaderboard attempt failed. + Vous avez échoué à ce défi. + + + + Your Time: {}{} + Temps : {}{} + + + + Your Score: {}{} + Score : {}{} + + + + Your Value: {}{} + Valeur : {}{} + + + + (Submitting) + (envoi en cours) + + + + Achievements Disconnected + Déconnecté de RetroAchievements + + + + An unlock request could not be completed. We will keep retrying to submit this request. + La demande de déverrouillage a échoué. Nous allons la renvoyer jusqu'à ce qu'elle soit acceptée. + + + + Achievements Reconnected + Connecté à RetroAchievements + + + + All pending unlock requests have completed. + Les demandes de déverrouillage en attente ont été transmises avec succès. + + + Hardcore mode is now disabled. Le mode hardcore est maintenant désactivé. - + + Confirm Hardcore Mode + Confirmation du mode hardcore + + + + Active Challenge Achievements + Défis actifs + + + (Hardcore Mode) (mode hardcore) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Vous avez remporté {0} des {1} succès, et {2} des {3} points. + + You have unlocked all achievements and earned {} points! + Vous avez déverrouillé tous les succès et gagné {} points ! - - This game has no achievements. - Ce jeu n'a aucun succès. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Vous avez déverrouillé {0} succès sur {1} et gagné {2} points sur {3}. + + + + {0} achievements, {1} points + {0} succès, {1} points + + + + Your Time: {0} (Best: {1}) + Temps : {0} (Meilleur temps : {1}) + + + + Your Score: {0} (Best: {1}) + Score : {0} (Meilleur score : {1}) + + + + Your Value: {0} (Best: {1}) + Valeur : {0} (Meilleure valeur : {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Classé(e) n° {1} sur {2} + + + + Server error in {0}: +{1} + Erreur du serveur ({0}) : +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score : {0} (Softcore : {1}) +Messages non lus : {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Vous avez déverrouillé {0} succès sur {1} et gagné {2} points sur {3}. + + + + Unknown + Inconnu(e) + + + + Locked + Verrouillé + + + + Unlocked + Déverrouillé + + + + Unsupported + Non pris en charge + + + + Unofficial + Non officiel + + + + Recently Unlocked + Déverrouillé récemment + + + + Active Challenges + Défis actifs + + + + Almost There + Vous y êtes presque ! + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Déverrouillé le : {} + + + + This game has {} leaderboards. + Ce jeu a {} classements. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + L'envoi des scores est désactivé car le mode hardcore est désactivé. Les classements sont en lecture seule. + + + + Show Best + Afficher le haut du classement + + + + Show Nearby + Afficher autour de votre position + + + + Rank + Rang + + + + Name + Nom + + + + Time + Temps + + + + Score + Score + + + + Value + Valeur - - Leaderboard submission is enabled. - La participation aux classements est activée. + + Date Submitted + Date de participation - + + Downloading leaderboard data, please wait... + Téléchargement des données du classement, veuillez patienter… + + + + + Loading... + Chargement… + + + + + Leaderboard download failed + Échec du téléchargement du classement + + + + This game has no achievements. + Aucun succès disponible pour ce jeu. + + + Failed to read executable from disc. Achievements disabled. - Échec de la lecture de l'exécutable depuis le disque. Les succès sont désactivés. + Échec de la lecture de l'exécutable depuis le disque. Succès désactivés. @@ -430,7 +667,7 @@ Jeton de connexion généré le %2. Checked - Coché + coché @@ -446,7 +683,7 @@ Jeton de connexion généré le %2. Moderate speedup for some games, with no known side effects. - Amélioration modérée des performances de certains jeux, et aucun effet négatif connu. + Amélioration modérée des performances de certains jeux et aucun effet négatif connu. @@ -457,12 +694,12 @@ Jeton de connexion généré le %2. Unchecked - Décoché + décoché Interpreter only, provided for diagnostic. - Interpréteur seulement, utilisé pour les diagnostics. + Interpréteur uniquement, utilisé pour les diagnostics. @@ -542,7 +779,7 @@ Jeton de connexion généré le %2. mVU Flag Hack mVU = PCSX2's recompiler for VU (Vector Unit) code (full name: microVU) - mVU Flag Hack + Hack « mVU Flag » @@ -562,7 +799,7 @@ Jeton de connexion généré le %2. Automatically loads and applies fixes to known problematic games on game start. - Charge et applique automatiquement des correctifs au lancement des jeux ayant des problèmes connus. + Charger et appliquer automatiquement des correctifs au lancement des jeux ayant des problèmes connus. @@ -578,220 +815,220 @@ Jeton de connexion généré le %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. La modification de ces options pourrait rendre vos jeux inutilisables. C'est à vos risques et périls : l'équipe PCSX2 ne fournira aucune assistance aux utilisateurs ayant modifié ces paramètres. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). Emotion Engine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Rounding Mode : - - - + + + Nearest Nearest - - - + + + Negative Negative - - - + + + Positive Positive - - - + + + Chop / Zero (Default) Chop / Zero (par défaut) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Clamping Mode : - - + + None - Aucun + None - - - + + + Normal (Default) Normal (par défaut) - + None ClampMode - Aucune + None - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preserve Sign - + Full Full - + Wait Loop Detection Détection de l'attente active - - + + Enable Recompiler Activer le recompilateur - + Enable Fast Memory Access Activer l'accès rapide à la mémoire - + Enable Cache (Slow) Activer le cache (lent) - + INTC Spin Detection Détection des boucles INTC - + Pause On TLB Miss Mettre en pause lors d'un TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: VU1 Rounding Mode : - + mVU Flag Hack - mVU Flag Hack + Hack « mVU Flag » - + Enable VU1 Recompiler Activer le recompilateur VU1 - + Enable VU0 Recompiler (Micro Mode) Activer le recompilateur VU0 (mode micro) - - + + Extra Extra - + VU0 Clamping Mode: VU0 Clamping Mode : - + VU0 Rounding Mode: VU0 Rounding Mode : - + VU1 Clamping Mode: VU1 Clamping Mode : - + I/O Processor (IOP, MIPS-I) I/O Processor (IOP, MIPS-I) - + Game Settings Paramètres de jeu - + Enable Game Fixes Activer les correctifs - + Enable Compatibility Patches Activer les patchs de compatibilité - + Frame Rate Control Contrôle du taux de rafraîchissement - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. - Hz +  Hz - + PAL Frame Rate: Taux de rafraîchissement PAL : - + NTSC Frame Rate: Taux de rafraîchissement NTSC : - + PINE Settings Paramètres PINE - + Slot: Emplacement : - + Enable Activer @@ -799,182 +1036,182 @@ Jeton de connexion généré le %2. AudioSettingsWidget - + Timestretch Settings Paramètres TimeStretch - + Sequence Length: Longueur de la séquence : - + 30 30 - + Seekwindow Size: Taille de la Seekwindow : - + 20 20 - + Overlap: Superposition : - + 10 10 - + Restore Defaults - Réinitialiser + Rétablir les valeurs par défaut - + Volume Volume - + 100% 100 % - + Mixing Settings Paramètres de mixage - + Synchronization: Synchronisation : - + TimeStretch (Recommended) TimeStretch (recommandé) - + Async Mix (Breaks some games!) Mixage asynchrone (casse certains jeux !) - + None (Audio can skip.) - Aucun (le son peut être saccadé) + Aucune (le son peut être saccadé) - + Expansion: - Expansion : + Upmixing : - + Stereo (None, Default) - Stéréo (désactivée, par défaut) + Stéréo (désactivé, par défaut) - + Quadraphonic - Quadraphonic + Quadriphonique - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Niveau ProLogic : - + None (Default) Désactivé (par défaut) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Décodage ProLogic (basique) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Décodage ProLogic II (gigaherz) - + Target Latency: Latence cible : - + 60 ms 60 ms - + Output Settings Paramètres de sortie - + Output Module: Module de sortie : - + Output Latency: - Latence en sortie : + Latence de sortie : - + 20 ms 20 ms - + Minimal - Minimum + Minimale - + Output Backend: Backend : - + Maximum Latency: Latence maximale : - + Output Device: Périphérique de sortie : @@ -991,7 +1228,7 @@ Jeton de connexion généré le %2. ms Measuring unit that will appear after the number selected in its option. Adapt the space depending on your language's rules. - ms +  ms @@ -1006,12 +1243,12 @@ Jeton de connexion généré le %2. Expansion - Extension + Upmixing Determines how the stereo output from the emulated system is upmixed into a greater number of the output speakers. - Déterminez la façon dont la sortie stéréo du système émulé doit être utilisée avec un nombre plus important de haut-parleurs. + Déterminez la manière d'utiliser la sortie stéréo du système émulé avec un nombre plus important de haut-parleurs. @@ -1041,7 +1278,7 @@ Jeton de connexion généré le %2. When the sound output module supports multiple audio backends, determines the API to be used for audio output to the system. - Lorsque le module de sortie audio supporte plusieurs backends, vous pouvez définir ici l'API à utiliser pour la sortie audio. + Lorsque le module de sortie audio prend en charge plusieurs backends, vous pouvez définir ici l'API à utiliser pour la sortie audio. @@ -1066,7 +1303,7 @@ Jeton de connexion généré le %2. Output Latency - Latence en sortie + Latence de sortie @@ -1081,7 +1318,7 @@ Jeton de connexion généré le %2. 30 ms - 30 ms + 30 ms @@ -1097,7 +1334,7 @@ Jeton de connexion généré le %2. 10 ms - 10 ms + 10 ms @@ -1134,7 +1371,7 @@ Jeton de connexion généré le %2. Average Latency: %1 ms (minimum output latency unknown) - Latence moyenne : %1 ms (latence en sortie minimale inconnue) + Latence moyenne : %1 ms (latence de sortie minimale inconnue) @@ -1149,7 +1386,7 @@ Jeton de connexion généré le %2. Update Available - Mise à Jour Disponible + Mise à jour disponible @@ -1162,44 +1399,49 @@ Jeton de connexion généré le %2. Nouvelle version : - - Download and Install... - Télécharger et Installer... + + Download Size: + Taille du téléchargement : - Skip This Update - Ignorer cette Mise à Jour + Download and Install... + Télécharger et installer… + Skip This Update + Ignorer cette version + + + Remind Me Later - Me le Rappeler Plus Tard + Me le rappeler plus tard Updater Error - Erreur de Mise à Jour + Erreur lors de la mise à jour - + <h2>Changes:</h2> <h2>Changements :</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - <h2>Avertissement de la Sauvegarde</h2><p>Installer cette mise à jour rendra vos sauvegardes <b>incompatibles</b>. Veuillez vous assurer que vous avez sauvegardé vos jeux à une carte SD avant d'installer cette mise à jour ou vous perdrez du progrès.</p> + <h2>Attention</h2><p>L'installation de cette mise à jour rendra <b>incompatibles</b> vos sauvegardes d'état. Assurez-vous d'avoir sauvegardé votre progression dans tous vos jeux sur la Memory Card avant d'installer cette mise à jour ou vous perdrez votre progression.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Avertissement</h2><p>L'installation de cette mise à jour réinitialisera la configuration du programme. N'oubliez pas de reconfigurer vos paramètres après la mise à jour.</p> Savestate Warning - Avertissement de sauvegarde d'état + Avertissement @@ -1209,7 +1451,7 @@ Jeton de connexion généré le %2. Downloading %1... - Téléchargement de %1... + Téléchargement de %1… @@ -1233,93 +1475,98 @@ Jeton de connexion généré le %2. + Download Size: %1 MB + Taille du téléchargement : %1 Mo + + + Loading... - Chargement ... + Chargement… BIOSSettingsWidget - + BIOS Directory Dossier du BIOS - + PCSX2 will search for BIOS images in this directory. PCSX2 va rechercher des images de BIOS dans ce dossier. - + Browse... - Parcourir... + Parcourir… - + Reset Réinitialiser - + BIOS Selection Sélection du BIOS - - Open in Explorer... - Ouvrir dans l'Explorateur de Fichiers... + + Open BIOS Folder... + Ouvrir le dossier du BIOS… - + Refresh List - Actualiser la Liste + Actualiser - + Filename Nom de fichier - + Version Version - + Options and Patches Options et patchs - + Fast Boot - Démarrage Rapide + Démarrage rapide - + Fast Forward Boot - Démarrage rapide + Démarrage accéléré Checked - Coché + coché Patches the BIOS to skip the console's boot animation. - Patcher le BIOS pour sauter l'animation de démarrage de la console. + Patcher le BIOS pour passer l'animation de démarrage de la console. Unchecked - Non Coché + décoché Removes emulation speed throttle until the game starts to reduce startup time. - Supprime la limite de vitesse d'émulation jusqu'au lancement du jeu pour réduire le temps de démarrage. + Déverrouiller la vitesse d'émulation jusqu'au lancement du jeu pour réduire le temps de démarrage. @@ -1327,7 +1574,7 @@ Jeton de connexion généré le %2. Create / Modify Breakpoint - Créer / Modifier le Point d'Arrêt + Créer ou modifier un point d'arrêt @@ -1338,7 +1585,7 @@ Jeton de connexion généré le %2. Execute - Exécuter + Exécution @@ -1369,7 +1616,7 @@ Jeton de connexion généré le %2. Change - Modifier + Modification @@ -1389,7 +1636,7 @@ Jeton de connexion généré le %2. Log - Journal + Journaliser @@ -1408,107 +1655,100 @@ Jeton de connexion généré le %2. Invalid address "%1" - Adresse "%1" invalide + Adresse « %1 » invalide. Invalid condition "%1" - Condition "%1" invalide + Condition « %1 » invalide. Invalid size "%1" - Taille "%1" invalide + Taille « %1 » invalide. BreakpointModel - + Execute - Exécuter - - - - No Condition - Aucune Condition + Exécution - - + + -- - -- + - - + Enabled Activé - - + Disabled Désactivé - + Read Lecture - + Write(C) (C) = changes, as in "look for changes". - Écriture(C) + Écriture (C) - + Write Écriture - + TYPE Warning: limited space available. Abbreviate if needed. TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. - DECALAGE + ADRESSE - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. - TAILLE / LABEL + TAILLE / ÉTIQUETTE - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCTION - + CONDITION Warning: limited space available. Abbreviate if needed. CONDITION - + HITS Warning: limited space available. Abbreviate if needed. - ICI + ACCÈS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ACTIVÉ + X @@ -1516,17 +1756,17 @@ Jeton de connexion généré le %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - L'emplacement du disque de jeu est sur un lecteur amovible, des problèmes de performance tels que des saccades et des plantages peuvent survenir. + Le disque de jeu se situe sur un disque amovible, vous pourriez rencontrer des problèmes de performance tels que des saccades ou des plantages. - + Saving CDVD block dump to '{}'. - Sauvegarde du dump du bloc CDVD vers '{}'. + Blockdump CDVD enregistré dans le fichier : « {} ». Audio - Son + Audio @@ -1555,34 +1795,34 @@ Jeton de connexion généré le %2. ControllerBindingWidget - + Virtual Controller Type - Type de Contrôleur Virtuel + Type de manette virtuelle - + Bindings Associations - + Settings - Réglages + Paramètres - + Macros Macros - + Automatic Mapping Association automatique - + Clear Mapping - Effacer les Associations + Effacer les associations @@ -1598,7 +1838,7 @@ Jeton de connexion généré le %2. Clear Bindings Binding: A pair of (host button, target button); Mapping: A list of bindings covering an entire controller. These are two different things (which might be the same in your language, please make sure to verify this). - Tout Effacer + Effacer les associations @@ -1609,237 +1849,232 @@ Jeton de connexion généré le %2. Automatic Binding - Configuration Automatique + Association automatique No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - Aucune association par défaut n'a été générée pour le périphérique '%1'. Le contrôleur ou la source peut ne pas prendre en charge la configuration automatique. + Impossible de générer des associations génériques pour le périphérique « %1 ». La manette ou la source d'entrées n'est peut-être pas compatible avec l'association automatique. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Croix Directionnelle + Touches directionnelles - - - + + + Down Bas - - - + + + Left Gauche - - - + + + Up Haut - - - + + + Right - Droit + Droite - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Analogique Gauche + Joystick analogique gauche - + Large Motor - Grand Moteur + Gros moteur - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. - Démarrer + START - + Select Leave this button name as-is or uppercase it entirely. - Sélectionner + SELECT - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Boutons Façade + Touches d'action - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Croix - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Carré - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangle - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Rond + Cercle - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Analogique Droit + Joystick analogique droit - + Small Motor - Petit Moteur + Petit moteur - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Modificateur de pression - + Analog - Analogique + ANALOG ControllerBindingWidget_Guitar - - Form - Fenêtre - - - + Yellow Jaune - - - - - - - - - - - + + + + + + + + + + + PushButton - Bouton Poussoir + PushButton - + Start - Start + START - + Red Rouge - + Green Vert - + Orange Orange - + Select - Select + SELECT - + Strum Up Gratter vers le haut - + Strum Down Gratter vers le bas - + Blue Bleu - + Whammy Bar - Whammy + Vibrato - + Tilt - Inclinaison + Incliner @@ -1847,12 +2082,12 @@ Jeton de connexion généré le %2. Restore Default Settings - Rétablir les Paramètres par Défaut + Rétablir les paramètres par défaut Browse... - Parcourir... + Parcourir… @@ -1863,125 +2098,135 @@ Jeton de connexion généré le %2. ControllerGlobalSettingsWidget - + SDL Input Source Source d'entrées SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - La source d'entrées SDL permet la prise en charge de la plupart des manettes et fournit des fonctionnalités avancées pour les manettes DualShock 4 et DualSense en mode Bluetooth (dont les vibrations et le contrôle des LED). + La source d'entrées SDL permet la prise en charge de la plupart des manettes et fournit des fonctionnalités avancées pour les manettes DualShock 4 et DualSense en mode Bluetooth (dont la prise en charge des vibrations et le contrôle des LED). - + Enable SDL Input Source Activer la source d'entrées SDL - + DualShock 4 / DualSense Enhanced Mode - Mode Amélioré DualShock 4 / DualSense + Mode amélioré pour DualShock 4 et DualSense - + XInput Source Source XInput - + Enable XInput Input Source Activer la source d'entrées XInput - + DInput Source Source DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - La source DirectInput permet la prise en charge des anciennes manettes qui sont incompatibles avec XInput. Nous vous recommandons l'utilisation de SDL avec ces manettes, mais DirectInput peut être utilisé si elles ne sont pas compatibles avec SDL. + La source DirectInput permet la prise en charge des anciennes manettes, incompatibles avec XInput. Nous vous recommandons l'utilisation de SDL avec ces manettes, mais DirectInput peut être utilisé si elles ne sont pas compatibles avec SDL. - + Enable DInput Input Source Activer la source d'entrées DInput - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Certaines manettes non-officielles indiquent que les valeurs positives de leurs joysticks analogiques sont inversées, mais oublient de le faire pour les valeurs négatives.</p><p>Résultat : les joysticks analogiques restent bloqués en position haute, même sans les toucher. </p><p>Activer cette option aura pour effet d'indiquer à PCSX2 d'ignorer les flags d'inversion au moment d'associer les touches, permettant à ces manettes de fonctionner correctement.</p></body></html> + + + + Ignore Inversion + Ignorer l'inversion + + + Profile Settings - Paramètres du Profil + Paramètres du profil - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - Lorsque cette option est activée, les raccourcis clavier sont définis par profil d'entrée et utilisés à la place des raccourcis clavier globaux. Par défaut, les raccourcis clavier sont partagés entre tous les profils. + Lorsque cette option est activée, les raccourcis sont définis par profil d'entrée et utilisés à la place des raccourcis globaux. Par défaut, les raccourcis sont partagés entre tous les profils. - + Use Per-Profile Hotkeys - Raccourcis clavier par profil + Raccourcis par profil - - + + Controller LED Settings Paramètres des LED des manettes - + Enable SDL Raw Input Activer l'entrée brute SDL - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - La source XInput permet la prise en charge des manettes Xbox 360, Xbox One, Xbox Series, et de toutes les manettes compatibles avec le protocole XInput. + La source XInput permet la prise en charge des manettes Xbox 360, Xbox One, Xbox Series et de toutes les manettes compatibles avec le protocole XInput. - + Controller Multitap - Multitap pour Manettes + Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Le multitap permet de connecter jusqu'à 8 manettes à la console. Chaque multitap fournit 4 ports. Le multitap n'est pas pris en charge par tous les jeux. - + Multitap on Console Port 1 - Multitap sur le Port 1 de la Console + Multitap sur le port console 1 - + Multitap on Console Port 2 - Multitap sur le Port 2 de la Console + Multitap sur le port console 2 - + Mouse/Pointer Source - Source Pointeur / Souris + Souris - + PCSX2 allows you to use your mouse to simulate analog stick movement. - PCSX2 vous permet d'utiliser votre souris pour simuler le mouvement d'un stick analogique. + PCSX2 vous permet d'utiliser votre souris pour simuler le mouvement d'un joystick analogique. - + Settings... - Paramètres... + Paramètres… - + Enable Mouse Mapping - Activer l'Association de la Souris + Activer l'association de la souris - + Detected Devices - Appareils Détectés + Périphériques détectés @@ -2015,65 +2260,65 @@ Jeton de connexion généré le %2. ControllerMacroEditWidget - + Binds/Buttons - Associations/Boutons + Boutons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - Sélectionnez les boutons que vous souhaitez activer avec cette macro. Tous les boutons sont activés simultanément. + Sélectionnez les boutons que vous souhaitez que cette macro active. Tous les boutons sont activés simultanément. - + Pressure Pression - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - Pour les touches sensibles à la pression, ce curseur contrôle quelle force sera simulée lorsque la macro est active. + Pour les touches sensibles à la pression, ce curseur contrôle la force à simuler lors de l'utilisation de la macro. - - + + 100% 100 % - + Trigger Déclencheur - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - Sélectionnez le déclencheur utilisé pour activer cette macro. Le déclencheur peut être un seul bouton, ou une combinaison de boutons. Shift-clic pour utiliser plusieurs déclencheurs. + Définissez comment activer la macro. Le déclencheur peut être un seul bouton ou une combinaison de boutons. Shift-clic pour définir plusieurs déclencheurs. - + Deadzone: Zone morte : - + Frequency Fréquence - + Macro will toggle every N frames. - La Macro s'activera toutes les N images. + La macro alternera d'état toutes les N images. - + Set... - Définir... + Définir… Not Configured - Non Configurée + Non configurée @@ -2084,7 +2329,7 @@ Jeton de connexion généré le %2. Set Frequency - Définir la Fréquence + Définir la fréquence @@ -2094,12 +2339,12 @@ Jeton de connexion généré le %2. Macro will not repeat. - La Macro ne se répétera pas. + La macro ne s'activera qu'une seule fois. Macro will toggle buttons every %1 frames. - La Macro activera les boutons toutes les %1 images. + La macro alternera l'état des touches toutes les %1 images. @@ -2107,7 +2352,7 @@ Jeton de connexion généré le %2. Controller Port %1 Macros - Macros de la manette %1 + Macros du port de manette %1 @@ -2126,7 +2371,7 @@ Not Configured/Buttons configured Mouse Mapping Settings - Paramètres de mappage de la souris + Paramètres d'association de la souris @@ -2150,7 +2395,7 @@ Not Configured/Buttons configured <html><head/><body><p><span style=" font-weight:700;">Mouse Mapping Settings</span><br/>These settings fine-tune the behavior when mapping a mouse to the emulated controller.</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">Paramètres du Mappage de la Souris</span><br/>Ces Paramètres gèrent le comportement lors du mappage de souris à une manette émulé.</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Paramètres d'association de la souris</span><br/>Ces paramètres vous permettent d'ajuster le comportement de la souris lorsque vous l'associez à une manette virtuelle.</p></body></html> @@ -2160,145 +2405,145 @@ Not Configured/Buttons configured X Dead Zone - Zone Morte X + Zone morte X Y Dead Zone - Zone Morte Y + Zone morte Y - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - Paramètres des manettes + Paramètres des manettes PCSX2 - + Editing Profile: Profil : - + New Profile - Nouveau Profil + Nouveau profil - + Load Profile Charger le profil - + Delete Profile - Supprimer le Profil + Supprimer le profil - - + + Restore Defaults - Rétablir les Paramètres par Défaut + Rétablir les paramètres par défaut - - + + Create Input Profile Créer un profil d'entrée - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - Les profils d'entrée personnalisés vous permettent de modifier le profil d'entrée partagé afin de le personnaliser pour chacun de vos jeux. -Pour appliquer un profil d'entrée personnalisé, ouvrez les propriétés du jeu puis sélectionnez un profil d'entrée depuis l'onglet « Résumé ». + Les profils d'entrée personnalisés vous permettent d'ajuster le profil d'entrée partagé pour chacun de vos jeux. +Pour associer un profil d'entrée personnalisé à un jeu, ouvrez les propriétés du jeu puis sélectionnez un profil d'entrée depuis l'onglet « Résumé ». Saisissez le nom du nouveau profil d'entrée : - - - - + + + + Error Erreur - + A profile with the name '%1' already exists. - Un profil avec le nom '%1' existe déjà. + Un profil nommé « %1 » existe déjà. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - Voulez-vous copier toutes les associations du profil actuellement sélectionné vers le nouveau profil ? Sélectionner Non créera un profil complètement vide. + Voulez-vous copier toutes les associations du profil actuel vers le nouveau profil ? Si vous sélectionnez Non, un profil totalement vide sera créé. - + Failed to save the new profile to '%1'. - Échec de l'enregistrement du nouveau profil dans '%1'. + Échec de l'enregistrement du nouveau profil sous « %1 ». - + Load Input Profile - Charger le profil d'entrée + Charger un profil d'entrée - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - Voulez-vous vraiment charger le profil d'entrée '%1' ? + Voulez-vous vraiment charger le profil d'entrée « %1 » ? -Les associations de touches globales actuelles seront supprimées et remplacées par les associations de touches du profil. +Les associations globales actuelles seront supprimées et remplacées par les associations du profil. Cette action est irréversible. - + Delete Input Profile - Supprimer le profil d'entrée + Supprimer un profil d'entrée - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - Voulez-vous vraiment supprimer le profil d'entrée '%1' ? + Voulez-vous vraiment supprimer le profil d'entrée « %1 » ? Cette action est irréversible. - + Failed to delete '%1'. - Échec de la suppression '%1'. + Échec de la suppression de « %1 ». - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - Voulez-vous vraiment restaurer la configuration par défaut de la manette ? + Voulez-vous vraiment rétablir les paramètres des manettes par défaut ? -Les associations de touches et les configurations partagées seront perdues, mais vos profils d'entrée seront conservés. +La configuration partagée et ses associations seront perdues mais vos profils d'entrée seront conservés. Cette action est irréversible. - + Global Settings - Paramètres Globaux + Paramètres globaux - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2551,8 @@ Cette action est irréversible. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,28 +2560,28 @@ Cette action est irréversible. %2 - - + + USB Port %1 %2 Port USB %1 %2 - + Hotkeys - Touche de Raccourcis + Raccourcis - + Shared "Shared" refers here to the shared input profile. Partagé - + The input profile named '%1' cannot be found. - Le profil d'entrée '%1' est introuvable. + Impossible de trouver le profil d'entrée « %1 ». @@ -2344,32 +2589,32 @@ Cette action est irréversible. Download Covers - Télécharger les Jaquettes + Télécharger des jaquettes PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 peut télécharger automatiquement les jaquettes pour les jeux qui n'en n'ont pas encore. Nous n'hébergeons aucune jaquette, l'utilisateur doit fournir sa propre source pour les images. + PCSX2 peut télécharger automatiquement les jaquettes manquantes. Nous n'hébergeons aucune jaquette, l'utilisateur doit fournir sa propre source. <html><head/><body><p>In the box below, specify the URLs to download covers from, with one template URL per line. The following variables are available:</p><p><span style=" font-style:italic;">${title}:</span> Title of the game.<br/><span style=" font-style:italic;">${filetitle}:</span> Name component of the game's filename.<br/><span style=" font-style:italic;">${serial}:</span> Serial of the game.</p><p><span style=" font-weight:700;">Example:</span> https://www.example-not-a-real-domain.com/covers/${serial}.jpg</p></body></html> - <html><head/><body><p>Dans la case ci-dessous, spécifiez les URL pour télécharger les jaquettes, avec une URL par ligne. Les variables suivantes sont disponibles :</p><p><span style=" font-style:italic;">${title}:</span> Titre du jeu.<br/><span style=" font-style:italic;">${filetitle}:</span> Nom de la composante du jeu's nom de fichier.<br/><span style=" font-style:italic;">${serial}:</span> Numéro de série du jeu.</p><p><span style=" font-weight:700;">Exemple :</span> https://www.example-not-a-real-domain.com/covers/${serial}.jpg</p></body></html> + <html><head/><body><p>Dans la case ci-dessous, spécifiez les URL à utiliser pour télécharger les jaquettes, avec une URL modèle par ligne. Liste des variables disponibles :</p><p><span style=" font-style:italic;">${title} :</span> nom du jeu.<br/><span style=" font-style:italic;">${filetitle} :</span> nom du jeu provenant d'une composante du nom de fichier.<br/><span style=" font-style:italic;">${serial} :</span> numéro de série du jeu.</p><p><span style=" font-weight:700;">Exemple :</span> https://www.exemple-faux-domaine.com/jaquettes/${serial}.jpg</p></body></html> By default, the downloaded covers will be saved with the game's title. If this is not desired, you can check the "Use Serial File Names" box below. Using serials instead of game titles will prevent conflicts when multiple regions of the same game are used. - Par défaut, les jaquettes téléchargées seront sauvegardées avec le titre du jeu's. Si ce n'est pas votre souhait, vous pouvez cocher la case "Utiliser le numéro de série comme nom" ci-dessous. Utiliser le numéros de séries au lieu des titres de jeu évitera les conflits lorsque plusieurs régions du même jeu sont utilisées. + Par défaut, les jaquettes téléchargées sont enregistrées dans un fichier portant le nom du jeu. Si cela ne vous convient pas, vous pouvez cocher la case « Utiliser le numéro de série pour nommer les fichiers » ci-dessous. Utiliser le numéro de série permettra d'éviter les conflits si vous avez plusieurs versions du même jeu. Use Serial File Names - Utiliser le Numéro de Séries comme Nom + Utiliser le numéro de série pour nommer les fichiers Waiting to start... - En attente de démarrage... + En attente… @@ -2406,206 +2651,244 @@ Cette action est irréversible. Fonctions - - Refresh - Rafraîchir + + Module + Module - - Filter - Filtrer + + Version + Version + Count + Nombre + + + + Refresh + Actualiser + + + + Filter + Filtre + + + Memory Search - Recherche Mémoire + Recherche mémoire - + End Fin - + Value Valeur - + Start - Démarrer + Début - + Type Type - + 1 Byte (8 bits) - 1 octet (8 bits) + 1 octet (8 bits) - + 2 Bytes (16 bits) - 2 octets (16 bits) + 2 octets (16 bits) - + 4 Bytes (32 bits) - 4 octets (32 bits) + 4 octets (32 bits) - + 8 Bytes (64 bits) - 8 octets (64 bits) + 8 octets (64 bits) - + Float - Flottant + Float - + Double Double - + String - Chaîne de caractères + String - + Array of byte - Tableau d'octet + Tableau d'octets - + Hex - Hex + Hexa - + Search Rechercher - + Memory Mémoire - + Breakpoints Points d'arrêt - + Threads - Fils d'exécution + Threads - + Active Call Stack - Pile d’appel active + Pile d'appels - + Breakpoint List Context Menu - Menu contextuel de la liste de points d'arrêt + Menu contextuel de la liste des points d'arrêt - + New Nouveau - + Edit - Éditer + Modifier - - - + + + Copy Copier - + Delete Supprimer - + + + + Copy all as CSV + Tout copier en CSV + + + + Paste from CSV + Coller depuis un CSV + + + Thread List Context Menu - Menu contextuel de la liste de fils d'exécution + Menu contextuel de la liste des threads - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ - Reformer les symboles + Décoder les symboles - + + Copy Function Name Copier le nom de la fonction - + + Copy Function Address Copier l'adresse de la fonction - + + Go to in Disassembly - Aller au désassemblage + Aller à l'adresse dans le désassembleur - + + Go to in Memory View - Aller à la vue Mémoire + Aller à l'adresse dans la vue mémoire + + + + + Module Tree + Arborescence des modules - + Stack List Context Menu - Menu contextuel de la liste de fils d'exécution + Menu contextuel de la pile d'appels - - - - - + + + + + Debugger Débogueur - + Invalid start address - Adresse de début invalide + Adresse de début invalide. - + Invalid end address - Adresse de fin invalide + Adresse de fin invalide. - + Start address can't be equal to or greater than the end address - L'adresse de début ne peut pas être supérieure ou égale à l'adresse de fin + L'adresse de début ne peut pas être supérieure ou égale à l'adresse de fin. - + Invalid search value - Valeur de recherche invalide + Valeur à rechercher invalide. - + Value is larger than type - La valeur est supérieure au type + Valeur trop grande pour le type. @@ -2613,12 +2896,12 @@ Cette action est irréversible. Network DNS Hosts Import/Export - Importer/Exporter les hôtes DNS du Réseau + Importer/exporter les hôtes DNS Select Hosts - Sélectionner les hôtes + Sélectionnez des hôtes. @@ -2659,24 +2942,24 @@ Cette action est irréversible. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Périphérique Ethernet : - + Ethernet Device Type: Type de périphérique Ethernet : - + Intercept DHCP - Intercepter le DHCP + Interception du DHCP @@ -2684,144 +2967,139 @@ Cette action est irréversible. Activé - + Enabled InterceptDHCP - Activé + Activée - + Subnet Mask: Masque de sous-réseau : - + Gateway Address: Adresse de la passerelle : - - + + Auto - Automatique + Auto - + Intercept DHCP: - Intercepter le DHCP : + Interception du DHCP : - + PS2 Address: Adresse de la PS2 : - + DNS1 Address: Adresse du DNS 1 : - + DNS2 Address: Adresse du DNS 2 : - + Internal DNS DNS interne - + Add Ajouter - + Delete Supprimer - + Export Exporter - + Import Importer - + Per game Par jeu - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - Les DNS internes peuvent être sélectionnés en utilisant les listes déroulantes DNS1/2, ou en les définissants à 192.0.2.1 + Choisissez le DNS interne dans les listes déroulantes DNS 1 et 2 ou utilisez l'adresse 192.0.2.1 - + Enabled InternalDNSTable Activé - + Hard Disk Drive - Disque Dur + Disque dur - + HDD File: Fichier : - + 40 40 - + 120 120 - + HDD Size (GiB): Taille (Gio) : - + Enabled HDD Activé - + Browse Parcourir - + Create Image - Créer une Image - - - - - + Créer une image PCAP Bridged - PCAP couvert + PCAP (pont) PCAP Switched - PCAP changé + PCAP (switch) @@ -2845,7 +3123,7 @@ Cette action est irréversible. - + Use Global Setting [%1] Utiliser le paramètre global [%1] @@ -2865,102 +3143,102 @@ Cette action est irréversible. Adresse - - + + Hosts File - Fichiers Hosts + Fichier hosts - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts Hôtes DNS - + Exported Successfully - Exporté avec Succès + Exportation réussie. - + Failed to open file - Échec de l'ouverture du fichier + Échec de l'ouverture du fichier. - + No Hosts in file - Aucun hôte dans le fichier + Le fichier ne contient aucun hôte. - + Imported Successfully - Importé avec Succès + Importation réussie. - - + + Per Game Host list Liste d'hôtes par jeu - + Copy global settings? - Copier les réglages globaux ? + Copier les paramètres globaux ? - + Delete per game host list? - Supprimer la liste d'hôtes par jeu ? + Supprimer la liste d'hôtes par jeu ? - + HDD Image File - Fichier de l'image du disque dur + Image de disque dur - + HDD (*.raw) Disque dur (*.raw) - + Overwrite File? - Écraser le Fichier ? + Écraser le fichier ? - + HDD image "%1" already exists? Do you want to overwrite? - L'image de disque dur "%1" existe déjà. + L'image de disque dur « %1 » existe déjà. Voulez-vous l'écraser ? - + HDD Creator Création du disque dur - + HDD image created - Image de disque dur créée + Image de disque dur créée. - + Use Global - Utiliser le paramètre global + Utiliser les paramètres globaux - + Override Modifier @@ -2968,71 +3246,71 @@ Voulez-vous l'écraser ? DebugSettingsWidget - + GS GS - + Draw Dumping Dump des dessins - + Dump GS Draws Dumper les dessins du GS - + Save RT - Enregistrer RT + Enregistrer la cible du rendu - + Save Frame - Sauvegarder l'image + Enregistrer l'image - + Save Texture - Enregistrer la Texture + Enregistrer la texture - + Save Depth - Enregistrer la Profondeur + Enregistrer la profondeur - + Start Draw Number: Numéro du premier dessin : - + Draw Dump Count: Nombre de dumps de dessin : - + Hardware Dump Directory: Dossier des dumps matériels : - + Software Dump Directory: Dossier des dumps logiciels : - - + + Browse... - Parcourir... + Parcourir… - - + + Open... - Ouvrir... + Ouvrir… @@ -3043,29 +3321,53 @@ Voulez-vous l'écraser ? Débogueur PCSX2 - - - + + Run Exécuter - + Step Into Pas à pas détaillé - + + F11 + F11 + + + Step Over Pas à pas principal - + + F10 + F10 + + + Step Out Pas à pas sortant - + + Shift+F11 + Shift+F11 + + + + Always On Top + Toujours visible + + + + Show this window on top + Garder cette fenêtre toujours visible + + + Pause Pause @@ -3078,149 +3380,174 @@ Voulez-vous l'écraser ? Désassembleur - + Copy Address - Copier l'Adresse + Copier l'adresse - + Copy Instruction Hex - Copier l'Instruction Hex + Copier l'hexa de l'instruction - + Copy Instruction Text - Copier l'Instruction Text + Copier l'instruction au format texte - + Assemble new Instruction(s) - Assembler nouvelle(s) instruction(s) + Assembler des instructions - + NOP Instruction(s) - Instruction(s) NOP + NOPer des instructions - + Run to Cursor Exécuter jusqu'au curseur - + Jump to Cursor - Aller jusqu'au curseur + Sauter vers l'emplacement du curseur - + Toggle Breakpoint - Basculer le point d'arrêt + Activer/désactiver un point d'arrêt - + Follow Branch - Suivre la Branche + Aller à la cible de la branche - + Go to Address - Aller à l'adresse + Aller à une adresse - + Go to in Memory View - Aller à la vue Mémoire + Aller à l'adresse dans la vue mémoire - - + + Add Function Ajouter une fonction - - + + Rename Function Renommer la fonction - + Remove Function Supprimer la fonction - - + + Assemble Error Erreur lors de l'assemblage - + Unable to change assembly while core is running - Impossible de changer le code assembleur lorsque le noyau est en cours d'exécution + Impossible de modifier l'assembleur lorsque le noyau est en cours d'exécution. - + Assemble Instruction - Instructions pour l'assemblage + Assembler une instruction - + Go to address - Aller à l’adresse + Aller à une adresse - + Go to address error - Aller à l'adresse d'erreur + Erreur « aller à une adresse » - + Invalid address - Adresse invalide + Adresse invalide. - + Add Function Error - Erreur d'ajout de fonction + Erreur lors de l'ajout de la fonction - + A function entry point already exists here. Consider renaming instead. - Une fonction de point d'entrée existe déjà. Pensez plutôt à la renommer. + Un point d'entrée de fonction existe déjà à cet emplacement. Renommez plutôt la fonction existante. - - + + Function will be (0x%1) instructions long. Enter function name - La fonction sera longue de (0x%1) instructions. + La fonction comptera (0x%1) instructions. Saisissez le nom de la fonction : - + Function name Nom de la fonction - - + + Rename Function Error - Erreur de renommage de fonction + Erreur lors du renommage de la fonction - + Function name cannot be nothing. Le nom de la fonction ne peut pas être vide. - + No function / symbol is currently selected. - Aucune fonction et aucun symbole n'est actuellement sélectionné. + Aucune fonction ni symbole sélectionné. + + + + Restore Function Error + Erreur lors du rétablissement de la fonction + + + + Unable to stub selected address. + L'adresse sélectionnée est impossible à NOPer. - + + Restore Instruction(s) + Rétablir des instructions + + + + Restore Function + Rétablir la fonction + + + + Stub (NOP) Function + NOPer la fonction + + + %1 NOT VALID ADDRESS %1 ADRESSE INVALIDE @@ -3228,17 +3555,17 @@ Saisissez le nom de la fonction : EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">Aucun jeu dans un format pris en charge n'a été trouvé.</span></p><p>Commencez par ajouter un dossier contenant des jeux.</p><p>Les dumps de jeux aux formats suivants seront scannés puis listés :</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Aucun jeu dans un format pris en charge n'a été trouvé.</span></p><p>Pour commencer, ajoutez un dossier contenant des jeux.</p><p>Les dumps de jeux aux formats suivants seront scannés puis listés :</p></body></html> - + Add Game Directory... - Ajouter un dossier... + Ajouter un dossier… - + Scan For New Games Actualiser la liste des jeux @@ -3246,241 +3573,237 @@ Saisissez le nom de la fonction : EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Emplacement : %1 | %2 | EE : %3 % | VU : %4 % | GS : %5 % + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Emplacement : %1 | %2 | EE : %3 % | GS : %4 % + + + %1x%2 %1x%2 - + Game: %1 FPS - Jeu : %1 IPS + Jeu : %1 IPS - + Video: %1 FPS (%2%) Vidéo : %1 IPS (%2 %) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - ID Jeu : %1 -Titre Jeu : %2 -Succès : %5 (%6) - + Jeu : %1 (%2) - - - %n points - - %n points - %n points - - - + Rich presence inactive or unsupported. Rich Presence inactive ou non prise en charge. - + Game not loaded or no RetroAchievements available. - Jeu non chargé ou aucun Rétro Succès disponible. + Aucun jeu chargé ou aucun RetroAchievements disponible. EmulationSettingsWidget - + Speed Control - Contrôle de la Vitesse + Contrôle de la vitesse - + Normal Speed: - Vitesse Normale : + Vitesse normale : - + Enable Speed Limiter Activer le limiteur de vitesse - + System Settings - Paramètres Système + Paramètres système - + Enable Instant VU1 - Activer le VU1 instantané + Activer « Instant VU1 » - + Enable Cheats Activer les codes de triche - + Slow-Motion Speed: - Vitesse de ralenti : + Vitesse du ralenti : - + Fast-Forward Speed: - Vitesse d'avance rapide : + Vitesse d'avance rapide : - + Enable Multithreaded VU1 (MTVU) - Activer le VU1 multi-threadé (MTVU) + Activer MTVU (VU1 multithreadée) - + Enable Host Filesystem Activer le système de fichiers hôte - + Enable Fast CDVD - Activer le CDVD rapide + Activer « Fast CDVD » - + EE Cycle Skipping: - Saut de cycle EE : + Saut de cycle EE : - - + + Disabled Désactivé - + Mild Underclock - Léger underclock + Underclock léger - + Moderate Underclock Underclock modéré - + Maximum Underclock Underclock maximal - + EE Cycle Rate: - Taux de cycle EE : + Cadence de l'EE : - + 50% (Underclock) 50 % (underclock) - + 60% (Underclock) 60 % (underclock) - + 75% (Underclock) 75 % (underclock) - + 100% (Normal Speed) 100 % (vitesse normale) - + 130% (Overclock) 130 % (overclock) - + 180% (Overclock) - 180 % (overclock)  + 180 % (overclock) - + 300% (Overclock) 300 % (overclock) - + Affinity Control: - Contrôle de l'Affinité : + Contrôle de l'affinité : - + EE > VU > GS - EE > VU > GS + EE > VU > GS - + EE > GS > VU - EE > GS > VU + EE > GS > VU - + VU > EE > GS - VU > EE > GS + VU > EE > GS - + VU > GS > EE - VU > GS > EE + VU > GS > EE - + GS > EE > VU - GS > EE > VU + GS > EE > VU - + GS > VU > EE - GS > VU > EE + GS > VU > EE - + Frame Pacing / Latency Control Cadence d'image et contrôle de la latence - + frames This string will appear next to the amount of frames selected, in a dropdown box. - images +  images - + Maximum Frame Latency: Latence d'image maximale : - + Optimal Frame Pacing Cadence d'image optimale - + Scale To Host Refresh Rate Utiliser le taux de rafraîchissement de l'hôte @@ -3493,18 +3816,18 @@ Succès : %5 (%6) Normal Speed - Vitesse Normale + Vitesse normale Sets the target emulation speed. It is not guaranteed that this speed will be reached, and if not, the emulator will run as fast as it can manage. - Définissez la vitesse d'émulation souhaitée. Rien ne garantie que cette vitesse sera atteinte et si elle ne l'est pas, l'émulateur fonctionnera aussi rapidement qu'il le peut. + Définissez la vitesse d'émulation cible. Rien ne garantit que cette vitesse sera atteinte et, si elle ne l'est pas, l'émulateur s'exécutera aussi vite que possible. User Preference - Préférence Utilisateur + préférence utilisateur @@ -3516,17 +3839,17 @@ Succès : %5 (%6) Checked - Cochée + coché Limits the emulation to the appropriate framerate for the currently running game. - Limite l'émulation à la vitesse appropriée au jeu en cours d'exécution. + Limiter la fréquence d'images à une valeur adaptée au jeu en cours d'exécution. Higher values may increase internal framerate in games, but will increase CPU requirements substantially. Lower values will reduce the CPU load allowing lightweight games to run full speed on weaker CPUs. - Des valeurs plus élevées peuvent augmenter la fréquence d'images interne aux jeux, mais l'utilisation du CPU augmentera significativement. Des valeurs plus basses réduiront la charge du CPU, ce qui permettra à des jeux légers de fonctionner à pleine vitesse sur des CPU plus faibles. + Des valeurs plus élevées peuvent augmenter la fréquence d'images interne des jeux, mais l'utilisation du CPU augmentera significativement. Des valeurs plus basses réduiront la charge du CPU, ce qui permettra à des jeux légers de fonctionner à pleine vitesse sur des CPU plus faibles. @@ -3537,12 +3860,12 @@ Succès : %5 (%6) Affinity Control - Contrôle de l'Affinité + Contrôle de l'affinité Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - Exécute le VU1 instantanément. Fournit une modeste amélioration de vitesse dans la plupart des jeux. Sûr pour la plupart des jeux, mais quelques-uns peuvent exposer des erreurs graphiques. + Exécuter instantanément la VU1. Amélioration modeste des performances dans la plupart des jeux. Fonctionne bien avec la plupart des jeux, mais il pourrait y avoir des problèmes d'affichage dans certains jeux. @@ -3551,22 +3874,27 @@ Succès : %5 (%6) Unchecked - Non Cochée + décoché Fast disc access, less loading times. Check HDLoader compatibility lists for known games that have issues with this. - Accès rapide au disque, diminue les temps de chargement. Vérifiez les listes de compatibilité de HDLoader pour les jeux connus ayant des problèmes avec cette option. + Accès rapide au disque, temps de chargement réduits. Les listes de compatibilité HDLoader vous permettront de connaître les jeux incompatibles avec cette option. Automatically loads and applies cheats on game start. - Charge et applique automatiquement au lancement du jeu les codes de triche. + Charger et appliquer automatiquement les codes de triche au lancement du jeu. Allows games and homebrew to access files / folders directly on the host computer. - Permet aux jeux et homebrews à accéder aux fichiers / dossiers directement sur l'ordinateur hôte. + Permettre aux jeux et aux homebrews d'accéder aux fichiers et aux dossiers présents sur l'ordinateur hôte. + + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Accélérer l'émulation pour que le taux de rafraîchissement de l'invité corresponde à celui de l'hôte. Cela améliorera la fluidité des animations, au prix d'accélérer l'émulation jusqu'à 1 %. Cette option est automatiquement désactivée s'il y a trop d'écart entre le taux de rafraîchissement de la console et celui de l'hôte. Si vous avez un écran à taux de rafraîchissement variable, désactivez cette option. @@ -3574,47 +3902,52 @@ Succès : %5 (%6) The "User Preference" string will appear after the text "Recommended Value:" Vitesse d'avance rapide + + + 100% + 100 % + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. - Définissez la vitesse d'avance rapide. Cette vitesse sera utilisée lorsque la touche d'avance rapide sera pressée/activée. + Définissez la vitesse d'avance rapide. Cette vitesse sera utilisée lors de l'utilisation du raccourci « Avance rapide ». Slow-Motion Speed The "User Preference" string will appear after the text "Recommended Value:" - Vitesse de ralenti + Vitesse du ralenti Sets the slow-motion speed. This speed will be used when the slow-motion hotkey is pressed/toggled. - Définissez la vitesse du ralenti. Cette vitesse sera utilisée lorsque la touche de ralenti sera pressée/activée. + Définissez la vitesse du ralenti. Cette vitesse sera utilisée lors de l'utilisation du raccourci « Ralenti ». EE Cycle Rate - Taux de cycle EE + Cadence de l'EE EE Cycle Skip - Saut de Cycle EE + Saut de cycle EE Sets the priority for specific threads in a specific order ignoring the system scheduler. May help CPUs with big (P) and little (E) cores (e.g. Intel 12th or newer generation CPUs from Intel or other vendors such as AMD). P-Core = Performance Core, E-Core = Efficiency Core. See if Intel has official translations for these terms. - Définir la priorité pour des threads spécifiques dans un ordre spécifique ignorant le planificateur système. Peut aider les processeurs avec des gros cœurs (P) et des petits cœurs (E) (par exemple, des processeurs Intel 12ème génération ou plus récent, ou des processeurs de Intel ou d'autres fournisseurs tel que AMD). + Définir la priorité de certains threads dans un ordre spécifique en ignorant le planificateur système. Cela peut aider les CPU ayant des gros cœurs (P) et des petits cœurs (E) (par exemple, les processeurs Intel 12ème génération ou plus récents, ou des processeurs de Intel ou d'autres fournisseurs tel que AMD). Enable Multithreaded VU1 (MTVU1) - Activer le VU1 multi-threadé (MTVU1) + Activer MTVU1 (VU1 multithreadée) Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - Cette option améliore généralement les performances si vous avez un processeur avec 4 cœurs ou plus. Fonctionne bien avec la plupart des jeux, mais certains jeux sont incompatibles et pourraient se bloquer. + Cette option améliore généralement les performances si vous avez un CPU avec 4 cœurs ou plus. Fonctionne bien avec la plupart des jeux, mais certains jeux sont incompatibles et pourraient se bloquer. @@ -3629,133 +3962,128 @@ Succès : %5 (%6) 2 Frames - 2 images + 2 images Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - Définissez le nombre maximum d'images pouvant être en attente du GS, avant que le thread CPU ne doive attendre que l'une d'elles soit terminée pour pouvoir reprendre. Augmenter la valeur peut permettre de lisser les variations de durées d'image, mais cela rajoute de la latence d’entrée. - - - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Lorsque la VSync et le rééchantillonnage audio sont activés, la vitesse de l'émulation est ajustée pour que le taux de rafraîchissement de la console corresponde à celui de l'hôte. Les animations seront plus fluides, mais cela peut accélérer la vitesse de l'émulation jusqu'à 1 %. Cette option est automatiquement désactivée s'il y a trop d'écart entre le taux de rafraîchissement de la console et celui de l'hôte. Si vous avez un écran à taux de rafraîchissement variable, désactivez cette option. + Définissez le nombre maximum d'images pouvant être en attente du GS, avant que le thread CPU ne doive attendre qu'une des images soit terminée avant de reprendre. Augmenter la valeur peut permettre de lisser les variations de durées d'image, mais cela rajoutera de la latence d'entrée. - + Use Global Setting [%1%] Utiliser le paramètre global [%1 %] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1 % [%2 IPS (NTSC), %3 IPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. - Illimité + Illimitée - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. - Personnalisé + Personnalisée - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - Personnalisé [%1 % / %2 IPS (NTSC), %3 IPS (PAL)] + Personnalisé [%1 %, %2 IPS (NTSC), %3 IPS (PAL)] - + Custom Speed - Vitesse Personnalisées + Vitesse personnalisée - + Enter Custom Speed - Entrez la Vitesse Personnalisée + Saisissez la vitesse désirée FolderSettingsWidget - + Cache Directory Dossier du cache - - - - - + + + + + Browse... - Parcourir... + Parcourir… - - - - - + + + + + Open... - Ouvrir... + Ouvrir… - - - - - + + + + + Reset Réinitialiser - + Used for storing shaders, game list, and achievement data. - Utilisé pour stocker les shaders, la liste des jeux, et les données des succès. + Utilisé pour stocker les shaders, la liste des jeux et les données des succès. - + Cheats Directory Dossier des codes de triche - + Used for storing .pnach files containing game cheats. Utilisé pour stocker les fichiers .pnach contenant des codes de triche. - + Covers Directory Dossier des jaquettes - + Used for storing covers in the game grid/Big Picture UIs. - Utilisé pour stocker les jaquettes des jeux pour le mode grille / interfaces Big Picture. + Utilisé pour stocker les jaquettes pour la grille des jeux et pour l'interface Big Picture. - + Snapshots Directory Dossier des instantanés - + Used for screenshots and saving GS dumps. Utilisé pour stocker les captures d'écran et les dumps du GS. - + Save States Directory Dossier des sauvegardes d'état - + Used for storing save states. Utilisé pour stocker les sauvegardes d'état. @@ -3763,4307 +4091,4228 @@ Succès : %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Aucun périphérique CD/DVD-ROM trouvé. Assurez-vous qu'un lecteur est bien connecté et que vous avez les autorisations nécessaires pour y accéder. - + Use Global Setting Utiliser le paramètre global - + Automatic binding failed, no devices are available. - L'association automatique a échoué, aucun périphérique disponible. + Échec de l'association automatique, aucun périphérique disponible. - + Game title copied to clipboard. - Titre du jeu copié dans le presse-papiers. + Nom du jeu copié dans le presse-papiers. - + Game serial copied to clipboard. Numéro de série du jeu copié dans le presse-papiers. - + Game CRC copied to clipboard. CRC du jeu copié dans le presse-papiers. - + Game type copied to clipboard. - Type du jeu copié dans le presse-papiers. + Type de jeu copié dans le presse-papiers. - + Game region copied to clipboard. Région du jeu copiée dans le presse-papiers. - + Game compatibility copied to clipboard. Compatibilité du jeu copiée dans le presse-papiers. - + Game path copied to clipboard. - Chemin du jeu copié dans le presse-papiers. + Chemin d'accès au jeu copié dans le presse-papiers. - + Per-game controller configuration initialized with global settings. - Configuration de la manette spécifique au jeu initialisée aux paramètres globaux. + Configuration des manettes propre au jeu initialisée aux paramètres globaux. - + Controller settings reset to default. Paramètres des manettes réinitialisés. - + No input profiles available. Aucun profil d'entrée disponible. - + Create New... - Créer un profil... + Créer un profil… - + Enter the name of the input profile you wish to create. Saisissez le nom du profil d'entrée que vous souhaitez créer. - + Are you sure you want to restore the default settings? Any preferences will be lost. - Voulez-vous vraiment restaurer les paramètres par défaut ? Toutes vos préférences seront perdues. + Voulez-vous vraiment rétablir les paramètres par défaut ? Toutes vos préférences seront perdues. - + Settings reset to defaults. Paramètres réinitialisés. - - Quick Save Slot - Emplacement de sauvegarde rapide - - - + No save present in this slot. - Aucune sauvegarde dans cet emplacement. + Aucune sauvegarde à cet emplacement. - + No save states found. Aucune sauvegarde d'état trouvée. - + Failed to delete save state. Échec de la suppression de la sauvegarde d'état. - + Failed to copy text to clipboard. - Échec de la copie des données dans le presse-papiers. + Échec de la copie des données vers le presse-papiers. - + This game has no achievements. - Ce jeu n'a aucun succès. + Aucun succès disponible pour ce jeu. - + This game has no leaderboards. - Ce jeu n'a aucun classement. + Aucun classement disponible pour ce jeu. - + Reset System Réinitialiser le système - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Le mode hardcore sera activé après la réinitialisation du système. Voulez-vous réinitialiser le système maintenant ? - + Launch a game from images scanned from your game directories. Lancer un jeu à partir d'images scannées dans vos dossiers de jeux. - + Launch a game by selecting a file/disc image. Lancer un jeu en sélectionnant une image disque ou un fichier. - + Start the console without any disc inserted. Démarrer la console sans insérer de jeu. - + Start a game from a disc in your PC's DVD drive. Lancer un jeu à partir du disque se trouvant dans le lecteur DVD de votre PC. - + Change settings for the emulator. - Modifiez les paramètres de l'émulateur. + Modifier les paramètres de l'émulateur. - + Exits the program. Quitter le programme. - + No Binding Aucune - + Setting %s binding %s. %s : association de %s. - + Push a controller button or axis now. Appuyez sur un bouton ou poussez un axe de votre manette. - + Timing out in %.0f seconds... - %.0f secondes... + %.0f secondes restantes… - + Unknown Inconnu(e) - + OK OK - + Select Device - Sélectionner un périphérique + Sélectionnez un périphérique - + Details Détails - + Options Options - + Copies the current global settings to this game. - Copier les paramètres globaux actuels dans les paramètres spécifiques à ce jeu. + Copier les paramètres globaux actuels dans les paramètres propres à ce jeu. - + Clears all settings set for this game. - Efface tous les paramètres définis pour ce jeu. + Effacer tous les paramètres définis pour ce jeu. - + Behaviour Comportement - + Prevents the screen saver from activating and the host from sleeping while emulation is running. - Empêche l’économiseur d’écran de s'activer et l’hôte de se mettre en veille pendant que l’émulation est en cours d'exécution. + Empêcher l'économiseur d'écran de s'activer et l'hôte de se mettre en veille pendant que l'émulation est en cours d'exécution. - + Shows the game you are currently playing as part of your profile on Discord. - Affiche le jeu auquel vous êtes en train de jouer dans votre profil Discord. + Afficher le jeu auquel vous êtes en train de jouer dans votre profil Discord. - + Pauses the emulator when a game is started. - Met en pause l'émulateur lorsqu'un jeu est lancé. + Mettre en pause l'émulateur lors du lancement d'un jeu. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - Met en pause l'émulateur lorsque vous minimisez la fenêtre ou que vous utilisez une autre application. L'émulation reprendra lorsque vous reviendrez sur PCSX2. + Mettre en pause l'émulateur lorsque vous minimisez la fenêtre ou que vous utilisez une autre application. L'émulation reprendra lorsque vous reviendrez sur PCSX2. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. - Met en pause l'émulateur lorsque vous ouvrez le menu rapide, et reprend l'émulation lorsque vous le fermez. + Mettre en pause l'émulateur lorsque vous ouvrez le menu rapide et reprendre l'émulation lorsque vous le fermez. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - Une confirmation vous sera demandée avant d'arrêter la machine virtuelle avec un raccourci clavier. + Une confirmation vous sera demandée lors de l'utilisation du raccourci « Éteindre la machine virtuelle ». - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - Enregistre automatiquement l'état de l'émulateur lorsque vous éteignez le système ou que vous quittez PCSX2. Vous pourrez ensuite reprendre directement à partir de l'endroit où vous avez arrêté de jouer. - - - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Active le chargement des surcouches ini à partir des paramètres de jeu ou des paramètres personnalisés par jeu. + Enregistrer automatiquement l'état de l'émulateur lorsque vous éteignez le système ou que vous quittez PCSX2. Vous pourrez ensuite reprendre directement à partir de l'endroit où vous avez arrêté de jouer. - + Uses a light coloured theme instead of the default dark theme. Utiliser un thème clair à la place du thème sombre par défaut. - + Game Display Affichage du jeu - - Automatically switches to fullscreen mode when the program is started. - Bascule automatiquement en mode plein écran lorsque le programme est lancé. - - - + Switches between full screen and windowed when the window is double-clicked. - Basculer entre les modes plein écran et fenêtré lors d'un double-clic sur la fenêtre. + Basculer entre les modes plein écran et fenêtré lors d'un double-clic dans la fenêtre. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - Masquer le pointeur/curseur de la souris lorsque l'émulateur est en mode plein écran. + Masquer le pointeur/curseur de la souris lorsque le mode plein écran est activé. - + Determines how large the on-screen messages and monitor are. Déterminez la taille des graphiques et des messages affichés à l'écran. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - Afficher des messages sur l'écran lors d'événements tels que la création ou le chargement d'une sauvegarde d'état, la prise d'une capture d'écran, etc. + Afficher un message à l'écran lors d'événements tels que la création ou le chargement d'une sauvegarde d'état, la prise d'une capture d'écran, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Afficher la vitesse d'émulation actuelle du système en pourcentage dans le coin supérieur droit de l'écran. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Afficher le nombre d'images (ou de synchronisations verticales) du système par seconde dans le coin supérieur droit de l'écran. - + Shows the CPU usage based on threads in the top-right corner of the display. - Afficher l'utilisation du processeur en fonction des threads dans le coin supérieur droit de l'écran. + Afficher l'utilisation du CPU en fonction des threads dans le coin supérieur droit de l'écran. - + Shows the host's GPU usage in the top-right corner of the display. Afficher l'utilisation du GPU de l'hôte dans le coin supérieur droit de l'écran. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Affiche la résolution à laquelle le jeu effectue son rendu dans le coin supérieur droit de l'écran. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Afficher des statistiques sur le GS (primitives, draw calls) dans le coin supérieur droit de l'écran. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Afficher des indicateurs lorsque vous activez l'avance rapide, mettez en pause, ou qu'un autre état anormal est actif. - + Shows the current configuration in the bottom-right corner of the display. Afficher la configuration actuelle dans le coin inférieur droit de l'écran. - + Shows the current controller state of the system in the bottom-left corner of the display. Afficher l'état système de la manette dans le coin inférieur gauche de l'écran. - + Shows a visual history of frame times in the upper-left corner of the display. - Afficher un historique des durées d'image dans le coin supérieur gauche de l'écran. + Afficher un historique visuel des durées d'image dans le coin supérieur gauche de l'écran. - + Displays warnings when settings are enabled which may break games. - Afficher des avertissements lorsque des paramètres pouvant causer un mauvais fonctionnement des jeux sont actifs. + Afficher des avertissements lorsque des paramètres pouvant affecter le bon fonctionnement des jeux sont activés. - + Resets configuration to defaults (excluding controller settings). Réinitialiser les paramètres (sauf les paramètres des manettes). - + Changes the BIOS image used to start future sessions. - Modifie l'image du BIOS utilisée pour démarrer les prochaines sessions. + Sélectionnez l'image de BIOS à utiliser lors des prochaines sessions. - + Automatic Automatique - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Par défaut + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + Lorsque cette option est activée, les paramètres propres à chaque jeu sont appliqués. Désactivez l'option pour toujours utiliser les paramètres globaux. + + + + Automatically switches to fullscreen mode when a game is started. + Basculer automatiquement en mode plein écran au lancement d'un jeu. + + + On-Screen Display - On-Screen Display + Affichage à l'écran + + + + %d%% + %d %% + + + + Shows the resolution of the game in the top-right corner of the display. + Afficher la résolution du jeu dans le coin supérieur droit de l'écran. - + BIOS Configuration - BIOS Configuration + Configuration du BIOS - + BIOS Selection Sélection du BIOS - + Options and Patches - Options and Patches + Options et patchs - + Skips the intro screen, and bypasses region checks. - Permet de passer l'écran de démarrage et de faire fonctionner un jeu venant d'une autre région. + Passer l'écran de démarrage et faire fonctionner les jeux provenant d'autres régions. - + Speed Control Contrôle de la vitesse - + Normal Speed Vitesse normale - + Sets the speed when running without fast forwarding. - Permet de définir la vitesse d'exécution hors avance rapide. + Définissez la vitesse d'exécution hors avance rapide. - + Fast Forward Speed Vitesse d'avance rapide - + Sets the speed when using the fast forward hotkey. - Permet de définir la vitesse lors de l'appui sur la touche d'avance rapide. + Définissez la vitesse à utiliser lors de l'utilisation du raccourci « Avance rapide ». - + Slow Motion Speed - Vitesse de ralenti + Vitesse du ralenti - + Sets the speed when using the slow motion hotkey. - Permet de définir la vitesse lors de l'appui sur la touche de ralenti. + Définissez la vitesse à utiliser lors de l'utilisation du raccourci « Activer/désactiver le ralenti ». - + Enable Speed Limiter Activer le limiteur de vitesse - + When disabled, the game will run as fast as possible. - En désactivant le limiteur de vitesse, le jeu s'exécutera aussi vite que possible. + Lorsque cette option est désactivée, le jeu s'exécute à la vitesse maximale. - + System Settings Paramètres système - + EE Cycle Rate - Taux de cycle EE + Cadence de l'EE - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocker ou overclocker le CPU de l'Emotion Engine émulé. - + EE Cycle Skipping Saut de cycle EE - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Pénaliser l'Emotion Engine émulé pour exécuter des programmes VU. - - - + Affinity Control Mode Mode de contrôle de l'affinité - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - Associer les threads de l'émulateur à un cœur du CPU pour améliorer potentiellement les performances et les variations des durées d'image. + Associer certains threads de l'émulateur à certains cœurs CPU pour potentiellement améliorer les performances et lisser les variations de durée d'image. - + Enable MTVU (Multi-Threaded VU1) - Activer MTVU (VU1 multi-threadé) - - - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Utiliser un thread supplémentaire pour les microprogrammes VU1. Boost de vitesse considérable. + Activer MTVU (VU1 multithreadée) - + Enable Instant VU1 - Activer le VU1 instantané + Activer « Instant VU1 » - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Réduire la division du temps processeur entre les recompilateurs VU1 et EE, ce qui permet d'exécuter le VU1 à une vitesse d'horloge infinie. - - - + Enable Cheats Activer les codes de triche - + Enables loading cheats from pnach files. Activer le chargement des codes de triche à partir des fichiers pnach. - + Enable Host Filesystem Activer le système de fichiers hôte - + Enables access to files from the host: namespace in the virtual machine. Activer l'accès aux fichiers de l'hôte dans la machine virtuelle par l'espace de noms « host: ». - + Enable Fast CDVD - Activer le CDVD rapide + Activer « Fast CDVD » - + Fast disc access, less loading times. Not recommended. - Accès rapide au disque et temps de chargement plus courts. Activation déconseillée. + Accès rapide au disque et temps de chargement plus courts. Déconseillé. - + Frame Pacing/Latency Control Cadence d'image et contrôle de la latence - + Maximum Frame Latency Latence d'image maximale - + Sets the number of frames which can be queued. Définissez le nombre d'images pouvant être mises en attente. - + Optimal Frame Pacing Cadence d'image optimale - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - Synchroniser les threads EE et GS après chaque image. Vous obtiendrez la latence d'entrée minimale, mais cela demandera plus de ressources. - - - - Adjust To Host Refresh Rate - Utiliser le taux de rafraîchissement de l'hôte + Synchroniser les threads EE et GS après chaque image. La latence d'entrée sera minimisée mais cela demandera plus de ressources. - + Speeds up emulation so that the guest refresh rate matches the host. Accélérer l'émulation pour que le taux de rafraîchissement de l'invité corresponde à celui de l'hôte. - + Renderer Moteur de rendu - + Selects the API used to render the emulated GS. Sélectionnez l'API à utiliser pour le rendu du GS émulé. - + Sync To Host Refresh (VSync) Synchroniser les rafraîchissements avec l'hôte (VSync) - + Synchronizes frame presentation with host refresh. Synchroniser la présentation des images avec le rafraîchissement de l'hôte. - + Display Affichage - + Aspect Ratio - Ratio d'aspect + Format d'image - + Selects the aspect ratio to display the game content at. - Sélectionnez le ratio d'aspect à utiliser pour l'affichage du jeu. + Sélectionnez le format d'image à utiliser pour l'affichage du jeu. - + FMV Aspect Ratio - Ratio d'aspect des FMV + Format d'image FMV - + Selects the aspect ratio for display when a FMV is detected as playing. - Sélectionnez le ratio d'aspect à utiliser lorsque la lecture d'une cinématique vidéo est détectée. + Sélectionnez le format d'image à utiliser lorsque la lecture d'une cinématique vidéo est détectée. - + Deinterlacing Désentrelacement - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - Sélectionnez l'algorithme utilisé pour convertir la sortie entrelacée de la PS2 en signal progressif adapté à l'affichage. + Sélectionnez l'algorithme à utiliser pour convertir la sortie entrelacée de la PS2 en signal progressif adapté à l'affichage. - + Screenshot Size Taille des captures d'écran - + Determines the resolution at which screenshots will be saved. Déterminez la résolution à laquelle les captures d'écran doivent être enregistrées. - + Screenshot Format Format des captures d'écran - + Selects the format which will be used to save screenshots. - Sélectionnez le format qui sera utilisé pour enregistrer les captures d'écran. + Sélectionnez le format à utiliser pour enregistrer les captures d'écran. - + Screenshot Quality Qualité des captures d'écran - + Selects the quality at which screenshots will be compressed. - Sélectionnez la qualité à utiliser pour la compression des captures d'écran. + Sélectionnez la qualité des captures d'écran compressées. - + Vertical Stretch Étirement vertical - + Increases or decreases the virtual picture size vertically. - Agrandit ou réduit verticalement la taille de l'image virtuelle. + Agrandir ou réduire verticalement l'image virtuelle. - + Crop Rognage - + Crops the image, while respecting aspect ratio. - Rogner l'image en respectant le ratio d'aspect. + Rogner l'affichage tout en respectant le format d'image. - + + %dpx + %d px + + + Enable Widescreen Patches Activer les patchs écran large - + Enables loading widescreen patches from pnach files. Activer le chargement des patchs écran large à partir des fichiers pnach. - + Enable No-Interlacing Patches Patchs de désactivation de l'entrelacement - + Enables loading no-interlacing patches from pnach files. Activer le chargement des patchs de désactivation de l'entrelacement à partir des fichiers pnach. - + Bilinear Upscaling Mise à l'échelle bilinéaire - + Smooths out the image when upscaling the console to the screen. - Lisse l'image lors de la mise à l'échelle de la sortie vidéo de la console à l'écran. + La mise à l'échelle bilinéaire lisse l'image lors de la mise à l'échelle de la sortie vidéo de la console à la résolution de l'écran. - + Integer Upscaling Mise à l'échelle par multiplicateur entier - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Ajouter une zone de remplissage autour de la sortie vidéo pour s'assurer que le ratio entre les pixels de l'hôte et les pixels de la console soit un nombre entier. Vous obtiendrez une image plus nette dans certains jeux 2D. - + Screen Offsets Décalage de l'écran - + Enables PCRTC Offsets which position the screen as the game requests. - Activer les Offsets PCRTC qui permettent de positionner l'écran comme demandé par le jeu. + Activer les « PCRTC Offsets » qui permettent de positionner l'écran comme demandé par le jeu. - + Show Overscan - Afficher la zone de surbalayage + Surbalayage (overscan) - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. - Affiche la zone de surbalayage pour les jeux qui dessinent au-delà de la zone sûre de l'écran. + Afficher la zone de surbalayage pour les jeux qui dessinent au-delà de la zone sûre de l'écran. - + Anti-Blur Anti-flou - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - Activer les hacks internes anti-flou. L'image sera moins fidèle au rendu PS2 mais beaucoup de jeux seront moins flous. + Activer les hacks internes anti-flou. L'image sera moins fidèle au rendu PS2 mais cela rendra beaucoup de jeux moins flous. - + Rendering Rendu - + Internal Resolution Résolution interne - + Multiplies the render resolution by the specified factor (upscaling). - Multiplier la résolution du rendu par le multiplicateur spécifié (mise à l'échelle du rendu). + Multiplier la résolution du rendu par la valeur spécifiée (mise à l'échelle du rendu). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. - Déterminez la façon dont les mipmaps doivent être utilisées lors du rendu des textures. + Déterminez la manière d'utiliser les mipmaps dans le rendu des textures. - + Bilinear Filtering Filtrage bilinéaire - + Selects where bilinear filtering is utilized when rendering textures. Sélectionnez où utiliser le filtrage bilinéaire dans le rendu des textures. - + Trilinear Filtering Filtrage trilinéaire - + Selects where trilinear filtering is utilized when rendering textures. Sélectionnez où utiliser le filtrage trilinéaire dans le rendu des textures. - + Anisotropic Filtering Filtrage anisotrope - - Selects where anistropic filtering is utilized when rendering textures. - Sélectionnez où utiliser le filtrage anisotrope dans le rendu des textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Sélectionnez le type de dithering à appliquer lorsque le jeu demande son utilisation. - + Blending Accuracy - Précision du blending + Précision des fusions - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - Déterminez le niveau de précision de l'émulation des types de blending non pris en charge par le moteur de rendu de l'hôte. + Déterminez le niveau de précision de l'émulation des modes de fusion qui ne sont pas pris en charge par le moteur de rendu de l'hôte. - + Texture Preloading Préchargement des textures - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Transférer au GPU les textures à utiliser dans leur entièreté, plutôt que des régions spécifiques. Cela peut améliorer les performances dans certains jeux. - + Software Rendering Threads Threads de rendu logiciel - + Number of threads to use in addition to the main GS thread for rasterization. - Nombre de threads additionnels à utiliser pour la rastérisation en plus du thread principal du GS. + Nombre de threads à utiliser pour la rastérisation en plus du thread principal du GS. - + Auto Flush (Software) - Auto-flush (logiciel) + Purge auto. (logiciel) - + Force a primitive flush when a framebuffer is also an input texture. Forcer une purge des primitives lorsqu'un framebuffer est aussi utilisé comme texture d'entrée. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Activer l'émulation de l'edge anti-aliasing du GS (AA1). - + Enables emulation of the GS's texture mipmapping. Activer l'émulation du mipmapping des textures du GS. - + Hardware Fixes Correctifs matériels - + Manual Hardware Fixes Correctifs matériels manuels - + Disables automatic hardware fixes, allowing you to set fixes manually. - Désactiver les correctifs matériels automatiques pour vous permettre de choisir manuellement les correctifs à appliquer. + Désactiver les correctifs matériels automatiques pour pouvoir choisir manuellement les correctifs à appliquer. - + CPU Sprite Render Size Taille du rendu CPU des sprites - + Uses software renderer to draw texture decompression-like sprites. Utiliser le moteur de rendu logiciel pour les dessins identifiés comme étant de la décompression de textures. - + CPU Sprite Render Level Niveau du rendu CPU des sprites - + Determines filter level for CPU sprite render. - Déterminez le niveau du filtre pour le rendu des sprites par le CPU. + Déterminez le niveau de filtre pour le rendu CPU des sprites. - + Software CLUT Render - Rendu CLUT logiciel + Rendu logiciel des CLUT - + Uses software renderer to draw texture CLUT points/sprites. - Utiliser le moteur de rendu logiciel pour dessiner les points et les sprites utilisant la texture CLUT. + Utiliser le moteur de rendu logiciel pour dessiner les points et les sprites des textures de palettes. - + Skip Draw Start - Début du Skip Draw + Début du Skipdraw - + Object range to skip drawing. Valeurs limites des objets à ne pas dessiner. - + Skip Draw End - Fin du Skip Draw + Fin du Skipdraw - + Auto Flush (Hardware) - Auto-flush (matériel) + Purge auto. (matériel) - + CPU Framebuffer Conversion - Conversion CPU du framebuffer + Conversion CPU des framebuffers - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - Utiliser le CPU pour convertir les framebuffers 4 bits et 8 bits plutôt que le GPU. + Utiliser le CPU pour convertir les framebuffers 4 bits et 8 bits plutôt que le GPU. - - Disable Depth Support - Désactiver l'émulation de la profondeur - - - - Disable the support of depth buffer in the texture cache. - Désactiver l'utilisation du depth buffer dans le cache des textures. - - - + Disable Safe Features Désactiver les fonctionnalités sûres - + This option disables multiple safe features. Cette option désactive plusieurs fonctionnalités sûres. - - Disable Render Features - Désactive les fonctionnalités de rendu - - - + This option disables game-specific render fixes. - Cette option désactive les correctifs de rendu spécifiques au jeu. + Cette option désactive les correctifs de rendu propres à chaque jeu. - - Preload Frame - Précharger les données des images - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Transférer les données du GS lors du rendu d'une nouvelle image pour reproduire correctement certains effets. - + Disable Partial Invalidation Désactiver l'invalidation partielle - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. - Supprimer une entrée du cache des textures lorsqu'elle en croise une autre, plutôt que de supprimer une zone spécifique de la texture. - - - - Texture Inside Render Target - Texture dans la cible du rendu + Supprimer les entrées du cache des textures comportant des régions d'autres entrées, plutôt que de supprimer les régions en double. - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - Autoriser le cache des textures à réutiliser une partie d'un framebuffer précédent en texture d'entrée. + Autoriser le cache des textures à utiliser en texture d'entrée une partie d'un framebuffer précédent. - + Read Targets When Closing Lire les cibles lors de la fermeture - + Flushes all targets in the texture cache back to local memory when shutting down. Au moment d'éteindre la machine virtuelle, transférer les cibles du cache des textures dans la mémoire locale. - + Estimate Texture Region - Estimer la zone de texture + Estimer la taille des textures - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - Essayer de réduire la taille des textures lorsque le jeu ne la définit pas (exemple : les jeux Snowblind). + Essayer de réduire la taille des textures lorsque les jeux ne la définissent pas eux-mêmes (exemple : les jeux Snowblind). - + GPU Palette Conversion Conversion de palette GPU - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Utiliser le GPU pour appliquer les palettes aux textures plutôt que le CPU. Cela peut améliorer les performances dans certains jeux. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Décalage demi-pixel + Correctifs de mise à l'échelle - + Adjusts vertices relative to upscaling. Ajuster les sommets en fonction du niveau de mise à l'échelle. - + Round Sprite Arrondir les sprites - + Adjusts sprite coordinates. Ajuster les coordonnées des sprites. - + Bilinear Upscale Mise à l'échelle bilinéaire - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Cette option permet, lors de la mise à l'échelle, de lisser les textures sur lesquelles le filtrage bilinéaire est appliqué. Exemple : la lueur du soleil dans Brave. - - TC Offset X - Décalage TC X - - - + Adjusts target texture offsets. - Ajuste les décalages de la texture ciblée. - - - - TC Offset Y - Décalage TC Y + Ajuster le décalage des textures cibles. - + Align Sprite Aligner les sprites - + Fixes issues with upscaling (vertical lines) in some games. - Corriger certains problèmes liés à la mise à l'échelle, comme les lignes verticales dans les jeux Namco (Ace Combat, Tekken, Soul Calibur, etc.). + Corriger des problèmes liés à la mise à l'échelle, comme les lignes verticales apparaissant dans certains jeux. - + Merge Sprite Fusionner les sprites - + Replaces multiple post-processing sprites with a larger single sprite. Fusionner les sprites sur lesquels le post-traitement doit être appliqué. - + Wild Arms Hack - Hack Wild Arms + Hack « Wild Arms » - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Diminuer la précision du GS pour éviter les écarts entre les pixels lors de la mise à l'échelle. Corrige le texte sur les jeux Wild Arms. - + Unscaled Palette Texture Draws - Dessins avec palette non redimensionnée + Ne pas redimensionner les textures de palette - + Can fix some broken effects which rely on pixel perfect precision. Activer cette option peut corriger certains effets nécessitant une précision au pixel près. - + Texture Replacement Textures de remplacement - + Load Textures Charger les textures - + Loads replacement textures where available and user-provided. - Charger les textures de remplacement fournies par l'utilisateur lorsqu'elles sont disponibles. + Charger les textures de remplacement fournies par l'utilisateur. - + Asynchronous Texture Loading - Chargement des textures asynchrone + Chargement asynchrone des textures - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Charger les textures de remplacement sur un thread séparé afin d'éviter les micro-ralentissements lorsque les textures de remplacement sont activées. - + Precache Replacements - Préchargement des textures de remplacement + Mise en cache anticipée des textures de remplacement - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Précharger en mémoire l'ensemble des textures de remplacement. L'activation de cette option n'est pas nécessaire si le chargement asynchrone est activé. - + Replacements Directory Dossier des textures de remplacement - + Folders Dossiers - + Texture Dumping Dumping des textures - + Dump Textures Dumper les textures - - Dumps replacable textures to disk. Will reduce performance. - Dumper sur le disque les textures pouvant être remplacées. Cela réduira les performances. - - - + Dump Mipmaps Dumper les mipmaps - + Includes mipmaps when dumping textures. Inclure les mipmaps lors du dumping des textures. - + Dump FMV Textures Dumper les textures des FMV - + Allows texture dumping when FMVs are active. You should not enable this. Autoriser le dumping des textures lorsqu'une cinématique vidéo est en cours de lecture. Vous ne devriez pas activer cette option. - + Post-Processing Post-traitement - + FXAA FXAA - + Enables FXAA post-processing shader. Activer le shader de post-traitement FXAA. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Activer FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness - Netteté du CAS + Netteté CAS - + Determines the intensity the sharpening effect in CAS post-processing. - Déterminez l'intensité de l'effet de netteté du CAS. + Déterminez l'intensité de l'effet de netteté du post-traitement CAS. - + Filters Filtres - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Activer l'ajustement de la luminosité, du contraste et de la saturation. - + Shade Boost Brightness Luminosité Shade Boost - + Adjusts brightness. 50 is normal. Ajustez la luminosité. 50 correspond à la luminosité normale. - + Shade Boost Contrast Contraste Shade Boost - + Adjusts contrast. 50 is normal. Ajustez le contraste. 50 correspond au contraste normal. - + Shade Boost Saturation Saturation Shade Boost - + Adjusts saturation. 50 is normal. Ajustez la saturation. 50 correspond à la saturation normale. - + TV Shaders Shaders TV - - Selects post-processing TV shader. - Sélectionnez un shader de post-traitement TV. - - - + Advanced Avancé - + Skip Presenting Duplicate Frames - Sauter la présentation d'images en double - - - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Sauter l'affichage des images qui sont identiques à la précédente dans les jeux à 25 ou 30 IPS. Cette option peut améliorer les performances au prix d'une latence d'entrée plus importante et d'une cadence d'image dégradée. + Sauter la présentation des images en double - + Disable Threaded Presentation Désactiver la présentation threadée - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Présenter les images sur un thread séparé plutôt que sur le thread du GS. Cela peut améliorer les durées d'image sur certains systèmes, au prix d'une cadence d'image potentiellement dégradée. - - - + Hardware Download Mode Mode de téléchargement matériel - + Changes synchronization behavior for GS downloads. Modifier la façon dont la synchronisation des téléchargements GS s'effectue. - + Allow Exclusive Fullscreen Autoriser le mode plein écran exclusif - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Modifier les heuristiques du pilote pour activer le mode plein écran exclusif, aussi appelé « direct flip » ou « direct scanout ». - + Override Texture Barriers - Barrières de textures + Barrières de texture - + Forces texture barrier functionality to the specified value. - Choisir le fonctionnement des barrières de textures. + Choisir le fonctionnement des barrières de texture. - + GS Dump Compression Compression des dumps du GS - + Sets the compression algorithm for GS dumps. - Choisir l'algorithme de compression à utiliser pour les dumps du GS. + Définissez l'algorithme de compression à utiliser pour les dumps du GS. - + Disable Framebuffer Fetch Désactiver la récupération du framebuffer - + Prevents the usage of framebuffer fetch when supported by host GPU. Empêcher la récupération du framebuffer par le GPU de l'hôte, s'il prend en charge l'opération. - + Disable Dual-Source Blending - Désactiver le blending dual source + Désactiver le Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. - Empêcher le blending dual source par le GPU de l'hôte, s'il prend en charge l'opération. + Empêcher le GPU de l'hôte d'utiliser le « Dual-Source Blending » (fusion double source), s'il prend en charge l'opération. - + Disable Shader Cache Désactiver le cache des shaders - + Prevents the loading and saving of shaders/pipelines to disk. Empêcher le chargement et l'enregistrement des shaders et des pipelines sur le disque dur. - + Disable Vertex Shader Expand - Désactiver l'agrandissement des vertex shaders + Désactiver l'expansion par vertex shader - + Falls back to the CPU for expanding sprites/lines. Utiliser le CPU pour étendre les sprites et les lignes. - + Runtime Settings Paramètres d'exécution - + Applies a global volume modifier to all sound produced by the game. - Appliquer un modificateur de volume global à tous les sons produits par le jeu. + Appliquer un modificateur de volume global aux sons produits par le jeu. - + Mixing Settings Paramètres de mixage - + Changes when SPU samples are generated relative to system emulation. Modifier le moment où les échantillons SPU doivent être générés par rapport à l'émulation du système. - + Determines how the stereo output is transformed to greater speaker counts. - Déterminez la façon dont la sortie stéréo du système émulé doit être utilisée avec un nombre plus important de haut-parleurs. + Déterminez la manière d'utiliser la sortie stéréo du système émulé avec un nombre plus important de haut-parleurs. - + Output Settings Paramètres de sortie - + Determines which API is used to play back audio samples on the host. Déterminez l'API à utiliser pour lire les échantillons audio sur l'hôte. - + Sets the average output latency when using the cubeb backend. - Définir la latence en sortie moyenne lors de l'utilisation du backend Cubeb. + Définir la latence de sortie moyenne lors de l'utilisation du backend Cubeb. + + + + %d ms (avg) + %d ms (moy.) - + Timestretch Settings Paramètres TimeStretch - + Affects how the timestretcher operates when not running at 100% speed. - Modifier le fonctionnement du timestretcher lorsque la vitesse d'exécution est différente de 100%. + Modifier le fonctionnement de TimeStretch lorsque la vitesse d'exécution est différente de 100 %. - + + %d ms + %d ms + + + Settings and Operations Paramètres et opérations - + Creates a new memory card file or folder. Créer une nouvelle Memory Card au format fichier ou dossier. - + Simulates a larger memory card by filtering saves only to the current game. Simuler une Memory Card plus grande en cachant aux jeux les sauvegardes provenant d'autres jeux. - + Automatically ejects Memory Cards when they differ after loading a state. Lors du chargement d'une sauvegarde d'état, éjecter automatiquement les Memory Cards dont l'état est différent de celui stocké dans la sauvegarde d'état. - + If not set, this card will be considered unplugged. - Désactiver cette option revient à ne pas insérer la Memory Card. + En désactivant cette option, la Memory Card est considérée comme retirée. - + The selected memory card image will be used for this slot. L'image de Memory Card sélectionnée sera utilisée dans cette fente. - + Resets the card name for this slot. Réinitialiser le nom de la carte à insérer dans cette fente. - + Create Memory Card Créer une Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Saisissez le nom de la Memory Card que vous souhaitez créer et choisissez une taille. Pour une compatibilité optimale, nous vous recommandons les Memory Cards de 8 Mo et les Memory Cards au format dossier. - + Card Name: Nom de la carte : - + Configuration Configuration - + Uses game-specific settings for controllers for this game. - Personnaliser les paramètres des manettes pour ce jeu. + Utiliser des paramètres des manettes propres à ce jeu. - + Copies the global controller configuration to this game. - Copier les paramètres des manettes globaux dans les paramètres spécifiques à ce jeu. + Copier les paramètres globaux des manettes dans les paramètres propres à ce jeu. - + Resets all configuration to defaults (including bindings). Réinitialiser tous les paramètres (dont les paramètres des manettes). - + Replaces these settings with a previously saved input profile. - Remplacer les paramètres actuels par un profil d'entrée enregistré précédemment. + Remplacer les paramètres actuels par les paramètres d'un profil d'entrée enregistré précédemment. - + Stores the current settings to an input profile. Enregistrer les paramètres actuels dans un profil d'entrée. - + Input Sources Sources d'entrées - + The SDL input source supports most controllers. La source d'entrées SDL permet la prise en charge de la plupart des manettes. - + Provides vibration and LED control support over Bluetooth. - Activer le contrôle des vibrations et des LED par Bluetooth. + Activer la prise en charge des vibrations et le contrôle des LED par Bluetooth. - + Allow SDL to use raw access to input devices. Autoriser SDL à utiliser l'accès brut aux périphériques d'entrée. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - La source XInput permet la prise en charge des manettes Xbox 360, Xbox One et Xbox Series. + La source XInput permet la prise en charge des manettes Xbox 360, Xbox One et Xbox Series. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Ajouter trois emplacements de manette supplémentaires. Le multitap n'est pas pris en charge par tous les jeux. - + Attempts to map the selected port to a chosen controller. Essayer d'assigner le périphérique de votre choix au port sélectionné. - + No Buttons Selected Aucun bouton sélectionné - + Determines how much pressure is simulated when macro is active. - Déterminez la quantité de pression simulée lors de l'utilisation des macros. + Déterminez la quantité de pression à simuler lors de l'utilisation de la macro. - + Determines the pressure required to activate the macro. - Déterminez la pression requise pour activer la macro. + Déterminez la quantité de pression requise pour activer la macro. - + Toggle every %d frames - Alterner toutes les %d images + Alterner l'état toutes les %d images - + Clears all bindings for this USB controller. - Effacer toutes les associations de touches de cette manette USB. + Effacer toutes les associations pour cette manette USB. - + Data Save Locations - Emplacements des données à enregistrer + Emplacements d'enregistrement des données - + Show Advanced Settings Afficher les paramètres avancés - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. La modification de ces options pourrait rendre vos jeux inutilisables. C'est à vos risques et périls : l'équipe PCSX2 ne fournira aucune assistance aux utilisateurs ayant modifié ces paramètres. - + Logging - Logging + Journalisation - + System Console Console système - + Writes log messages to the system console (console window/standard output). Journaliser les événements dans la console système (fenêtre de la console ou sortie standard). - + File Logging Journalisation dans un fichier - + Writes log messages to emulog.txt. Journaliser les événements dans le fichier emulog.txt. - + Verbose Logging Journalisation détaillée - + Writes dev log messages to log sinks. - Envoyer les journaux développeurs dans les puits de logs. + Envoyer les messages destinés aux développeurs vers les puits de logs. - + Log Timestamps Horodatage des journaux - + Writes timestamps alongside log messages. - Dater tous les événements à journaliser. + Ajouter la date et l'heure aux messages des journaux. - + EE Console - Console de l'EE + Console EE - + Writes debug messages from the game's EE code to the console. Écrire dans la console les messages de débogage du jeu provenant du code exécuté sur l'EE. - + IOP Console - Console de l'IOP + Console IOP - + Writes debug messages from the game's IOP code to the console. Écrire dans la console les messages de débogage du jeu provenant du code exécuté sur l'IOP. - + CDVD Verbose Reads - Détail des lectures CDVD + Détails des lectures CDVD - + Logs disc reads from games. Journaliser les lectures du disque par les jeux. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. - Déterminez la façon dont sont arrondis les résultats des opérations sur des nombres à virgule flottante. Il peut être nécessaire d'ajuster ce paramètre pour certains jeux. + Déterminez la manière d'arrondir les résultats des opérations sur des nombres à virgule flottante. Il peut être nécessaire d'ajuster ce paramètre pour certains jeux. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. - Déterminez la façon de gérer le dépassement des limites des nombres à virgule flottante. Il peut être nécessaire d'ajuster ce paramètre pour certains jeux. + Déterminez la manière de gérer les nombres à virgule flottante hors limites. Il peut être nécessaire d'ajuster ce paramètre pour certains jeux. - + Enable EE Recompiler Activer le recompilateur EE - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - Traduire dynamiquement le code machine MIPS-IV 64 bits en code natif. + Traduire dynamiquement le code machine MIPS-IV 64 bits en code natif. - + Enable EE Cache Activer le cache de l'EE - + Enables simulation of the EE's cache. Slow. - Activer la simulation du cache de l'EE. C'est lent. + Activer la simulation du cache de l'EE. Activer l'option dégrade les performances. - + Enable INTC Spin Detection Activer la détection des boucles INTC - + Huge speedup for some games, with almost no compatibility side effects. - Augmentation considérable de la vitesse d'émulation de certains jeux. Impact sur la compatibilité très faible. + Amélioration colossale des performances de certains jeux. Impact sur la compatibilité très faible. - + Enable Wait Loop Detection Activer la détection de l'attente active - + Moderate speedup for some games, with no known side effects. - Amélioration modérée des performances de certains jeux, et aucun effet négatif connu. + Amélioration modérée des performances de certains jeux et aucun effet négatif connu. - + Enable Fast Memory Access Activer l'accès rapide à la mémoire - + Uses backpatching to avoid register flushing on every memory access. Utiliser le backpatching pour éviter de transférer le contenu des registres dans la mémoire de l'hôte à chaque accès à la mémoire. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Activer le recompilateur VU0 (mode micro) - + New Vector Unit recompiler with much improved compatibility. Recommended. Nouveau recompilateur pour les Vector Units dont la compatibilité a été grandement améliorée. Activation recommandée. - + Enable VU1 Recompiler Activer le recompilateur VU1 - + Enable VU Flag Optimization Activer l'optimisation du VU Status Flag - + Good speedup and high compatibility, may cause graphical errors. Bonne amélioration des performances et compatibilité élevée, mais peut causer des problèmes d'affichage. - + I/O Processor I/O Processor - + Enable IOP Recompiler Activer le recompilateur IOP - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - Traduire dynamiquement le code machine MIPS-I 32 bits en code natif. + Traduire dynamiquement le code machine MIPS-I 32 bits en code natif. - + Graphics Graphismes - + Use Debug Device Utiliser le périphérique de débogage - - Enables API-level validation of graphics commands - Activer la validation au niveau de l'API des commandes graphiques. - - - + Settings Paramètres - + No cheats are available for this game. Aucun code de triche disponible pour ce jeu. - + Cheat Codes Codes de triche - + No patches are available for this game. Aucun patch disponible pour ce jeu. - + Game Patches Patchs - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. L'activation des codes de triche peut entraîner des comportements imprévisibles tels que des plantages, des soft-locks ou la corruption de vos sauvegardes. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. L'activation des patchs peut entraîner des comportements imprévisibles tels que des plantages, des soft-locks ou la corruption de vos sauvegardes. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Utilisez les patchs à vos risques et périls, l'équipe PCSX2 ne fournira aucune assistance aux utilisateurs qui ont activé les patchs. - + Game Fixes Correctifs - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - Ne modifiez pas les correctifs vous-même, à moins que vous connaissiez la signification de chaque option et ce que leur activation implique. + Ne modifiez pas les correctifs vous-même, à moins que vous compreniez la signification de chaque option et ce que leur activation implique. - + FPU Multiply Hack - Multiplicateur de hack FPU + Hack « FPU Multiply » - + For Tales of Destiny. Pour Tales of Destiny. - + FPU Negative Div Hack - Hack Div Négatif de FPU + Hack « FPU Negative Div » - + For Gundam games. Pour les jeux Gundam. - + Preload TLB Hack - Précharger le Hack TLB - - - - To avoid tlb miss on Goemon. - Pour éviter de rater le tlb sur Goemon. - - - - Switch to Software renderer for FMVs. - Utiliser le moteur de rendu logiciel pour les cinématiques vidéo. + Hack « Preload TLB » - + Needed for some games with complex FMV rendering. - Nécessaire pour certains jeux avec un rendu FMV complexe. + Nécessaire pour certains jeux dont le rendu des cinématiques vidéo est complexe. - + Skip MPEG Hack - Ignorer le Hack MPEG + Hack « Skip MPEG » - + Skips videos/FMVs in games to avoid game hanging/freezes. - Ignore les vidéos ou les FMV dans les jeux pour éviter les hangs ou les gels du jeu. + Passer les cinématiques vidéo (FMV) des jeux afin d'éviter les freezes. - + OPH Flag Hack - Hack du flag OPH + Hack « OPH Flag » - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Connu pour affecter les jeux suivants : Bleach Blade Battler, Growlanser II, Growlanser III, Wizardry. + + EE Timing Hack + Hack « EE Timing » - - EE Timing Hack - Hack de Timing de l'Emotion Engine + + Instant DMA Hack + Hack « Instant DMA » - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Connu pour affecter les jeux suivants : Digital Devil Saga (répare les FMV et les crashes), SSX (répare les mauvais graphismes et les crashes). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Affecte les jeux connus suivants : Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Instant DMA Hack - Hack instantané d'accès direct à la mémoire (DMA) + + For SOCOM 2 HUD and Spy Hunter loading hang. + Pour l'ATH de SOCOM 2 et le freeze pendant les chargements dans Spy Hunter. - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Connu pour affecter les jeux suivants : Fire Pro Wrestling Z (mauvais graphismes sur le ring). + + VU Add Hack + Hack « VU Add » - - Handle DMAC writes when it is busy. - Gère les écritures du contrôleur d'accès direct à la mémoire (DMAC) quand il est déjà occupé. + + Full VU0 Synchronization + Synchronisation complète de la VU0 - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Connu pour affecter les jeux suivants : Mana Khemia 1, Metal Saga, Pilot Down Behind Ennemy Lines. + + Forces tight VU0 sync on every COP2 instruction. + Forcer une synchronisation forte de la VU0 à chaque instruction COP2. - - Force GIF PATH3 transfers through FIFO - Forcer les transferts GIF PATH3 via FIFO + + VU Overflow Hack + Hack « VU Overflow » - - (Fifa Street 2). - (FIFA Street 2). + + To check for possible float overflows (Superman Returns). + Prendre en charge les débordements éventuels des nombres flottants (Superman Returns). - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simuler le VIF1 FIFO readahead. Corrige les lenteurs de chargement de certains jeux. + + Use accurate timing for VU XGKicks (slower). + Cadencer précisément les XGKicks des VU (lent). - - Known to affect following games: Test Drive Unlimited, Transformers. - Affecte les jeux connus suivants : Test Drive Unlimited, Transformers. + + Quadraphonic + Quadriphonique - - Delay VIF1 Stalls (VIF1 FIFO) - Délai des stalles VIF1 (VIF1 FIFO) + + Load State + Charger un état - - For SOCOM 2 HUD and Spy Hunter loading hang. - Pour l'ATH de SOCOM 2 et le hang de chargement de Spy Hunter. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Faire sauter des cycles à l'Emotion Engine émulé. Cette option peut aider un nombre restreint de jeux tels que SOTC. La plupart du temps, activer l'option dégrade les performances. - - VU Add Hack - Hack d'addition des VU + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Cette option améliore généralement les performances si vous avez un CPU avec 4 cœurs ou plus. Fonctionne bien avec la plupart des jeux, mais certains jeux sont incompatibles et pourraient se bloquer. - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Jeux qui ont besoin de ce hack pour démarrer : Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Exécuter instantanément la VU1. Amélioration modeste des performances dans la plupart des jeux. Fonctionne bien avec la plupart des jeux, mais il pourrait y avoir des problèmes d'affichage dans certains jeux. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack évite une recompilation constante dans certains jeux + + Scale To Host Refresh Rate + Utiliser le taux de rafraîchissement de l'hôte - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Disable Depth Emulation + Désactiver l'émulation de la profondeur - - Full VU0 Synchronization - Synchronisation complète de VU0 + + Disable the support of depth buffers in the texture cache. + Désactiver l'utilisation du depth buffer dans le cache des textures. - - Forces tight VU0 sync on every COP2 instruction. - Forcer une synchronisation VU0 serrée sur chaque instruction COP2. + + Disable Render Fixes + Désactiver les correctifs de rendu - - VU Sync (Run behind) - Synchronisation VU (En retard) + + Preload Frame Data + Précharger les données des images - - To avoid sync problems when reading or writing VU registers. - Pour éviter des problèmes de synchronisation lors de la lecture ou de l'écriture des registres VU. + + Texture Inside RT + Texture dans la cible du rendu - - VU Overflow Hack - Hack de débordement VU + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + Lorsque cette option est activée, le GPU convertit les textures utilisant une palette à la place du CPU. C'est un moyen de répartir la charge de travail entre le GPU et le CPU. - - To check for possible float overflows (Superman Returns). - Pour vérifier d'éventuels débordements de flotteurs (Superman Returns). + + Half Pixel Offset + Décalage demi-pixel - - VU XGkick Sync - Synchronisation de VU XGkick + + Texture Offset X + Décalage X des textures - - Use accurate timing for VU XGKicks (slower). - Utiliser un chronométrage précis pour les VU XGKicks (lent). + + Texture Offset Y + Décalage Y des textures - - Use Blit for internal FPS - Utiliser BLIT pour détecter la fréquence d'images interne + + Dumps replaceable textures to disk. Will reduce performance. + Dumper sur le disque les textures pouvant être remplacées. Cela réduira les performances. - - Quadraphonic - Quadraphonic + + Applies a shader which replicates the visual effects of different styles of television set. + Appliquer un shader qui reproduit les effets visuels de différents types de télévisions. - - Load State - Charger l'état + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Sauter l'affichage des images identiques à la précédente dans les jeux à 25 ou 30 IPS. Activer cette option peut améliorer les performances au prix d'une latence d'entrée plus importante et d'une cadence d'image dégradée. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Présenter les images sur le thread principal du GS plutôt qu'un thread séparé. Cela permet de déboguer les problèmes liés aux durées d'image. + + + + Enables API-level validation of graphics commands. + Activer la validation au niveau de l'API des commandes graphiques. + + + + Use Software Renderer For FMVs + Utiliser le moteur de rendu logiciel pour les cinématiques vidéo - + + To avoid TLB miss on Goemon. + Permet d'éviter un TLB Miss pendant l'émulation de Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Hack de timing à usage général. Affecte les jeux connus suivants : Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Corriger des problèmes d'émulation du cache. Affecte les jeux connus suivants : Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Affecte les jeux connus suivants : Bleach Blade Battlers, Growlanser II et III, Wizardry. + + + + Emulate GIF FIFO + Émuler le FIFO de la GIF + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct mais plus lent. Affecte les jeux connus suivants : FIFA Street 2. + + + + DMA Busy Hack + Hack « DMA Busy » + + + + Delay VIF1 Stalls + Retarder les arrêts de la VIF1 + + + + Emulate VIF FIFO + Émuler le FIFO de la VIF + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simuler le VIF1 FIFO readahead. Affecte les jeux connus suivants : Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + Hack « VU I Bit » + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Permet d'éviter de recompiler constamment dans certains jeux. Affecte les jeux connus suivants : Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Pour les jeux Tri-Ace : Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + Synchronisation des VU + + + + Run behind. To avoid sync problems when reading or writing VU registers. + « Run Behind », éviter les problèmes de synchronisation lors des opérations de lecture et d'écriture dans les registres des VU. + + + + VU XGKick Sync + Synchronisation par XGKick des VU + + + + Force Blit Internal FPS Detection + Forcer la détection par BLIT de la fréquence d'images interne + + + Save State Sauvegarder l'état - + Load Resume State Charger la sauvegarde automatique - + A resume save state created at %s was found. Do you want to load this save and continue? - Une sauvegarde d'état automatique créée à %s a été trouvée. + Une sauvegarde d'état automatique créée %s a été trouvée. Voulez-vous charger cette sauvegarde et continuer ? - + Region: Région : - + Compatibility: - Compatibilité: + Compatibilité : - + No Game Selected Aucun jeu sélectionné - + Search Directories - Rechercher dans les dossiers + Dossiers - + Adds a new directory to the game search list. Ajouter un nouveau dossier dans lequel rechercher des jeux à ajouter à la liste. - + Scanning Subdirectories - Scan des sous-dossiers + Sous-dossiers à scanner - + Not Scanning Subdirectories Pas de scan des sous-dossiers - + List Settings Paramètres de la liste - + Sets which view the game list will open to. - Définir la vue à utiliser lors de l'ouverture de la liste des jeux. + Définissez le mode d'affichage à utiliser lors de l'ouverture de la liste des jeux. - + Determines which field the game list will be sorted by. - Déterminez par quel champ la liste de jeux sera triée. + Déterminez par quel champ la liste des jeux sera triée. - + Reverses the game list sort order from the default (usually ascending to descending). - Inverser l'ordre de tri par défaut de la liste des jeux (habituellement : croissant > décroissant). + Inverser l'ordre de tri par défaut de la liste des jeux (en général : croissant > décroissant). - + Cover Settings Paramètres des jaquettes - + Downloads covers from a user-specified URL template. - Télécharge les jaquettes à partir d'une URL spécifiée par l'utilisateur. + Télécharger les jaquettes à partir d'une URL modèle fournie par l'utilisateur. - + Operations Opérations - + + Selects where anisotropic filtering is utilized when rendering textures. + Sélectionnez où utiliser le filtrage anisotrope dans le rendu des textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + Utiliser une méthode alternative de calcul de la fréquence d'images interne (plus fiable avec certains jeux). - + Identifies any new files added to the game directories. - Identifie tous les nouveaux fichiers ajoutés aux répertoires de jeu. + Identifier les nouveaux fichiers ajoutés aux dossiers de jeu. - + Forces a full rescan of all games previously identified. Forcer un nouveau scan de tous les jeux précédemment identifiés. - + Download Covers - Télécharger les jaquettes - - - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 peut télécharger automatiquement les jaquettes pour les jeux qui n'en n'ont pas encore. Nous n'hébergeons aucune jaquette, l'utilisateur doit fournir sa propre source pour les images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - Dans le formulaire ci-dessous, spécifiez les liens de téléchargement des jaquettes, avec une URL par ligne. Les variables suivantes sont disponibles : - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title} : nom du jeu. -${filetitle} : nom du jeu provenant d'une composante du nom de fichier. -${serial} : numéro de série du jeu. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Exemple : https://www.example-not-a-real-domain.com/covers/${serial}.jpg + Télécharger des jaquettes - - Use Serial File Names - Utiliser les noms de fichiers standardisés - - - + About PCSX2 À propos de PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - PCSX2 est un émulateur de PlayStation 2 (PS2) libre et open-source. Il vise à reproduire le comportement du matériel de la PS2 en combinant des interpréteurs et recompilateurs de CPU MIPS avec une machine virtuelle servant à gérer les états matériels et la mémoire système de la PS2. PCSX2 vous permet de jouer à des jeux de PS2 sur votre PC et d'améliorer votre expérience de jeu en tirant partie du grand nombre de fonctionnalités mises à votre disposition. + PCSX2 est un émulateur de PlayStation 2 (PS2) libre et open-source. Il vise à reproduire le comportement du matériel de la PS2 en combinant des interpréteurs et recompilateurs de CPU MIPS, avec une machine virtuelle servant à gérer les états matériels et la mémoire système de la PS2. PCSX2 vous permet de jouer à des jeux de PS2 sur votre PC et d'améliorer votre expérience de jeu en tirant partie du grand nombre de fonctionnalités mises à votre disposition. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - PlayStation 2 et PS2 sont des marques déposées de Sony Interactive Entertainment. Cette application n'est aucunement affiliée à Sony Interactive Entertainment. - - - - XXX points - XXX points - - - - Unlocked Achievements - Succès obtenus - - - - Locked Achievements - Succès verrouillés - - - - Active Challenge Achievements - Défis actifs + PlayStation 2 et PS2 sont des marques déposées de Sony Interactive Entertainment. Cette application n'est pas affiliée de quelque manière que ce soit à Sony Interactive Entertainment. - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - L'envoi des scores est désactivé car le mode hardcore est désactivé. Les classements sont en lecture seule. - - - - Rank - Rang - - - - Name - Nom - - - - Time - Temps - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Téléchargement des données du classement, veuillez patienter ... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. - Si vous activez cette option et que vous êtes connecté(e) à RetroAchievements, PCSX2 scannera les succès à son lancement. - - - - When enabled, rich presence information will be collected and sent to the server where supported. - Lorsque cette option est activée, les informations rich presence sont collectées et envoyées au serveur. + Lorsque cette option est activée et que vous êtes connecté(e) à RetroAchievements, PCSX2 scanne les succès à son lancement. - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. Activer le mode défi et les classements. La sauvegarde d'état, les codes de triche et le ralenti seront désactivés. - - Enables tracking and submission of leaderboards in supported games. - Activer le suivi et la participation aux classements dans les jeux pris en charge. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Afficher un pop-up lors d'événements tels que l'obtention d'un succès ou la participation à un classement. + Afficher un pop-up lors d'événements tels qu'un succès déverrouillé ou la participation à un classement. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Jouer des effets sonores lors d'événements tels que l'obtention d'un succès ou la participation à un classement. + Jouer des effets sonores lors d'événements tels qu'un succès déverrouillé ou la participation à un classement. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Afficher l'icône des succès pouvant être débloqués dans le coin inférieur droit de l'écran. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. + Lorsque cette option est activée, PCSX2 liste les succès provenant d'ensembles non officiels. RetroAchievements n'effectue pas le suivi de ces succès. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. + Lorsque cette option est activée, PCSX2 considère que tous les succès sont verrouillés et aucune notification de déverrouillage n'est envoyée au serveur. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Afficher un pop-up lorsqu'un défi débute, lors de l'envoi de votre participation et lorsque vous échouez. - + + When enabled, each session will behave as if no achievements have been unlocked. + Lorsque cette option est activée, chaque session se comporte comme si tous les succès étaient verrouillés. + + + Account - Account + Compte - + Logs out of RetroAchievements. Se déconnecter de RetroAchievements. - + Logs in to RetroAchievements. Se connecter à RetroAchievements. - + Current Game - Current Game + Jeu actuel - - Achievements Login - Connexion à RetroAchievements - - - - Please enter your user name and password for retroachievements.org. - Veuillez saisir votre nom d'utilisateur et votre mot de passe pour vous connecter à retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Votre mot de passe ne sera pas enregistré dans PCSX2. À la place, un jeton d'accès est généré et utilisé pour se connecter. - - - - User Name: - Nom d'utilisateur : - - - - Password: - Mot de passe : - - - + {} is not a valid disc image. {} n'est pas une image disque valide. - + Automatic mapping completed for {}. Association automatique de {} réussie. - + Automatic mapping failed for {}. Association automatique de {} échouée. - + Game settings initialized with global settings for '{}'. Les paramètres du jeu ont été initialisés aux paramètres globaux pour « {} ». - + Game settings have been cleared for '{}'. Les paramètres du jeu ont été effacés pour « {} ». - + Console Port {} - Console Port {} + Fente {} - + {} (Current) - {} (Actuel) + {} (actuel) - + {} (Folder) - {} (Dossier) + {} (dossier) - + Memory card name '{}' is not valid. - Le nom de la carte mémoire '{}' n'est pas valide. + « {} » n'est pas un nom de Memory Card valide. - + Memory Card '{}' created. - Carte mémoire '{}' créée. + Memory Card « {} » créée. - + Failed to create memory card '{}'. - Impossible de créer la carte mémoire '{}'. + Échec de la création de la Memory Card « %1 ». - + A memory card with the name '{}' already exists. - Une carte mémoire avec le nom '{}' existe déjà. + Une Memory Card nommée « {} » existe déjà. - + Failed to load '{}'. - Impossible de charger '{}'. + Échec du chargement de « {} ». - + Input profile '{}' loaded. Profil d'entrée « {} » chargé. - + Input profile '{}' saved. Profil d'entrée « {} » enregistré. - + Failed to save input profile '{}'. - Échec de l'enregistrement du profil dans '{}'. + Échec de l'enregistrement du profil « {} ». - + Port {} Controller Type - Type de la manette {} + Type de manette (port {}) - + Select Macro {} Binds Sélectionnez les associations de la macro {} - + + Macro {} Frequency + Fréquence de la macro {} + + + Macro will toggle every {} frames. La macro alternera d'état toutes les {} images. - + Port {} Device Périphérique port {} - + Port {} Subtype Sous-type port {} - + {} unlabelled patch codes will automatically activate. - {} unlabelled patch codes will automatically activate. + {} codes de patch sans étiquette seront activés automatiquement. - + {} unlabelled patch codes found but not enabled. - {} unlabelled patch codes found but not enabled. + {} codes de patch sans étiquette ont été trouvés mais ils ne seront pas activés. - + This Session: {} Session actuelle : {} - + All Time: {} Temps total : {} - + Save Slot {0} - Save Slot {0} + Emplacement {0} - + Saved {} - Saved {} + Sauvegardé : {} - + {} does not exist. {} n'existe pas. - + {} deleted. {} supprimé. - + Failed to delete {}. Échec de la suppression de {}. - + File: {} Fichier : {} - + CRC: {:08X} CRC : {:08X} - + Time Played: {} Temps de jeu : {} - + Last Played: {} Lancé pour la dernière fois : {} - + Size: {:.2f} MB Taille : {:.2f} Mo - - {} points - {} points + + Left: + Gauche : - - {} (Hardcore Mode) - {} (mode hardcore) + + Top: + Haut : - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! - - - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Droite : - - This game has {} leaderboards. - Ce jeu a {} classements. + + Bottom: + Bas : - + Summary Résumé - + Interface Settings Paramètres de l'interface - + BIOS Settings Paramètres BIOS - + Emulation Settings Paramètres d'émulation - + Graphics Settings Paramètres des graphismes - + Audio Settings Paramètres audio - + Memory Card Settings Paramètres Memory Card - + Controller Settings Paramètres des manettes - + Hotkey Settings Paramètres des raccourcis - + Achievements Settings Paramètres des succès - + Folder Settings Paramètres des dossiers - + Advanced Settings Paramètres avancés - + Patches Patchs - + Cheats Triche - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] - 2% [1 FPS (NTSC) / 1 FPS (PAL)] + 2 % [1 IPS (NTSC), 1 IPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - 10% [6 FPS (NTSC) / 5 FPS (PAL)] + 10 % [6 IPS (NTSC), 5 IPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - 25% [15 FPS (NTSC) / 12 FPS (PAL)] + 25 % [15 IPS (NTSC), 12 IPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - 50% [30 FPS (NTSC) / 25 FPS (PAL)] + 50 % [30 IPS (NTSC), 25 IPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - 75% [45 FPS (NTSC) / 37 FPS (PAL)] + 75 % [45 IPS (NTSC), 37 IPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - 90% [54 FPS (NTSC) / 45 FPS (PAL)] + 90 % [54 IPS (NTSC), 45 IPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - 100% [60 FPS (NTSC) / 50 FPS (PAL)] + 100 % [60 IPS (NTSC), 50 IPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - 110% [66 FPS (NTSC) / 55 FPS (PAL)] + 110 % [66 IPS (NTSC), 55 IPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - 120% [72 FPS (NTSC) / 60 FPS (PAL)] + 120 % [72 IPS (NTSC), 60 IPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - 150% [90 FPS (NTSC) / 75 FPS (PAL)] + 150 % [90 IPS (NTSC), 75 IPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - 175% [105 FPS (NTSC) / 87 FPS (PAL)] + 175 % [105 IPS (NTSC), 87 IPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - 200% [120 FPS (NTSC) / 100 FPS (PAL)] + 200 % [120 IPS (NTSC), 100 IPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - 300% [180 FPS (NTSC) / 150 FPS (PAL)] + 300 % [180 IPS (NTSC), 150 IPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - 400% [240 FPS (NTSC) / 200 FPS (PAL)] + 400 % [240 IPS (NTSC), 200 IPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - 500% [300 FPS (NTSC) / 250 FPS (PAL)] + 500 % [300 IPS (NTSC), 250 IPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - 1000% [600 FPS (NTSC) / 500 FPS (PAL)] + 1000 % [600 IPS (NTSC), 500 IPS (PAL)] - + 50% Speed 50 % - + 60% Speed 60 % - + 75% Speed 75 % - + 100% Speed (Default) 100 % (par défaut) - + 130% Speed 130 % - + 180% Speed 180 % - + 300% Speed 300 % - + Normal (Default) - Normal (Par défaut) + Normal (par défaut) - + Mild Underclock - Léger underclock + Underclock léger - + Moderate Underclock Underclock modéré - + Maximum Underclock Underclock maximal - + Disabled Désactivé - + EE > VU > GS - EE > VU > GS + EE > VU > GS - + EE > GS > VU - EE > GS > VU + EE > GS > VU - + VU > EE > GS - VU > EE > GS + VU > EE > GS - + VU > GS > EE - VU > GS > EE + VU > GS > EE - + GS > EE > VU - GS > EE > VU + GS > EE > VU - + GS > VU > EE - GS > VU > EE + GS > VU > EE - + 0 Frames (Hard Sync) - 0 Frames (Hard Sync) + 0 image (synchronisation forte) - + 1 Frame - 1 Frame + 1 image - + 2 Frames - 2 Frames + 2 images - + 3 Frames - 3 Frames + 3 images - + None - None + Aucun - + Extra + Preserve Sign - Extra + Preserve Sign + Extra + préserver le signe - + Full Complet - + Extra Extra - + Automatic (Default) - Automatique (Par Défaut) + Automatique (par défaut) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Logiciel - + Null Inactif - + Off - Désactivée + Désactivé(e) - + On - Activée + Activé(e) - + Adaptive Adaptatif - + Bilinear (Smooth) Bilinéaire (lisse) - + Bilinear (Sharp) Bilinéaire (net) - + Weave (Top Field First, Sawtooth) - Weave (Top Field First, Sawtooth) + Weave (trame du haut en premier, effet dents de scie) - + Weave (Bottom Field First, Sawtooth) - Weave (Bottom Field First, Sawtooth) + Weave (trame du bas en premier, effet dents de scie) - + Bob (Top Field First) - Bob (Top Field First) + Bob (trame du haut en premier) - + Bob (Bottom Field First) - Bob (Bottom Field First) + Bob (trame du bas en premier) - + Blend (Top Field First, Half FPS) - Blend (Top Field First, Half FPS) + Blend (trame du haut en premier, IPS divisées de moitié) - + Blend (Bottom Field First, Half FPS) - Blend (Bottom Field First, Half FPS) + Blend (trame du bas en premier, IPS divisées de moitié) - + Adaptive (Top Field First) - Adaptive (Top Field First) + Adaptatif (trame du haut en premier) - + Adaptive (Bottom Field First) - Adaptive (Bottom Field First) + Adaptatif (trame du bas en premier) - + Native (PS2) - Native (PS2) + Native (PS2) - + 1.25x Native - 1.25x Native + 1.25x Native - + 1.5x Native - 1.5x Native + 1.5x Native - + 1.75x Native - 1.75x Natif + 1.75x Native - + 2x Native (~720p) - 2x Natif (~720p) + 2x Native (~720p) - + 2.25x Native - 2.25x Natif + 2.25x Native - + 2.5x Native - 2.5x Natif + 2.5x Native - + 2.75x Native - 2.75x Natif + 2.75x Native - + 3x Native (~1080p) - 3x Natif (~1080p) + 3x Native (~1080p) - + 3.5x Native - 3.5x Natif + 3.5x Native - + 4x Native (~1440p/2K) - 4x Natif (~1440p/2K) + 4x Native (~1440p/2K) - + 5x Native (~1620p) - 5x Natif (~1620p) + 5x Native (~1620p) - + 6x Native (~2160p/4K) - 6x Natif (~2160p/4K) + 6x Native (~2160p/4K) - + 7x Native (~2520p) - 7x Natif (~2520p) + 7x Native (~2520p) - + 8x Native (~2880p) - 8x Natif (~2880p) + 8x Native (~2880p) - + Basic (Generated Mipmaps) - Basic (Generated Mipmaps) + Basique (mipmaps générées) - + Full (PS2 Mipmaps) - Full (PS2 Mipmaps) + Complet (mipmaps PS2) - + Nearest - Nearest + Nearest (au plus proche) - + Bilinear (Forced) - Bilinear (Forced) + Bilinéaire (forcé) - + Bilinear (PS2) - Bilinear (PS2) + Bilinéaire (PS2) - + Bilinear (Forced excluding sprite) - Bilinear (Forced excluding sprite) + Bilinéaire (forcé, sprites exclus) - + Off (None) - Off (None) + Désactivé - + Trilinear (PS2) - Trilinear (PS2) + Trilinéaire (PS2) - + Trilinear (Forced) - Trilinear (Forced) + Trilinéaire (forcé) - + Scaled - Scaled + Mis à l'échelle - + Unscaled (Default) Taille originale (par défaut) - + Minimum - Minimum + Minimale - + Basic (Recommended) - Basic (Recommended) + Basique (recommandé) - + Medium - Medium + Moyenne - + High - High + Élevée - + Full (Slow) - Full (Slow) + Complète (lent) - + Maximum (Very Slow) - Maximum (Very Slow) + Maximale (très lent) - + Off (Default) - Désactivé (Par défaut) + Désactivé (par défaut) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partiel - + Full (Hash Cache) Complet (Hash Cache) - + Force Disabled - Forcer la désactivation + Désactivé (forcé) - + Force Enabled - Forcer l'activation + Activé (forcé) - + Accurate (Recommended) - Précis (Recommandé) + Précis (recommandé) - + Disable Readbacks (Synchronize GS Thread) - Disable Readbacks (Synchronize GS Thread) + Désactiver les readbacks (synchroniser le thread GS) - + Unsynchronized (Non-Deterministic) - Unsynchronized (Non-Deterministic) + Non synchronisé (non-déterministe) - + Disabled (Ignore Transfers) - Disabled (Ignore Transfers) + Désactivé (ignorer les transferts) - + Screen Resolution - Résolution de l'écran + Résolution d'affichage + + + + Internal Resolution (Aspect Uncorrected) + Résolution interne (format original) + + + + Cannot show details for games which were not scanned in the game list. + Impossible d'afficher les détails des jeux ne faisant pas partie de la liste des jeux. + + + + Full Boot + Démarrage complet + + + + Achievement Notifications + Notifications succès - - Internal Resolution (Uncorrected) - Résolution interne (aspect original) + + Leaderboard Notifications + Notifications classement - + + Enable In-Game Overlays + Activer les overlays + + + + Encore Mode + Mode encore + + + + Spectator Mode + Mode spectateur + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) - 0 (Désactivé) + 0 (désactivé) - + 1 (64 Max Width) - 1 (64 Max Width) + 1 (Largeur max. : 64) - + 2 (128 Max Width) - 2 (128 Max Width) + 2 (Largeur max. : 128) - + 3 (192 Max Width) - 3 (192 Max Width) + 3 (Largeur max. : 192) - + 4 (256 Max Width) - 4 (256 Max Width) + 4 (Largeur max. : 256) - + 5 (320 Max Width) - 5 (320 Max Width) + 5 (Largeur max. : 320) - + 6 (384 Max Width) - 6 (384 Max Width) + 6 (Largeur max. : 384) - + 7 (448 Max Width) - 7 (448 Max Width) + 7 (Largeur max. : 448) - + 8 (512 Max Width) - 8 (512 Max Width) + 8 (Largeur max. : 512) - + 9 (576 Max Width) - 9 (576 Max Width) + 9 (Largeur max. : 576) - + 10 (640 Max Width) - 10 (640 Max Width) + 10 (Largeur max. : 640) - + Sprites Only - Sprites Only + Sprites uniquement - + Sprites/Triangles - Sprites/Triangles + Sprites et triangles - + Blended Sprites/Triangles - Blended Sprites/Triangles + Sprites et triangles mélangés - + 1 (Normal) - 1 (Normal) + 1 (normal) - + 2 (Aggressive) - 2 (Aggressive) + 2 (agressif) - + Inside Target - Inside Target + Dans la cible - + Merge Targets - Merge Targets + Fusionner les cibles - + Normal (Vertex) - Normal (Vertex) + Normal (sommet) - + Special (Texture) - Special (Texture) + Spécial (texture) - + Special (Texture - Aggressive) - Special (Texture - Aggressive) + Spécial (texture, agressif) - + Half - Half + Moitié - + Force Bilinear - Force Bilinear + Forcer « bilinéaire » - + Force Nearest - Force Nearest + Forcer « au plus proche » - + Disabled (Default) - Disabled (Default) + Désactivé (par défaut) - + Enabled (Sprites Only) - Enabled (Sprites Only) + Activé (sprites uniquement) - + Enabled (All Primitives) - Enabled (All Primitives) + Activé (toutes les primitives) - + None (Default) - None (Default) + Désactivé (par défaut) - + Sharpen Only (Internal Resolution) - Améliorer seulement la netteté (résolution interne) + Netteté uniquement (résolution interne) - + Sharpen and Resize (Display Resolution) - Sharpen and Resize (Display Resolution) + Netteté et mise à l'échelle (résolution d'affichage) - + Scanline Filter - Scanline Filter + Filtre scanline - + Diagonal Filter - Diagonal Filter + Filtre diagonale - + Triangular Filter - Triangular Filter + Filtre triangulaire - + Wave Filter - Wave Filter + Filtre vague - + Lottes CRT - Lottes CRT + Lottes CRT - + 4xRGSS - 4xRGSS + 4xRGSS - + NxAGSS - NxAGSS + NxAGSS - + Uncompressed - Uncompressed + Sans compression - + LZMA (xz) - LZMA (xz) + LZMA (xz) - + Zstandard (zst) - Zstandard (zst) + Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (recommandé) - + Async Mix (Breaks some games!) - Async Mix (Breaks some games!) + Mixage asynchrone (casse certains jeux !) - + None (Audio can skip.) - None (Audio can skip.) + Aucune (le son peut être saccadé) - + Stereo (None, Default) - Stereo (None, Default) + Stéréo (désactivé, par défaut) - + Surround 5.1 - Surround 5.1 + Surround 5.1 - + Surround 7.1 - Surround 7.1 + Surround 7.1 - + No Sound (Emulate SPU2 only) - No Sound (Emulate SPU2 only) + Aucun son (émulation seule du SPU2) - + Cubeb (Cross-platform) - Cubeb (Cross-platform) + Cubeb (multiplateforme) - + XAudio2 - XAudio2 + XAudio2 - + PS2 (8MB) PS2 (8 Mo) - + PS2 (16MB) PS2 (16 Mo) - + PS2 (32MB) PS2 (32 Mo) - + PS2 (64MB) PS2 (64 Mo) - + PS1 PS1 - + 8 MB [Most Compatible] 8 Mo [Meilleure compatibilité] - + 16 MB 16 Mo - + 32 MB 32 Mo - + 64 MB 64 Mo - + Folder [Recommended] - Folder [Recommended] + Dossier [Recommandé] - + 128 KB [PS1] - 128 KB [PS1] + 128 Ko [PS1] + + + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (par défaut) - + Game Grid - Grille de jeux + Grille des jeux - + Game List Liste des jeux - + Game List Settings Paramètres de la liste des jeux - + Type Type - + Serial Numéro de série - + Title - Titre + Nom - + File Title - Titre du fichier + Nom fichier - + CRC CRC - + Time Played Temps de jeu - + Last Played - Lancé pour la dernière fois + Dernier lancement - + Size Taille - + Select Disc Image - Sélectionner une image disque + Sélectionnez une image disque - + Select Disc Drive - Sélectionner un lecteur de disque + Sélectionnez un lecteur de disque - + Start File Lancer un fichier - + Start BIOS Lancer le BIOS - + Start Disc Lancer un disque - + Exit Quitter - + Set Input Binding - Set Input Binding + Définir une association - + Region Région - + Compatibility Rating Note de compatibilité - + Path - Emplacement + Chemin d'accès - + Disc Path - Chemin du disque + Chemin d'accès au disque - + Select Disc Path - Sélectionner le chemin du disque - - - - Details unavailable for game not scanned in game list. - Les détails ne sont pas disponibles pour les jeux ne faisant pas partie de la liste des jeux. + Sélectionnez l'emplacement du disque - + Copy Settings Copier les paramètres - + Clear Settings - Réinitialiser les paramètres + Effacer les paramètres - + Inhibit Screensaver - Inhiber l'économiseur d'écran + Bloquer l'économiseur d'écran - + + Enable Discord Presence + Activer la Rich Presence Discord + + + Pause On Start - Mettre en pause au démarrage + Mettre en pause au lancement - + Pause On Focus Loss Mettre en pause lors de la perte du focus - + Pause On Menu - Mettre en pause dans le menu + Mettre en pause lors de l'ouverture du menu - + Confirm Shutdown - Confirmer l'arrêt de la machine virtuelle + Confirmer l'extinction - + Save State On Shutdown - Sauvegarder l'état lors de l'arrêt + Sauvegarder l'état lors de l'extinction - + Enable Per-Game Settings - Activer les paramètres par jeu + Activer les paramètres propres aux jeux - + Use Light Theme Utiliser le thème clair - + Start Fullscreen - Démarrer en plein écran + Démarrer en mode plein écran - + Double-Click Toggles Fullscreen - Double-cliquer pour basculer en plein écran + Double-cliquer pour basculer en mode plein écran - + Hide Cursor In Fullscreen - Masquer le pointeur de la souris en plein écran + Masquer le curseur en mode plein écran - + OSD Scale - Échelle OSD + Échelle de l'affichage à l'écran (OSD) - + Show Messages Afficher les messages - + Show Speed Afficher la vitesse - + Show FPS Afficher la fréquence d'images - + Show CPU Usage Afficher l'utilisation du CPU - + Show GPU Usage Afficher l'utilisation du GPU - + Show Resolution Afficher la résolution - + Show GS Statistics - Show GS Statistics + Afficher des statistiques sur le GS - + Show Status Indicators - Show Status Indicators + Afficher des indicateurs de statut - + Show Settings Afficher les paramètres - + Show Inputs - Show Inputs + Afficher les entrées - + Show Frame Times - Show Frame Times + Afficher les durées d'image - + Warn About Unsafe Settings Avertir des paramètres dangereux - + Reset Settings Réinitialiser les paramètres - + Change Search Directory - Modifier le dossier de recherche + Changer de dossier - + Fast Boot Démarrage rapide - + Output Volume Volume de sortie - + Synchronization Mode - Synchronization Mode + Mode de synchronisation - + Expansion Mode - Expansion Mode + Mode d'upmixing - + Output Module - Output Module + Module de sortie - + Latency - Latency + Latence - + Sequence Length - Sequence Length + Longueur de séquence - + Seekwindow Size - Seekwindow Size + Taille de la Seekwindow - + Overlap - Overlap + Superposition - + Memory Card Directory Dossier des Memory Cards - + Folder Memory Card Filter - Folder Memory Card Filter + Filtrer les sauvegardes des Memory Cards au format dossier - + Auto Eject When Loading Éjection automatique lors du chargement - + Create Créer - + Cancel Annuler - + Load Profile Charger un profil - + Save Profile - Enregistrer un profil + Enregistrer dans un profil - + Per-Game Configuration - Configuration spécifique au jeu + Configuration propre au jeu - + Copy Global Settings Copier les paramètres globaux - + Enable SDL Input Source Activer la source d'entrées SDL - + SDL DualShock 4 / DualSense Enhanced Mode - SDL DualShock 4 / DualSense Enhanced Mode + Mode amélioré SDL pour DualShock 4 et DualSense - + SDL Raw Input - SDL Raw Input + Entrée brute SDL - + Enable XInput Input Source Activer la source d'entrées XInput - + Enable Console Port 1 Multitap - Enable Console Port 1 Multitap + Activer le multitap sur le port console 1 - + Enable Console Port 2 Multitap - Enable Console Port 2 Multitap + Activer le multitap sur le port console 2 - + Controller Port {}{} Port de manette {}{} - + Controller Port {} Port de manette {} - + Controller Type - Controller Type + Type de manette - + Automatic Mapping - Automatic Mapping + Association automatique - + Controller Port {}{} Macros - Macros de la manette {}{} + Macros du port de manette {}{} - + Controller Port {} Macros - Macros de la manette {} + Macros du port de manette {} - + Macro Button {} - Macro Button {} + Bouton macro {} - + Buttons Boutons - + Frequency Fréquence - + Pressure Pression - + Controller Port {}{} Settings - Paramètres de la manette {}{} + Paramètres du port de manette {}{} - + Controller Port {} Settings - Paramètres de la manette {} + Paramètres du port de manette {} - + USB Port {} Port USB {} - + Device Type Type de périphérique - + Device Subtype - Device Subtype + Sous-type du périphérique - + {} Bindings - {} Bindings + {} associations - + Clear Bindings Effacer les associations - + {} Settings Paramètres de {} - + Cache Directory Dossier du cache - + Covers Directory Dossier des jaquettes - + Snapshots Directory Dossier des instantanés - + Save States Directory Dossier des sauvegardes d'état - + Game Settings Directory Dossier des paramètres des jeux - + Input Profile Directory Dossier des profils d'entrée - + Cheats Directory Dossier des codes de triche - + Patches Directory Dossier des patchs - + Texture Replacements Directory Dossier des textures de remplacement - + Video Dumping Directory Dossier des dumps vidéo - + Resume Game Reprendre la partie - + Toggle Frame Limit - Activer la limite d'images + Activer/désactiver la limite d'images - + Game Properties Propriétés du jeu - + Achievements Succès - + Save Screenshot - Enregistrer une capture d’écran + Enregistrer une capture d'écran - + Switch To Software Renderer Basculer vers le moteur de rendu logiciel - + Switch To Hardware Renderer Basculer vers le moteur de rendu matériel - + Change Disc Changer de disque - + Close Game Quitter le jeu - + Exit Without Saving Quitter sans sauvegarder - + Back To Pause Menu Revenir au menu pause - + Exit And Save State Quitter et sauvegarder l'état - + Leaderboards Classements - + Delete Save Supprimer la sauvegarde - + Close Menu Fermer le menu - - Clean Boot - Clean Boot - - - + Delete State Supprimer l'état - + Default Boot Démarrage par défaut - - Slow Boot - Slow Boot - - - + Reset Play Time Réinitialiser le temps de jeu - + Add Search Directory Ajouter un dossier - + Open in File Browser Ouvrir dans l'explorateur de fichiers - + Disable Subdirectory Scanning Désactiver le scan des sous-dossiers - + Enable Subdirectory Scanning Activer le scan des sous-dossiers - + Remove From List Retirer de la liste - + Default View Affichage par défaut - + Sort By Trier par - + Sort Reversed - Sort Reversed + Tri inversé - + Scan For New Games - Scan For New Games + Actualiser la liste des jeux - + Rescan All Games Rescanner tous les jeux - - Start Download - Télécharger - - - + Website Site web - + Support Forums Forums d'assistance - + GitHub Repository Dépôt GitHub - + License Licence - + Close Fermer - + RAIntegration is being used instead of the built-in achievements implementation. - RAIntegration is being used instead of the built-in achievements implementation. + RAIntegration est utilisé à la place de l'implémentation des succès intégrée. - + Enable Achievements Activer les succès - - Rich Presence - Rich Presence - - - + Hardcore Mode Mode hardcore - - Show Notifications - Afficher les notifications - - - + Sound Effects Effets sonores - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements - Tester les succès non-officiels - - - - Test Mode - Mode test + Tester les succès non officiels - + Username: {} Nom d'utilisateur : {} - + Login token generated on {} Jeton de connexion généré : {} - + Logout Se déconnecter - + Not Logged In Déconnecté(e) - + Login Se connecter - - Achievements are disabled. - Les succès sont désactivés. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Succès : {} ({} points) + + Game: {0} ({1}) + Jeu : {0} ({1}) - + Rich presence inactive or unsupported. - Rich presence inactive or unsupported. + Rich Presence inactive ou non prise en charge. - + Game not loaded or no RetroAchievements available. - Game not loaded or no RetroAchievements available. + Aucun jeu chargé ou aucun RetroAchievements disponible. - + Card Enabled - Card Enabled + Memory Card activée - + Card Name - Card Name + Nom de la Memory Card - + Eject Card - Eject Card + Éjecter la Memory Card @@ -8071,72 +8320,72 @@ ${serial} : numéro de série du jeu. Failed to reopen, restoring old configuration. - Échec de la réouverture, restauration de l'ancienne configuration. + Échec de la réouverture, rétablissement de l'ancienne configuration. - + Upscale multiplier set to {}x. Multiplicateur de mise à l'échelle défini sur {}x. Saving screenshot to '{}'. - Enregistrement de la capture d'écran vers '{}'. + Capture d'écran enregistrée dans le fichier : « {} ». Saved screenshot to '{}'. - Capture d'écran enregistrée vers '{}'. + Capture d'écran enregistrée sous « {} ». Failed to save screenshot to '{}'. - Échec de l'enregistrement de la capture d'écran vers '{}'. + Échec de l'enregistrement de la capture d'écran dans le fichier « {} ». Host GPU device encountered an error and was recovered. This may have broken rendering. - Le périphérique GPU de l'hôte a rencontré une erreur et a été récupéré. Cela peut avoir un rendu défectueux. + Le périphérique GPU de l'hôte a rencontré un problème et a été récupéré. Vous pourriez avoir des problèmes d'affichage. CAS is not available, your graphics driver does not support the required functionality. - CAS indisponible. Votre pilote graphique ne prend pas en charge les fonctionnalités requises. + CAS indisponible : votre pilote graphique ne prend pas en charge les fonctionnalités requises. Saving {0} GS dump {1} to '{2}' - Enregistrement d'un dump du GS « {0}, {1} » dans '{2}' + Dump du GS « {0}, {1} » enregistré sous : « {2} ». Failed to render/download screenshot. - Échec du rendu/téléchargement de la capture d'écran. + Échec du rendu ou du téléchargement de la capture d'écran. Saved GS dump to '{}'. - Dump du GS enregistré : '{}'. + Dump du GS enregistré sous « {} ». Hash cache has used {:.2f} MB of VRAM, disabling. - Le cache de hachage a utilisé {:.2f} Mo de VRAM, désactivation. + Le hash cache a utilisé {:.2f} Mo de VRAM, désactivation. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - Désactivation de la génération des mipmaps d'une ou plusieurs textures de remplacement compressées. Veuillez générer les mipmaps lors de la compression de vos textures. + Désactivation de la génération des mipmaps d'une ou plusieurs textures de remplacement compressées. Veuillez générer les mipmaps au moment de compresser vos textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - Les buffers de tencil et les barrières de texture ne sont pas disponibles, ce qui brisera certains effets graphiques. + Les stencil buffers et les barrières de texture sont indisponibles, cela pourrait casser certains effets visuels. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. - Garder le GPU actif lors des readbacks est activé, mais les « calibrated timestamps » sont indisponibles. + Garder le GPU actif lors des readbacks est activé, mais les « calibrated timestamps » sont indisponibles. Les performances pourraient être sévèrement dégradées. @@ -8184,283 +8433,426 @@ ${serial} : numéro de série du jeu. %1 unlabelled patch codes will automatically activate. - %1 codes sans étiquette seront automatiquement activés. + %1 codes de patch sans étiquette seront activés automatiquement. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - {0} La précision du blending actuelle est {1}. -La précision du blending recommandée pour ce jeu est {2}. -Vous pouvez ajuster la précision du blending dans les propriétés du jeu pour -améliorer la qualité des graphismes, mais cela demandera plus de ressources. + {0} Précision des fusions actuelle : « {1} ». +Précision des fusions recommandée pour ce jeu : « {2} ». +Vous pouvez ajuster la précision des fusions dans les propriétés +du jeu pour améliorer la qualité des graphismes, mais cela +demandera plus de ressources. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Les correctifs manuels du moteur de rendu GS matériel sont activés. Ces correctifs automatiques n'ont pas été appliqués : - + No tracks provided. Aucune piste fournie. - + Hash {} is not in database. Le hash {} est absent de la base de données. - - Data track number does not match data track in database. - Le nombre de pistes de données ne correspond à celui dans la base de données. + + Data track number does not match data track in database. + Le nombre de pistes de données ne correspond au nombre dans la base de données. + + + + Track {0} with hash {1} is not found in database. + + La piste {0} ayant pour hash {1} est introuvable dans la base de données. + + + + + Track {0} with hash {1} is for a different game ({2}). + + La piste {0} ayant pour hash {1} appartient à un autre jeu ({2}). + + + + + Track {0} with hash {1} does not match database track. + + La piste {0} ayant pour hash {1} ne correspond pas à la piste dans la base de données. + + + + + GameFixSettingsWidget + + + Game Fixes (NOT recommended to change globally) + Correctifs (modification globale déconseillée) + + + + + FPU Negative Divide Hack + FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. + Hack « FPU Negative Divide » + + + + + FPU Multiply Hack + FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. + Hack « FPU Multiply » + + + + + Skip MPEG Hack + MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. + Hack « Skip MPEG » + + + + + Preload TLB Hack + TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. + Hack « Preload TLB » + + + + + EE Timing Hack + EE: Emotion Engine. Leave as-is. + Hack « EE Timing » + + + + + Instant DMA Hack + DMA: Direct Memory Access. Leave as-is. + Hack « Instant DMA » + + + + + OPH Flag Hack + OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. + Hack « OPH Flag » + + + + + Emulate GIF FIFO + GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. + Émuler le FIFO de la GIF + + + + + DMA Busy Hack + DMA: Direct Memory Access. Leave as-is. + Hack « DMA Busy » + + + + + Delay VIF1 Stalls + VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. + Retarder les arrêts de la VIF1 + + + + + Emulate VIF FIFO + VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. + Émuler le FIFO de la VIF + + + + + Full VU0 Synchronization + VU0 = VU (Vector Unit) 0. Leave as-is. + Synchronisation complète de la VU0 + + + + + VU I Bit Hack + VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. + Hack « VU I Bit » + + + + + VU Add Hack + VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. + Hack « VU Add » + + + + + VU Overflow Hack + VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. + Hack « VU Overflow » + + + + + VU Sync + VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). + Synchronisation des VU - - Track {} with hash {} is not found in database. - - La piste {} de hash {} est introuvable dans la base de données. - + + + VU XGKick Sync + VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. + Synchronisation par XGKick des VU - - Track {} with hash {} is for a different game ({}). - - La piste {} ayant pour hash {} appartient à un autre jeu ({}). - + + + Force Blit Internal FPS Detection + Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. + Forcer la détection par BLIT de la fréquence d'images interne - - Track {} with hash {} does not match database track. - - La piste {} ayant pour hash {} ne correspond pas à la piste dans la base de données. - + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Utiliser le moteur de rendu logiciel pour les cinématiques vidéo - - - GameFixSettingsWidget - - Game Fixes (NOT recommended to change globally) - Correctifs (modification globale déconseillée) + + + + + + + + + + + + + + + + + + + + Unchecked + décoché - - FPU Negative Divide Hack (For Gundam Games) - FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - Hack de division négative du FPU (pour les jeux Gundam) + + For Tales of Destiny. + Pour Tales of Destiny. - - FPU Multiply Hack (For Tales of Destiny) - FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - Hack de multiplication du FPU (pour Tales of Destiny) + + For Gundam Games. + Pour les jeux Gundam. - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Utiliser le moteur de rendu logiciel pour les cinématiques vidéo + + To avoid TLB miss on Goemon. + Permet d'éviter un TLB Miss pendant l'émulation de Goemon. - - Skip MPEG Hack (Skips Videos/FMVs) - MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Hack « Skip MPEG » (saute les cinématiques vidéo) + + Needed for some games with complex FMV rendering. + Nécessaire pour certains jeux dont le rendu des cinématiques vidéo est complexe. - - Preload TLB Hack (For Goemon) - TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Hack de préchargement du TLB (pour Goemon) + + Skips videos/FMVs in games to avoid game hanging/freezes. + Passer les cinématiques vidéo (FMV) des jeux afin d'éviter les freezes. - - EE Timing Hack (General Purpose Timing Hack) - EE: Emotion Engine. Leave as-is. - Hack de rythme du EE (hack général du rythme) + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Affecte les jeux connus suivants : Bleach Blade Battlers, Growlanser II et III, Wizardry. - - Instant DMA Hack (Good for cache emulation problems) - DMA: Direct Memory Access. Leave as-is. - Hack du DMA instantané (aide avec les problèmes d'émulation du cache) + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Hack de timing à usage général. Affecte les jeux connus suivants : Digital Devil Saga, SSX. - - OPH Flag Hack (For Bleach Blade Battlers) - OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - Hack du flag OPH (pour Bleach Blade Battlers) + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Corriger des problèmes d'émulation du cache. Affecte les jeux connus suivants : Fire Pro Wrestling Z. - - Emulate GIF FIFO (Correct But Slower) - GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Émuler le FIFO de la GIF (correct mais plus lent) + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Affecte les jeux connus suivants : Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - DMA Busy Hack (Deny Writes When Busy) - DMA: Direct Memory Access. Leave as-is. - Hack d'activité DMA (refuser l'écriture lorsqu'il est occupé) + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct mais plus lent. Affecte les jeux connus suivants : FIFA Street 2. - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) - VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Retarder les arrêts de la VIF1 (pour Spy Hunter et l'ATH de SOCOM 2) + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simuler le VIF1 FIFO readahead. Affecte les jeux connus suivants : Test Drive Unlimited, Transformers. - - Emulate VIF FIFO (Correct But Slower) - VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Émuler le FIFO de la VIF (correct mais plus lent) + + For SOCOM 2 HUD and Spy Hunter loading hang. + Pour l'ATH de SOCOM 2 et le freeze pendant les chargements dans Spy Hunter. - - Full VU0 Synchronization (Correct But Slower) - VU0 = VU (Vector Unit) 0. Leave as-is. - Synchronisation complète de la VU0 (correct mais plus lent) + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Pour les jeux Tri-Ace : Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) - VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - Hack du bit I des VU (pour Scarface The World is Yours et Crash Tag Team Racing) + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Permet d'éviter de recompiler constamment dans certains jeux. Affecte les jeux connus suivants : Scarface The World is Yours, Crash Tag Team Racing. - - VU Add Hack (For Tri-Ace Games) - VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - Hack d'addition des VU (pour les jeux de Tri-Ace) + + Forces tight VU0 sync on every COP2 instruction. + Forcer une synchronisation forte de la VU0 à chaque instruction COP2. - - VU Overflow Hack (Superman Returns) - VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - Hack de débordement des VU (pour Superman Returns) + + Run behind. To avoid sync problems when reading or writing VU registers. + « Run Behind », éviter les problèmes de synchronisation lors des opérations de lecture et d'écriture dans les registres des VU. - - VU Sync (Run Behind, M-Bit games) - VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - Synchronisation des VU (« Run Behind », jeux avec M-Bit) + + To check for possible float overflows (Superman Returns). + Prendre en charge les débordements éventuels des nombres flottants (Superman Returns). - - VU XGKick Sync (Correct But Slower) - VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - Synchronisation du XGKick des VU (correct mais plus lent) + + Use accurate timing for VU XGKicks (slower). + Cadencer précisément les XGKicks des VU (lent). - - Force Blit Internal FPS Detection (When auto-detection fails) - Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Forcer la détection par BLIT de la fréquence d'images interne (quand la détection automatique échoue) + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Utiliser une méthode alternative de calcul de la fréquence d'images interne (plus fiable avec certains jeux). GameList - + Never Jamais - + Today Aujourd'hui - + Yesterday Hier - + {}h {}m {} h {} min - + {}h {}m {}s {} h {} min {} s - + {}m {}s {} h {} min - + {}s {} s - + {} hours {} heures - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Téléchargement de la jaquette de {0} [{1}]… + GameListModel - + Type Type - + Code Code - + Title - Titre + Nom - + File Title - Titre du Fichier + Nom fichier - + CRC CRC - + Time Played Temps de jeu - + Last Played - Lancé pour la dernière fois + Dernier lancement - + Size Taille - + Region Région - + Compatibility Compatibilité @@ -8468,88 +8860,114 @@ améliorer la qualité des graphismes, mais cela demandera plus de ressources. GameListSettingsWidget - + + Game Scanning + Scan des jeux + + + Search Directories (will be scanned for games) Dossiers scannés à la recherche de jeux - + Add... - Ajouter... + Ajouter… - - - + + + Remove - Enlever + Retirer - + Search Directory Dossier - + Scan Recursively Scanner les sous-dossiers - + Excluded Paths (will not be scanned) - Chemins exclus du scan + Chemins d'accès exclus du scan - + Directory... - Dossier... + Dossier… - + File... - Fichier... + Fichier… - + Scan For New Games Actualiser la liste des jeux - + Rescan All Games Rescanner tous les jeux - + + Display + Affichage + + + + + Prefer English Titles + Préférer les noms anglais + + + + Unchecked + décoché + + + + For games with both a title in the game's native language and one in English, prefer the English title. + Si le nom original du jeu est différent du nom anglais, préférer le nom anglais. + + + Open Directory... - Ouvrir le Dossier... + Ouvrir le dossier… - + Select Search Directory Sélectionner un dossier - + Scan Recursively? Scanner les sous-dossiers ? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. - Voulez-vous scanner les sous-dossiers de "%1" ? + Voulez-vous scanner les sous-dossiers de « %1 » ? Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un sous-dossier pourront être identifiés. - + Select File Sélectionner un fichier - + Select Directory Sélectionner un dossier @@ -8557,34 +8975,34 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un GameListWidget - + Game List Liste des jeux - + Game Grid - Grille de Jeux + Grille des jeux - + Show Titles - Montrer les Titres + Afficher le nom - + All Types - Tous Types + Tous les types - + All Regions - Toutes Régions + Toutes les régions - + Search... - Chercher... + Rechercher… @@ -8593,7 +9011,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Patch Title - Titre du correctif + Nom du patch @@ -8605,20 +9023,20 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">Auteur : </span>Auteur du correctif</p><p>La description irait ici</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Auteur : </span>Auteur du patch</p><p>La description irait ici</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Auteur : </strong>%1<br>%2 - + Unknown Inconnu - + No description provided. Aucune description fournie. @@ -8636,7 +9054,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Recharger les patchs - + There are no patches available for this game. Aucun patch disponible pour ce jeu. @@ -8646,486 +9064,497 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Title: - Titre : + Nom : Clear the line to restore the original title... - Effacer la ligne pour restaurer le titre original... + Effacez la ligne pour revenir au titre original… - + Restore - Restaurer + Rétablir - Path: - Chemin : + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Nom de tri : - Serial: - Numéro de Série : + English Title: + Nom anglais : - CRC: - CRC : + Path: + Chemin d'accès : + Serial: + Numéro de série : + + + + CRC: + CRC : + + + Type: - Type : + Type : - + PS2 Disc Disque PS2 - + PS1 Disc - Disque PSOne + Disque PS1 - + ELF (PS2 Executable) - ELF (Exécutable PS2) + ELF (exécutable PS2) - + Region: - Région : + Région : - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brésil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (Chine) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japon) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Corée) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taïwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (USA) - + Other Autre - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australie) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. - PAL-AF (Afrique du SUD) + PAL-AF (Afrique du Sud) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Autriche) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgique) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. - PAL-E (Europe/Australie) + PAL-E (Europe et Australie) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finlande) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Allemagne) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Grèce) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italie) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (Inde) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. - PAL-M (Europe/Australie) + PAL-M (Europe et Australie) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Pays-Bas) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norvège) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Pologne) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russie) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Espagne) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavie) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Suède) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Suisse) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Royaume-Uni) - + Compatibility: - Compatibilité : + Compatibilité : - + Unknown - Inconnu + Inconnue - + Not Bootable Ne démarre pas - + Reaches Intro - Arrive à l'Introduction + Atteint l'intro - + Reaches Menu - Arrive au Menu + Atteint le menu - + In-Game - En Jeu + En jeu - + Playable Jouable - + Perfect - Parfait + Parfaite - + Input Profile: Profil d'entrée : - + Shared Refers to the shared settings profile. Partagé - + Disc Path: - Chemin du Disque : + Chemin d'accès au disque : - + Browse... - Parcourir... + Parcourir… - + Clear - Nettoyer + Effacer - + Verify Vérifier - + Search on Redump.org... - Rechercher sur Redump.org... + Rechercher sur Redump.org… - + Select Disc Path - Sélectionner le chemin du disque + Sélectionner l'emplacement du disque - + Game is not a CD/DVD. Ce jeu n'est pas un CD ou un DVD. - + Track list unavailable while virtual machine is running. Liste des pistes indisponible lorsque la machine virtuelle est en cours d'exécution. - + # # - + Mode Mode - - + + Start - Start + Début - - + + Sectors Secteurs - - + + Size Taille - - + + MD5 MD5 - - + + Status Statut - - - - - - + + + + + + %1 %1 - - + + <not computed> - <not computed> + (pas encore calculé) - + Error Erreur - + Cannot verify image while a game is running. - Impossible de vérifier l'image pendant l'exécution d'un jeu. + Impossible de vérifier l'image pendant qu'un jeu est en cours d'exécution. - + One or more tracks is missing. Une ou plusieurs pistes sont manquantes. - + Verified as %1 [%2] (Version %3). - Confirmé : %1 [%2] (version %3). + Vérifié : %1 [%2] (version %3). - + Verified as %1 [%2]. - Confirmé : %1 [%2]. + Vérifié : %1 [%2]. GraphicsSettingsWidget - + Renderer: - Moteur de Rendu : + Moteur de rendu : - + Adapter: - Adaptateur : + Adaptateur : - + Display Affichage - + Fullscreen Mode: - Mode Plein Écran : + Mode plein écran : - + Aspect Ratio: - Ratio d'aspect : + Format d'image : - + Fit to Window / Fullscreen - Ajuster à la Fenêtre / Plein Écran + Ajuster à la fenêtre ou à l'écran - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) - Standard Auto (4:3 entrelacé / 3:2 progressif) + Standard auto (4:3 entrelacé, 3:2 progressif) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Écran large (16:9) - + FMV Aspect Ratio: - Ratio d'aspect FMV : + Format d'image FMV : - - - + + + Off (Default) - Désactivé (Par Défaut) + Désactivé (par défaut) - - - - - - + + + + + + @@ -9133,531 +9562,531 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Automatic (Default) - Automatique (Par Défaut) + Automatique (par défaut) - + None (Interlaced, also used by Progressive) - Aucun (Entrelacé, également utilisé en Progressif) + Aucun - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. - Tressage (Champ supérieur en premier, Dent de scie) + Weave (trame du haut en premier, effet dents de scie) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (trame du bas en premier, effet dents de scie) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (trame du haut en premier, images entières) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (trame du bas en premier, images entières) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (trame du haut en premier, fusion de deux trames) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (trame du bas en premier, fusion de deux trames) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptatif (trame du haut en premier, comparable à Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptatif (trame du bas en premier, comparable à Bob + Weave) - + Bilinear Filtering: Filtrage bilinéaire : - - + + None Aucun - + Bilinear (Smooth) Smooth: Refers to the texture clarity. - Bilinéaire (doux) + Bilinéaire (lisse) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. - Bilinéaire (Net) + Bilinéaire (net) - + Vertical Stretch: - Étirement Vertical : + Étirement vertical : - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- Percentage sign that will appear next to a number. Add a space or whatever is needed before depending on your language. - % +  % - + Crop: - Rogner : + Rognage : - + Left: Warning: short space constraints. Abbreviate if necessary. - Gauche : + Gauche : - - - - + + + + px - px +  px - + Top: Warning: short space constraints. Abbreviate if necessary. - Haut : + Haut : - + Right: Warning: short space constraints. Abbreviate if necessary. - Droite : + Droite : - + Bottom: Warning: short space constraints. Abbreviate if necessary. - Bas : + Bas : - + Screen Offsets Décalage de l'écran - + VSync VSync - + Show Overscan - Afficher la zone de surbalayage + Surbalayage (overscan) - + Enable Widescreen Patches Activer les patchs écran large - + Enable No-Interlacing Patches Patchs de désactivation de l'entrelacement - + Anti-Blur Anti-flou - + Ctrl+S Ctrl+S - + Disable Interlace Offset Désactiver le décalage d'entrelacement - + Screenshot Size: Taille des captures d'écran : - + Screen Resolution - Résolution d'Écran + Résolution d'affichage - + Internal Resolution Résolution interne - + Internal Resolution (Aspect Uncorrected) - Résolution interne (aspect original) + Résolution interne (format original) - + PNG PNG - + JPEG JPEG - + Quality: - Qualité : + Qualité : - - + + Rendering Rendu - + Internal Resolution: - Résolution interne : + Résolution interne : - + Mipmapping: Mipmapping : - - + + Off Désactivé - + Basic (Generated Mipmaps) Basique (mipmaps générées) - + Full (PS2 Mipmaps) Complet (mipmaps PS2) - - + + Texture Filtering: Filtrage des textures : - - + + Nearest - Le Plus Proche + Nearest (au plus proche) - - + + Bilinear (Forced) - Bilinéaire (Forcé) + Bilinéaire (forcé) - - + + Bilinear (PS2) Bilinéaire (PS2) - - + + Bilinear (Forced excluding sprite) - Bilinéaire (Forcé excepté pour les images 2D) + Bilinéaire (forcé, sprites exclus) - + Trilinear Filtering: Filtrage trilinéaire : - + Off (None) - Désactivé (Aucun) + Désactivé - + Trilinear (PS2) Trilinéaire (PS2) - + Trilinear (Forced) Trilinéaire (forcé) - + Anisotropic Filtering: Filtrage anisotrope : - + Dithering: Dithering : - + Scaled Mis à l'échelle - + Unscaled (Default) Taille originale (par défaut) - + Blending Accuracy: - Précision du Blending : + Précision des fusions : - + Minimum - Minimum + Minimale - + Basic (Recommended) - Basique (Recommandé) + Basique (recommandé) - + Medium - Moyen + Moyenne - + High Élevée - + Full (Slow) - Complet (Lent) + Complète (lent) - + Maximum (Very Slow) - Maximum (Très Lent) + Maximale (très lent) - + Texture Preloading: Préchargement des textures : - + Partial Partiel - + Full (Hash Cache) Complet (Hash Cache) - + + Software Rendering Threads: + Threads de rendu logiciel : + + + + Skip Draw Range: + Limites du Skipdraw : + + + GPU Palette Conversion Conversion de palette GPU - + Manual Hardware Renderer Fixes Correctifs manuels du moteur de rendu matériel - + Spin GPU During Readbacks Garder le GPU actif lors des readbacks - + Spin CPU During Readbacks Garder le CPU actif lors des readbacks - - Extra Rendering Threads: - Fils d'Exécution Supplémentaires : - - - + threads - fils d'exécution +  threads - + Mipmapping - Mipmappage + Mipmapping - + Auto Flush - Auto-flush + Purge auto. - + Hardware Fixes Correctifs matériels - + Force Disabled - Forcer la Désactivation + Désactivé (forcé) - + Force Enabled - Forcer l'Activation + Activé (forcé) - + CPU Sprite Render Size: - Taille du rendu CPU des sprites : + Taille rendu CPU sprites : - - - + + + 0 (Disabled) 0 (Disabled) - 0 (Désactivé) + 0 (désactivé) - + 1 (64 Max Width) - 1 (Largeur max 64) + 1 (Largeur max. : 64) - + 2 (128 Max Width) - 2 (Largeur max 128) + 2 (Largeur max. : 128) - + 3 (192 Max Width) - 3 (Largeur max 192) + 3 (Largeur max. : 192) - + 4 (256 Max Width) - 4 (Largeur max 256) + 4 (Largeur max. : 256) - + 5 (320 Max Width) - 5 (Largeur max 320) + 5 (Largeur max. : 320) - + 6 (384 Max Width) - 6 (Largeur max 384) + 6 (Largeur max. : 384) - + 7 (448 Max Width) - 7 (Largeur max 448) + 7 (Largeur max. : 448) - + 8 (512 Max Width) - 8 (Largeur max 512) + 8 (Largeur max. : 512) - + 9 (576 Max Width) - 9 (Largeur max 576) + 9 (Largeur max. : 576) - + 10 (640 Max Width) - 10 (Largeur max 640) + 10 (Largeur max. : 640) - - Skipdraw Range: - Limites du Skipdraw : - - - + Frame Buffer Conversion - Conversion du framebuffer + Conversion des framebuffers - + Disable Depth Emulation Désactiver l'émulation de la profondeur - + Disable Safe Features Désactiver les fonctionnalités sûres - + Preload Frame Data Précharger les données des images @@ -9665,681 +10094,685 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - Texture dans la cible du rendu + Texture dans RT - + 1 (Normal) - 1 (Normal) + 1 (normal) - + 2 (Aggressive) - 2 (Aggressif) + 2 (agressif) - + Software CLUT Render: - Rendu CLUT logiciel : + Rendu logiciel des CLUT : - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. - Cible CLUT du GPU : + CLUT dans une cible GPU : - - - + + + Disabled (Default) - Désactivé (Par Défaut) + Désactivé (par défaut) - + Enabled (Exact Match) - Activé (Correspondance Exacte) + Activé (correspondance exacte) - + Enabled (Check Inside Target) - Activé (Vérifier dans la cible) + Activé (vérifier dans la cible) - + Upscaling Fixes Correctifs de mise à l'échelle - + Half Pixel Offset: Décalage demi-pixel : - + Normal (Vertex) - Normal (Vertex) + Normal (sommet) - + Special (Texture) - Spécial (Texture) + Spécial (texture) - + Special (Texture - Aggressive) - Spécial (Texture - Agressif) + Spécial (texture, agressif) - + Round Sprite: - Arrondir les sprites : + Arrondir les sprites : - + Half - Demi + Moitié - + Full Complet - + Texture Offsets: - Décalage de textures : + Décalage des textures : - + X: - X : + X : - + Y: - Y : + Y : - + Merge Sprite Fusionner les sprites - + Align Sprite Aligner les sprites - + Deinterlacing: - Désentrelacement : + Désentrelacement : - + Sprites Only Sprites uniquement - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles - Sprites/Triangles mélangés + Sprites et triangles mélangés - + Auto Flush: - Auto-flush : + Purge auto. : - + Enabled (Sprites Only) - Activé (Sprites Uniquement) + Activé (sprites uniquement) - + Enabled (All Primitives) - Activé (Tous les primitifs) + Activé (toutes les primitives) - + Texture Inside RT: Texture dans la cible du rendu : - + Inside Target Dans la cible - + Merge Targets Fusionner les cibles - + Disable Partial Source Invalidation Désactiver l'invalidation partielle des sources - + Read Targets When Closing Lire les cibles lors de la fermeture - + Estimate Texture Region - Estimer la zone de texture + Estimer la taille des textures - + Disable Render Fixes Désactiver les correctifs de rendu - + Unscaled Palette Texture Draws - Dessins avec palette non redimensionnée + Ne pas redim. les textures de palette - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. - Hack Wild Arms + Hack « Wild Arms » - + Bilinear Dirty Upscale: Mise à l'échelle bilinéaire rapide : - + Force Bilinear - Forcer bilinéaire + Forcer « bilinéaire » - + Force Nearest - Forcer le plus proche + Forcer « au plus proche » - + Texture Replacement - Textures de remplacement + Textures de rempl. - + Search Directory Dossier - - + + Browse... - Parcourir... + Parcourir… - - + + Open... - Ouvrir... + Ouvrir… - - + + Reset Réinitialiser - + PCSX2 will dump and load texture replacements from this directory. PCSX2 utilisera ce dossier pour dumper les textures et charger les textures de remplacement. - + Options Options - + Dump Textures Dumper les textures - + Dump Mipmaps Dumper les mipmaps - + Dump FMV Textures - Dumper les textures des FMV - - - - - Async Texture Loading - Chargement des textures asynchrone + Dumper les textures FMV - + Load Textures - Charger les Textures + Charger les textures - + Precache Textures - Anticiper la mise en cache des textures + Mise en cache anticipée des textures - + Post-Processing - Post-Traitement + Post-traitement - + Sharpening/Anti-Aliasing - Affûtage / Anti-Crénelage + Netteté et anticrénelage - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx - Contrast Adaptive Sharpening : + Contrast Adaptive Sharpening : - - + + None (Default) - Aucun (Par Défaut) + Désactivé (par défaut) - + Sharpen Only (Internal Resolution) - Améliorer seulement la netteté (résolution interne) + Netteté uniquement (résolution interne) - + Sharpen and Resize (Display Resolution) - Rendre Net et Redimensionner (Résolution affichée) + Netteté et mise à l'échelle (résolution d'affichage) - + Sharpness: - Netteté : + Netteté : - + FXAA FXAA - + Filters Filtres - + TV Shader: Shader TV : - + Scanline Filter - Filtre de Ligne de Balayage + Filtre scanline - + Diagonal Filter - Filtre Diagonale + Filtre diagonale - + Triangular Filter - Filtre Triangulaire + Filtre triangulaire - + Wave Filter - Filtre Vague + Filtre vague - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. - Effet TV cathodique de Lottes + Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) - Échantillonnage descendant 4xRGSS (4x Super-échantillonnage de la grille pivotée) + 4xRGSS (suréchantillonnage x4 à grille pivotée) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) - Échantillonnage descendant NxAGSS (Super-échantillonnage automatique de la grille) + NxAGSS (suréchantillonnage Nx à grille automatique) - + Shade Boost Shade Boost - + Brightness: - Luminosité : + Luminosité : - + Contrast: - Contraste : + Contraste : - Saturation Saturation - + OSD OSD - + On-Screen Display - Affichage à l'Écran (OSD) + Affichage à l'écran (OSD) - + OSD Scale: - Échelle de l'OSD : + Échelle de l'affichage à l'écran : - + Show Indicators - Afficher les Indicateurs + Afficher des indicateurs - + Show Resolution - Afficher la Résolution + Afficher la résolution - + Show Inputs - Afficher les Saisis d'Entrées + Afficher les entrées - + Show GPU Usage - Afficher l'Utilisation du GPU + Afficher l'utilisation du GPU - + Show Settings - Afficher les Paramètres + Afficher les paramètres - + Show FPS Afficher la fréquence d'images - + + + Disable Dual-Source Blending + Désactiver le Dual-Source Blending + + + Disable Shader Cache Désactiver le cache des shaders - + Disable Vertex Shader Expand - Désactiver l'agrandissement des vertex shaders + Désactiver l'expansion par vertex shader - + Show Statistics - Afficher les Statistiques + Afficher des statistiques - + + + Asynchronous Texture Loading + Chargement asynchrone des textures + + + + Saturation: + Saturation : + + + Show CPU Usage - Afficher l'Utilisation du CPU + Afficher l'utilisation du CPU - + Warn About Unsafe Settings - Avertissement de l'Utilisation de Paramètres risqués + Avertir des paramètres dangereux - + Show Frame Times Afficher les durées d'image - + Recording Enregistrement - + Video Dumping Directory Dossier des dumps vidéo - + Capture Setup Configuration de la capture - + Container: - Conteneur : + Conteneur : - - + + Codec: - Codec : + Codec : - - + + Extra Arguments - Arguments Supplémentaires + Arguments supplémentaires - + Capture Audio - Capturer le son + Capture audio - + Resolution: - Résolution : + Résolution : - + x x - + Auto - Auto + Auto. - + Capture Video - Capturer une vidéo + Capture vidéo - + Advanced Advanced here refers to the advanced graphics options. Avancé - + Advanced Options Options avancées - + Hardware Download Mode: Mode de téléchargement matériel : - + Accurate (Recommended) - Précis (Recommandé) + Précis (recommandé) - + Disable Readbacks (Synchronize GS Thread) Désactiver les readbacks (synchroniser le thread GS) - + Unsynchronized (Non-Deterministic) Non synchronisé (non-déterministe) - + Disabled (Ignore Transfers) - Désactivé (Ignorer les Transferts) + Désactivé (ignorer les transferts) - + GS Dump Compression: - Compression des dumps du GS: + Compression des dumps du GS : - + Uncompressed - Non Compressé + Sans compression - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames - Sauter la présentation d'images en double + Sauter la présentation des images en double - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. ---------- Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit Swap chain: see Microsoft's Terminology Portal. - Utilisez la chaîne d'échange bit + Utiliser la chaîne d'échange BLIT - + Disable Threaded Presentation Désactiver la présentation threadée - - + + Bitrate: - Débit : + Débit : - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. - kbps +  kbps - + Allow Exclusive Fullscreen: Autoriser le mode plein écran exclusif : - + Disallowed Interdit - + Allowed Autorisé - + Debugging Options Options de débogage - + Override Texture Barriers: - Barrières de textures : + Barrières de texture : - + Use Debug Device Utiliser le périphérique de débogage - - - Disable Dual Source Blending - Désactiver le blending dual source - - - + Show Speed Percentages Afficher les pourcentages de vitesse - + Disable Framebuffer Fetch Désactiver la récupération du framebuffer @@ -10408,8 +10841,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Utiliser le paramètre global [%1] @@ -10461,8 +10894,9 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked - Non coché + décoché @@ -10477,7 +10911,7 @@ Swap chain: see Microsoft's Terminology Portal. Disables interlacing offset which may reduce blurring in some situations. - Désactive le décalage d'entrelacement qui peut réduire le flou dans certaines situations. + Désactiver le décalage d'entrelacement, cela pourrait atténuer le flou dans certaines situations. @@ -10487,63 +10921,73 @@ Swap chain: see Microsoft's Terminology Portal. Enables bilinear post processing filter. Smooths the overall picture as it is displayed on the screen. Corrects positioning between pixels. - Active le filtre de post-traitement bilinéaire. Lisse l'image globale telle qu'elle est affichée sur l'écran. Corrige le positionnement entre les pixels. + Activer le filtre post-traitement bilinéaire. Ce filtre lisse l'image au moment de l'afficher à l'écran. Cela permet de corriger l'alignement des pixels. Enables PCRTC Offsets which position the screen as the game requests. Useful for some games such as WipEout Fusion for its screen shake effect, but can make the picture blurry. PCRTC: Programmable CRT (Cathode Ray Tube) Controller. - Activer les Offsets PCRTC qui permettent de positionner l'écran comme demandé par le jeu. Cette option est utile pour certains jeux comme WipEout Fusion pour son effet d'agitation de l'écran, mais elle peut rendre l'image floue. + Activer les « PCRTC Offsets » qui permettent de positionner l'écran comme demandé par le jeu. Cette option est utile pour certains jeux comme WipEout Fusion pour son effet d'agitation de l'écran, mais elle peut rendre l'image floue. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - Affiche la zone de surbalayage pour les jeux qui dessinent au-delà de la zone sûre de l'écran. + Afficher la zone de surbalayage pour les jeux qui dessinent au-delà de la zone sûre de l'écran. FMV Aspect Ratio - Ratio d'aspect des FMV + Format d'image FMV Overrides the full-motion video (FMV) aspect ratio. - Modifier le ratio d'aspect pendant les cinématiques vidéo (FMV). + Changer de format d'image pendant les cinématiques vidéo (FMV). Control the texture's trilinear filtering of the emulation. - Contrôle le filtrage trilinéaire des textures. + Contrôlez l'utilisation du filtrage trilinéaire des textures. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. - Contrôle la précision de l'émulation de la blending unit du GS.<br> Plus le paramètre est élevé, plus l'émulation du blending sera précise et plus il y aura une pénalité de vitesse.<br> Notez que l'émulation du blending de Direct3D est de moins bonne qualité que celle d'OpenGL ou Vulkan. + Contrôlez la précision de l'émulation de la blending unit du GS.<br> Plus le paramètre est élevé, meilleure est l'émulation des fusions et plus la pénalité de vitesse est importante.<br> Notez que l'émulation des fusions est plus limitée avec Direct3D qu'avec OpenGL et Vulkan. + + + + Software Rendering Threads + Threads de rendu logiciel Software CLUT Render - Rendu CLUT logiciel + Rendu logiciel des CLUT + + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Désactiver l'utilisation du depth buffer dans le cache des textures. Activer cette option peut accélérer l'émulation mais aussi engendrer un certain nombre de glitchs. This option disables game-specific render fixes. - Cette option désactive les correctifs de rendu spécifiques au jeu. + Cette option désactive les correctifs de rendu propres à chaque jeu. By default, the texture cache handles partial invalidations. Unfortunately it is very costly to compute CPU wise. This hack replaces the partial invalidation with a complete deletion of the texture to reduce the CPU load. It helps with the Snowblind engine games. - Par défaut, le cache des textures prend en charge les invalidations partielles. Malheureusement, cette opération est très coûteuse en puissance pour le processeur. Ce hack remplace les invalidations partielles par une suppression complète de la texture pour réduire la charge du processeur. Cette option améliore les performances des jeux basés sur le moteur Snowblind. + Par défaut, le cache des textures prend en charge les invalidations partielles. Malheureusement, cette opération est très coûteuse pour le CPU. Ce hack remplace les invalidations partielles par une suppression complète de la texture pour réduire la charge CPU. Cette option améliore les performances des jeux basés sur le moteur Snowblind. Framebuffer Conversion - Conversion du framebuffer + Conversion des framebuffers Convert 4-bit and 8-bit framebuffer on the CPU instead of the GPU. Helps Harry Potter and Stuntman games. It has a big impact on performance. - Fait convertir les framebuffers 4 bits et 8 bits par le CPU plutôt que le GPU. Aide les jeux Harry Potter et Stuntman. L'option a un impact important sur la performance. + Utiliser le CPU pour convertir les framebuffers 4 bits et 8 bits plutôt que le GPU. Aide à l'émulation des jeux Harry Potter et Stuntman. Cette option impacte fortement les performances. @@ -10553,12 +10997,12 @@ Swap chain: see Microsoft's Terminology Portal. Disabled - Désactivé + désactivé Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - Autoriser le cache des textures à réutiliser une partie d'un framebuffer précédent en texture d'entrée. + Autoriser le cache des textures à utiliser en texture d'entrée une partie d'un framebuffer précédent. @@ -10568,38 +11012,88 @@ Swap chain: see Microsoft's Terminology Portal. Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - Tente de réduire la taille de la texture lorsque les jeux ne la définissent pas eux-mêmes (jeux Snowblind par exemple). + Essayer de réduire la taille des textures lorsque les jeux ne la définissent pas eux-mêmes (exemple : les jeux Snowblind). Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. - Corriger certains problèmes liés à la mise à l'échelle, comme les lignes verticales dans les jeux Namco (Ace Combat, Tekken, Soul Calibur, etc.). + Corriger des problèmes liés à la mise à l'échelle, comme les lignes verticales apparaissant dans les jeux Namco (Ace Combat, Tekken, Soul Calibur, etc.). + + + + Dumps replaceable textures to disk. Will reduce performance. + Dumper sur le disque les textures pouvant être remplacées. Cela réduira les performances. + + + + Includes mipmaps when dumping textures. + Inclure les mipmaps lors du dumping des textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Autoriser le dumping des textures lorsqu'une cinématique vidéo est en cours de lecture. Vous ne devriez pas activer cette option. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Charger les textures de remplacement sur un thread séparé afin d'éviter les micro-ralentissements lorsque les textures de remplacement sont activées. + + + + Loads replacement textures where available and user-provided. + Charger les textures de remplacement fournies par l'utilisateur. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Précharger en mémoire l'ensemble des textures de remplacement. L'activation de cette option n'est pas nécessaire si le chargement asynchrone est activé. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Activer FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Déterminez l'intensité de l'effet de netteté du post-traitement CAS. + + + + Adjusts brightness. 50 is normal. + Ajustez la luminosité. 50 correspond à la luminosité normale. + + + + Adjusts contrast. 50 is normal. + Ajustez le contraste. 50 correspond au contraste normal. + + + + Adjusts saturation. 50 is normal. + Ajustez la saturation. 50 correspond à la saturation normale. Scales the size of the onscreen OSD from 50% to 500%. - Met à l'échelle l'OSD de 50 % à 500 %. + Modifier la taille de l'affichage à l'écran entre 50 % et 500 %. Shows OSD icon indicators for emulation states such as Pausing, Turbo, Fast-Forward, and Slow-Motion. - Affiche une icône dans l'OSD indiquant l'état de l'émulation, tels que : En pause, Turbo, Avance rapide, et Ralenti. + Afficher une icône à l'écran indiquant l'état actuel de l'émulation, tel que : mise en pause, turbo, avance rapide et ralenti. Displays various settings and the current values of those settings, useful for debugging. - Affiche des paramètres divers et leur valeur actuelle. Utile au débogage. - - - - Shows the current controller state of the system in the bottom left corner of the display. - Affiche l'état système de la manette dans le coin inférieur gauche de l'écran. + Afficher divers paramètres et leur valeur actuelle. Utile au débogage. Displays a graph showing the average frametimes. - Affiche un graphique montrant la moyenne des durées d'image. + Afficher un graphique montrant la moyenne des durées d'image. @@ -10620,20 +11114,20 @@ Swap chain: see Microsoft's Terminology Portal. Checked - Coché + coché Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - Activer les hacks internes anti-flou. L'image sera moins fidèle au rendu PS2 mais beaucoup de jeux seront moins flous. + Activer les hacks internes anti-flou. L'image sera moins fidèle au rendu PS2 mais cela rendra beaucoup de jeux moins flous. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - Activez cette option pour faire correspondre le taux de rafraîchissement de PCSX2 avec celui de votre écran. La VSync est désactivée automatiquement quand elle ne peut pas fonctionner (par exemple : vitesse d'exécution différente de 100 %). + Activez cette option pour faire correspondre le taux de rafraîchissement de PCSX2 avec celui de votre écran. La VSync est désactivée automatiquement si nécessaire (par exemple : vitesse d'exécution différente de 100 %). - + Integer Scaling Mise à l'échelle par multiplicateur entier @@ -10646,17 +11140,17 @@ Swap chain: see Microsoft's Terminology Portal. Aspect Ratio - Ratio d'aspect + Format d'image Auto Standard (4:3/3:2 Progressive) - Standard Auto (4:3/3:2 progressif) + Standard auto (4:3 et 3:2 progressif) Changes the aspect ratio used to display the console's output to the screen. The default is Auto Standard (4:3/3:2 Progressive) which automatically adjusts the aspect ratio to match how a game would be shown on a typical TV of the era. - Modifie le ratio d'aspect utilisé pour l'affichage de la sortie vidéo de la console. La valeur par défaut est Standard Auto (4:3/3:2 progressif) : le ratio d'aspect est ajusté pour correspondre à la manière dont le jeu serait affiché sur un téléviseur typique de l'époque. + Modifier le format d'image utilisé pour l'affichage de la sortie vidéo de la console. La valeur par défaut est Standard auto (4:3 et 3:2 progressif) : le format d'image est ajusté pour correspondre à la manière dont le jeu serait affiché sur une télévision typique de l'époque. @@ -10671,7 +11165,7 @@ Swap chain: see Microsoft's Terminology Portal. Determines the resolution at which screenshots will be saved. Internal resolutions preserve more detail at the cost of file size. - Déterminez la résolution à laquelle les captures d'écran doivent être sauvegardées. Les résolutions internes préservent plus de détails au prix de la taille du fichier. + Déterminez la résolution à laquelle les captures d'écran doivent être enregistrées. Les options « résolution interne » préservent plus de détails au prix d'une taille de fichier plus importante. @@ -10681,7 +11175,7 @@ Swap chain: see Microsoft's Terminology Portal. Selects the format which will be used to save screenshots. JPEG produces smaller files, but loses detail. - Sélectionnez le format qui sera utilisé pour enregistrer les captures d'écran. Le format JPEG permet d'obtenir des fichiers plus petits, mais vous perdrez en détails. + Sélectionnez le format à utiliser pour enregistrer les captures d'écran. Le format JPEG permet d'obtenir des fichiers plus petits, mais vous perdrez en détails. @@ -10697,7 +11191,7 @@ Swap chain: see Microsoft's Terminology Portal. Selects the quality at which screenshots will be compressed. Higher values preserve more detail for JPEG, and reduce file size for PNG. - Sélectionnez la qualité à laquelle les captures d'écran seront compressées. Des valeurs plus élevées préservent plus de détails pour JPEG, et réduisent la taille du fichier pour PNG. + Sélectionnez la qualité des captures d'écran compressées. Des valeurs plus élevées permettent de préserver plus de détails pour JPEG et de réduire la taille du fichier pour PNG. @@ -10713,7 +11207,7 @@ Swap chain: see Microsoft's Terminology Portal. Stretches (&lt; 100%) or squashes (&gt; 100%) the vertical component of the display. - Étire (&lt; 100 %) ou aplatit (&gt; 100 %) en hauteur l'affichage. + Étirer (&lt; 100 %) ou aplatir (&gt; 100 %) la composante verticale de l'affichage. @@ -10722,15 +11216,15 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Fenêtré sans bordure Chooses the fullscreen resolution and frequency. - Choisit la résolution et la fréquence en plein écran. + Choisissez la résolution et la fréquence à utiliser pour le mode plein écran. @@ -10743,12 +11237,12 @@ Swap chain: see Microsoft's Terminology Portal. 0px - 0px + 0 px Changes the number of pixels cropped from the left side of the display. - Change le nombre de pixels recadrés depuis le côté gauche de l'affichage. + Modifier le nombre de pixels à rogner depuis le côté gauche de l'écran. @@ -10758,7 +11252,7 @@ Swap chain: see Microsoft's Terminology Portal. Changes the number of pixels cropped from the top of the display. - Change le nombre de pixels recadrés depuis le côté supérieur de l'affichage. + Modifier le nombre de pixels à rogner depuis le haut de l'écran. @@ -10768,7 +11262,7 @@ Swap chain: see Microsoft's Terminology Portal. Changes the number of pixels cropped from the right side of the display. - Change le nombre de pixels recadrés depuis le côté droit de l'affichage. + Modifier le nombre de pixels à rogner depuis le côté droit de l'écran. @@ -10778,22 +11272,22 @@ Swap chain: see Microsoft's Terminology Portal. Changes the number of pixels cropped from the bottom of the display. - Change le nombre de pixels recadrés depuis le côté inférieur de l'affichage. + Modifier le nombre de pixels à rogner depuis le bas de l'écran. Native (PS2) (Default) - Natif (PS2) (Par défaut) + Native (PS2) (par défaut) Control the resolution at which games are rendered. High resolutions can impact performance on older or lower-end GPUs.<br>Non-native resolution may cause minor graphical issues in some games.<br>FMV resolution will remain unchanged, as the video files are pre-rendered. - Contrôle la résolution à laquelle les jeux sont rendus. Utiliser une résolution élevée peut impacter la performance sur les GPU anciens ou d'entrée de gamme.<br>Utiliser une résolution autre que la résolution native peut causer des problèmes graphiques mineurs dans certains jeux.<br>La résolution des cinématiques vidéo restera inchangée car les fichiers vidéo sont pré-rendus. + Contrôlez la résolution à laquelle effectuer le rendu. Utiliser une résolution élevée peut impacter les performances sur les GPU anciens ou d'entrée de gamme.<br>Utiliser une résolution autre que la résolution native peut causer des problèmes graphiques mineurs dans certains jeux.<br>La résolution des cinématiques vidéo restera inchangée car les fichiers vidéo sont pré-rendus. Control the accuracy level of the mipmapping emulation. - Contrôle le niveau de précision de l'émulation du mipmapping. + Contrôlez le niveau de précision de l'émulation du mipmapping. @@ -10803,7 +11297,7 @@ Swap chain: see Microsoft's Terminology Portal. Control the texture filtering of the emulation. - Contrôle le filtrage des textures. + Contrôlez le filtrage des textures. @@ -10818,7 +11312,7 @@ Swap chain: see Microsoft's Terminology Portal. Reduces texture aliasing at extreme viewing angles. - Réduit le crénelage des textures dans les angles de vue extrêmes. + Améliore la qualité des textures à des angles de vue extrêmes. @@ -10828,12 +11322,12 @@ Swap chain: see Microsoft's Terminology Portal. Reduces banding between colors and improves the perceived color depth.<br> Off: Disables any dithering.<br> Unscaled: Native Dithering / Lowest dithering effect does not increase size of squares when upscaling.<br> Scaled: Upscaling-aware / Highest dithering effect. - Réduire l'effet de bande entre les couleurs et améliore la profondeur de couleur perçue.<br> Désactivé : désactiver tout dithering.<br> Taille originale : dithering natif. Effet minime qui n'augmente pas la taille des carrés lors de la mise à l'échelle.<br> Mis à l'échelle : prendre en compte la mise à l'échelle. Effet de dithering maximal. + Réduit l'effet de bande entre les couleurs et améliore la profondeur de couleur perçue.<br> Désactivé : désactiver tout dithering.<br> Taille originale : dithering natif. Effet minime qui n'augmente pas la taille des carrés lors de la mise à l'échelle.<br> Mis à l'échelle : prendre en compte la mise à l'échelle. Effet de dithering maximal. Blending Accuracy - Précision du blending + Précision des fusions @@ -10843,12 +11337,12 @@ Swap chain: see Microsoft's Terminology Portal. Uploads entire textures at once instead of small pieces, avoiding redundant uploads when possible. Improves performance in most games, but can make a small selection slower. - Transférer les textures à utiliser dans leur entièreté, plutôt que des régions spécifiques. Cela permet d'éviter de transférer inutilement des données. Cette option améliore les performances dans la plupart des jeux, mais peut en ralentir quelques-uns. + Transférer les textures à utiliser dans leur entièreté, plutôt que des régions spécifiques. Cela évite les transferts de données inutiles. Cette option améliore les performances dans la plupart des jeux, mais peut en ralentir quelques-uns. When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - Quand activé, le GPU convertit les textures colormap, sinon le CPU le fera. C'est un compromis entre GPU et CPU. + Lorsque cette option est activée, le GPU convertit les textures utilisant une palette à la place du CPU. C'est un moyen de répartir la charge de travail entre le GPU et le CPU. @@ -10863,22 +11357,17 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - Envoie des opérations inutiles au GPU lors des readbacks afin d'éviter qu'il passe en mode économie d'énergie. Peut améliorer les performances, au prix d'une augmentation significative de la consommation d'énergie. - - - - Extra Rendering Threads - Threads de rendu supplémentaires + Envoyer des opérations inutiles au GPU lors des readbacks afin d'éviter qu'il passe en mode économie d'énergie. Cela peut améliorer les performances, au prix d'une augmentation significative de la consommation d'énergie. 2 threads - 2 threads + 2 threads Number of rendering threads: 0 for single thread, 2 or more for multithread (1 is for debugging). If you have 4 threads on your CPU pick 2 or 3. You can calculate how to get the best performance (amount of CPU threads - 2). 7+ threads will not give much more performance and could perhaps even lower it. - Nombre de threads de rendu : 0 pour un seul thread, 2 ou plus pour utiliser plusieurs threads (1 sert au débogage). Si vous avez 4 threads sur votre CPU, choisissez 2 ou 3. Vous pouvez calculer comment obtenir les meilleures performances (nombre de threads du CPU - 2). Utiliser 7 threads ou plus n'améliorera pas les performances et pourrait même les dégrader. + Nombre de threads de rendu : 0 pour un seul thread, 2 ou plus pour utiliser plusieurs threads (1 sert au débogage). Si vous avez 4 threads sur votre CPU, choisissez 2 ou 3. Vous pouvez calculer comment obtenir les meilleures performances (nombre de threads du CPU - 2). Utiliser 7 threads ou plus n'améliorera pas significativement les performances et pourrait même les dégrader. @@ -10889,12 +11378,12 @@ Swap chain: see Microsoft's Terminology Portal. Enables mipmapping, which some games require to render correctly. - Active le mipmapping, nécessaire au rendu correct de certains jeux. + Activer le mipmapping, nécessaire au rendu correct de certains jeux. CPU Sprite Renderer Size - Taille du moteur de rendu CPU des sprites + Taille du rendu CPU des sprites @@ -10913,22 +11402,17 @@ Swap chain: see Microsoft's Terminology Portal. Completely skips drawing surfaces from the surface in the left box up to the surface specified in the box on the right. - Désactiver le dessin des surfaces se trouvant dans une zone dont les limites peuvent être spécifiées dans les champs de gauche et de droite. + Ne pas dessiner les surfaces se trouvant dans la zone dont les limites peuvent être spécifiées dans les champs de gauche et de droite. Skipdraw Range End Fin du Skipdraw - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Désactiver l'utilisation du depth buffer dans le cache des textures. Activer cette option peut accélérer l'émulation mais aussi engendrer un certain nombre de glitchs. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. - Cette option désactive plusieurs fonctionnalités sûres. Elle désactive le rendu précis à l'échelle des lignes et des points qui est utile pour les jeux Xenosaga. Elle désactive également le nettoyage précis de la mémoire du GS par le CPU, et laisse le GPU s'en charger, ce qui est utile pour les jeux Kingdom Hearts. + Cette option désactive plusieurs fonctionnalités sûres. Elle désactive le rendu précis à l'échelle des lignes et des points qui est utile pour les jeux Xenosaga. Elle désactive également le nettoyage précis de la mémoire du GS par le CPU et laisse le GPU s'en charger, ce qui est utile pour les jeux Kingdom Hearts. @@ -10938,7 +11422,7 @@ Swap chain: see Microsoft's Terminology Portal. Might fix some misaligned fog, bloom, or blend effect. - Peut corriger l'alignement des effets de brouillard, de bloom ou de blending. + Activer cette option peut corriger l'alignement du brouillard, du flou lumineux ou des effets de fusion. @@ -10948,24 +11432,24 @@ Swap chain: see Microsoft's Terminology Portal. Corrects the sampling of 2D sprite textures when upscaling. Fixes lines in sprites of games like Ar tonelico when upscaling. Half option is for flat sprites, Full is for all sprites. - Corrige l'échantillonnage des textures de sprites 2D lors de la mise à l'échelle. Corrige les lignes dans les sprites des jeux tels que Ar tonelico lors de la mise à l'échelle. Demi pour les sprites plats, Plein pour tous les sprites. + Corriger l'échantillonnage des textures de sprites 2D lors de la mise à l'échelle. Cela fait disparaître les lignes apparaissant dans les sprites de certains jeux tels que Ar tonelico lors de la mise à l'échelle. « Moitié » pour les sprites plats, « Complet » pour tous les sprites. Texture Offsets X - Décalage de textures X + Décalage X des textures Offset for the ST/UV texture coordinates. Fixes some odd texture issues and might fix some post processing alignment too. ST and UV are different types of texture coordinates, like XY would be spatial coordinates. - Décalage des coordonnées ST/UV des textures. Corrige quelques problèmes bizarres avec les textures et peut également corriger l'alignement de certains effets post-traitement. + Décalage des coordonnées ST/UV des textures. Corrige quelques problèmes de texture bizarres et peut également corriger l'alignement de certains effets post-traitement. Texture Offsets Y - Décalage de textures Y + Décalage Y des textures @@ -11002,12 +11486,12 @@ Swap chain: see Microsoft's Terminology Portal. Enables saturation, contrast, and brightness to be adjusted. Values of brightness, saturation, and contrast are at default 50. - Permet d'ajuster la saturation, le contraste et la luminosité. Les valeurs de luminosité, de saturation et de contraste sont par défaut à 50. + Activer l'ajustement de la saturation, du contraste et de la luminosité. Valeur par défaut de ces trois options : 50. Applies the FXAA anti-aliasing algorithm to improve the visual quality of games. - Applique l'algorithme d'anti-aliasing FXAA pour améliorer la qualité visuelle des jeux. + Appliquer l'algorithme d'anticrénelage FXAA pour améliorer la qualité visuelle des jeux. @@ -11034,58 +11518,63 @@ Swap chain: see Microsoft's Terminology Portal. Applies a shader which replicates the visual effects of different styles of television set. - Applique un shader qui reproduit les effets visuels des différents styles de téléviseur. + Appliquer un shader qui reproduit les effets visuels de différents types de télévisions. OSD Scale - Échelle OSD + Échelle de l'affichage à l'écran - + Show OSD Messages - Afficher les messages OSD + Afficher des messages à l'écran Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - Affiche des messages à l'écran lorsque des événements se produisent, tels que des états de sauvegarde en cours de création/chargement, des captures d'écran en cours, etc. + Afficher un message à l'écran lors d'événements tels que la création ou le chargement d'une sauvegarde d'état, la prise d'une capture d'écran, etc. Shows the internal frame rate of the game in the top-right corner of the display. - Affiche la fréquence d'images interne au jeu dans le coin supérieur droit de l'écran. + Afficher la fréquence d'images interne au jeu dans le coin supérieur droit de l'écran. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - Affiche la vitesse d'émulation actuelle du système dans le coin supérieur droit de l'écran en pourcentage. + Afficher la vitesse d'émulation actuelle du système en pourcentage dans le coin supérieur droit de l'écran. Shows the resolution of the game in the top-right corner of the display. - Affiche la résolution du jeu dans le coin supérieur droit de l'écran. + Afficher la résolution du jeu dans le coin supérieur droit de l'écran. Shows host's CPU utilization. - Affiche l'utilisation du CPU de l'hôte. + Afficher l'utilisation du CPU de l'hôte. Shows host's GPU utilization. - Affiche l'utilisation du GPU de l'hôte. + Afficher l'utilisation du GPU de l'hôte. Shows counters for internal graphical utilization, useful for debugging. - Affiche les compteurs pour l'utilisation graphique interne, utile pour le débogage. + Afficher des compteurs à propos de l'utilisation graphique interne. Utile au débogage. + + + + Shows the current controller state of the system in the bottom-left corner of the display. + Afficher l'état système de la manette dans le coin inférieur gauche de l'écran. Displays warnings when settings are enabled which may break games. - Affiche des avertissements lorsque les paramètres qui peuvent endommager les jeux sont activés. + Afficher des avertissements lorsque des paramètres pouvant affecter le bon fonctionnement des jeux sont activés. @@ -11095,17 +11584,17 @@ Swap chain: see Microsoft's Terminology Portal. Leave It Blank - Laisser vide + vide Parameters passed to selected video codec.<br> You must use '=' to separate key from value and ':' to separate two pairs from each other.<br> For example: "crf = 21 : preset = veryfast" - Paramètres passés au codec vidéo sélectionné.<br> Vous devez utiliser '=' pour séparer la clé de la valeur et ':' pour séparer deux paires l'une de l'autre.<br> Par exemple : "crf = 21 : preset = veryfast" + Paramètres à passer au codec vidéo sélectionné.<br> Utilisez '=' pour séparer la clé de sa valeur et ':' pour séparer les paires clé/valeur.<br> Exemple : "crf = 21 : preset = veryfast". Override Texture Barriers - Barrières de textures + Barrières de texture @@ -11115,49 +11604,59 @@ Swap chain: see Microsoft's Terminology Portal. Change the compression algorithm used when creating a GS dump. - Change l'algorithme de compression utilisé lors de la création d'un dump du GS. + Modifier l'algorithme de compression à utiliser pour les dumps du GS. Uses a blit presentation model instead of flipping when using the Direct3D 11 renderer. This usually results in slower performance, but may be required for some streaming applications, or to uncap framerates on some systems. Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit - Utilise un modèle de présentation de blit au lieu de retourner lorsque le moteur de rendu Direct3D 11 est utilisé. Cela se traduit généralement par des performances plus lentes, mais peut être nécessaire pour certaines applications de streaming, ou pour délimiter les framerates sur certains systèmes. + Utiliser un modèle de présentation BLIT plutôt que de « flipper » lorsque vous utilisez le moteur de rendu Direct3D 11. En général, activer cette option dégrade les performances, mais son activation peut être nécessaire pour certaines applications de streaming ou pour déplafonner la fréquence d'images sur certains systèmes. Detects when idle frames are being presented in 25/30fps games, and skips presenting those frames. The frame is still rendered, it just means the GPU has more time to complete it (this is NOT frame skipping). Can smooth our frame time fluctuations when the CPU/GPU are near maximum utilization, but makes frame pacing more inconsistent and can increase input lag. - Détecte quand des images en double sont présentées dans des jeux à 25 ou 30 IPS et saute leur présentation. Le rendu de ces images est toujours effectué mais le GPU a plus de temps pour les terminer (ce n'est PAS du saut d'images). L'option peut permettre de lisser les durées d'image lorsque le CPU ou le GPU sont au maximum de leur capacité, mais la cadence d'image sera moins constante et la latence d’entrée peut augmenter. + Détecter quand des images en double sont présentées dans des jeux à 25 ou 30 IPS et sauter leur présentation. Le rendu de ces images est toujours effectué mais le GPU a plus de temps pour les terminer (ce n'est PAS du saut d'images). L'option peut permettre de lisser les durées d'image lorsque la charge CPU ou GPU est maximale, mais la cadence d'image sera plus variable et la latence d'entrée peut augmenter. Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. Could reduce chance of missing a frame or reduce tearing at the expense of more erratic frame times. Only applies to the Vulkan renderer. - Présenter les images sur le thread principal du GS plutôt qu'un thread séparé. Cela permet de déboguer les problèmes liés aux durées d'image. L'option pourrait réduire le risque de manquer une image et le déchirement au détriment de durées d'image plus erratiques. Elle ne s'applique qu'au moteur de rendu Vulkan. + Présenter les images sur le thread principal du GS plutôt qu'un thread séparé. Cela permet de déboguer les problèmes liés aux durées d'image. Activer cette option peut réduire le risque de manquer une image et peut réduire le déchirement, au prix de durées d'image plus erratiques. Ne s'applique qu'au moteur de rendu Vulkan. + Enable Debug Device + Activer le périphérique de débogage + + + + Enables API-level validation of graphics commands. + Activer la validation au niveau de l'API des commandes graphiques. + + + GS Download Mode - Mode De Téléchargement du GS + Mode de téléchargement GS - + Accurate Précis - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - Passe la synchronisation avec le thread du GS et du GPU hôte pour les téléchargements du GS. Peut entraîner une grande amélioration de vitesse sur les systèmes plus lents, au prix de nombreux effets graphiques cassés. Si les jeux sont cassés et cette option est activée, veuillez la désactiver d'abord. + Ne pas synchroniser le thread GS et le GPU hôte lors des téléchargements GS. Cela peut grandement améliorer les performances mais cela cassera un grand nombre d'effets visuels. Si les jeux ne fonctionnent pas correctement et que cette option est activée, veuillez la désactiver. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Par défaut - - + + (Default) (Par défaut) @@ -11165,407 +11664,407 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphismes - + Save Screenshot - Enregistrer une capture d’écran + Enregistrer une capture d'écran - + Toggle Video Capture Activer/désactiver la capture vidéo - + Save Single Frame GS Dump - Enregistrer un dump du GS d'une seule image + Enregistrer un dump du GS contenant 1 image - + Save Multi Frame GS Dump - Enregistrer un dump du GS de plusieurs images + Enregistrer un dump du GS contenant plusieurs images - + Toggle Software Rendering - Activer/désactiver le rendu logiciel + Activer/désactiver le moteur de rendu logiciel - + Increase Upscale Multiplier Augmenter le multiplicateur de mise à l'échelle - + Decrease Upscale Multiplier Diminuer le multiplicateur de mise à l'échelle - + Toggle On-Screen Display - Activer/désactiver l'OSD + Activer/désactiver l'affichage à l'écran (OSD) - + Cycle Aspect Ratio - Modifier le ratio d'aspect + Changer de format d'image - + Aspect ratio set to '{}'. - Ratio d'aspect défini sur '{}'. + Format d'image défini sur « {} ». - + Cycle Hardware Mipmapping - Mipmapping matériel du cycle + Changer de mode de mipmapping matériel - + Hardware mipmapping set to '{}'. - Mipmapping matériel défini sur '{}'. + Mipmapping matériel défini sur « {} ». - + Cycle Deinterlace Mode - Mode de désentrelacement du cycle + Changer de mode de désentrelacement - + Deinterlace mode set to '{}'. - Mode de désentrelacement défini sur '{}'. + Mode de désentrelacement défini sur « {} ». - + Toggle Texture Dumping Activer/désactiver le dumping des textures - + Texture dumping is now enabled. - Le dumping de textures est maintenant activé. + Le dumping des textures est maintenant activé. - + Texture dumping is now disabled. - Le dumping de textures est maintenant désactivé. + Le dumping des textures est maintenant désactivé. - + Toggle Texture Replacements Activer/désactiver les textures de remplacement - + Texture replacements are now enabled. Les textures de remplacement sont maintenant activées. - + Texture replacements are now disabled. Les textures de remplacement sont maintenant désactivées. - + Reload Texture Replacements Recharger les textures de remplacement - + Texture replacements are not enabled. - Les textures de remplacement ne sont pas activées. + Les textures de remplacement n'ont pas été activées. - + Reloading texture replacements... - Rechargement des textures de remplacement... + Rechargement des textures de remplacement… - + Target speed set to {:.0f}%. - Vitesse cible définie à {:.0f} %. + Vitesse cible définie sur {:.0f} %. - + Volume: Muted - Volume : Muet + Volume : muet - + Volume: {}% Volume : {} % - - Save slot {} selected (last save: {}). - Emplacement de sauvegarde {} sélectionné (Dernière sauvegarde : {}). + + Save slot {0} selected (last save: {1}). + Emplacement de sauvegarde {0} sélectionné (dernière sauvegarde : {1}). - + Save slot {} selected (no save yet). - Emplacement de sauvegarde {} sélectionné (Pas encore sauvegardé). + Emplacement de sauvegarde {} sélectionné (vide). - + No save state found in slot {}. - Aucune sauvegarde d'état trouvé dans l'emplacement {}. + Aucune sauvegarde d'état trouvée à l'emplacement {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System Système - + Open Pause Menu Ouvrir le menu pause - + Open Achievements List - Liste des Succès + Ouvrir la liste des succès - + Open Leaderboards List Ouvrir la liste des classements - + Toggle Pause - Mettre en pause ou reprendre + Mettre en pause/reprendre - + Toggle Fullscreen - Basculer en plein écran + Activer/désactiver le mode plein écran - + Toggle Frame Limit - Activer la limite d'images + Activer/désactiver la limite d'images - + Toggle Turbo / Fast Forward - Basculer Turbo / Avance rapide + Activer/désactiver l'avance rapide (turbo) - + Toggle Slow Motion - Basculer le ralenti + Activer/désactiver le ralenti - + Turbo / Fast Forward (Hold) - Turbo / Avance rapide (maintenir) + Avance rapide (maintenir appuyé) - + Increase Target Speed Augmenter la vitesse cible - + Decrease Target Speed Diminuer la vitesse cible - + Increase Volume - Augmenter le Volume + Augmenter le volume - + Decrease Volume - Diminuer le Volume + Diminuer le volume - + Toggle Mute - Basculer en mode Muet + Couper/remettre le son - + Frame Advance Image par image - + Shut Down Virtual Machine Éteindre la machine virtuelle - + Reset Virtual Machine Réinitialiser la machine virtuelle - + Toggle Input Recording Mode - Basculer le mode d'enregistrement d'entrées + Changer de mode d'enregistrement d'entrées - - - - + + + + Save States Sauvegardes d'état - + Select Previous Save Slot Sélectionner l'emplacement de sauvegarde précédent - + Select Next Save Slot Sélectionner l'emplacement de sauvegarde suivant - + Save State To Selected Slot - Sauvegarder l'état dans l'emplacement sélectionné + Sauvegarder l'état à l'emplacement sélectionné - + Load State From Selected Slot - Charger l'état dans l'emplacement sélectionné + Charger l'état à l'emplacement sélectionné - + Save State To Slot 1 - Sauvegarder l'état dans l'emplacement 1 + Sauvegarder l'état à l'emplacement 1 - + Load State From Slot 1 - Charger l'état depuis l'emplacement 1 + Charger l'état à l'emplacement 1 - + Save State To Slot 2 - Sauvegarder l'état dans l'emplacement 2 + Sauvegarder l'état à l'emplacement 2 - + Load State From Slot 2 - Charger l'état depuis l'emplacement 2 + Charger l'état à l'emplacement 2 - + Save State To Slot 3 - Sauvegarder l'état dans l'emplacement 3 + Sauvegarder l'état à l'emplacement 3 - + Load State From Slot 3 - Charger l'état depuis l'emplacement 3 + Charger l'état à l'emplacement 3 - + Save State To Slot 4 - Sauvegarder l'état dans l'emplacement 4 + Sauvegarder l'état à l'emplacement 4 - + Load State From Slot 4 - Charger l'état depuis l'emplacement 4 + Charger l'état à l'emplacement 4 - + Save State To Slot 5 - Sauvegarder l'état dans l'emplacement 5 + Sauvegarder l'état à l'emplacement 5 - + Load State From Slot 5 - Charger l'état depuis l'emplacement 5 + Charger l'état à l'emplacement 5 - + Save State To Slot 6 - Sauvegarder l'état dans l'emplacement 6 + Sauvegarder l'état à l'emplacement 6 - + Load State From Slot 6 - Charger l'état depuis l'emplacement 6 + Charger l'état à l'emplacement 6 - + Save State To Slot 7 - Sauvegarder l'état dans l'emplacement 7 + Sauvegarder l'état à l'emplacement 7 - + Load State From Slot 7 - Charger l'état depuis l'emplacement 7 + Charger l'état à l'emplacement 7 - + Save State To Slot 8 - Sauvegarder l'état dans l'emplacement 8 + Sauvegarder l'état à l'emplacement 8 - + Load State From Slot 8 - Charger l'état depuis l'emplacement 8 + Charger l'état à l'emplacement 8 - + Save State To Slot 9 - Sauvegarder l'état dans l'emplacement 9 + Sauvegarder l'état à l'emplacement 9 - + Load State From Slot 9 - Charger l'état depuis l'emplacement 9 + Charger l'état à l'emplacement 9 - + Save State To Slot 10 - Sauvegarder l'état dans l'emplacement 10 + Sauvegarder l'état à l'emplacement 10 - + Load State From Slot 10 - Charger l'état depuis l'emplacement 10 + Charger l'état à l'emplacement 10 @@ -11573,7 +12072,7 @@ Swap chain: see Microsoft's Terminology Portal. Edit Bindings - Éditer les contrôles + Modifier les associations @@ -11583,7 +12082,7 @@ Swap chain: see Microsoft's Terminology Portal. Sensitivity: - Sensibilité : + Sensibilité : @@ -11594,27 +12093,27 @@ Swap chain: see Microsoft's Terminology Portal. Deadzone: - Zone morte : + Zone morte : Add Binding - Ajouter une touche + Ajouter une association Remove Binding - Supprimer une touche + Supprimer une association Clear Bindings - Effacer les touches + Effacer les associations Bindings for %1 %2 - Contrôles pour %1 %2 + Associations pour %1 %2 @@ -11625,7 +12124,7 @@ Swap chain: see Microsoft's Terminology Portal. Push Button/Axis... [%1] - Appuyer sur Bouton/Axe... [%1] + Actionnez un bouton/axe… [%1] @@ -11644,20 +12143,20 @@ Left click to assign a new button Shift + left click for additional bindings -Clic gauche : assigner un bouton -Maj + clic gauche : utiliser plusieurs associations de touches +Clic gauche : associer un bouton +Maj + clic gauche : utiliser plusieurs associations Right click to clear binding -Clic droit : effacer l'association +Clic droit : effacer les associations No bindings registered - Aucune association de touches + Aucune association enregistrée @@ -11671,7 +12170,7 @@ Clic droit : effacer l'association Push Button/Axis... [%1] - Appuyer sur Bouton/Axe... [%1] + Actionnez un bouton/axe… [%1] @@ -11689,7 +12188,7 @@ Clic droit : effacer l'association Edit - Éditer + Édition @@ -11721,6 +12220,96 @@ Clic droit : effacer l'association %1 [%2] %1 [%2] + + + Left Analog + Joystick analogique gauche + + + + Right Analog + Joystick analogique droit + + + + Cross + Croix + + + + Square + Carré + + + + Triangle + Triangle + + + + Circle + Cercle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + Touche directionnelle (bas) + + + + D-Pad Right️ + Touche directionnelle (droite️) + + + + D-Pad Up️ + Touche directionnelle (haut️) + + + + D-Pad Left️ + Touche directionnelle (gauche️) + + + + L3 + L3 + + + + R3 + R3 + + + + Select + SELECT + + + + Start + START + Input Recording Files (*.p2m2) @@ -11737,7 +12326,7 @@ Clic droit : effacer l'association No devices with vibration motors were detected. - Aucun périphérique avec moteurs de vibration n'a été détecté. + Aucun périphérique avec moteur de vibration détecté. @@ -11748,216 +12337,216 @@ Clic droit : effacer l'association InterfaceSettingsWidget - + Behaviour Comportement - + Pause On Focus Loss Mettre en pause lors de la perte du focus - + Inhibit Screensaver - Inhiber l'économiseur d'écran + Bloquer l'économiseur d'écran - + Save State On Shutdown - Sauvegarder l'état lors de l'arrêt + Sauvegarder l'état lors de l'extinction - + Pause On Start Mettre en pause au lancement - + Confirm Shutdown - Confirmer l'arrêt de la machine virtuelle + Confirmer l'extinction - + Create Save State Backups - Créer des backups de sauvegardes d'état + Créer une copie des sauvegardes d'état - + Enable Discord Presence - Activer Rich Presence sur Discord + Activer la Rich Presence Discord - + Enable Per-Game Settings - Activer les paramètres par jeu + Activer les paramètres propres aux jeux - + Game Display Affichage du jeu - + Start Fullscreen - Démarrer en plein écran + Démarrer en mode plein écran - + Double-Click Toggles Fullscreen - Double-cliquer pour basculer en plein écran + Double-cliquer pour basculer en mode plein écran - + Render To Separate Window Afficher le jeu dans une autre fenêtre - + Hide Main Window When Running - Masquer la fenêtre principale lors de l'exécution + Masquer la fenêtre principale pendant l'émulation - + Disable Window Resizing - Désactiver le redimensionnement des fenêtres + Fenêtre principale de taille fixe - + Hide Cursor In Fullscreen - Masquer le curseur en plein écran + Masquer le curseur en mode plein écran - + Preferences Préférences - + Language: - Langue : + Langue : - + Theme: - Thème : + Thème : - + Automatic Updater Mise à jour automatique - + Update Channel: - Canal de Mise à jour : + Canal de mise à jour : - + Current Version: Version actuelle : - + Enable Automatic Update Check - Activer la vérification automatique des mises à jour + Rechercher automatiquement les mises à jour - + Check for Updates... - Rechercher les Mises à jour... + Rechercher des mises à jour… Native - Natif + Native Dark Fusion (Gray) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Fusion Sombre (Gris) [Sombre] + Dark Fusion (gris) [Sombre] Dark Fusion (Blue) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Fusion Sombre (Bleu) [Sombre] + Dark Fusion (bleu) [Sombre] Untouched Lagoon (Grayish Green/-Blue ) [Light] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Lagune intacte (Vert/-Bleu gris) [Clair] + Untouched Lagoon (vert gris/gris bleu) [Clair] Baby Pastel (Pink) [Light] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Bébé pastel (Rose) [Clair] + Baby Pastel (rose) [Clair] Pizza Time! (Brown-ish/Creamy White) [Light] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Pizza Time! (Brun/Blanc Crème) [Clair] + Pizza Time! (orange/crème) [Clair] PCSX2 (White/Blue) [Light] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - PCSX2 (Blanc/Bleu) [Clair] + PCSX2 (blanc/bleu) [Clair] Scarlet Devil (Red/Purple) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Diable écarlate (Rouge/Violet) [Sombre] + Scarlet Devil (rouge/violet) [Sombre] Violet Angel (Blue/Purple) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Ange Violet (Bleu/Violet) [Sombre] + Violet Angel (bleu/violet) [Sombre] Cobalt Sky (Blue) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Ciel Cobalt (Bleu) [Sombre] + Cobalt Sky (bleu) [Sombre] Ruby (Black/Red) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Rubis (Noir/Rouge) [Sombre] + Ruby (noir/rouge) [Sombre] Sapphire (Black/Blue) [Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Saphir (Noir/Bleu) [Sombre] + Saphir (noir/bleu) [Sombre] Custom.qss [Drop in PCSX2 Folder] "Custom.qss" must be kept as-is. - Custom.qss [Déposer dans le dossier PCSX2] + Custom.qss [À déposer dans le dossier PCSX2] @@ -11967,12 +12556,12 @@ Clic droit : effacer l'association Checked - Coché + coché Automatically checks for updates to the program on startup. Updates can be deferred until later or skipped entirely. - Vérifier les mises à jour au lancement de l'application. Les mises à jour peuvent être reportées à plus tard ou ignorées. + Rechercher des mises à jour automatiquement au lancement de l'application. Les mises à jour peuvent être reportées à plus tard ou ignorées. @@ -11983,32 +12572,32 @@ Clic droit : effacer l'association Prevents the screen saver from activating and the host from sleeping while emulation is running. - Empêche l’économiseur d’écran de s'activer et l’hôte de se mettre en veille pendant que l’émulation est en cours d'exécution. + Empêcher l'économiseur d'écran de s'activer et l'hôte de se mettre en veille pendant que l'émulation est en cours d'exécution. Determines whether a prompt will be displayed to confirm shutting down the virtual machine when the hotkey is pressed. - Demander une confirmation avant d'éteindre la machine virtuelle avec un raccourci clavier. + Une confirmation vous sera demandée lors de l'utilisation du raccourci « Éteindre la machine virtuelle ». Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - Enregistre automatiquement l'état de l'émulateur lorsque vous éteignez le système ou que vous quittez PCSX2. Vous pourrez ensuite reprendre directement à partir de l'endroit où vous avez arrêté de jouer. + Enregistrer automatiquement l'état de l'émulateur lorsque vous éteignez le système ou que vous quittez PCSX2. Vous pourrez ensuite reprendre directement à partir de l'endroit où vous avez arrêté de jouer. When enabled, custom per-game settings will be applied. Disable to always use the global configuration. - Lorsque cette option est activée, vos paramètres spécifiques à chaque jeu seront appliqués. Désactivez l'option pour toujours utiliser les paramètres globaux. + Lorsque cette option est activée, les paramètres propres à chaque jeu sont appliqués. Désactivez l'option pour toujours utiliser les paramètres globaux. Allows switching in and out of fullscreen mode by double-clicking the game window. - Permet de basculer le mode plein écran en double-cliquant sur la fenêtre de jeu. + Permettre de basculer entre les modes plein écran et fenêtré en double-cliquant dans la fenêtre du jeu. Prevents the main window from being resized. - Empêche la fenêtre principale d'être redimensionnée. + Empêcher la fenêtre principale d'être redimensionnée. @@ -12021,7 +12610,7 @@ Clic droit : effacer l'association Unchecked - Non Coché + décoché @@ -12032,48 +12621,48 @@ Clic droit : effacer l'association Pauses the emulator when a game is started. - Met en pause l'émulateur lorsqu'un jeu est lancé. + Mettre en pause l'émulateur lors du lancement d'un jeu. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - Met en pause l'émulateur lorsque vous minimisez la fenêtre ou que vous utilisez une autre application. L'émulation reprendra lorsque vous reviendrez sur PCSX2. + Mettre en pause l'émulateur lorsque vous minimisez la fenêtre ou que vous utilisez une autre application. L'émulation reprendra lorsque vous reviendrez sur PCSX2. Creates a backup copy of a save state if it already exists when the save is created. The backup copy has a .backup suffix. Do not translate the ".backup" extension. - Lorsque vous faites une sauvegarde d'état, créer une copie de la sauvegarde d'état. La copie de sauvegarde porte le suffixe .backup. + Lors de la création d'une sauvegarde d'état, créer une copie de la sauvegarde existante. La copie de sauvegarde porte le suffixe .backup. Automatically switches to fullscreen mode when a game is started. - Bascule automatiquement en mode plein écran lorsqu'un jeu est lancé. + Basculer automatiquement en mode plein écran au lancement d'un jeu. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - Masque le pointeur/curseur de la souris lorsque l'émulateur est en mode plein écran. + Masquer le pointeur/curseur de la souris lorsque le mode plein écran est activé. Renders the game to a separate window, instead of the main window. If unchecked, the game will display over the top of the game list. - Affiche le jeu dans une fenêtre séparée. Si la case est décochée, le jeu sera affiché à la place de la liste des jeux. + Afficher la sortie vidéo du jeu dans une fenêtre séparée. Si la case est décochée, le jeu est affiché à la place de la liste des jeux. Hides the main window (with the game list) when a game is running, requires Render To Separate Window to be enabled. - Masquer la fenêtre principale (et la liste des jeux) lorsqu'un jeu est en cours d'exécution. Pour activer cette option, cochez « Afficher le jeu dans une autre fenêtre ». + Masquer la fenêtre principale (et la liste des jeux) lorsqu'un jeu est en cours d'exécution. Pour activer cette option, activez d'abord « Afficher le jeu dans une autre fenêtre ». Shows the game you are currently playing as part of your profile in Discord. - Affiche le jeu auquel vous êtes en train de jouer dans votre profil Discord. + Afficher le jeu auquel vous êtes en train de jouer dans votre profil Discord. - + System Language [Default] - Langue système [par défaut] + Langue du système [Par défaut] @@ -12096,12 +12685,12 @@ Clic droit : effacer l'association Show All - Afficher tout + Tout afficher Preferences... - Préférences... + Préférences… @@ -12128,21 +12717,21 @@ Clic droit : effacer l'association - - + + Change Disc - Changer le disque + Changer de disque - + Load State - Charger l'État + Charger un état Save State - Sauvegarder l’État + Sauvegarder l'état @@ -12152,7 +12741,7 @@ Clic droit : effacer l'association &Help - &Aide + A&ide @@ -12187,17 +12776,17 @@ Clic droit : effacer l'association Toolbar - Barre d’outils + Barre d'outils Start &File... - Lancer un &Fichier... + Lancer un &fichier… Start &Disc... - Lancer un &Disque... + Lancer un &disque… @@ -12207,12 +12796,12 @@ Clic droit : effacer l'association &Scan For New Games - &Actualiser la liste des jeux + Ac&tualiser la liste des jeux &Rescan All Games - &Rescanner tous les jeux + R&escanner tous les jeux @@ -12222,7 +12811,7 @@ Clic droit : effacer l'association Shut Down &Without Saving - &Éteindre sans sauvegarder + Éteindre &sans sauvegarder @@ -12232,7 +12821,7 @@ Clic droit : effacer l'association &Pause - &Pause + &Mettre en pause @@ -12252,12 +12841,12 @@ Clic droit : effacer l'association &Controllers - &Manettes + Ma&nettes &Hotkeys - &Raccourcis clavier + Ra&ccourcis @@ -12272,47 +12861,47 @@ Clic droit : effacer l'association &Post-Processing Settings... - &Paramètres post-traitement... + &Paramètres post-traitement… Fullscreen - Plein écran + Mode plein écran Resolution Scale - Échelle des résolutions + Multiplicateur de résolution &GitHub Repository... - Dépôt &GitHub... + Dépôt &GitHub… Support &Forums... - &Forums d'assistance... + &Forums d'assistance… &Discord Server... - Serveur &Discord... + Serveur &Discord… Check for &Updates... - Vérifier les mises à jo&ur... + &Rechercher des mises à jour… About &Qt... - À propos de &Qt... + À propos de &Qt… &About PCSX2... - &À propos de PCSX2... + &À propos de PCSX2… @@ -12324,12 +12913,12 @@ Clic droit : effacer l'association Change Disc... In Toolbar - Changer le disque... + Chang. disque &Audio - &Son + &Audio @@ -12344,7 +12933,7 @@ Clic droit : effacer l'association Add Game Directory... - Ajouter un dossier... + Ajouter un dossier… @@ -12354,27 +12943,27 @@ Clic droit : effacer l'association From File... - À partir d'un fichier... + À partir d'un fichier… From Device... - À partir d'un périphérique... + À partir d'un périphérique… From Game List... - À partir de la liste des jeux... + À partir de la liste des jeux… Remove Disc - Retirer le disque + Éjecter le disque Global State - État Global + État global @@ -12385,19 +12974,19 @@ Clic droit : effacer l'association Start File In Toolbar - Lancer un Fichier + Lanc. fichier Start Disc In Toolbar - Lancer un Disque + Lanc. disque Start BIOS In Toolbar - Lancer le BIOS + Lanc. BIOS @@ -12421,19 +13010,19 @@ Clic droit : effacer l'association Load State In Toolbar - Charger l'état + Charg. état Save State In Toolbar - Sauvegarder l’état + Sauv. état Controllers In Toolbar - Contrôleurs + Manettes @@ -12445,7 +13034,7 @@ Clic droit : effacer l'association Screenshot In Toolbar - Capture d'écran + Capt. écran @@ -12465,7 +13054,7 @@ Clic droit : effacer l'association &Toolbar - &Barre d'outils + Barre d'&outils @@ -12475,7 +13064,7 @@ Clic droit : effacer l'association &Status Bar - &Barre d'État + Barre d'&état @@ -12501,17 +13090,17 @@ Clic droit : effacer l'association Game &Grid - &Grille du jeu + &Grille des jeux Show Titles (Grid View) - Afficher les titres (vue de la grille) + Afficher les titres (mode grille) Zoom &In (Grid View) - Zoom &avant (Vue Grille) + Zoom a&vant (mode grille) @@ -12521,7 +13110,7 @@ Clic droit : effacer l'association Zoom &Out (Grid View) - Zoom &arrière (Vue grille) + Zoom a&rrière (mode grille) @@ -12531,22 +13120,22 @@ Clic droit : effacer l'association Refresh &Covers (Grid View) - &Actualiser les jaquettes (vue grille) + A&ctualiser les jaquettes (mode grille) Open Memory Card Directory... - Ouvrir le dossier des Memory Cards... + Ouvrir le dossier des Memory Cards… Open Data Directory... - Ouvrir le dossier des données... + Ouvrir le dossier des données… Toggle Software Rendering - Basculer le rendu logiciel + Activer/désactiver le moteur de rendu logiciel @@ -12571,17 +13160,17 @@ Clic droit : effacer l'association Enable EE Console Logging - Activer la journalisation de la console EE + Activer la console EE Enable IOP Console Logging - Activer la journalisation de la console IOP + Activer la console IOP Save Single Frame GS Dump - Enregistrer un dump du GS d'une seule image + Enregistrer un dump du GS contenant 1 image @@ -12611,7 +13200,7 @@ Clic droit : effacer l'association Input Recording Logs - Journaux des enregistrements d'entrées + Journaux d'enregistrement d'entrées @@ -12626,12 +13215,12 @@ Clic droit : effacer l'association Enable CDVD Read Logging - Activer la journalisation de lecture CDVD + Activer la journalisation des lectures CDVD Save CDVD Block Dump - Enregistrer le Dump du bloc CDVD + Enregistrer un blockdump CDVD @@ -12640,13 +13229,13 @@ Clic droit : effacer l'association - + Start Big Picture Mode Lancer le mode Big Picture - + Big Picture In Toolbar Big Picture @@ -12654,11 +13243,11 @@ Clic droit : effacer l'association Cover Downloader... - Téléchargement de couverture... + Télécharger des jaquettes… - + Show Advanced Settings Afficher les paramètres avancés @@ -12669,411 +13258,416 @@ Clic droit : effacer l'association - + Video Capture Capture vidéo Edit Cheats... - Éditer les codes de triche ... + Modifier les codes de triche… Edit Patches... - Modifier les patchs... + Modifier les patchs… - + Internal Resolution Résolution interne - + %1x Scale - Échelle %1x + %1x - + Select location to save block dump: - Sélectionnez l'emplacement pour enregistrer le dumping de bloc : + Sélectionnez où enregistrer le blockdump : - + Do not show again - Ne plus montrer + Ne plus afficher ce message - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. Are you sure you want to continue? - Modifier les paramètres avancés peut avoir des effets indésirables sur les jeux comme des problèmes d'affichage, des freezes, et même la corruption de vos sauvegardes. Nous vous déconseillons de modifier les paramètres avancés, à moins que vous sachiez ce que vous faites et la signification de chaque paramètre. + Modifier les paramètres avancés peut avoir des effets indésirables sur les jeux comme des problèmes d'affichage, des freezes et même la corruption de vos sauvegardes. Nous vous déconseillons de modifier les paramètres avancés, à moins que vous sachiez ce que vous faites et la signification de chaque paramètre. L'équipe PCSX2 ne fournira aucune assistance aux utilisateurs ayant modifié ces paramètres. Vous devrez vous débrouiller par vous-même. Voulez-vous vraiment continuer ? - + %1 Files (*.%2) Fichiers %1 (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA : connecté en tant que %1 (%2, softcore : %3). %4 messages non lus. + + + Confirm Shutdown - Confirmer l'arrêt de la machine virtuelle + Confirmer l'extinction - + Are you sure you want to shut down the virtual machine? Voulez-vous vraiment éteindre la machine virtuelle ? - + Save State For Resume - Enregistrer l'état pour la reprise + Sauvegarder l'état pour reprendre plus tard - - - - - - + + + + + + Error Erreur - + You must select a disc to change discs. Vous devez sélectionner un disque pour changer de disque. - + Properties... - Propriétés... + Propriétés… - + Open Containing Directory... Refers to the directory where a game is contained. - Ouvrir l'emplacement du fichier... + Ouvrir l'emplacement du fichier… - + Set Cover Image... - Définir l'image de couverture... + Définir la jaquette… - + Exclude From List Exclure de la liste - + Reset Play Time Réinitialiser le temps de jeu - + Default Boot Démarrage par défaut - + Fast Boot Démarrage rapide - + Full Boot Démarrage complet - + Boot and Debug Démarrer et déboguer - + Add Search Directory... - Ajouter un dossier... + Ajouter un dossier… - + Start File - Lancer un Fichier + Lancer un fichier - + Start Disc - Lancer un Disque + Lancer un disque - + Select Disc Image - Sélectionner l'image disque + Sélectionnez une image disque - + Updater Error - Erreur de Mise à Jour + Erreur lors de la mise à jour - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Désolé, la mise à jour automatique de PCSX2 ne fonctionne qu'avec les versions officielles afin d'éviter des problèmes de compatibilité.</p><p>Vous pouvez obtenir une version officielle à partir du lien ci-dessous :</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. La mise à jour automatique n'est pas prise en charge sur votre plateforme. - + Confirm File Creation Confirmer la création du fichier - + The pnach file '%1' does not currently exist. Do you want to create it? - The pnach file '%1' does not currently exist. Do you want to create it? + Le fichier pnach « %1 » n'existe pas. Voulez-vous le créer ? - + Failed to create '%1'. - Failed to create '%1'. + Échec de la création de « %1 ». - + Input Recording Files (*.p2m2) Enregistrements d'entrées (*.p2m2) - + Paused En pause - + Load State Failed Échec du chargement de l'état - + Cannot load a save state without a running VM. Impossible de charger une sauvegarde d'état sans machine virtuelle en cours d'exécution. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? + Le chargement d'un nouvel ELF nécessite la réinitialisation de la machine virtuelle. Voulez-vous réinitialiser la machine virtuelle ? - + Cannot change from game to GS dump without shutting down first. - Cannot change from game to GS dump without shutting down first. + Impossible de lire un dump du GS sans éteindre la machine virtuelle. - + Failed to get window info from widget - Impossible d'obtenir les informations sur la fenêtre depuis le widget + Échec de l'obtention des informations sur la fenêtre à partir du widget All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.elf *.irx *.gs *.gs.xz *.gs.zst *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;ELF Executables (*.elf);;IRX Executables (*.irx);;GS Dumps (*.gs *.gs.xz *.gs.zst);;Block Dumps (*.dump) - Tous les types de fichiers (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.elf *.irx *.gs *.gs.xz *.gs.zst *.dump);;Images brutes simples-pistes (*.bin *.iso);;Fichiers CUE (*.cue);;Media Descriptor File (*.mdf);;Images CHD MAME (*.chd);;Images CSO (*.cso);;Images GZ (*.gz);;Exécutables ELF (*.elf);;Exécutables IRX (*.irx);;Dumps du GS (*.gs *.gs.xz *.gs.zst);;Blockdumps (*.dump) + Tous les types de fichiers (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.elf *.irx *.gs *.gs.xz *.gs.zst *.dump);;Images brutes à 1 piste (*.bin *.iso);;Fichiers CUE (*.cue);;Media Descriptor File (*.mdf);;Images CHD pour MAME (*.chd);;Images CSO (*.cso);;Images GZ (*.gz);;Exécutables ELF (*.elf);;Exécutables IRX (*.irx);;Dumps du GS (*.gs *.gs.xz *.gs.zst);;Blockdumps (*.dump) All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - Tous les types de fichiers (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Images brutes à piste unique (*.bin *.iso);Feuilles de fichiers (*. ue);;;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);GZ Images (*.gz);Bloc Dumps (*.dump) + Tous les types de fichiers (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Images brutes à 1 piste (*.bin *.iso);;Fichiers CUE (*.cue);;Media Descriptor File (*.mdf);;Images CHD pour MAME (*.chd);;Images CSO (*.cso);;Images GZ (*.gz);;Blockdumps (*.dump) - + Stop Big Picture Mode Quitter le mode Big Picture - + Exit Big Picture In Toolbar - Quitter Big Picture + Quitter BP - + Game Properties Propriétés du jeu - + Game properties is unavailable for the current game. - Les propriétés du jeu ne sont pas disponibles pour le jeu actuel. + Les propriétés du jeu sont indisponibles pour le jeu actuel. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Aucun périphérique CD/DVD-ROM trouvé. Assurez-vous qu'un lecteur est bien connecté et que vous avez les autorisations nécessaires pour y accéder. - + Select disc drive: - Sélectionner un lecteur de disque : + Sélectionnez un lecteur de disque : - + This save state does not exist. Cette sauvegarde d'état n'existe pas. - + Select Cover Image - Sélectionner l'image de couverture + Sélectionner une jaquette - - All Cover Image Types (*.jpg *.jpeg *.png) - Tous les types d'image de couverture (*.jpg *.jpeg *.png) - - - + Cover Already Exists - La couverture existe déjà + Jaquette existante - + A cover image for this game already exists, do you wish to replace it? - Il existe déjà une image de jaquette, voulez-vous la remplacer ? + Ce jeu a déjà une jaquette, voulez-vous la remplacer ? - - - - + + + + Copy Error Erreur de copie - + Failed to remove existing cover '%1' - Impossible de supprimer la couverture existante '%1' + Échec de la suppression de la jaquette existante « %1 ». - + Failed to copy '%1' to '%2' - Impossible de copier '%1' vers '%2' + Échec de la copie de « %1 » vers « %2 ». - + Failed to remove '%1' - Échec de la suppression de '%1' + Échec de la suppression de « %1 ». - - + + Confirm Reset Confirmer la réinitialisation - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + Tous les types de jaquettes (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. - You must select a different file to the current cover image. + Vous devez sélectionner un fichier différent de la jaquette actuelle. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. - Voulez-vous vraiment réinitialiser le temps de jeu pour '%1' ? + Voulez-vous vraiment réinitialiser le temps de jeu pour « %1 » ? Cette action est irréversible. - + Load Resume State Charger la sauvegarde automatique - + A resume save state was found for this game, saved at: %1. Do you want to load this state, or start from a fresh boot? - Une sauvegarde d'état automatique pour ce jeu a été trouvée ici : + Une sauvegarde d'état automatique pour ce jeu a été trouvée : -%1. +%1 Voulez-vous charger cette sauvegarde ou lancer le jeu normalement ? - + Fresh Boot - Démarrer normalement + Lancer normalement - + Delete And Boot - Effacer et démarrer + Supprimer et lancer - + Failed to delete save state file '%1'. - Échec de la suppression de la sauvegarde d'état '%1'. + Échec de la suppression de la sauvegarde d'état « %1 ». - + Load State File... - Charger le fichier d'état... + Charger l'état depuis un fichier… - + Load From File... - Charger depuis fichier... + Charger depuis un fichier… - - + + Select Save State File Sélectionner un fichier de sauvegarde d'état - - + + Save States (*.p2s) - Sauvegardes d'états (*.p2s) + Sauvegardes d'état (*.p2s) - + Delete Save States... - Supprimer les sauvegardes d'état... + Supprimer les sauvegardes d'état… - + Undo Load State - Annuler le chargement de sauvegarde instantanée + Annuler le chargement d'état - + Resume (%2) Reprendre (%2) - + Load Slot %1 (%2) - Charger l'emplacement %1 (%2) + Charger l'état à l'emplacement %1 (%2) - - + + Delete Save States Supprimer les sauvegardes d'état - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13082,53 +13676,53 @@ The saves will not be recoverable. Les sauvegardes ne pourront pas être récupérées. - + %1 save states deleted. - %1 sauvegardes d'état supprimées. + %1 sauvegardes d'état supprimées. - + Save To File... - Sauvegarder dans un fichier... + Sauvegarder dans un fichier… - + Empty - Vide + vide - + Save Slot %1 (%2) - Sauver l'emplacement %1 (%2) + Sauvegarder à l'emplacement %1 (%2) - + Confirm Disc Change Confirmer le changement de disque - + Do you want to swap discs or boot the new image (via system reset)? - Voulez-vous changer les disques ou démarrer la nouvelle image (via la réinitialisation du système) ? + Voulez-vous échanger les disques, ou redémarrer le système avec la nouvelle image disque insérée ? - + Swap Disc - Permuter le disque + Échanger les disques - + Reset - Réinitialiser + Redémarrer MemoryCard - - + + Memory Card '{}' was saved to storage. - La Memory Card '{}' a bien été enregistrée. + La Memory Card « {} » a bien été enregistrée. @@ -13185,7 +13779,7 @@ Les sauvegardes ne pourront pas être récupérées. <center><strong>Note:</strong> Converting a Memory Card creates a <strong>COPY</strong> of your existing Memory Card. It does <strong>NOT delete, modify, or replace</strong> your existing Memory Card.</center> - <center><strong>Note :</strong> la conversion d'une Memory Card crée une <strong>COPIE</strong> de la Memory Card originale. <strong>AUCUNE donnée de la Memory Card originale ne sera supprimée, modifiée, ou remplacée lors de ce processus.</strong></center> + <center><strong>Note :</strong> la conversion d'une Memory Card crée une <strong>COPIE</strong> de la Memory Card originale. <strong>AUCUNE donnée de la Memory Card originale ne sera supprimée, modifiée, ou remplacée au cours de ce processus.</strong></center> @@ -13207,6 +13801,7 @@ Les sauvegardes ne pourront pas être récupérées. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x plus grande qu'une Memory Card standard. Il peut y avoir des problèmes de compatibilité. @@ -13245,7 +13840,7 @@ Les sauvegardes ne pourront pas être récupérées. Memory Card "%1" converted to "%2" - Memory Card "%1" convertie en "%2" + Memory Card « %1 » convertie vers « %2 ». @@ -13257,11 +13852,6 @@ Les sauvegardes ne pourront pas être récupérées. Cannot Convert Memory Card Impossible de convertir la Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x plus grande qu'une Memory Card standard. Il peut y avoir des problèmes de compatibilité. - MemoryCardCreateDialog @@ -13318,22 +13908,22 @@ Les sauvegardes ne pourront pas être récupérées. Low compatibility warning: yes, it's very big, but may not work with many games. - Attention : faible compatibilité. Oui, c'est une grande taille, mais la Memory Card ne fonctionnera pas avec beaucoup de jeux. + Attention : faible compatibilité. Certes, c'est une grande taille, mais la Memory Card ne fonctionnera pas avec beaucoup de jeux. Folder [Recommended] - Dossier [Recommended] + Dossier [Recommandé] Store Memory Card contents in the host filesystem instead of a file. - Stocker le contenu de la Memory Card sur le système de fichiers hôte plutôt que dans un fichier. + Stocker le contenu de la Memory Card sur le système de fichiers de l'hôte plutôt que dans un fichier. 128 KB (PS1) - 128 Ko (PS1) + 128 Ko (PS1) @@ -13343,32 +13933,32 @@ Les sauvegardes ne pourront pas être récupérées. Use NTFS Compression - Utiliser la Compression NTFS + Utiliser la compression NTFS NTFS compression is built-in, fast, and completely reliable. Typically compresses Memory Cards (highly recommended). - La compression NTFS est intégrée au système de fichiers, rapide, très fiable, et fonctionne bien avec les Memory Cards. Son activation est vivement recommandée. + La compression NTFS est intégrée au système de fichiers, rapide, très fiable et fonctionne bien avec les Memory Cards. Son activation est vivement recommandée. Failed to create the Memory Card, because the name '%1' contains one or more invalid characters. - Échec de la création de la Memory Card : '%1' contient un ou plusieurs caractères invalides. + Échec de la création de la Memory Card : « %1 » contient un ou plusieurs caractères invalides. Failed to create the Memory Card, because another card with the name '%1' already exists. - Échec de la création de la Memory Card. Une autre Memory Card porte également le nom '%1'. + Échec de la création de la Memory Card. Une autre Memory Card également nommée « %1 » existe déjà. Failed to create the Memory Card, the log may contain more information. - Échec de la création de la Memory Card. Les journaux contiennent peut-être plus d'informations. + Échec de la création de la Memory Card. Vous trouverez peut-être plus d'informations dans le journal de l'application. Memory Card '%1' created. - Memory Card '%1' créée. + Memory Card « %1 » créée. @@ -13387,103 +13977,104 @@ Les sauvegardes ne pourront pas être récupérées. MemoryCardSettingsWidget - + Console Ports - Ports de la console + Fentes - + Memory Cards Memory Cards - + Folder: Dossier : - + Browse... - Parcourir... + Parcourir… - + Open... - Ouvrir... + Ouvrir… - + Reset Réinitialiser - + Name Nom - + Type Type - + Formatted - Formaté + Formatée - + Last Modified Dernière modification - + Refresh - Rafraîchir + Actualiser - + + Create Créer - + Duplicate Dupliquer - + Rename Renommer - + Convert Convertir - + Delete Supprimer - + Settings Paramètres - + Automatically manage saves based on running game - Gérer automatiquement les sauvegardes en fonction du jeu en cours + Gérer automatiquement les sauvegardes en fonction du jeu en cours d'exécution - + Auto-eject Memory Cards when loading save states Éjecter les Memory Cards lors du chargement d'une sauvegarde d'état @@ -13492,17 +14083,17 @@ Les sauvegardes ne pourront pas être récupérées. Checked - Coché + coché (Folder type only / Card size: Auto) Loads only the relevant booted game saves, ignoring others. Avoids running out of space for saves. - (Type dossier uniquement, taille de carte : auto) Charge uniquement les sauvegardes du jeu en cours d'exécution. Permet de stocker un maximum de sauvegardes. + (Format dossier uniquement, taille de carte : auto) Charger uniquement les sauvegardes du jeu en cours d'exécution. Cela permet de stocker un maximum de sauvegardes. Swap Memory Cards - Permuter les Memory Cards + Échanger les Memory Cards @@ -13530,7 +14121,7 @@ Les sauvegardes ne pourront pas être récupérées. Delete Memory Card - Supprimer la Memory Card + Supprimer une Memory Card @@ -13538,7 +14129,7 @@ Les sauvegardes ne pourront pas être récupérées. Rename Memory Card - Renommer la Memory Card + Renommer une Memory Card @@ -13548,7 +14139,7 @@ Les sauvegardes ne pourront pas être récupérées. New name is invalid, it must end with .ps2 - Le nouveau nom est invalide, il doit se terminer par .ps2 + Le nouveau nom est invalide, il doit se terminer par « .ps2 ». @@ -13570,19 +14161,19 @@ Les sauvegardes ne pourront pas être récupérées. Are you sure you wish to delete the Memory Card '%1'? This action cannot be reversed, and you will lose any saves on the card. - Voulez-vous vraiment supprimer la Memory Card '%1' ? + Voulez-vous vraiment supprimer la Memory Card « %1 » ? Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irréversible. Failed to delete the Memory Card. The log may have more information. - Échec de la suppression de la Memory Card. Les journaux contiennent peut-être plus d'informations. + Échec de la suppression de la Memory Card. Vous trouverez peut-être plus d'informations dans le journal de l'application. Failed to rename Memory Card. The log may contain more information. - Échec du renommage de la Memory Card. Les journaux contiennent peut-être plus d'informations. + Échec du renommage de la Memory Card. Vous trouverez peut-être plus d'informations dans le journal de l'application. @@ -13617,7 +14208,7 @@ Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irrévers PS1 (128KB) - PS1 (128Ko) + PS1 (128 Ko) @@ -13628,7 +14219,7 @@ Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irrévers PS2 (Folder) - PS2 (Dossier) + PS2 (dossier) @@ -13642,7 +14233,7 @@ Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irrévers %1 [Missing] Ignore Crowdin's warning for [Missing], the text should be translated. - %1 [Manquant] + %1 [Introuvable] @@ -13653,58 +14244,58 @@ Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irrévers Mémoire - + Copy Address Copier l'adresse - + Go to in disassembly Aller vers au désassemblage - - + + Go to address - Aller à l’adresse + Aller à une adresse - + Show as 1 byte - Afficher comme 1 octet + Grouper par 1 octet - + Show as 2 bytes Afficher comme 2 octets - + Show as 4 bytes - Afficher comme 4 octets + Grouper par 4 octets - + Show as 8 bytes - Afficher comme 8 octets + Grouper par 8 octets - + Copy Byte Copier l'octet - + Copy Segment Copier le segment - + Copy Character Copier le caractère - + Paste Coller @@ -13714,12 +14305,12 @@ Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irrévers New Input Recording - Nouvel enregistrement d'entrées + Créer un enregistrement d'entrées Select Recording Type - Sélectionner un type d'enregistrement + Sélectionnez le type d'enregistrement @@ -13736,12 +14327,12 @@ Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irrévers <html><head/><body><p align="center"><span style=" color:#ff0000;">Be Warned! Making an input recording that starts from a save-state will fail to work on future versions due to save-state versioning.</span></p></body></html> - <html><head/><body><p align="center"><span style=" color:#ff0000;">Attention ! Un enregistrement d'entrées démarré à partir d'une sauvegarde d'état ne fonctionnera pas sur les versions futures de PCSX2 pour des raisons de compatibilité.</span></p></body></html> + <html><head/><body><p align="center"><span style=" color:#ff0000;">Attention ! Un enregistrement d'entrées démarré à partir d'une sauvegarde d'état ne pourra pas être utilisé sur les versions futures de PCSX2 pour des raisons de compatibilité.</span></p></body></html> Select File Path - Sélectionner le chemin du fichier + Sélectionner l'emplacement du fichier @@ -13751,35 +14342,40 @@ Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irrévers Enter Author Name - Entrer le nom de l'auteur + Saisissez le nom de l'auteur - + Input Recording Files (*.p2m2) Enregistrements d'entrées (*.p2m2) + + + Select a File + Sélectionnez un fichier + Pad D-Pad Up - Croix directionnelle Haut + Touche directionnelle (haut️) D-Pad Right - Croix directionnelle Droite + Touche directionnelle (droite️) D-Pad Down - Croix directionnelle Bas + Touche directionnelle (bas) D-Pad Left - Croix directionnelle Gauche + Touche directionnelle (gauche️) @@ -13805,158 +14401,168 @@ Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irrévers Select - Select + SELECT Start - Start + START L1 (Left Bumper) - L1 (Bumper Gauche) + L1 (bumper de gauche) L2 (Left Trigger) - L2 (Gâchette Gauche) + L2 (gâchette de gauche) R1 (Right Bumper) - R1 (Bumper Droit) + R1 (bumper de droite) R2 (Right Trigger) - R2 (Gâchette Droite) + R2 (gâchette de droite) L3 (Left Stick Button) - L3 (Bouton Stick Gauche) + L3 (bouton du joystick gauche) R3 (Right Stick Button) - R3 (Bouton Stick Droit) + R3 (bouton du joystick droit) Analog Toggle - Basculer Analogique + Bouton ANALOG Apply Pressure - Appliquer une pression + Appliquer la pression Left Stick Up - Stick gauche vers le haut + Joystick analogique gauche (haut) Left Stick Right - Stick gauche vers la droite + Joystick analogique gauche (droite) Left Stick Down - Stick gauche vers le bas + Joystick analogique gauche (bas) Left Stick Left - Stick gauche vers la gauche + Joystick analogique gauche (gauche) Right Stick Up - Stick droit vers le haut + Joystick analogique droit (haut) Right Stick Right - Stick droit vers la droite + Joystick analogique droit (droite) Right Stick Down - Stick droit vers le bas + Joystick analogique droit (bas) Right Stick Left - Stick droit vers la gauche + Joystick analogique droit (gauche) Large (Low Frequency) Motor - Grand Moteur (Basse Fréquence) + Gros moteur (basse fréquence) Small (High Frequency) Motor - Petit moteur (Haute Fréquence) + Petit moteur (haute fréquence) Not Inverted - Pas inversé + Normal Invert Left/Right - Inverser Gauche/Droite + Inverser gauche et droite Invert Up/Down - Inverser Haut/Bas + Inverser haut et bas Invert Left/Right + Up/Down - Inverser Gauche/Droite + Haut/Bas + Inverser gauche et droite + haut et bas Invert Left Stick - Inverser le Stick Gauche + Inversion du joystick gauche Inverts the direction of the left analog stick. - Inverse la direction du stick analogique gauche. + Inverser la direction du joystick analogique gauche. Invert Right Stick - Inverser le Stick Droit + Inversion du joystick droit Inverts the direction of the right analog stick. - Inverse la direction du stick analogique droit. + Inverser la direction du joystick analogique droit. Analog Deadzone - Zone Morte Analogique + Zone morte des joysticks analogiques Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. - Définissez la zone morte du stick analogique, c'est-à-dire la zone dans laquelle le déplacement du stick n'est pas pris en compte. + Définissez la zone morte des joysticks analogiques, c'est-à-dire la zone dans laquelle le déplacement d'un joystick n'est pas pris en compte. + + + + + + + + + %.0f%% + %.0f %% Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. - Définit le multiplicateur des axes du stick analogique. Nous vous recommandons de choisir une valeur comprise entre 1,30 et 1,40 lorsque vous utilisez une manette récente comme la DualShock 4 ou la manette d'Xbox One. + Définissez le multiplicateur des axes des joysticks analogiques. Nous vous recommandons de choisir une valeur comprise entre 1,30 et 1,40 lorsque vous utilisez une manette récente comme la DualShock 4 ou la manette Xbox One. @@ -13966,32 +14572,32 @@ Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irrévers Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - Définissez la zone morte des boutons et des gâchettes, c'est-à-dire la zone dans laquelle l'appui sur le bouton ou la gâchette est ignoré. + Définissez la zone morte des boutons et des gâchettes, c'est-à-dire la zone dans laquelle l'appui sur le bouton ou sur la gâchette n'est pas pris en compte. - - Analog light is now on for port {} / slot {} - Port {}, emplacement {} : LED du bouton Analog activée. + + Analog light is now on for port {0} / slot {1} + Port {0}, emplacement {1} : LED du bouton ANALOG activée. - - Analog light is now off for port {} / slot {} - Port {}, emplacement {} : LED du bouton Analog désactivée. + + Analog light is now off for port {0} / slot {1} + Port {0}, emplacement {1} : LED du bouton ANALOG désactivée. Analog Sensitivity - Sensibilité Analogique + Sensibilité des joysticks analogiques Large Motor Vibration Scale - Échelle de vibration du grand moteur + Échelle de vibration du gros moteur Increases or decreases the intensity of low frequency vibration sent by the game. - Augmente ou diminue l'intensité des vibrations de basse fréquence envoyées par le jeu. + Augmenter ou diminuer l'intensité des vibrations de basse fréquence envoyées par le jeu. @@ -14001,7 +14607,7 @@ Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irrévers Increases or decreases the intensity of high frequency vibration sent by the game. - Augmente ou diminue l'intensité des vibrations de haute fréquence envoyées par le jeu. + Augmenter ou diminuer l'intensité des vibrations de haute fréquence envoyées par le jeu. @@ -14016,19 +14622,12 @@ Vous perdrez toutes les sauvegardes qui s'y trouvent. Cette action est irrévers Not Connected - Non Connecté + Déconnecté DualShock 2 - DualShock 2 - - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Périphérique connecté au port de manette {}, emplacement {} : {}. Ce périphérique n'est pas celui qui était connecté lors de la sauvegarde d'état : {}. -Le périphérique connecté ne sera pas modifié, mais cela pourrait engendrer des problèmes. + DualShock 2 @@ -14068,97 +14667,122 @@ Le périphérique connecté ne sera pas modifié, mais cela pourrait engendrer d Whammy Bar - Whammy + Vibrato Tilt Up - Pencher vers le haut + Incliner vers le haut Whammy Bar Deadzone - Zone morte de la whammy + Zone morte du vibrato Sets the whammy bar deadzone. Inputs below this value will not be sent to the PS2. - Définissez la zone morte de la whammy. Les entrées inférieures à cette valeur ne seront pas envoyées à la PS2. + Définissez la zone morte du vibrato. Les valeurs d'entrée inférieures à cette valeur ne seront pas transmises à la PS2. Whammy Bar Sensitivity - Sensibilité de la whammy + Sensibilité du vibrato Sets the whammy bar axis scaling factor. - Définissez le multiplicateur de l'axe de la whammy. + Définissez le multiplicateur de l'axe du vibrato. Guitar Guitare + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Périphérique connecté au port de manette {0}, emplacement {1} : {2}. La sauvegarde d'état a un périphérique différent : {3}. +Le périphérique connecté ne sera pas modifié, mais cela pourrait engendrer des problèmes. + Patch - + Failed to open {}. Built-in game patches are not available. - Impossible d'ouvrir {}. Les patchs intégrés sont indisponibles. + Échec de l'ouverture de {}. Les patchs intégrés sont indisponibles. - + {} GameDB patches {} patchs GameDB - + {}{} game patches {}{} patchs - + {}{} cheat patches - {}{} codes de triche + {}{} codes de triche - + {} are active. - {} sont actifs. + {} patchs activés. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. Aucun code de triche ou patch (écran large, compatibilité, ou autre) trouvé et activé. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 utilise votre caméra pour émuler une caméra EyeToy branchée sur la PS2 virtuelle + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 utilise votre microphone pour émuler un microphone USB branché sur la PS2 virtuelle + + QObject Failed to open URL - Impossible d'ouvrir l'URL + Échec de l'ouverture de l'URL Failed to open URL. The URL was: %1 - Impossible d'ouvrir l'URL. L'URL était : %1 + Échec de l'ouverture de l'URL. + +L'URL était : %1 - + HDD Creator Création du disque dur - + Failed to create HDD image - Impossible de créer l'image de disque dur. + Impossible de créer une image de disque dur. @@ -14217,7 +14841,7 @@ The URL was: %1 Information - Informations + Information @@ -14225,19 +14849,19 @@ The URL was: %1 Register View - Vue du registre + Affichage des registres View as hex - Voir en hexadécimal + Afficher en hexa View as float - Voir en virgule flottante + Afficher en nombre flottant @@ -14247,47 +14871,47 @@ The URL was: %1 Copy Bottom Half - Changer la moitié inférieure + Copier la moitié inférieure Copy Segment - Copier Segment + Copier le segment Copy Value - Copier Valeur + Copier la valeur Change Top Half - Changer la moitié supérieure + Modifier la moitié supérieure Change Bottom Half - Changer la moitié inférieure + Modifier la moitié inférieure Change Segment - Changer Segment + Modifier le segment Change Value - Changer Valeur + Modifier la valeur Go to in Disassembly - Aller vers au désassemblage + Aller à l'adresse dans le désassembleur Go to in Memory - Aller vers en Mémoire + Aller à l'adresse dans la vue mémoire @@ -14304,12 +14928,12 @@ The URL was: %1 Invalid hexadecimal register value. - Valeur de registre hexadécimale invalide. + Valeur hexadécimale invalide. Invalid floating-point register value. - Valeur de registre à virgule flottante invalide. + Nombre à virgule flottante invalide. @@ -14322,18 +14946,18 @@ The URL was: %1 Requested audio output device '{}' not found, using default. - Périphérique de sortie audio demandé '{}' introuvable, utilisation du périphérique par défaut. + Périphérique de sortie audio demandé (« {} ») introuvable, utilisation du périphérique par défaut. Cubeb (Cross-platform) Cubeb is an audio engine name. Leave as-is. - Cubeb (cross-platform) + Cubeb (multiplateforme) No Sound (Emulate SPU2 only) - Aucun son (émulation seule du SPU2) + Aucun son (émulation du SPU2 seule) @@ -14353,14 +14977,13 @@ Otherwise delete the savestate and do a fresh boot. La version de cette sauvegarde d'état n'est plus prise en charge. Vous pouvez télécharger PCSX2 {} depuis pcsx2.net et sauvegarder sur la Memory Card. -Sinon, vous pouvez supprimer la sauvegarde d'état et faire un démarrage normal. +Sinon, vous pouvez supprimer la sauvegarde d'état et lancer le jeu normalement. SettingWidgetBinder - @@ -14404,284 +15027,287 @@ Voulez-vous créer ce dossier ? Select folder for %1 - Sélectionner un dossier %1 + Sélectionner un dossier (%1) SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Utiliser le paramètre global [Activé] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Utiliser le paramètre global [Désactivé] + + + + + Use Global Setting [%1] + Utiliser le paramètre global [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings Paramètres PCSX2 - + Restore Defaults Rétablir les paramètres par défaut - + Copy Global Settings Copier les paramètres globaux - + Clear Settings - Réinitialiser les paramètres + Effacer les paramètres - + Close Fermer - - - Summary - Résumé + + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. + <strong>Résumé</strong><hr>Cette page affiche des détails à propos du jeu sélectionné. Sélectionner un profil d'entrée a pour effet d'utiliser la configuration des manettes du profil sélectionné à la place de la configuration par défaut (« Partagé »). La liste des pistes et la vérification permettent de déterminer si votre image disque est identique à une autre copie valide. Si la vérification échoue, votre jeu pourrait ne pas fonctionner correctement. - - <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - <strong>Résumé</strong><hr>Cette page affiche les détails du jeu sélectionné. Le changement du profil d'entrée permet d'utiliser les associations de touches du profil sélectionné plutôt que celles de la configuration par défaut (« Partagé »). La liste des pistes et la vérification permettent de déterminer si votre image disque est identique à une autre copie valide. S'il n'y a pas de correspondance, le jeu pourrait mal fonctionner. + + + Summary + Résumé - + Summary is unavailable for files not present in game list. Le résumé n'est pas disponible pour les fichiers qui ne sont pas présents dans la liste des jeux. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - <strong>Paramètres d'interface</strong><hr>Ces options contrôlent l'apparence et le comportement du logiciel.<br><br>Pour plus d'informations, survolez une option avec la souris. + <strong>Paramètres de l'interface</strong><hr>Ces options vous permettent de contrôler l'apparence et le comportement du logiciel.<br><br>Pour plus d'informations, survolez une option avec la souris. - + Game List Liste des jeux - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Paramètres de la liste des jeux</strong><hr>La liste ci-dessus vous indique les dossiers qui seront scannés par PCSX2 pour remplir la liste des jeux. Les dossiers peuvent être ajoutés et retirés, et vous pouvez choisir de scanner, ou non, les sous-dossiers. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - <strong>Paramètres de BIOS</strong><hr>Ici, vous pouvez configurer votre BIOS.<br><br>Pour plus d'informations, survolez une option avec la souris. + <strong>Paramètres BIOS</strong><hr>Ici, vous pouvez configurer votre BIOS.<br><br>Pour plus d'informations, survolez une option avec la souris. - + Emulation Émulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - <strong>Paramètres d'émulation</strong><hr>Ces options déterminent la cadence d'images et les paramètres de jeu.<br><br>Pour plus d'informations, survolez une option avec la souris. + <strong>Paramètres d'émulation</strong><hr>Ces options déterminent la cadence d'image et les paramètres de jeu.<br><br>Pour plus d'informations, survolez une option avec la souris. - + Patches Patchs - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patchs</strong><hr>Cette section vous permet de sélectionner des patchs optionnels à appliquer au jeu, qui peuvent fournir des améliorations de performances, de graphismes ou de gameplay. - + Cheats Triche - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - <strong>Triche</strong><hr>Cette section vous permet de choisir les codes de triche à activer. Les codes de triche dans l'ancien format pnach ne peuvent pas être activés ou désactivés individuellement. Ils seront activés si vous cochez l'option « Activer les codes de triche ». + <strong>Triche</strong><hr>Cette section vous permet de choisir les codes de triche à activer. Les codes de triche dans l'ancien format pnach ne peuvent pas être activés ou désactivés individuellement, ils seront activés automatiquement en cochant l'option « Activer les codes de triche ». - + Game Fixes Correctifs - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Paramètres des correctifs</strong><hr>Les correctifs peuvent permettre de contourner les problèmes d'émulation de certains titres.<br>Néanmoins, ils peuvent également créer des problèmes s'ils sont utilisés de façon incorrecte.<br>Nous vous conseillons de les laisser désactivés sauf avis contraire. - + Graphics Graphismes - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Paramètres des graphismes</strong><hr>Ces options déterminent la configuration de la sortie vidéo.<br><br>Pour plus d'informations, survolez une option avec la souris. - + Audio - Son + Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - <strong>Paramètres audio</strong><hr>Ces options contrôlent la sortie audio de la console.<br><br>Pour plus d'informations, survolez une option avec la souris. + <strong>Paramètres audio</strong><hr>Ces options vous permettent de contrôler la sortie audio de la console.<br><br>Pour plus d'informations, survolez une option avec la souris. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Paramètres Memory Card</strong><hr>Ici, vous pouvez créer et configurer les Memory Cards.<br><br>Pour plus d'informations, survolez une option avec la souris. - + Network & HDD - Réseau et disque dur + Réseau/disque dur - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - <strong>Paramètres du réseau et du disque dur</strong><hr>Ces options vous permettent de contrôler la connexion réseau et le disque dur interne de la console.<br><br>Pour plus d'informations, survolez une option avec la souris. + <strong>Paramètres réseau et disque dur</strong><hr>Ces options vous permettent de contrôler la connexion réseau et le disque dur interne de la console.<br><br>Pour plus d'informations, survolez une option avec la souris. - + Folders Dossiers - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Paramètres des dossiers</strong><hr>Ces options vous permettent de contrôler les emplacements où PCSX2 enregistre un certain nombre de données. - + Achievements Succès - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Paramètres des succès</strong><hr>Ces options vous permettent de contrôler l'implémentation de RetroAchievements dans PCSX2. RetroAchievements vous permet d'obtenir des succès dans vos jeux rétro. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration est en cours d'utilisation, l'intégration native de RetroAchievements est désactivée. - + Advanced Avancé - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Paramètres avancés</strong><hr>Options avancées permettant de déterminer la configuration de la console simulée.<br><br>Pour plus d'informations, survolez une option avec la souris. - + Debug Débogage - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - <strong>Paramètres de débogage</strong><hr>Ce sont des options qui peuvent être utilisées pour enregistrer des informations internes à propos de l'application. <strong>Ne modifiez que si vous savez ce que vous faites</strong>, Cela provoquera un ralentissement considérable, et peut gaspiller beaucoup d'espace disque. + <strong>Paramètres de débogage</strong><hr>Ces options vous permettent d'enregistrer des informations internes sur l'application. <strong>Modifiez ces options uniquement si vous savez ce que vous faites</strong>, leur activation provoquera un ralentissement considérable de l'application et peut gaspiller beaucoup d'espace disque. - + Confirm Restore Defaults - Confirmer la restauration par défaut + Rétablir les paramètres par défaut - + Are you sure you want to restore the default settings? Any preferences will be lost. - Voulez-vous vraiment restaurer les paramètres par défaut ? Toutes vos préférences seront perdues. + Voulez-vous vraiment rétablir les paramètres par défaut ? Toutes vos préférences seront perdues. - + Reset UI Settings - Réinitialiser les paramètres de l'IU + Réinitialiser les paramètres de l'interface - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. Do you want to continue? - Les paramètres spécifiques à ce jeu seront remplacés par les paramètres globaux. + Les paramètres propres à ce jeu seront remplacés par les paramètres globaux. -Les valeurs actuelles des paramètres seront remplacées. +Les valeurs actuelles des paramètres seront perdues. Voulez-vous vraiment continuer ? - + Per-game configuration copied from global settings. - Configuration spécifique au jeu copiée des paramètres globaux. + Les paramètres propres à ce jeu ont été remplacés par les paramètres globaux. - + The configuration for this game will be cleared. Any current setting values will be lost. Do you want to continue? - Les paramètres spécifiques à ce jeu seront effacés. + Les paramètres propres à ce jeu seront effacés. Les valeurs actuelles des paramètres seront perdues. Voulez-vous vraiment continuer ? - + Per-game configuration cleared. - Configuration spécifique au jeu effacée. + Paramètres propres au jeu effacés. - + Recommended Value - Valeur recommandée - - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Utiliser le paramètre global [Activé] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Utiliser le paramètre global [Désactivé] - - - - - Use Global Setting [%1] - Utiliser le paramètre global [%1] + Valeur recommandée  @@ -14699,7 +15325,7 @@ Voulez-vous vraiment continuer ? BIOS Image - Image du BIOS + Image de BIOS @@ -14709,7 +15335,7 @@ Voulez-vous vraiment continuer ? Controller Setup - Configuration des manettes + Manettes @@ -14719,7 +15345,7 @@ Voulez-vous vraiment continuer ? <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Welcome to PCSX2!</span></h1><p>This wizard will help guide you through the configuration steps required to use the application. It is recommended if this is your first time installing PCSX2 that you view the setup guide at <a href="https://pcsx2.net/docs/usage/setup/">https://pcsx2.net/docs/usage/setup/</a>.</p><p>By default, PCSX2 will connect to the server at <a href="https://pcsx2.net/">pcsx2.net</a> to check for updates, and if available and confirmed, download update packages from <a href="https://github.com/">github.com</a>. If you do not wish for PCSX2 to make any network connections on startup, you should uncheck the Automatic Updates option now. The Automatic Update setting can be changed later at any time in Interface Settings.</p><p>Please choose a language and theme to begin.</p></body></html> - <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Bienvenue sur PCSX2 !</span></h1><p>Cet assistant vous guidera à travers les étapes de configuration nécessaires pour pouvoir utiliser l'application. Si vous utilisez l'application pour la première fois, nous vous recommandons de lire le guide de configuration à l'adresse <a href="https://pcsx2.net/docs/usage/setup/">https://pcsx2.net/docs/usage/setup/</a>.</p><p>Par défaut, PCSX2 se connecte à <a href="https://pcsx2.net/">pcsx2.net</a> pour vérifier la présence d'une mise à jour et télécharge les packages de mise à jour depuis <a href="https://github.com/">github.com</a>. Si vous ne souhaitez pas que PCSX2 se connecte au réseau à son lancement, décochez la case « Activer les mises à jour automatiques ». Ce paramètre peut être modifié à tout moment dans les paramètres de l'interface.</p><p>Pour commencer, choisissez une langue et un thème.</p></body></html> + <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Bienvenue dans PCSX2 !</span></h1><p>Cet assistant vous guidera à travers les étapes de configuration nécessaires avant de pouvoir utiliser l'application. Si vous utilisez l'application pour la première fois, nous vous recommandons de lire le guide de configuration à l'adresse <a href="https://pcsx2.net/docs/usage/setup/">https://pcsx2.net/docs/usage/setup/</a>.</p><p>Par défaut, PCSX2 se connecte à <a href="https://pcsx2.net/">pcsx2.net</a> pour rechercher les mises à jour et télécharge les packages de mise à jour depuis <a href="https://github.com/">github.com</a>. Si vous ne souhaitez pas que PCSX2 se connecte au réseau à son lancement, décochez la case « Activer les mises à jour automatiques ». Ce paramètre peut être modifié à tout moment dans les paramètres de l'interface.</p><p>Pour commencer, choisissez une langue et un thème.</p></body></html> @@ -14739,7 +15365,7 @@ Voulez-vous vraiment continuer ? <html><head/><body><p>PCSX2 requires a PS2 BIOS in order to run.</p><p>For legal reasons, you must obtain a BIOS <strong>from an actual PS2 unit that you own</strong> (borrowing doesn't count).</p><p>Once dumped, this BIOS image should be placed in the bios folder within the data directory shown below, or you can instruct PCSX2 to scan an alternative directory.</p><p>A guide for dumping your BIOS can be found at <a href="https://pcsx2.net/docs/usage/setup/#how-to-dump-your-ps2-bios">pcsx2.net</a>.</p></body></html> - <html><head/><body><p>Pour pouvoir utiliser PCSX2, il vous faut un BIOS de PS2.</p><p>Pour des raisons juridiques, vous devez obtenir un BIOS <strong>depuis une PS2 vous appartenant</strong>. (Vous ne pouvez pas en emprunter une.)</p><p>Une fois dumpée, l'image du BIOS doit être placée dans le dossier « bios » présent dans le dossier des données affiché ci-dessous, ou bien vous pouvez demander à PCSX2 de scanner un autre dossier.</p><p>Vous trouverez un guide pour dumper votre BIOS sur <a href="https://pcsx2.net/docs/usage/setup/#how-to-dump-your-ps2-bios">pcsx2.net</a>.</p></body></html> + <html><head/><body><p>Pour pouvoir utiliser PCSX2, il vous faut un BIOS de PS2.</p><p>Pour des raisons juridiques, vous devez obtenir un BIOS <strong>depuis une console PS2 qui vous appartient</strong>. (Vous ne pouvez pas en emprunter une.)</p><p>Une fois dumpée, l'image du BIOS doit être placée dans le dossier « bios » situé dans le dossier des données affiché ci-dessous, ou bien vous pouvez demander à PCSX2 de scanner un autre dossier.</p><p>Vous trouverez un guide pour dumper votre BIOS sur <a href="https://pcsx2.net/docs/usage/setup/#how-to-dump-your-ps2-bios">pcsx2.net</a>.</p></body></html> @@ -14749,7 +15375,7 @@ Voulez-vous vraiment continuer ? Browse... - Parcourir... + Parcourir… @@ -14768,8 +15394,8 @@ Voulez-vous vraiment continuer ? - Open in Explorer... - Ouvrir dans l'explorateur... + Open BIOS Folder... + Ouvrir le dossier du BIOS… @@ -14779,7 +15405,7 @@ Voulez-vous vraiment continuer ? <html><head/><body><p>PCSX2 will automatically scan and identify games from the selected directories below, and populate the game list.<br>These games should be dumped from discs you own. Guides for dumping discs can be found at <a href="https://pcsx2.net/docs/usage/setup/#dumping-ps2-discs-via-imgburn">pcsx2.net</a>.</p><p>Supported formats for dumps include:</p><p><ul><li>.bin/.iso (ISO Disc Images)</li><li>.mdf (Media Descriptor File)</li><li>.chd (Compressed Hunks of Data)</li><li>.cso (Compressed ISO)</li><li>.gz (Gzip Compressed ISO)</li></ul></p></p></body></html> - <html><head/><body><p>PCSX2 remplira automatiquement sa liste de jeux en scannant les dossiers ci-dessous.<br>Ces jeux doivent être dumpés à partir de disques qui vous appartiennent. Vous trouverez un guide pour dumper des disques sur <a href="https://pcsx2.net/docs/usage/setup/#dumping-ps2-discs-via-imgburn">pcsx2.net</a>.</p><p>Formats de fichier pris en charge :</p><p><ul><li>.bin/.iso (Images disques ISO)</li><li>.mdf (Media Descriptor File)</li><li>.chd (Compressed Hunks of Data)</li><li>.cso (ISO compressé)</li><li>.gz (ISO compressé au format Gzip)</li></ul></p></p></body></html> + <html><head/><body><p>PCSX2 remplira automatiquement sa liste de jeux en scannant les dossiers ci-dessous.<br>Ces jeux doivent être dumpés à partir de disques qui vous appartiennent. Vous trouverez un guide pour dumper des disques sur <a href="https://pcsx2.net/docs/usage/setup/#dumping-ps2-discs-via-imgburn">pcsx2.net</a>.</p><p>Formats de fichier pris en charge :</p><p><ul><li>.bin/.iso (Images disque ISO)</li><li>.mdf (Media Descriptor File)</li><li>.chd (Compressed Hunks of Data)</li><li>.cso (ISO compressé)</li><li>.gz (ISO compressé au format gzip)</li></ul></p></p></body></html> @@ -14789,13 +15415,13 @@ Voulez-vous vraiment continuer ? Add... - Ajouter... + Ajouter… Remove - Enlever + Retirer @@ -14810,7 +15436,7 @@ Voulez-vous vraiment continuer ? <html><head/><body><p>By default, PCSX2 will map your keyboard to the virtual PS2 controller.</p><p><span style=" font-weight:700;">To use an external controller, you must map it first. </span>On this screen, you can automatically map any controller which is currently connected. If your controller is not currently connected, you can plug it in now.</p><p>To change controller bindings in more detail, or use multi-tap, open the Settings menu and choose Controllers once you have completed the Setup Wizard.</p></body></html> - <html><head/><body><p>Par défaut, PCSX2 associe la manette PS2 virtuelle à votre clavier.</p><p><span style=" font-weight:700;">Pour utiliser une manette externe, il vous faut associer ses boutons. </span>Vous pouvez brancher votre manette si ce n'est pas déjà fait.</p><p>Pour modifier plus en détail les associations de boutons ou utiliser un Multitap, ouvrez le menu « Paramètres » et sélectionnez « Manettes ».</p></body></html> + <html><head/><body><p>Par défaut, PCSX2 associe la manette PS2 virtuelle à votre clavier.</p><p><span style=" font-weight:700;">Pour utiliser une manette externe, il vous faut associer ses boutons. </span>Vous pouvez brancher votre manette si ce n'est pas déjà fait.</p><p>Pour modifier plus en détail les associations de boutons ou utiliser un multitap, ouvrez le menu « Paramètres » et sélectionnez « Manettes ».</p></body></html> @@ -14834,7 +15460,7 @@ Voulez-vous vraiment continuer ? Default (Keyboard) - Par défaut (Clavier) + Par défaut (clavier) @@ -14850,7 +15476,7 @@ Voulez-vous vraiment continuer ? <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Setup Complete!</span></h1><p>You are now ready to run games.</p><p>Further options are available under the settings menu. You can also use the Big Picture UI for navigation entirely with a gamepad.</p><p>We hope you enjoy using PCSX2.</p></body></html> - <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Configuration terminée !</span></h1><p>Vous pouvez désormais jouer à des jeux.</p><p>Plus d'options sont disponibles dans le menu « Paramètres ». Vous pouvez également utiliser l'interface Big Picture pour contrôler l'application avec une manette.</p><p>Nous espérons que vous apprécierez PCSX2.</p></body></html> + <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:700;">Configuration terminée !</span></h1><p>Tout est prêt, vous pouvez désormais jouer à des jeux.</p><p>Plus d'options sont disponibles dans le menu « Paramètres ». Vous pouvez également utiliser l'interface Big Picture pour contrôler l'application avec une manette.</p><p>Nous espérons que vous apprécierez PCSX2.</p></body></html> @@ -14884,7 +15510,7 @@ Voulez-vous vraiment continuer ? No game directories have been selected. You will have to manually open any game dumps you want to play, PCSX2's list will be empty. Are you sure you want to continue? - Aucun dossier de jeu sélectionné. La liste de PCSX2 sera vide : vous devrez ouvrir chaque jeu manuellement. + Aucun dossier sélectionné. La liste de PCSX2 sera vide : vous devrez ouvrir chaque jeu manuellement. Voulez-vous vraiment continuer ? @@ -14905,12 +15531,12 @@ Voulez-vous vraiment continuer ? Any changes have been saved, and the wizard will run again next time you start PCSX2. Voulez-vous vraiment annuler la configuration de PCSX2 ? -Les modifications appliquées ont été enregistrées. L'assistant de configuration s'exécutera à nouveau au prochain démarrage de PCSX2. +Les modifications appliquées ont été enregistrées. L'assistant de configuration s'exécutera à nouveau lors du prochain démarrage de PCSX2. Open Directory... - Ouvrir un dossier... + Ouvrir le dossier… @@ -14927,14 +15553,14 @@ Les modifications appliquées ont été enregistrées. L'assistant de configurat Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. - Voulez-vous scanner les sous-dossiers de "%1" ? + Voulez-vous scanner les sous-dossiers de « %1 » ? Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un sous-dossier pourront être identifiés. Default (None) - Par défaut (Aucun) + Par défaut (aucun) @@ -14949,7 +15575,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - Les associations génériques n'ont pas pu être générées pour le périphérique '%1'. La manette ou la source d'entrée n'est peut-être pas compatible avec l'association automatique. + Impossible de générer des associations génériques pour le périphérique « %1 ». La manette ou la source d'entrées n'est peut-être pas compatible avec l'association automatique. @@ -14964,7 +15590,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un LABEL Warning: short space limit. Abbreviate if needed. - LABEL + ÉTIQUETTE @@ -15033,100 +15659,100 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un WAIT TYPE Warning: short space limit. Abbreviate if needed. - TYPE D'ATT. + TYPE D'ATTENTE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. - PRÊT + READY - + WAIT Refers to a Thread State in the Debugger. - ATT. + WAIT - + SUSPEND Refers to a Thread State in the Debugger. - SUSPENDRE + SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. - AUCUN + NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15157,7 +15783,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Selects the device to capture images from. - Sélectionnez le périphérique à partir duquel capturer des images. + Sélectionnez le périphérique à utiliser pour la capture d'images. @@ -15182,17 +15808,17 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Left Button - Bouton Gauche + Bouton de gauche Right Button - Bouton Droit + Bouton de droite Middle Button - Bouton Milieu + Bouton du milieu @@ -15202,7 +15828,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un GunCon 2 - GunCon 2 + GunCon 2 @@ -15211,7 +15837,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un D-Pad Up - Croix directionnelle Haut + Touche directionnelle (haut️) @@ -15220,7 +15846,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un D-Pad Down - Croix directionnelle Bas + Touche directionnelle (bas) @@ -15229,7 +15855,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un D-Pad Left - Croix directionnelle Gauche + Touche directionnelle (gauche️) @@ -15238,7 +15864,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un D-Pad Right - Croix directionnelle Droite + Touche directionnelle (droite️) @@ -15284,7 +15910,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Select - Select + SELECT @@ -15295,27 +15921,27 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Start - Start + START Relative Left - Relatif gauche + Relatif (gauche) Relative Right - Relatif droite + Relatif (droite) Relative Up - Relatif haut + Relatif (haut) Relative Down - Relatif bas + Relatif (bas) @@ -15330,7 +15956,12 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Scales the crosshair image set above. - Met à l'échelle l'image de viseur définie ci-dessus. + Mise à l'échelle de l'image de viseur définie ci-dessus. + + + + %.0f%% + %.0f %% @@ -15340,7 +15971,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Applies a color to the chosen crosshair images, can be used for multiple players. Specify in HTML/CSS format (e.g. #aabbcc) - Applique une couleur aux images à utiliser comme viseur. Cette option permet d'aider à différencier les viseurs des joueurs. Spécifiez la couleur au format HTML/CSS (par exemple : #aabbcc). + Appliquer une couleur aux images à utiliser comme viseur. Cette option vous permet d'aider à différencier les viseurs des joueurs. Spécifiez la couleur au format HTML/CSS (par exemple : #aabbcc). @@ -15350,23 +15981,29 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Forces the use of the screen parameters below, instead of automatic parameters if available. - Force l'utilisation des paramètres d'écran ci-dessous, au lieu des paramètres automatiques, si disponible. + Forcer l'utilisation des paramètres d'écran ci-dessous à la place des paramètres automatiques (si disponibles). X Scale (Sensitivity) - Échelle X (Sensibilité) + Échelle X (sensibilité) Scales the position to simulate CRT curvature. - Modifie sa position afin de simuler la courbure d'un écran à tubes cathodiques. + Modifier la position du curseur pour simuler la courbure d'un écran à tubes cathodiques. + + + + + %.2f%% + %.2f %% Y Scale (Sensitivity) - Échelle Y (Sensibilité) + Échelle Y (sensibilité) @@ -15378,6 +16015,12 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Sets the horizontal center position of the simulated screen. Définissez la position horizontale du centre de l'écran simulé. + + + + %.0fpx + %.0f px + Center Y @@ -15398,6 +16041,12 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Sets the width of the simulated screen. Définissez la largeur de l'écran simulé. + + + + %dpx + %d px + Screen Height @@ -15406,7 +16055,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Sets the height of the simulated screen. - Définissez la largeur de l'écran simulé. + Définissez la hauteur de l'écran simulé. @@ -15425,12 +16074,12 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Selects the device to read audio from. - Sélectionnez le périphérique à partir duquel lire l'audio. + Sélectionnez le périphérique à utiliser pour l'enregistrement audio. Output Device - Périphérique de Sortie + Périphérique de sortie @@ -15451,17 +16100,26 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Specifies the latency to the host input device. - Spécifie la latence du périphérique d'entrée de l'hôte. + Spécifiez la latence pour le périphérique d'entrée hôte. + + + + + + + + %dms + %d ms Output Latency - Latence de Sortie + Latence de sortie Specifies the latency to the host output device. - Spécifie la latence du périphérique de sortie de l'hôte. + Spécifiez la latence pour le périphérique de sortie hôte. @@ -15481,22 +16139,22 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Player 1 Device - Périphérique Joueur 1 + Périphérique du joueur 1 Selects the input for the first player. - Sélectionnez l'entrée pour le premier joueur. + Sélectionnez le périphérique à utiliser pour le joueur 1. Player 2 Device - Périphérique Joueur 2 + Périphérique du joueur 2 Selects the input for the second player. - Sélectionnez l'entrée pour le second joueur. + Sélectionnez le périphérique à utiliser pour le joueur 2. @@ -15506,7 +16164,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un usb-msd: Could not open image file '{}' - usb-msd: Impossible d'ouvrir le fichier image '{}' + usb-msd: Impossible d'ouvrir le fichier image « {} » @@ -15516,31 +16174,31 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Modification time to USB mass storage image changed, reattaching. - L'heure de modification de l'image de stockage de masse USB a été modifiée, rebranchement en cours. + La date de modification de l'image du stockage de masse USB a été modifiée, réinsertion du périphérique. Image Path - Emplacement de l'image + Chemin d'accès à l'image Sets the path to image which will back the virtual mass storage device. - Définissez le chemin vers l'image à utiliser pour le périphérique de stockage de masse virtuel. + Définissez le chemin d'accès à l'image à utiliser pour le périphérique de stockage de masse virtuel. Steering Left - Virage à Gauche + Rotation (gauche) Steering Right - Virage à Droite + Rotation (droite) @@ -15609,7 +16267,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Force Feedback - Retour de Force + Retour de force @@ -15634,12 +16292,12 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Menu Up - Menu Haut + Menu (haut) Menu Down - Menu Bas + Menu (bas) @@ -15653,20 +16311,46 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Y Y + + + Off + Désactivé + + + + Low + Faible + + + + Medium + Moyen + + + + High + Élevé + Steering Smoothing - Lissage de Virage + Lissage Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. - Lisse le déplacement du volant par le pourcentage spécifié à chaque interrogation du périphérique d'entrée. Cette option est nécessaire pour contrôler un volant virtuel avec un clavier de façon convenable. + Lisser les changements de rotation par le pourcentage spécifié à chaque interrogation du périphérique d'entrée. Utilisez cette option pour contrôler de façon convenable un volant virtuel avec un clavier. + + + + + %d%% + %d %% Steering Deadzone - Zone Morte de Virage + Zone morte de la direction @@ -15676,17 +16360,17 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Steering Damping - Amortissement de Virage + Amortisseur de direction Applies power curve filter to steering axis values. Dampens small inputs. - Applique une courbe filtre aux valeurs des axes du volant. Atténue les faibles valeurs. + Appliquer une courbe filtre aux valeurs de la direction du volant. Atténue les petits mouvements de volant. Wheel Device - Périphérique de volant + Volant @@ -15711,7 +16395,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Rock Band Drum Kit - Kit de Batterie Rock Band + Batterie Rock Band @@ -15746,102 +16430,102 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Player 1 Red - Joueur 1 Rouge + Joueur 1 (rouge) Player 1 Blue - Joueur 1 Bleu + Joueur 1 (bleu) Player 1 Orange - Joueur 1 Orange + Joueur 1 (orange) Player 1 Green - Joueur 1 Vert + Joueur 1 (vert) Player 1 Yellow - Joueur 1 Jaune + Joueur 1 (jaune) Player 2 Red - Joueur 2 Rouge + Joueur 2 (rouge) Player 2 Blue - Joueur 2 Bleu + Joueur 2 (bleu) Player 2 Orange - Joueur 2 Orange + Joueur 2 (orange) Player 2 Green - Joueur 2 Vert + Joueur 2 (vert) Player 2 Yellow - Joueur 2 Jaune + Joueur 2 (jaune) Player 3 Red - Joueur 3 Rouge + Joueur 3 (rouge) Player 3 Blue - Joueur 3 Bleu + Joueur 3 (bleu) Player 3 Orange - Joueur 3 Orange + Joueur 3 (orange) Player 3 Green - Joueur 3 Vert + Joueur 3 (vert) Player 3 Yellow - Joueur 3 Jaune + Joueur 3 (jaune) Player 4 Red - Joueur 4 Rouge + Joueur 4 (rouge) Player 4 Blue - Joueur 4 Bleu + Joueur 4 (bleu) Player 4 Orange - Joueur 4 Orange + Joueur 4 (orange) Player 4 Green - Joueur 4 Vert + Joueur 4 (vert) Player 4 Yellow - Joueur 4 Jaune + Joueur 4 (jaune) @@ -15851,132 +16535,132 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un C 1 - C 1 + Do 1 C# 1 - C# 1 + Do# 1 D 1 - D 1 + Ré 1 D# 1 - D# 1 + Ré# 1 E 1 - E 1 + Mi 1 F 1 - F 1 + Fa 1 F# 1 - F# 1 + Fa# 1 G 1 - G 1 + Sol 1 G# 1 - G# 1 + Sol# 1 A 1 - A 1 + La 1 A# 1 - A# 1 + La# 1 B 1 - B 1 + Si 1 C 2 - C 2 + Do 2 C# 2 - C# 2 + Do# 2 D 2 - D 2 + Ré 2 D# 2 - D# 2 + Ré# 2 E 2 - E 2 + Mi 2 F 2 - F 2 + Fa 2 F# 2 - F# 2 + Fa# 2 G 2 - G 2 + Sol 2 G# 2 - G# 2 + Sol# 2 A 2 - A 2 + La 2 A# 2 - A# 2 + La# 2 B 2 - B 2 + Si 2 Wheel Up - Molette Haut + Molette (haut) Wheel Down - Molette Bas + Molette (bas) @@ -15986,22 +16670,22 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Stick Left - Stick Gauche + Stick (gauche) Stick Right - Stick Droite + Stick (droite) Stick Up - Stick Haut + Stick (haut) Stick Down - Stick Bas + Stick (bas) @@ -16021,12 +16705,12 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Failed to open '{}' for printing. - Impossible d'ouvrir '{}' pour impression. + Échec de l'ouverture de « {} » pour l'impression. Printer saving to '{}'... - Sauvegarde de l'imprimante vers '{}'... + Enregistrement de l'impression sous « {} »… @@ -16043,7 +16727,7 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Not Connected - Non Connecté + Déconnecté @@ -16068,77 +16752,77 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Crossfader Left - Crossfader gauche + Crossfader (gauche) Crossfader Right - Crossfader droite + Crossfader (droite) Left Turntable Clockwise - Platine de gauche, sens horaire + Platine de gauche (sens horaire) Left Turntable Counterclockwise - Platine de gauche, sens anti-horaire + Platine de gauche (sens antihoraire) Right Turntable Clockwise - Platine de droite, sens horaire + Platine de droite (sens horaire) Right Turntable Counterclockwise - Platine de droite, sens anti-horaire + Platine de droite (sens antihoraire) Left Turntable Green - Platine de gauche, vert + Platine de gauche (vert) Left Turntable Red - Platine de gauche, rouge + Platine de gauche (rouge) Left Turntable Blue - Platine de gauche, bleu + Platine de gauche (bleu) Right Turntable Green - Platine de droite, vert + Platine de droite (vert) Right Turntable Red - Platine de gauche, rouge + Platine de droite (rouge) Right Turntable Blue - Platine de gauche, bleu + Platine de droite (bleu) Apply a multiplier to the turntable - Appliquer un multiplicateur à la platine + Appliquer un multiplicateur à la platine. Effects Knob Left - Bouton effets gauche + Bouton effets (gauche) Effects Knob Right - Bouton effets droite + Bouton effets (droite) @@ -16162,117 +16846,117 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un USBBindingWidget_DrivingForce - + Hints Conseils - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - Pour associer la direction à un volant moderne à 900 degrés, tournez le volant complètement dans une des directions, puis ramenez-le au centre. + Pour associer la direction d'un volant moderne à 900 degrés, effectuez une rotation du volant dans la direction voulue, puis ramenez-le au centre. - + Force Feedback Retour de force - + D-Pad - Croix Directionnelle + Touches directionnelles - + Down Bas - + Left Gauche - + Up Haut - + Right Droite - + L1 L1 - + L2 L2 - + Brake Frein - + Steering Left - Virage à Gauche + Rotation (gauche) - + Steering Right - Virage à Droite + Rotation (droite) - + Select - Select + SELECT - + Start - Start + START - + Face Buttons - Boutons de face + Touches d'action - + Circle Cercle - + Cross Croix - + Triangle Triangle - + Square Carré - + R1 R1 - + R2 R2 - + Accelerator Accélérateur @@ -16280,67 +16964,67 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un USBBindingWidget_GTForce - + Hints - Indices + Conseils - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - Pour associer la direction à un volant moderne à 900 degrés, tournez le volant complètement dans une des directions, puis ramenez-le au centre. + Pour associer la direction d'un volant moderne à 900 degrés, effectuez une rotation du volant dans la direction voulue, puis ramenez-le au centre. - + Force Feedback - Retour de Force + Retour de force - + X X - + A A - + Brake Frein - + Steering Left - Virage à Gauche + Rotation (gauche) - + Steering Right - Virage à Droite + Rotation (droite) - + Left Paddle - Pédale de Gauche + Pédale de gauche - + Right Paddle - Pédale de Droite + Pédale de droite - + Y Y - + B B - + Accelerator Accélérateur @@ -16348,102 +17032,102 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un USBBindingWidget_GunCon2 - + Buttons Boutons - + A A - + C C - + Start - Start + START - + Select - Select + SELECT - + B B - + D-Pad - Croix directionnelle + Touches directionnelles - - + + Down Bas - - + + Left Gauche - - + + Up Haut - - + + Right Droite - + Pointer Setup Configuration du pointeur - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - <p>Par défaut, le GunCon2 utilise le pointeur de la souris. Pour utiliser la souris, <strong>ne configurez pas</strong> d'associations de touches autres que la gâchette et les boutons.</p> + <p>Par défaut, le pointeur de la souris est utilisé pour viser avec le GunCon 2. Pour utiliser la souris, <strong>ne configurez pas</strong> d'associations autres que la gâchette et les boutons.</p> -<p>Si vous souhaitez utiliser une manette ou un lightgun qui simule une manette plutôt qu'une souris, utilisez la visée relative. Sinon, <strong>n'associez rien à la visée relative</strong>.</p> +<p>Si vous souhaitez utiliser une manette ou un lightgun simulant une manette à la place de la souris, utilisez la visée relative. Sinon, <strong>n'associez rien à la visée relative</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Visée relative - - + + Trigger Gâchette - + Shoot Offscreen Tir hors écran - + Calibration Shot Tir de calibrage - + Calibration shot is required to pass the setup screen in some games. Le tir de calibrage est requis par certains jeux pour passer l'écran de configuration. @@ -16451,29 +17135,29 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un USBDeviceWidget - + Device Type - Type de Périphérique + Type de périphérique - + Bindings - Touches + Associations - + Settings Paramètres - + Automatic Mapping Association automatique - + Clear Mapping - Effacer le mappage + Effacer les associations @@ -16488,53 +17172,53 @@ Scanner les sous-dossiers prend plus de temps mais les jeux se trouvant dans un Clear Bindings - Effacer les touches + Effacer les associations Are you sure you want to clear all bindings for this device? This action cannot be undone. - Voulez-vous vraiment effacer toutes les associations de touches de ce périphérique ? Cette action est irréversible. + Voulez-vous vraiment effacer toutes les associations pour ce périphérique ? Cette action est irréversible. Automatic Binding - Configuration Automatique + Association automatique No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - Aucune association par défaut n'a été générée pour le périphérique '%1'. Le contrôleur ou la source peut ne pas prendre en charge la configuration automatique. + Impossible de générer des associations génériques pour le périphérique « %1 ». La manette ou la source d'entrées n'est peut-être pas compatible avec l'association automatique. VMManager - + Failed to back up old save state {}. - Échec du backup de l'ancienne sauvegarde état {}. + Échec de la copie de la sauvegarde d'état existante « {} ». - + Failed to save save state: {}. - Échec de la sauvegarde de l'état dans l'emplacement: {}. + Échec de la sauvegarde de l'état à l'emplacement {}. - + PS2 BIOS ({}) BIOS PS2 ({}) - + Unknown Game Jeu inconnu - + Error Erreur - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16551,199 +17235,217 @@ Une fois dumpée, l'image du BIOS doit être placée dans le dossier « bios  Pour plus d'informations, consultez la FAQ et les guides. - + + Resuming state + La reprise + + + State saved to slot {}. - État sauvegardé vers l'emplacement {}. + État sauvegardé à l'emplacement {}. - + Failed to save save state to slot {}. - Échec de la sauvegarde de l'état dans l'emplacement {}. + Échec de la sauvegarde de l'état à l'emplacement {}. - + + + Loading state + Chargement d'un état + + + There is no save state in slot {}. - Il n'y a pas d'état de sauvegarde dans l'emplacement {}. + Il n'y a aucune sauvegarde d'état à l'emplacement {}. - + Loading state from slot {}... - Chargement de l'était depuis l'emplacement {}... + Chargement de l'état à l'emplacement {}… - + Saving state to slot {}... - Enregistrement de l'état vers l'emplacement {}... + Sauvegarde de l'état à l'emplacement {}… - + + Frame advancing + Avancer d'une image + + + Disc removed. - Disque retiré. + Disque éjecté. - + Disc changed to '{}'. - Disque changé en '{}'. + Nouveau disque inséré : « {} ». - - Failed to open new disc image '{}'. Reverting to old image. - Échec de l'ouverture de la nouvelle image disque '{}'. Rétablissement de l'ancienne image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Échec de l'ouverture de la nouvelle image disque « {} ». Rétablissement de l'image précédente. ({}) - - Failed to switch back to old disc image. Removing disc. - Impossible de revenir à l'ancienne image disque. Éjection du disque. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Impossible de revenir à l'image disque précédente. Éjection du disque. ({}) - + Cheats have been disabled due to achievements hardcore mode. Les codes de triche ont été désactivés suite à l'activation du mode hardcore des succès. - + Fast CDVD is enabled, this may break games. - Le CDVD rapide est activé, cela peut casser les jeux. + « Fast CDVD » est activé, cela pourrait casser certains jeux. - + Cycle rate/skip is not at default, this may crash or make games run too slow. - Le taux de cycle et/ou le saut de cycle n'est pas à sa valeur par défaut. Cela pourrait causer des plantages et des ralentissements. + La cadence et/ou le saut de cycle n'est pas défini sur sa valeur par défaut. Cela pourrait causer des plantages et des ralentissements. - + Audio is using async mix, expect desynchronization in FMVs. - Le mixage asynchrone est activé : les cinématiques vidéo peuvent être désynchronisées. + Mixage audio en mode asynchrone, les cinématiques vidéo peuvent être désynchronisées. - + Upscale multiplier is below native, this will break rendering. - Le multiplicateur de mise à l'échelle est inférieur à natif, cela cassera le rendu. + Le multiplicateur de mise à l'échelle est inférieur à « Native », cela causera des problèmes d'affichage. - + Mipmapping is not set to automatic. This may break rendering in some games. - Le mipmapping n'est pas réglé sur automatique. Cela peut casser le rendu dans certains jeux. + Le mipmapping n'est pas défini sur automatique. Cela pourrait causer des problèmes d'affichage dans certains jeux. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - Le filtrage des textures n'est pas défini sur Bilinéaire (PS2). Cela cassera le rendu de certains jeux. + Le filtrage des textures n'est pas défini sur Bilinéaire (PS2). Cela causera des problèmes d'affichage dans certains jeux. - + Trilinear filtering is not set to automatic. This may break rendering in some games. - Le filtrage trilinéaire n'est pas défini sur automatique. Cela peut casser le rendu de certains jeux. + Le filtrage trilinéaire n'est pas défini sur automatique. Cela pourrait causer des problèmes d'affichage dans certains jeux. - + Blending is below basic, this may break effects in some games. - Le blending est inférieur à basique. Cela peut casser les effets de certains jeux. + La précision des fusions est inférieure à basique. Cela pourrait casser les effets de certains jeux. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. - Le mode de téléchargement matériel n'est pas défini sur Précis, ce qui peut casser le rendu de certains jeux. + Le mode de téléchargement matériel n'est pas défini sur « Précis », cela pourrait causer des problèmes d'affichage dans certains jeux. - + EE FPU Round Mode is not set to default, this may break some games. - Le EE FPU Rounding Mode n'est pas à sa valeur par défaut. Cela peut casser certains jeux. + Le EE FPU Rounding Mode n'est pas défini sur sa valeur par défaut, cela pourrait casser certains jeux. - + EE FPU Clamp Mode is not set to default, this may break some games. - La gestion des limites numériques du FPU du EE n'a pas sa valeur par défaut. Cela peut casser certains jeux. + Le Clamping Mode EE n'est pas défini sur sa valeur par défaut, cela pourrait casser certains jeux. - + VU Round Mode is not set to default, this may break some games. - Le VU Rounding Mode n'est pas à sa valeur par défaut. Cela peut casser certains jeux. + Le VU Rounding Mode n'est pas défini sur sa valeur par défaut, cela pourrait casser certains jeux. - + VU Clamp Mode is not set to default, this may break some games. - La gestion des limites numériques des VU n'a pas sa valeur par défaut. Cela peut casser certains jeux. + Le Clamping Mode VU n'est pas défini sur sa valeur par défaut, cela pourrait casser certains jeux. - + Game Fixes are not enabled. Compatibility with some games may be affected. Les correctifs sont désactivés. La compatibilité avec certains jeux pourrait être affectée. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. - Patchs de compatibilité désactivés. La compatibilité avec certains jeux peut être affectée. + Patchs de compatibilité désactivés. Le bon fonctionnement de certains jeux peut être affecté. - + Frame rate for NTSC is not default. This may break some games. - Le taux d'images NTSC n'est pas celui par défaut. Cela peut casser certains jeux. + La fréquence d'images pour NTSC n'est pas définie sur sa valeur par défaut. Cela pourrait casser certains jeux. - + Frame rate for PAL is not default. This may break some games. - Le taux d'images PAL n'est pas celui par défaut. Cela peut casser certains jeux. + La fréquence d'images pour PAL n'est pas définie sur sa valeur par défaut. Cela pourrait casser certains jeux. - + EE Recompiler is not enabled, this will significantly reduce performance. - Le recompilateur EE n'est pas activé, cela réduira considérablement les performances. + Le recompilateur EE est désactivé, cela réduira considérablement les performances. - + VU0 Recompiler is not enabled, this will significantly reduce performance. - Le recompilateur VU0 n'est pas activé, cela réduira considérablement les performances. + Le recompilateur VU0 est désactivé, cela réduira considérablement les performances. - + VU1 Recompiler is not enabled, this will significantly reduce performance. - Le recompilateur VU1 n'est pas activé, cela réduira considérablement les performances. + Le recompilateur VU1 est désactivé, cela réduira considérablement les performances. - + IOP Recompiler is not enabled, this will significantly reduce performance. - Le recompilateur IOP n'est pas activé, cela réduira considérablement les performances. + Le recompilateur IOP est désactivé, cela réduira considérablement les performances. - + EE Cache is enabled, this will significantly reduce performance. - Le cache EE est activé, cela réduira considérablement les performances. + Le cache EE est activé, les performances pourraient être dégradées. - + EE Wait Loop Detection is not enabled, this may reduce performance. La détection de l'attente active est désactivée, les performances pourraient être dégradées. - + INTC Spin Detection is not enabled, this may reduce performance. La détection des boucles INTC est désactivée, les performances pourraient être dégradées. - + Instant VU1 is disabled, this may reduce performance. - La VU1 instantanée est désactivée, cela peut réduire les performances. + « Instant VU1 » est désactivé, les performances pourraient être dégradées. - + mVU Flag Hack is not enabled, this may reduce performance. - Le hack de Flag du mVU n'est pas activé, cela peut réduire les performances. + Le hack « mVU Flag » est désactivé, les performances pourraient être dégradées. - + GPU Palette Conversion is enabled, this may reduce performance. - La conversion de palette GPU est activée, cela peut réduire les performances. + « Conversion de palette GPU » est activé, les performances pourraient être dégradées. - + Texture Preloading is not Full, this may reduce performance. - Le préchargement des textures n'est pas Plein, cela peut réduire les performances. + Le préchargement des textures n'est pas défini sur « Complet », les performances pourraient être dégradées. - + Estimate texture region is enabled, this may reduce performance. - La zone de texture estimée est activée, cela peut réduire les performances. + « Estimer la taille des textures » est activé, les performances pourraient être dégradées. diff --git a/pcsx2-qt/Translations/pcsx2-qt_he-IL.ts b/pcsx2-qt/Translations/pcsx2-qt_he-IL.ts index 04e3645c19da92..43cf0900ca6363 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_he-IL.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_he-IL.ts @@ -80,32 +80,38 @@ מוכן... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>כניסתך עבור RetroAchievements כבר לא תקפה.</strong> על מנת לחדש מעקב על השיגיך נא להכניס מחדש את פרטי המשתמש. סיסמתך לא תישמר בPCSX2, במקום יווצר קוד גישה למטרת כניסה. - + &Login התחבר/י - + Logging in... מתחבר... - + Login Error שגיאת התחברות - - Login failed. Please check your username and password, and try again. - התחברות נכשלה. בדוק את שם המשתמש והסיסמה ונסה שנית. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login failed. +Error: %1 + +Please check your username and password, and try again. - + Login failed. התחברות נכשלה. @@ -113,268 +119,501 @@ AchievementSettingsWidget - - Global Settings - הגדרות כלליות - - - - + + Enable Achievements הפעל השיגים - - - Show Challenge Indicators - הצג את מחוון האתגרים - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Enable RA's Rich Presence - - - - + + Enable Hardcore Mode אפשר מצב הארדקור - - - Enable Leaderboards - הפעל לוח תחרותי - - - + Test Unofficial Achievements בחן השיגים לא רישמיים - - - Enable Test Mode - אפשר מצב ניסיוני - - - - + + Enable Sound Effects אפשר אפקטים קוליים - + Notifications התראות - - - Show Notifications - הצג התראות - - - - Duration - Duration - - - - - - + + 5 seconds 5 שניות - + Account חשבון - - + + Login... התחבר... - + View Profile... צפה בפרופיל... - + + Settings + הגדרות + + + + + Enable Spectator Mode + Enable Spectator Mode + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Show Achievement Notifications + + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info מידע על המשחק - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 משתמש במערכת בשם RetroAchievements כמרכז נתונים ועבור מעקב על התקדמות. כדי לשתמש בהשיגים, נא צור משתמש בכתובת <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">כדי לראות את רשימת ההשיגים בתוך המשחק, נא לחץ על קיצור הדרך עבור Open Pause Menu <span style=" font-weight:600;">Open Pause Menu</span> ובחר <span style=" font-weight:600;">הישגים</span> מן התפריט.</p></body></html> + - seconds - שניות - - - - + + - - Unchecked לא נבדק - - When enabled and logged in, PCSX2 will scan for achievements on game load. - כאשר הפונקציה פעילה עם משתמש מחובר, PCSX2 יסרוק את הישיגייך בזמן טעינת המשחק. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. כאשר הפונקציה פעילה, PCSX2 יניח שכל ההשיגים נעולים ולא ישלח התראה לפתיחת ההשיג לשרת. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. כאשר הפונקציה פעילה, PCSX2 יראה השיגים המגיעים מרשימות השיגים לא רשמיות. נא לשים לב שההשיגים האלו אינם עוברים מעקב על ידי RetroAchievements, לכן הם יפתחו כל פעם. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - כאשר הפונקציה פעילה, מידע נוכחות עשירה יאסף וישלח לשרתי RetroAchievements במידה והמידע נתמך. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. מצב "אתגר" עבור השיגים, למשל מעקב לוח מתחרים. הפונקציה מנתרלת מצבי שמירה, cheats, ופונקציות האטה. - - - - + + + + Checked נבדק - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - הפונקציה מאפשרת מעקב אחר הגשות ללוח המתחרים במשחקים נתמחים. אם לוח המתחרים מנותרלים, צפיה בלוח המתחרים ובתוצאות תשאר פעילה, אך תוצאות נוספות לא יועלו. + + Plays sound effects for events such as achievement unlocks and leaderboard submissions. + משמיע אפקטים קוליים עבור אירועים כמו פתיחת הישגים והגשות של לוח תוצאות. - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Displays popup messages on events such as achievement unlocks and leaderboard submissions. + + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - - Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Plays sound effects for events such as achievement unlocks and leaderboard submissions. + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. - - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. - - - - Notification Duration - משך התראה + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - The duration, in seconds, an achievement popup notification will remain on screen. + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - + Reset System אתחל מערכת - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Хардкор режим не будет включён, пока система не будет перезагружена. Вы хотите перезапустить систему прямо сейчас? + + + + %n seconds + + %n seconds + %n seconds + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Username: %1 Login token generated on %2. - + Logout התנתק/י - + Not Logged In. לא מחובר/ת. - - - %1 seconds - %1 seconds - Achievements - + Hardcore mode will be enabled on system reset. מצב Hardcore יופעל לאחר אתחול המערכת. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - + Hardcore mode is now enabled. Hardcore mode is now enabled. - + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (לא רשמי) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. Hardcore mode is now disabled. - + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (Hardcore Mode) - - You have earned {0} of {1} achievements, and {2} of {3} points. - הרווחת {0} מתוך {1} השיגים, ו {2} מתוך {3} נקודות. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - למשחק אין השיגים. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) - - Leaderboard submission is enabled. - Leaderboard submission is enabled. + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} - + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + לא ידוע + + + + Locked + נעול + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + לא רשמי + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Unlocked: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + שם + + + + Time + זמן + + + + Score + ניקוד + + + + Value + ערך + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + טוען... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + למשחק אין השיגים. + + + Failed to read executable from disc. Achievements disabled. Failed to read executable from disc. Achievements disabled. @@ -430,7 +669,7 @@ Login token generated on %2. Checked - Checked + נבדק @@ -578,220 +817,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Rounding Mode: - - - + + + Nearest הקרוב - - - + + + Negative שלילי - - - + + + Positive חיובי - - - + + + Chop / Zero (Default) Chop / Zero (Default) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Clamping Mode: - - + + None ללא - - - + + + Normal (Default) רגיל (ברירת מחדל) - + None ClampMode ללא - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preserve Sign - + Full הכל - + Wait Loop Detection Wait Loop Detection - - + + Enable Recompiler הפעל קומפילציה מחדש - + Enable Fast Memory Access הפעל נגישות זיכרון מהירה - + Enable Cache (Slow) Enable Cache (Slow) - + INTC Spin Detection INTC Spin Detection - + Pause On TLB Miss Pause On TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Unit (יחידת וקטור) - + VU1 Rounding Mode: VU1 Rounding Mode: - + mVU Flag Hack - mVU Flag Hack + הפעל את מודיפיקציית רכיב ה-mVU - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - - + + Extra תוספות - + VU0 Clamping Mode: - VU0 Clamping Mode: + מצב הידוק VU0: - + VU0 Rounding Mode: VU0 Rounding Mode: - + VU1 Clamping Mode: VU1 Clamping Mode: - + I/O Processor (IOP, MIPS-I) I/O Processor (IOP, MIPS-I) - + Game Settings הגדרות משחק - + Enable Game Fixes הפעלת תיקוני משחק - + Enable Compatibility Patches הפעלת עדכוני תאימות - + Frame Rate Control שליטה בכמות תמונות לשנייה - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. הרץ - + PAL Frame Rate: תמונות לשנייה PAL: - + NTSC Frame Rate: תמונות לשנייה NTSC: - + PINE Settings - PINE Settings + הגדרות PINE - + Slot: תאים: - + Enable אפשר @@ -799,182 +1038,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings Timestretch Settings - + Sequence Length: גודל רצף: - + 30 30 - + Seekwindow Size: Seekwindow Size: - + 20 20 - + Overlap: חפיפה: - + 10 10 - + Restore Defaults שחזר לברירת מחדל - + Volume עוצמת שמע - + 100% 100% - + Mixing Settings הגדרות ערבול - + Synchronization: סינכרון: - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) ערבול אסינכרוני (עלול לשבור משחקים!) - + None (Audio can skip.) None (Audio can skip.) - + Expansion: הרחבה: - + Stereo (None, Default) סטריאו (ללא, ברירת מחדל) - + Quadraphonic Quadraphonic - + Surround 5.1 סטראונד 5.1 - + Surround 7.1 סטראונד 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Level: - + None (Default) ללא (בררת מחדל) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Decoding (basic) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II פענוח (gigaherz) - + Target Latency: עיקוב מיועד: - + 60 ms 60 מילישנייה - + Output Settings הגדרות פלט - + Output Module: מודל פלט: - + Output Latency: עיקוב הפלט: - + 20 ms 20 מילישנייה - + Minimal מינימלי - + Output Backend: פלט השרת: - + Maximum Latency: עיכוב מירבי: - + Output Device: מכשיר הפלט: @@ -1017,7 +1256,7 @@ Login token generated on %2. Output Module Cubeb is an audio engine name. Leave as-is. - Output Module + מודול פלט @@ -1036,7 +1275,7 @@ Login token generated on %2. Default - Default + ברירת מחדל @@ -1046,7 +1285,7 @@ Login token generated on %2. Output Device - Output Device + מכשיר הפלט @@ -1056,7 +1295,7 @@ Login token generated on %2. Target Latency - Target Latency + עיקוב מיועד @@ -1066,7 +1305,7 @@ Login token generated on %2. Output Latency - Output Latency + עיקוב הפלט @@ -1076,12 +1315,12 @@ Login token generated on %2. Sequence Length - Sequence Length + גודל רצף 30 ms - 30 ms + 30 מילי-שניות @@ -1092,12 +1331,12 @@ Login token generated on %2. Overlap - Overlap + חפיפה 10 ms - 10 ms + 10 מילי-שניות @@ -1113,7 +1352,7 @@ Login token generated on %2. %1% Variable value that indicates a percentage. Preserve the %1 variable, adapt the latter % (and/or any possible spaces) to your language's ruleset. - %1% + %1% @@ -1124,7 +1363,7 @@ Login token generated on %2. %1 ms - %1 ms + %1 מילי-שניות @@ -1162,17 +1401,22 @@ Login token generated on %2. גרסה חדשה: - + + Download Size: + Download Size: + + + Download and Install... הורד והתקן... - + Skip This Update דלג על עדכון זה - + Remind Me Later הזכר לי מאוחר יותר @@ -1182,17 +1426,17 @@ Login token generated on %2. שגיאת עדכון - + <h2>Changes:</h2> <h2>Changes:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> @@ -1209,7 +1453,7 @@ Login token generated on %2. Downloading %1... - Downloading %1... + מוריד %1... @@ -1224,15 +1468,20 @@ Login token generated on %2. Current Version: %1 (%2) - Current Version: %1 (%2) + גרסה נוכחית: %1 (%2) New Version: %1 (%2) - New Version: %1 (%2) + גרסה חדשה: %1 (%2) + Download Size: %1 MB + Download Size: %1 MB + + + Loading... טוען... @@ -1240,63 +1489,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory תיקיית BIOS - + PCSX2 will search for BIOS images in this directory. PCSX2 will search for BIOS images in this directory. - + Browse... עיין... - + Reset איפוס - + BIOS Selection בחירת BIOS - - Open in Explorer... - פתח בתיקייה... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List רענן רשימה - + Filename שם הקובץ - + Version גרסה - + Options and Patches אפשרויות ופאצ׳ים - + Fast Boot הפעלה מהירה - + Fast Forward Boot Fast Forward Boot @@ -1424,91 +1673,84 @@ Login token generated on %2. BreakpointModel - + Execute בצע - - No Condition - No Condition - - - - + + -- - -- + -- - - + Enabled - Enabled + מופעל - - + Disabled - Disabled + מושבת - + Read - Read + קריאה - + Write(C) (C) = changes, as in "look for changes". Write(C) - + Write - Write + כתיבה - + TYPE Warning: limited space available. Abbreviate if needed. - TYPE + סוג - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. SIZE / LABEL - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCTION - + CONDITION Warning: limited space available. Abbreviate if needed. CONDITION - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1519,29 +1761,29 @@ Login token generated on %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - + Saving CDVD block dump to '{}'. Saving CDVD block dump to '{}'. Audio - Audio + שֵׁמַע Mode 1 - Mode 1 + מצב 1 Mode 2 - Mode 2 + מצב 2 Unknown - Unknown + לא ידוע @@ -1549,50 +1791,50 @@ Login token generated on %2. Select LED Color - Select LED Color + בחר צבע LED ControllerBindingWidget - + Virtual Controller Type - Virtual Controller Type + סוג בקר וירטואלי - + Bindings Bindings - + Settings - Settings + הגדרות - + Macros Macros - + Automatic Mapping - Automatic Mapping + מיפוי אוטומטי - + Clear Mapping - Clear Mapping + נקה מיפוי Controller Port %1 - Controller Port %1 + יציאת בקר %1 No devices available - No devices available + אין מכשירים זמינים @@ -1609,7 +1851,7 @@ Login token generated on %2. Automatic Binding - Automatic Binding + מיפוי אוטומטי @@ -1620,146 +1862,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - D-Pad + D-Pad - - - + + + Down - Down + למטה - - - + + + Left - Left + שמאל - - - + + + Up - Up + למעלה - - - + + + Right - Right + ימין - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Left Analog - + Large Motor מנוע גדול - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. לחצני צורות - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. איקס - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. ריבוע - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. משולש - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. עיגול - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. מוט ימני - + Small Motor מנוע קטן - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Pressure Modifier - + Analog אנלוגי @@ -1767,77 +2009,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow - Yellow - - - - - - - - - - - - - + צהוב + + + + + + + + + + + + + PushButton PushButton - + Start - Start + התחל - + Red - Red + אדום - + Green - Green + ירוק - + Orange - Orange + כתום - + Select Select - + Strum Up Strum Up - + Strum Down Strum Down - + Blue - Blue + כחול - + Whammy Bar Whammy Bar - + Tilt Tilt @@ -1863,123 +2100,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL Input Source - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - + Enable SDL Input Source Enable SDL Input Source - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense Enhanced Mode - + XInput Source - XInput Source + מקור XInput - + Enable XInput Input Source Enable XInput Input Source - + DInput Source - DInput Source + מקור DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. + מקור DInput מספק תמיכה לבקרים מדור קודם שאינם תומכים ב-XInput. גישה לבקרים אלה דרך SDL במקום מומלצת, אך ניתן להשתמש ב-DirectInput אם הם אינם תואמים ל-SDL. - + Enable DInput Input Source Enable DInput Input Source - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings הגדרות פרופיל - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - + Use Per-Profile Hotkeys השתמש בקיצורי מקלדת פר פרופיל - - + + Controller LED Settings הגדרות נורת השלט - + Enable SDL Raw Input Enable SDL Raw Input - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - + Controller Multitap Controller Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - + Multitap on Console Port 1 Multitap on Console Port 1 - + Multitap on Console Port 2 Multitap on Console Port 2 - + Mouse/Pointer Source Mouse/Pointer Source - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 מאפשר לך להשתמש בעכבר בשביל לדמות תזוזה עם בקר אנלוגי. - + Settings... הגדרות... - + Enable Mouse Mapping הפעל מיפוי עכבר - + Detected Devices מכשירים גלויים @@ -1994,92 +2241,92 @@ Login token generated on %2. SDL-0 LED - SDL-0 LED + SDL-0 LED SDL-1 LED - SDL-1 LED + SDL-1 LED SDL-2 LED - SDL-2 LED + SDL-2 LED SDL-3 LED - SDL-3 LED + SDL-3 LED ControllerMacroEditWidget - + Binds/Buttons Binds/Buttons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - + Pressure - Pressure + לחץ - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - - + + 100% - 100% + 100% - + Trigger - Trigger + הדק - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: - Deadzone: + שטח מת: - + Frequency Frequency - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Set... Not Configured - Not Configured + לא מוגדר %1% - %1% + %1% @@ -2126,12 +2373,12 @@ Not Configured/Buttons configured Mouse Mapping Settings - Mouse Mapping Settings + הגדרות מיפוי עכבר Y Speed - Y Speed + מהירות Y @@ -2140,12 +2387,12 @@ Not Configured/Buttons configured 10 - 10 + 10 X Speed - X Speed + מהירות X @@ -2160,55 +2407,55 @@ Not Configured/Buttons configured X Dead Zone - X Dead Zone + שטח מת X Y Dead Zone - Y Dead Zone + שטח מת Y - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller Settings - + Editing Profile: Editing Profile: - + New Profile New Profile - + Load Profile Load Profile - + Delete Profile Delete Profile - - + + Restore Defaults Restore Defaults - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2466,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Error - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2507,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2521,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2539,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2553,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2562,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2344,12 +2591,12 @@ You cannot undo this action. Download Covers - Download Covers + הורד עטיפות PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. + PCSX2 יכול להוריד באופן אוטומטי עטיפות למשחקים שאין להם כרגע ערכת עטיפות. איננו מספקים תמונות עטיפה, המשתמש חייב לספק מקור משלו לתמונות. @@ -2369,28 +2616,28 @@ You cannot undo this action. Waiting to start... - Waiting to start... + מחכה להתחיל... Start - Start + התחל Close - Close + סגור Download complete. - Download complete. + ההורדה הושלמה. Stop - Stop + עצור @@ -2403,209 +2650,247 @@ You cannot undo this action. Functions - Functions + פונקציות - - Refresh - Refresh + + Module + Module - + + Version + Version + + + + Count + Count + + + + Refresh + רענן + + + Filter Filter - + Memory Search Memory Search - + End End - + Value - Value + ערך - + Start - Start + התחל - + Type - Type + סוג - + 1 Byte (8 bits) - 1 Byte (8 bits) + 1 בַּיְט (8 סיביות) - + 2 Bytes (16 bits) - 2 Bytes (16 bits) + 2 בַּיְט (16 סיביות) - + 4 Bytes (32 bits) - 4 Bytes (32 bits) + 4 בַּיְט (32 סיביות) - + 8 Bytes (64 bits) - 8 Bytes (64 bits) + 8 בַּיְט (64 סיביות) - + Float - Float + נקודה צפה - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search - Search + חיפוש - + Memory - Memory + זיכרון - + Breakpoints - Breakpoints + נקודות עצירה - + Threads - Threads + תהליכונים - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New - New + חדש - + Edit - Edit + עריכה - - - + + + Copy - Copy + העתק - + Delete - Delete + למחוק + + + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV - + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name - Copy Function Name + העתק את שם הפונקציה - + + Copy Function Address - Copy Function Address + העתק את כתובת הפונקציה - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address - Invalid start address + כתובת התחלה לא חוקית - + Invalid end address - Invalid end address + כתובת סיום לא חוקית - + Start address can't be equal to or greater than the end address - Start address can't be equal to or greater than the end address + כתובת ההתחלה אינה יכולה להיות שווה או גדולה יותר מכתובת הסיום - + Invalid search value - Invalid search value + ערך חיפוש לא חוקי - + Value is larger than type - Value is larger than type + הערך גדול מהסוג @@ -2618,200 +2903,195 @@ You cannot undo this action. Select Hosts - Select Hosts + בחר מארחים OK - OK + אישור Cancel - Cancel + ביטול Selected - Selected + נבחר Name - Name + שם Url - Url + כתובת Url Address - Address + כתובת Enabled - Enabled + מופעל DEV9SettingsWidget - + Ethernet - Ethernet + Ethernet - + Ethernet Device: - Ethernet Device: + מכשיר Ethernet: - + Ethernet Device Type: - Ethernet Device Type: + סוג התקן Ethernet: - + Intercept DHCP Intercept DHCP Enabled - Enabled + מופעל - + Enabled InterceptDHCP - Enabled + מופעל - + Subnet Mask: - Subnet Mask: + מסכת רשת משנה: - + Gateway Address: Gateway Address: - - + + Auto - Auto + אוטומטי - + Intercept DHCP: Intercept DHCP: - + PS2 Address: - PS2 Address: + כתובת PS2: - + DNS1 Address: - DNS1 Address: + כתובת DNS1: - + DNS2 Address: - DNS2 Address: + כתובת DNS2: - + Internal DNS - Internal DNS + DNS פנימי - + Add - Add + הוסף - + Delete - Delete + למחוק - + Export - Export + ייצא - + Import - Import + יבוא - + Per game - Per game + לכל משחק - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 + ניתן לבחור DNS פנימי באמצעות התפריטים הנפתחים DNS1/2, או על ידי הגדרתם ל-192.0.2.1 - + Enabled InternalDNSTable - Enabled + מופעל - + Hard Disk Drive - Hard Disk Drive + כונן קשיח - + HDD File: HDD File: - + 40 - 40 + 40 - + 120 - 120 + 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD - Enabled + מופעל - + Browse - Browse + עיין - + Create Image - Create Image - - - - - + צור תמונה @@ -2836,107 +3116,107 @@ You cannot undo this action. Manual - Manual + ידני Internal - Internal + פנימי - + Use Global Setting [%1] Use Global Setting [%1] Name - Name + שם Url - Url + כתובת Url Address - Address + כתובת - - + + Hosts File Hosts File - - + + ini (*.ini) - ini (*.ini) + ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully - Exported Successfully + ייוצא בהצלחה - + Failed to open file - Failed to open file + פתיחת קובץ נכשלה - + No Hosts in file No Hosts in file - + Imported Successfully - Imported Successfully + יובא בהצלחה - - + + Per Game Host list Per Game Host list - + Copy global settings? - Copy global settings? + להעתיק הגדרות גלובליות? - + Delete per game host list? Delete per game host list? - + HDD Image File - HDD Image File + קובץ תמונה של דיסק קשיח - + HDD (*.raw) - HDD (*.raw) + HDD (*.raw) - + Overwrite File? - Overwrite File? + לדרוס את הקובץ? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3225,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2968,71 +3248,71 @@ Do you want to overwrite? DebugSettingsWidget - + GS - GS + GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame - Save Frame + שמור פריים - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... - Browse... + עיין... - - + + Open... - Open... + פתח... @@ -3040,32 +3320,56 @@ Do you want to overwrite? PCSX2 Debugger - PCSX2 Debugger + PCSX2 Debugger - - - + + Run - Run + הרץ - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Pause @@ -3078,411 +3382,430 @@ Do you want to overwrite? Disassembly - + Copy Address - Copy Address + העתק כתובת - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor - Jump to Cursor + קפוץ לסמן - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address - Go to Address + עבור לכתובת - + Go to in Memory View Go to in Memory View - - + + Add Function - Add Function + הוסף פונקציה - - + + Rename Function - Rename Function + שנה שם פונקציה - + Remove Function - Remove Function + הסר פונקציה - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address - Go to address + עבור לכתובת - + Go to address error Go to address error - + Invalid address - Invalid address + כתובת לא חוקית - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. - A function entry point already exists here. Consider renaming instead. + נקודת כניסה לפונקציה כבר קיימת כאן. שקול לשנות את השם במקום זאת. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name - Function name + שם הפונקציה - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. - Function name cannot be nothing. + שם הפונקציה לא יכול להיות כלום. - + No function / symbol is currently selected. - No function / symbol is currently selected. + לא נבחר כרגע פונקציה/סמל. + + + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function - + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS - %1 NOT VALID ADDRESS + %1 כתובת לא חוקית EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... - Add Game Directory... + הוסף ספריית משחקים... - + Scan For New Games - Scan For New Games + סרוק למשחקים חדשים EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 - %1x%2 + %1x%2 - + Game: %1 FPS - Game: %1 FPS + משחק: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + משחק: %1 (%2) - - - %n points - - %n points - %n points - %n points - %n points - - - + Rich presence inactive or unsupported. - Rich presence inactive or unsupported. + נוכחות עשירה לא פעילה או לא נתמכת. - + Game not loaded or no RetroAchievements available. - Game not loaded or no RetroAchievements available. + המשחק לא נטען או שאין RetroAchievements זמינים. EmulationSettingsWidget - + Speed Control - Speed Control + בקרת מהירות - + Normal Speed: - Normal Speed: + מהירות רגילה: - + Enable Speed Limiter - Enable Speed Limiter + הפעל את מגביל המהירות - + System Settings - System Settings + הגדרות מערכת - + Enable Instant VU1 - Enable Instant VU1 + אפשר Instant VU1 - + Enable Cheats - Enable Cheats + אפשר צ'יטים - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled - Disabled + מושבת - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: - EE Cycle Rate: + קצב מחזור EE: - + 50% (Underclock) - 50% (Underclock) + 50% (Underclock) - + 60% (Underclock) - 60% (Underclock) + 60% (Underclock) - + 75% (Underclock) - 75% (Underclock) + 75% (Underclock) - + 100% (Normal Speed) - 100% (Normal Speed) + 100% (Normal Speed) - + 130% (Overclock) - 130% (Overclock) + 130% (Overclock) - + 180% (Overclock) - 180% (Overclock) + 180% (Overclock) - + 300% (Overclock) - 300% (Overclock) + 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3495,7 +3818,7 @@ Achievements: %5 (%6) Normal Speed - Normal Speed + מהירות רגילה @@ -3506,29 +3829,30 @@ Achievements: %5 (%6) User Preference - User Preference + העדפות משתמש Speed Limiter - Speed Limiter + מגביל מהירות Checked - Checked + נבדק Limits the emulation to the appropriate framerate for the currently running game. - Limits the emulation to the appropriate framerate for the currently running game. + מגביל את האמולציה לקצב הפריימים המתאים למשחק הפועל כעת. Higher values may increase internal framerate in games, but will increase CPU requirements substantially. Lower values will reduce the CPU load allowing lightweight games to run full speed on weaker CPUs. - Higher values may increase internal framerate in games, but will increase CPU requirements substantially. Lower values will reduce the CPU load allowing lightweight games to run full speed on weaker CPUs. + ערכים גבוהים יותר עשויים להגביר את קצב הפריימים הפנימי במשחקים, אך יגדילו את דרישות המעבד באופן משמעותי. +ערכים נמוכים יותר יפחיתו את עומס המעבד ויאפשרו למשחקים קלים לפעול במלוא המהירות במעבדים חלשים יותר. @@ -3553,22 +3877,27 @@ Achievements: %5 (%6) Unchecked - Unchecked + לא נבדק Fast disc access, less loading times. Check HDLoader compatibility lists for known games that have issues with this. - Fast disc access, less loading times. Check HDLoader compatibility lists for known games that have issues with this. + גישה מהירה לדיסק, פחות זמני טעינה. בדוק את רשימות התאימות של HDLoader עבור משחקים ידועים שיש להם בעיות עם זה. Automatically loads and applies cheats on game start. - Automatically loads and applies cheats on game start. + טוען אוטומטית ומחיל צ'יטים עם תחילת המשחק. Allows games and homebrew to access files / folders directly on the host computer. - Allows games and homebrew to access files / folders directly on the host computer. + מאפשר למשחקים ול-homebrew לגשת לקבצים/תיקיות ישירות במחשב המארח. + + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. @@ -3576,6 +3905,11 @@ Achievements: %5 (%6) The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3595,7 +3929,7 @@ Achievements: %5 (%6) EE Cycle Rate - EE Cycle Rate + קצב מחזור EE @@ -3606,7 +3940,7 @@ Achievements: %5 (%6) Sets the priority for specific threads in a specific order ignoring the system scheduler. May help CPUs with big (P) and little (E) cores (e.g. Intel 12th or newer generation CPUs from Intel or other vendors such as AMD). P-Core = Performance Core, E-Core = Efficiency Core. See if Intel has official translations for these terms. - Sets the priority for specific threads in a specific order ignoring the system scheduler. May help CPUs with big (P) and little (E) cores (e.g. Intel 12th or newer generation CPUs from Intel or other vendors such as AMD). + מגדיר את העדיפות עבור תהליכונים ספציפיים בסדר מסוים תוך התעלמות מתזמן המערכת. עשוי לעזור למעבדים עם ליבות גדולות (P) וקטנות (E) (למשל, מעבדי אינטל מהדור ה-12 או חדש יותר של אינטל או ספקים אחרים כגון AMD). @@ -3616,7 +3950,7 @@ Achievements: %5 (%6) Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + בדרך כלל האצה במעבדים עם 4 ליבות או יותר. בטוח עבור רוב המשחקים, אבל כמה מהם אינם תואמים ועשויים להיתקע. @@ -3639,125 +3973,120 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] - Use Global Setting [%1%] + השתמש בהגדרה גלובלית [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. - Unlimited + ללא הגבלה - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. - Custom + מותאם אישית - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed - Custom Speed + מהירות מותאמת אישית - + Enter Custom Speed - Enter Custom Speed + הזן מהירות מותאמת אישית FolderSettingsWidget - + Cache Directory - Cache Directory + ספריית זיכרון מטמון - - - - - + + + + + Browse... - Browse... + עיין... - - - - - + + + + + Open... - Open... + פתח... - - - - - + + + + + Reset - Reset + איפוס - + Used for storing shaders, game list, and achievement data. - Used for storing shaders, game list, and achievement data. + משמש לאחסון הצללות, רשימת משחקים ונתוני הישגים. - + Cheats Directory - Cheats Directory + ספריית צ'יטים - + Used for storing .pnach files containing game cheats. - Used for storing .pnach files containing game cheats. + משמש לאחסון קבצי .pnach המכילים צ'יטים במשחק. - + Covers Directory - Covers Directory + ספריית עטיפות - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3765,2082 +4094,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting - Use Global Setting + השתמש בהגדרה גלובלית - + Automatic binding failed, no devices are available. - Automatic binding failed, no devices are available. + מיפוי אוטומטי נכשל, אין מכשירים זמינים. - + Game title copied to clipboard. - Game title copied to clipboard. + כותרת המשחק הועתקה ללוח. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. - Game type copied to clipboard. + סוג המשחק הועתק ללוח. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. - Game path copied to clipboard. + נתיב המשחק הועתק ללוח. - + Per-game controller configuration initialized with global settings. - Per-game controller configuration initialized with global settings. + תצורת בקר לכל משחק אותחלה עם הגדרות גלובליות. - + Controller settings reset to default. - Controller settings reset to default. + הגדרות הבקר אופסו לברירת המחדל. - + No input profiles available. - No input profiles available. + אין פרופילי קלט זמינים. - + Create New... - Create New... + צור חדש... - + Enter the name of the input profile you wish to create. - Enter the name of the input profile you wish to create. + הזן את השם של פרופיל הקלט שברצונך ליצור. - + Are you sure you want to restore the default settings? Any preferences will be lost. - Are you sure you want to restore the default settings? Any preferences will be lost. + האם אתה בטוח שברצונך לשחזר את הגדרות ברירת המחדל? כל ההעדפות יאבדו. - + Settings reset to defaults. - Settings reset to defaults. - - - - Quick Save Slot - Quick Save Slot + ההגדרות אופסו לברירות המחדל. - + No save present in this slot. - No save present in this slot. + אין שמירה נוכחת בחריץ זה. - + No save states found. - No save states found. + לא נמצאו מצבי שמירה. - + Failed to delete save state. - Failed to delete save state. + מחיקת מצב השמירה נכשלה. - + Failed to copy text to clipboard. - Failed to copy text to clipboard. + ההעתקה של הטקסט ללוח נכשלה. - + This game has no achievements. - This game has no achievements. + למשחק הזה אין הישגים. - + This game has no leaderboards. - This game has no leaderboards. + למשחק הזה אין לוחות הישגים. - + Reset System - Reset System + אתחל מערכת - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown - Unknown + לא ידוע - + OK OK - + Select Device - Select Device + בחירת התקן - + Details - Details + פרטים - + Options - Options + אפשרויות - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour - Behaviour + התנהגות - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - Hides the mouse pointer/cursor when the emulator is in fullscreen mode. + מסתיר את מצביע/סמן העכבר כאשר האמולטור נמצא במצב מסך מלא. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. + מציג הודעות על המסך כאשר מתרחשים אירועים כגון מצבי שמירה שנוצרים/נטענים, צילומי מסך מבוצעים וכו'. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - Shows the current emulation speed of the system in the top-right corner of the display as a percentage. + מציג את מהירות האמולציה הנוכחית של המערכת בפינה הימנית העליונה של התצוגה באחוזים. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic - Automatic + אוטומטי - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display - On-Screen Display + תצוגה על המסך + + + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. - + BIOS Configuration - BIOS Configuration + תצורת BIOS - + BIOS Selection - BIOS Selection + בחירת BIOS - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. - Skips the intro screen, and bypasses region checks. + מדלג על מסך הפתיחה ועוקף את בדיקות האזור. - + Speed Control - Speed Control + בקרת מהירות - + Normal Speed - Normal Speed + מהירות רגילה - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter - Enable Speed Limiter + הפעל את מגביל המהירות - + When disabled, the game will run as fast as possible. - When disabled, the game will run as fast as possible. + כאשר מושבת, המשחק יפעל מהר ככל האפשר. - + System Settings - System Settings + הגדרות מערכת - + EE Cycle Rate - EE Cycle Rate + קצב מחזור EE - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats - Enable Cheats + אפשר צ'יטים - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display - Display + תצוגה - + Aspect Ratio - Aspect Ratio + יחס גובה-רוחב - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing - Deinterlacing + ביטול שזירה (Deinterlacing) - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) - Edge AA (AA1) + קצה AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes - Hardware Fixes + תיקוני חומרה - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures - Load Textures + טען טקסטורות - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders - Folders + תיקיות - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA - FXAA + FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness - CAS Sharpness + חדות CAS - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters - Filters + מסננים - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings - Output Settings + הגדרות פלט - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration - Configuration + תצורה - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources - Input Sources + מקורות קלט - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor - I/O Processor + מעבד I/O - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings - Settings + הגדרות - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + קוואדראפוני - - VU Add Hack - VU Add Hack + + Load State + Load State + + + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Full VU0 Synchronization - Full VU0 Synchronization + + Disable Depth Emulation + Disable Depth Emulation - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable Render Fixes + Disable Render Fixes - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Preload Frame Data + Preload Frame Data - - VU Overflow Hack - VU Overflow Hack + + Texture Inside RT + Texture Inside RT - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - VU XGkick Sync - VU XGkick Sync + + Half Pixel Offset + Half Pixel Offset - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Texture Offset X + Texture Offset X - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset Y + Texture Offset Y - - Quadraphonic - Quadraphonic + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. - - Load State - Load State + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. - + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5849,2223 +6198,2124 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: - Compatibility: + תאימות: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings - List Settings + הגדרות רשימה - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers - Download Covers - - - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - - About PCSX2 - About PCSX2 - - - - PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - - - - PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name + הורד עטיפות - - Time - Time + + About PCSX2 + אודות PCSX2 - - Score - Score + + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... + + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account - Account + חשבון - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game - Current Game - - - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: + משחק נוכחי - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} - Console Port {} + יציאת בקר {} - + {} (Current) - {} (Current) + {} (נוכחי) - + {} (Folder) - {} (Folder) + {} (תיקייה) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. - {} deleted. + {} נמחק. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} - CRC: {:08X} + CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary - Summary + סיכום - + Interface Settings Interface Settings - + BIOS Settings - BIOS Settings + הגדרות BIOS - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings - Audio Settings + הגדרות שמע - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings - Folder Settings + הגדרות תיקייה - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed - 50% Speed + 50% מהירות - + 60% Speed - 60% Speed + 60% מהירות - + 75% Speed - 75% Speed + 75% מהירות - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed - 130% Speed + 130% מהירות - + 180% Speed - 180% Speed + 180% מהירות - + 300% Speed - 300% Speed + 300% מהירות - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None - None + ללא - + Extra + Preserve Sign Extra + Preserve Sign - + Full - Full + מלא - + Extra - Extra + תוספות - + Automatic (Default) Automatic (Default) - + Direct3D 11 - Direct3D 11 + Direct3D 11 - + Direct3D 12 - Direct3D 12 + Direct3D 12 - + OpenGL - OpenGL + OpenGL - + Vulkan - Vulkan + Vulkan - + Metal Metal - + Software Software - + Null - Null + ריק - + Off - Off + כבוי - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) - Native (PS2) + טבעי (PS2) - + 1.25x Native - 1.25x Native + 1.25x טבעי - + 1.5x Native 1.5x Native - + 1.75x Native - 1.75x Native + 1.75x טבעי - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native - 2.25x Native + 2.25x טבעי - + 2.5x Native 2.5x Native - + 2.75x Native - 2.75x Native + 2.75x טבעי - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) - Bilinear (PS2) + Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) - Trilinear (PS2) + Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High - High + גבוה - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) - Off (Default) + כבוי (ברירת מחדל) - + 2x - 2x + 2x - + 4x - 4x + 4x - + 8x - 8x + 8x - + 16x - 16x + 16x - + Partial - Partial + חלקי - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode - + + Spectator Mode + מצב צופה + + + PNG - PNG + PNG - + JPEG - JPEG + JPEG - + 0 (Disabled) - 0 (Disabled) + 0 (מושבת) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half - Half + חצי - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS - 4xRGSS + 4xRGSS - + NxAGSS - NxAGSS + NxAGSS - + Uncompressed - Uncompressed + לא דחוס - + LZMA (xz) - LZMA (xz) + LZMA (xz) - + Zstandard (zst) - Zstandard (zst) + Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 - Surround 5.1 + 5.1 צליל היקפי (סראונד) - + Surround 7.1 - Surround 7.1 + 7.1 צליל היקפי (סראונד) - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 - XAudio2 + XAudio2 - + PS2 (8MB) - PS2 (8MB) + PS2 (8MB) - + PS2 (16MB) - PS2 (16MB) + PS2 (16MB) - + PS2 (32MB) - PS2 (32MB) + PS2 (32MB) - + PS2 (64MB) - PS2 (64MB) + PS2 (64MB) - + PS1 - PS1 + PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB - 16 MB + 16 MB - + 32 MB - 32 MB + 32 MB - + 64 MB - 64 MB + 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] - 128 KB [PS1] + 128 KB [PS1] + + + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) - + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type - Type + סוג - + Serial Serial - + Title - Title + כותרת - + File Title - File Title + כותרת הקובץ - + CRC - CRC + CRC - + Time Played Time Played - + Last Played Last Played - + Size - Size + גודל - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region - Region + אזור - + Compatibility Rating Compatibility Rating - + Path - Path + נתיב - + Disc Path - Disc Path + נתיב דיסק - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings - Copy Settings + העתק הגדרות - + Clear Settings - Clear Settings + נקה הגדרות - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu - Pause On Menu + השהה בתפריט - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme - Use Light Theme + השתמש בערכת נושא בהירה - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages - Show Messages + הצג הודעות - + Show Speed - Show Speed + הצג מהירות - + Show FPS - Show FPS + הצג FPS - + Show CPU Usage - Show CPU Usage + הצג שימוש ב-CPU - + Show GPU Usage - Show GPU Usage + הצג שימוש ב-GPU - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings - Show Settings + הצג הגדרות - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings - Reset Settings + אפס הגדרות - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume - Output Volume + עוצמת פלט - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module - Output Module + מודול פלט - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel - Cancel + ביטול - + Load Profile - Load Profile + טען פרופיל - + Save Profile - Save Profile + שמור פרופיל - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons - Buttons + מקשים - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} - USB Port {} + יציאת USB {} - + Device Type - Device Type + סוג מכשיר - + Device Subtype - Device Subtype + סוג משנה של התקן - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings - {} Settings + {} הגדרות - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game - Resume Game + המשך משחק - + Toggle Frame Limit Toggle Frame Limit - + Game Properties - Game Properties + מאפייני משחק - + Achievements - Achievements + הישגים - + Save Screenshot - Save Screenshot + שמירת צילום מסך - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game - Close Game + סגור משחק - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards - Leaderboards + לוח תוצאות - + Delete Save - Delete Save + מחיקת שמירה - + Close Menu - Close Menu - - - - Clean Boot - Clean Boot + סגור תפריט - + Delete State Delete State - + Default Boot - Default Boot + אתחול ברירת מחדל - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View - Default View + תצוגת ברירת מחדל - + Sort By - Sort By + מיין לפי - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close - Close + סגור - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects - Sound Effects - - - - Show Challenge Indicators - Show Challenge Indicators + אפקטים קוליים - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} - Username: {} + שם משתמש: {} - + Login token generated on {} Login token generated on {} - + Logout - Logout + התנתק/י - + Not Logged In - Not Logged In + לא מחובר/ת - + Login - Login - - - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} + התחבר - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + משחק: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card - Eject Card + הוצא כרטיס @@ -8076,7 +8326,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8131,12 +8381,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8151,37 +8401,37 @@ ${serial}: Serial of the game. Enable Cheats - Enable Cheats + אפשר צ'יטים Name - Name + שם Author - Author + מחבר Description - Description + תיאור Enable All - Enable All + אפשר הכל Disable All - Disable All + השבת הכל Reload Cheats - Reload Cheats + טען מחדש צ'יטים @@ -8192,7 +8442,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8203,341 +8453,509 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never - Never + לעולם לא - + Today - Today + היום - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s - {}s + {}s - + {} hours - {} hours + {} שעות - + {} minutes - {} minutes + {} דקות + + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... GameListModel - + Type - Type + סוג - + Code - Code + קוד - + Title - Title + כותרת - + File Title - File Title + כותרת הקובץ - + CRC - CRC + CRC - + Time Played Time Played - + Last Played Last Played - + Size - Size + גודל - + Region - Region + אזור - + Compatibility - Compatibility + תאימות GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... - Add... + הוסף... - - - + + + Remove - Remove + הסר - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... - File... + קובץ... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8546,12 +8964,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File - Select File + בחר קובץ - + Select Directory Select Directory @@ -8559,34 +8977,34 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types - All Types + כל הסוגים - + All Regions - All Regions + כל האזורים - + Search... - Search... + חיפוש... @@ -8601,7 +9019,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Enabled - Enabled + מופעל @@ -8610,17 +9028,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown - Unknown + לא ידוע - + No description provided. No description provided. @@ -8630,7 +9048,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. + הפעלת תיקוני משחק עלולה לגרום להתנהגות בלתי צפויה, קריסה, נעילות רכות או משחקים שמורים שבורים. השתמש בתיקונים על אחריותך בלבד, צוות PCSX2 לא יספק תמיכה למשתמשים שהפעילו תיקוני משחקים. @@ -8638,7 +9056,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8648,7 +9066,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Title: - Title: + כותרת: @@ -8657,399 +9075,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore - Restore + שחזור - Path: - Path: + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + English Title: + English Title: + + + + Path: + נתיב: + + + Serial: Serial: - + CRC: - CRC: + CRC: - + Type: - Type: + סוג: - + PS2 Disc - PS2 Disc + דיסק PS2 - + PS1 Disc - PS1 Disc + דיסק PS1 - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. - NTSC-B (Brazil) + NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. - NTSC-C (China) + NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. - NTSC-J (Japan) + NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. - NTSC-K (Korea) + NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. - NTSC-T (Taiwan) + NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. - NTSC-U (US) + NTSC-U (US) - + Other - Other + אחר - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. - PAL-F (France) + PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. - PAL-G (Germany) + PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. - PAL-GR (Greece) + PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. - PAL-I (Italy) + PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. - PAL-IN (India) + PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. - PAL-NO (Norway) + PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. - PAL-PL (Poland) + PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. - PAL-R (Russia) + PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. - PAL-S (Spain) + PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. - PAL-SW (Sweden) + PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: - Compatibility: + תאימות: - + Unknown - Unknown + לא ידוע - + Not Bootable - Not Bootable + לא ניתן לאתחול - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: - Input Profile: + פרופיל קלט: - + Shared Refers to the shared settings profile. - Shared + משותף - + Disc Path: - Disc Path: + נתיב דיסק: - + Browse... - Browse... + עיין... - + Clear - Clear + נקה - + Verify - Verify + אימות - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # - # + # - + Mode - Mode + מצב - - + + Start - Start + התחל - - + + Sectors Sectors - - + + Size - Size + גודל - - + + MD5 - MD5 + MD5 - - + + Status Status - - - - - - + + + + + + %1 - %1 + %1 - - + + <not computed> <not computed> - + Error - Error + שגיאה - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9057,77 +9486,77 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: - Aspect Ratio: + יחס גובה-רוחב: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + Off (Default) - Off (Default) + כבוי (ברירת מחדל) - - - - - - + + + + + + @@ -9138,528 +9567,528 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- Percentage sign that will appear next to a number. Add a space or whatever is needed before depending on your language. - % + % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. - Left: + שמאל: - - - - + + + + px - px + px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. - Right: + ימין: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync - VSync + VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S - Ctrl+S + Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG - PNG + PNG - + JPEG - JPEG + JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off - Off + כבוי - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) - Bilinear (PS2) + Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) - Trilinear (PS2) + Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High - High + גבוה - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial - Partial + חלקי - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes - Hardware Fixes + תיקוני חומרה - + Force Disabled - Force Disabled + כפה מושבת - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) 0 (Disabled) - 0 (Disabled) + 0 (מושבת) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9670,606 +10099,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) מיוחד (טקסטורה) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half חצי - + Full מלא - + Texture Offsets: Texture Offsets: - + X: - X: + X: - + Y: - Y: + Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: - Deinterlacing: + ביטול שזירה (Deinterlacing): - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... - Browse... + עיין... - - + + Open... - Open... + פתח... - - + + Reset - Reset + איפוס - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options - Options + אפשרויות - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures - Load Textures + טען טקסטורות - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: - Sharpness: + חדות: - + FXAA - FXAA + FXAA - + Filters - Filters + מסננים - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: - Brightness: + בהירות: - + Contrast: - Contrast: + ניגודיות: - Saturation - Saturation + רוויה - + OSD - OSD + OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage - Show GPU Usage + הצג שימוש ב-GPU - + Show Settings - Show Settings + הצג הגדרות - + Show FPS - Show FPS + הצג FPS + + + + + Disable Dual-Source Blending + Disable Dual-Source Blending - + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage - Show CPU Usage + הצג שימוש ב-CPU - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording - Recording + מקליט - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x - x + x - + Auto - Auto + אוטומטי - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed - Uncompressed + לא דחוס - + LZMA (xz) - LZMA (xz) + LZMA (xz) - + Zstandard (zst) - Zstandard (zst) + Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10279,69 +10718,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. - kbps + kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed - Allowed + מורשה - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10350,25 +10783,25 @@ Swap chain: see Microsoft's Terminology Portal. Direct3D 11 Graphics backend/engine type. Leave as-is. - Direct3D 11 + Direct3D 11 Direct3D 12 Graphics backend/engine type. Leave as-is. - Direct3D 12 + Direct3D 12 OpenGL Graphics backend/engine type. Leave as-is. - OpenGL + OpenGL Vulkan Graphics backend/engine type. Leave as-is. - Vulkan + Vulkan @@ -10380,38 +10813,38 @@ Swap chain: see Microsoft's Terminology Portal. Software Graphics backend/engine type (refers to emulating the GS in software, on the CPU). Translate accordingly. - Software + תוכנה Null Null here means that this is a graphics backend that will show nothing. - Null + ריק 2x - 2x + 2x 4x - 4x + 4x 8x - 8x + 8x 16x - 16x + 16x - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10463,8 +10896,9 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked - Unchecked + לא נבדק @@ -10522,11 +10956,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10555,7 +10999,7 @@ Swap chain: see Microsoft's Terminology Portal. Disabled - Disabled + מושבת @@ -10578,6 +11022,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10593,11 +11092,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10635,7 +11129,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10648,7 +11142,7 @@ Swap chain: see Microsoft's Terminology Portal. Aspect Ratio - Aspect Ratio + יחס גובה-רוחב @@ -10663,7 +11157,7 @@ Swap chain: see Microsoft's Terminology Portal. Deinterlacing - Deinterlacing + ביטול שזירה (Deinterlacing) @@ -10694,7 +11188,7 @@ Swap chain: see Microsoft's Terminology Portal. 50% - 50% + 50% @@ -10705,7 +11199,7 @@ Swap chain: see Microsoft's Terminology Portal. 100% - 100% + 100% @@ -10720,12 +11214,12 @@ Swap chain: see Microsoft's Terminology Portal. Fullscreen Mode - Fullscreen Mode + מצב מסך מלא - - + + Borderless Fullscreen Borderless Fullscreen @@ -10737,7 +11231,7 @@ Swap chain: see Microsoft's Terminology Portal. Left - Left + שמאל @@ -10745,7 +11239,7 @@ Swap chain: see Microsoft's Terminology Portal. 0px - 0px + 0px @@ -10765,7 +11259,7 @@ Swap chain: see Microsoft's Terminology Portal. Right - Right + ימין @@ -10867,11 +11361,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10909,7 +11398,7 @@ Swap chain: see Microsoft's Terminology Portal. 0 - 0 + 0 @@ -10922,11 +11411,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -10999,7 +11483,7 @@ Swap chain: see Microsoft's Terminology Portal. Sharpness - Sharpness + חדות @@ -11014,19 +11498,19 @@ Swap chain: see Microsoft's Terminology Portal. Brightness - Brightness + בהירות 50 - 50 + 50 Contrast - Contrast + ניגודיות @@ -11044,7 +11528,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11084,6 +11568,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11097,7 +11586,7 @@ Swap chain: see Microsoft's Terminology Portal. Leave It Blank - Leave It Blank + השאר את זה ריק @@ -11137,435 +11626,445 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate - Accurate + מדויק - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. - Default + ברירת מחדל - - + + (Default) - (Default) + (ברירת מחדל) Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot - Save Screenshot + שמור צילום מסך - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted - Volume: Muted + עוצמת הקול: מושתק - + Volume: {}% - Volume: {}% + עוצמת שמע: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System - System + מערכת - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume - Increase Volume + הגבר את עוצמת הקול - + Decrease Volume - Decrease Volume + הנמך את עוצמת הקול - + Toggle Mute - Toggle Mute + הפעל/כבה השתקה - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11585,18 +12084,18 @@ Swap chain: see Microsoft's Terminology Portal. Sensitivity: - Sensitivity: + רגישות: 100% - 100% + 100% Deadzone: - Deadzone: + שטח מת: @@ -11606,12 +12105,12 @@ Swap chain: see Microsoft's Terminology Portal. Remove Binding - Remove Binding + הסר מיפוי Clear Bindings - Clear Bindings + נקה מיפויים @@ -11621,7 +12120,7 @@ Swap chain: see Microsoft's Terminology Portal. Close - Close + סגור @@ -11633,7 +12132,7 @@ Swap chain: see Microsoft's Terminology Portal. %1% - %1% + %1% @@ -11672,58 +12171,148 @@ Right click to clear binding - - - Push Button/Axis... [%1] - Push Button/Axis... [%1] + + + Push Button/Axis... [%1] + Push Button/Axis... [%1] + + + + InputRecordingViewer + + + Input Recording Viewer + Input Recording Viewer + + + + File + קובץ + + + + Edit + עריכה + + + + View + View + + + + Open + פתח + + + + Close + סגור + + + + %1 %2 + %1 %2 + + + + %1 + %1 + + + + %1 [%2] + %1 [%2] + + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 - - - InputRecordingViewer - - Input Recording Viewer - Input Recording Viewer + + R2 + R2 - - File - File + + D-Pad Down + D-Pad Down - - Edit - Edit + + D-Pad Right️ + D-Pad Right️ - - View - View + + D-Pad Up️ + D-Pad Up️ - - Open - Open + + D-Pad Left️ + D-Pad Left️ - - Close - Close + + L3 + L3 - - %1 %2 - %1 %2 + + R3 + R3 - - %1 - %1 + + Select + Select - - %1 [%2] - %1 [%2] + + Start + Start @@ -11736,7 +12325,7 @@ Right click to clear binding Error - Error + שגיאה @@ -11752,137 +12341,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour - Behaviour + התנהגות - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display - Game Display + תצוגת משחק - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences - Preferences + העדפות - + Language: - Language: + שפה: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -11982,7 +12571,7 @@ Right click to clear binding %1 (%2) Variable %1 shows the version number and variable %2 shows a timestamp. - %1 (%2) + %1 (%2) @@ -12025,7 +12614,7 @@ Right click to clear binding Unchecked - Unchecked + לא נבדק @@ -12075,7 +12664,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12085,12 +12674,12 @@ Right click to clear binding Services - Services + שירותים Hide %1 - Hide %1 + הסתר את %1 @@ -12100,12 +12689,12 @@ Right click to clear binding Show All - Show All + הצג הכול Preferences... - Preferences... + העדפות... @@ -12115,7 +12704,7 @@ Right click to clear binding About %1 - About %1 + אודות %1 @@ -12123,7 +12712,7 @@ Right click to clear binding PCSX2 - PCSX2 + PCSX2 @@ -12132,14 +12721,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12156,7 +12745,7 @@ Right click to clear binding &Help - &Help + &עזרה @@ -12176,7 +12765,7 @@ Right click to clear binding &Window Size - &Window Size + &גודל חלון @@ -12191,7 +12780,7 @@ Right click to clear binding Toolbar - Toolbar + סרגל כלים @@ -12246,7 +12835,7 @@ Right click to clear binding &BIOS - &BIOS + &BIOS @@ -12256,12 +12845,12 @@ Right click to clear binding &Controllers - &Controllers + &בקרי משחק &Hotkeys - &Hotkeys + &מקשי קיצור @@ -12281,7 +12870,7 @@ Right click to clear binding Fullscreen - Fullscreen + מסך מלא @@ -12316,19 +12905,19 @@ Right click to clear binding &About PCSX2... - &About PCSX2... + &אודות PCSX2... Fullscreen In Toolbar - Fullscreen + מסך מלא Change Disc... In Toolbar - Change Disc... + שנה דיסק... @@ -12343,7 +12932,7 @@ Right click to clear binding Interface - Interface + ממשק @@ -12358,7 +12947,7 @@ Right click to clear binding From File... - From File... + מקובץ...‏ @@ -12407,13 +12996,13 @@ Right click to clear binding Shut Down In Toolbar - Shut Down + כיבוי Reset In Toolbar - Reset + איפוס @@ -12437,19 +13026,19 @@ Right click to clear binding Controllers In Toolbar - Controllers + בקרי משחק Settings In Toolbar - Settings + הגדרות Screenshot In Toolbar - Screenshot + צילום מסך @@ -12459,22 +13048,22 @@ Right click to clear binding &Network && HDD - &Network && HDD + &רשת && דיסק קשיח &Folders - &Folders + &תיקיות &Toolbar - &Toolbar + &סרגל כלים Lock Toolbar - Lock Toolbar + נעל סרגל כלים @@ -12520,7 +13109,7 @@ Right click to clear binding Ctrl++ - Ctrl++ + Ctrl++‎ @@ -12530,7 +13119,7 @@ Right click to clear binding Ctrl+- - Ctrl+- + Ctrl+- @@ -12591,7 +13180,7 @@ Right click to clear binding New This section refers to the Input Recording submenu. - New + חדש @@ -12603,13 +13192,13 @@ Right click to clear binding Stop This section refers to the Input Recording submenu. - Stop + עצור Settings This section refers to the Input Recording submenu. - Settings + הגדרות @@ -12644,16 +13233,16 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar - Big Picture + תמונה גדולה @@ -12662,7 +13251,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12673,14 +13262,14 @@ Right click to clear binding - + Video Capture Video Capture Edit Cheats... - Edit Cheats... + ערוך צ'יטים... @@ -12688,201 +13277,206 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. Are you sure you want to continue? - Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. + לשינוי הגדרות מתקדמות יכולות להיות השפעות בלתי צפויות על משחקים, כולל תקלות גרפיות, נעילות ואפילו קבצי שמירה פגומים. אנו לא ממליצים לשנות הגדרות מתקדמות אלא אם כן אתה יודע מה אתה עושה, ואת ההשלכות של שינוי כל הגדרה. -The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. +צוות PCSX2 לא יספק כל תמיכה עבור תצורות שמשנות את ההגדרות הללו, אתה לבד. -Are you sure you want to continue? +האם אתה בטוח שאתה רוצה להמשיך? - + %1 Files (*.%2) - %1 Files (*.%2) + %1 קבצים (*.%2) + + + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. - + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error - Error + שגיאה - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot - Default Boot + אתחול ברירת מחדל - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12897,97 +13491,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12996,12 +13590,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13014,70 +13608,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13086,51 +13680,51 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... - Save To File... + שמירה לקובץ... - + Empty - Empty + ריק - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset - Reset + איפוס MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13184,7 +13778,7 @@ The saves will not be recoverable. Folder - Folder + תיקייה @@ -13194,7 +13788,7 @@ The saves will not be recoverable. Progress - Progress + התקדמות @@ -13211,6 +13805,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13261,11 +13856,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13301,7 +13891,7 @@ The saves will not be recoverable. 16 MB - 16 MB + 16 MB @@ -13312,12 +13902,12 @@ The saves will not be recoverable. 32 MB - 32 MB + 32 MB 64 MB - 64 MB + 64 MB @@ -13337,7 +13927,7 @@ The saves will not be recoverable. 128 KB (PS1) - 128 KB (PS1) + 128 KB (PS1) @@ -13380,114 +13970,115 @@ The saves will not be recoverable. Yes - Yes + כן No - No + לא MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: - Folder: + תיקייה: - + Browse... - Browse... + עיין... - + Open... - Open... + פתח... - + Reset - Reset + איפוס - + Name - Name + שם - + Type - Type + סוג - + Formatted Formatted - + Last Modified Last Modified - + Refresh - Refresh + רענן - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings - Settings + הגדרות - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13511,7 +14102,7 @@ The saves will not be recoverable. Port %1 - Port %1 + יציאה %1 @@ -13523,7 +14114,7 @@ The saves will not be recoverable. Error - Error + שגיאה @@ -13606,33 +14197,33 @@ This action cannot be reversed, and you will lose any saves on the card. PS2 (16MB) - PS2 (16MB) + PS2 (16MB) PS2 (32MB) - PS2 (32MB) + PS2 (32MB) PS2 (64MB) - PS2 (64MB) + PS2 (64MB) PS1 (128KB) - PS1 (128KB) + PS1 (128KB) Unknown - Unknown + לא ידוע PS2 (Folder) - PS2 (Folder) + PS2 (תיקייה) @@ -13640,13 +14231,13 @@ This action cannot be reversed, and you will lose any saves on the card. %1 [%2] - %1 [%2] + %1 [%2] %1 [Missing] Ignore Crowdin's warning for [Missing], the text should be translated. - %1 [Missing] + %1 [Missing] @@ -13657,60 +14248,60 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address - Copy Address + העתק כתובת - + Go to in disassembly Go to in disassembly - - + + Go to address - Go to address + עבור לכתובת - + Show as 1 byte - Show as 1 byte + הצג כבייט 1 - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character - Copy Character + העתק דמות - + Paste - Paste + הדבק @@ -13729,7 +14320,7 @@ This action cannot be reversed, and you will lose any saves on the card. Power On Indicates that the input recording that is about to be started will be recorded from the moment the emulation boots on/starts. - Power On + הדלקה @@ -13750,7 +14341,7 @@ This action cannot be reversed, and you will lose any saves on the card. Browse - Browse + עיין @@ -13758,22 +14349,27 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad D-Pad Up - D-Pad Up + D-Pad למעלה D-Pad Right - D-Pad Right + D-Pad ימין @@ -13788,12 +14384,12 @@ This action cannot be reversed, and you will lose any saves on the card. Triangle - Triangle + משולש Circle - Circle + עיגול @@ -13803,7 +14399,7 @@ This action cannot be reversed, and you will lose any saves on the card. Square - Square + ריבוע @@ -13815,7 +14411,7 @@ This action cannot be reversed, and you will lose any saves on the card. Start - Start + התחל @@ -13855,7 +14451,7 @@ This action cannot be reversed, and you will lose any saves on the card. Apply Pressure - Apply Pressure + הפעל לחץ @@ -13957,6 +14553,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13973,14 +14579,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14020,19 +14626,12 @@ This action cannot be reversed, and you will lose any saves on the card. Not Connected - Not Connected + לא מחובר DualShock 2 - DualShock 2 - - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. + DualShock 2 @@ -14102,42 +14701,65 @@ Leaving the original controller type connected, but this may cause issues. Guitar - Guitar + גיטרה + + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14155,13 +14777,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14177,7 +14799,7 @@ The URL was: %1 Cancel - Cancel + ביטול @@ -14185,17 +14807,17 @@ The URL was: %1 Error - Error + שגיאה Question - Question + שאלה Information - Information + מידע @@ -14203,27 +14825,27 @@ The URL was: %1 PCSX2 - PCSX2 + PCSX2 Cancel - Cancel + ביטול Error - Error + שגיאה Question - Question + שאלה Information - Information + מידע @@ -14248,7 +14870,7 @@ The URL was: %1 Copy Top Half - Copy Top Half + העתק את החצי העליון @@ -14345,7 +14967,7 @@ The URL was: %1 XAudio2 XAudio2 is an audio engine name. Leave as-is. - XAudio2 + XAudio2 @@ -14366,12 +14988,11 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - Reset - Reset + איפוס @@ -14382,7 +15003,7 @@ Otherwise delete the savestate and do a fresh boot. Confirm Folder - Confirm Folder + אשר את התיקיה @@ -14400,7 +15021,7 @@ Do you want to create this directory? Error - Error + שגיאה @@ -14416,222 +15037,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14644,12 +15286,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14662,33 +15304,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14700,7 +15324,7 @@ Do you want to continue? Language - Language + שפה @@ -14730,7 +15354,7 @@ Do you want to continue? Language: - Language: + שפה: @@ -14755,32 +15379,32 @@ Do you want to continue? Browse... - Browse... + עיין... Reset - Reset + איפוס Filename - Filename + שם הקובץ Version - Version + גרסה - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... Refresh List - Refresh List + רענן רשימה @@ -14795,13 +15419,13 @@ Do you want to continue? Add... - Add... + הוסף... Remove - Remove + הסר @@ -14872,13 +15496,13 @@ Do you want to continue? &Cancel - &Cancel + &ביטול Warning - Warning + אזהרה @@ -14897,12 +15521,12 @@ Are you sure you want to continue? &Finish - &Finish + &סיום Cancel Setup - Cancel Setup + בטל את ההגדרה @@ -14964,19 +15588,19 @@ Scanning recursively takes more time, but will identify files in subdirectories. ENTRY Warning: short space limit. Abbreviate if needed. - ENTRY + כניסה LABEL Warning: short space limit. Abbreviate if needed. - LABEL + תווית PC Warning: short space limit. Abbreviate if needed. PC = Program Counter (location where the CPU is executing). - PC + PC @@ -14988,13 +15612,13 @@ Scanning recursively takes more time, but will identify files in subdirectories. STACK POINTER Warning: short space limit. Abbreviate if needed. - STACK POINTER + מצביע מחסנית SIZE Warning: short space limit. Abbreviate if needed. - SIZE + גודל @@ -15003,31 +15627,31 @@ Scanning recursively takes more time, but will identify files in subdirectories. INVALID - INVALID + לא חוקי ID Warning: short space limit. Abbreviate if needed. - ID + מספר מזהה PC Warning: short space limit. Abbreviate if needed. PC = Program Counter (location where the CPU is executing). - PC + PC ENTRY Warning: short space limit. Abbreviate if needed. - ENTRY + כניסה PRIORITY Warning: short space limit. Abbreviate if needed. - PRIORITY + עדיפות @@ -15042,97 +15666,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. - MBOX + MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15168,12 +15792,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. HID Keyboard - HID Keyboard + מקלדת HID Keyboard - Keyboard + מקלדת @@ -15183,7 +15807,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Pointer - Pointer + מצביע @@ -15193,22 +15817,22 @@ Scanning recursively takes more time, but will identify files in subdirectories. Right Button - Right Button + כפתור ימני Middle Button - Middle Button + כפתור אמצעי Konami Keyboard - Konami Keyboard + מקלדת Konami GunCon 2 - GunCon 2 + GunCon 2 @@ -15217,7 +15841,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Up - D-Pad Up + D-Pad למעלה @@ -15244,12 +15868,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Right - D-Pad Right + D-Pad ימין Trigger - Trigger + הדק @@ -15266,20 +15890,20 @@ Scanning recursively takes more time, but will identify files in subdirectories. A - A + A B - B + B C - C + C @@ -15331,17 +15955,22 @@ Scanning recursively takes more time, but will identify files in subdirectories. Cursor Scale - Cursor Scale + גודל הסמן Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color - Cursor Color + צבע הסמן @@ -15369,6 +15998,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15377,17 +16012,23 @@ Scanning recursively takes more time, but will identify files in subdirectories. Center X - Center X + מרכז X‏ Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y - Center Y + מרכז Y‏ @@ -15397,17 +16038,23 @@ Scanning recursively takes more time, but will identify files in subdirectories. Screen Width - Screen Width + רוחב מסך Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height - Screen Height + גובה מסך @@ -15424,7 +16071,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Input Device - Input Device + מכשיר קלט @@ -15436,7 +16083,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Output Device - Output Device + מכשיר הפלט @@ -15459,6 +16106,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15482,7 +16138,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Singstar - Singstar + Singstar @@ -15553,7 +16209,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Throttle - Throttle + מַצעֶרֶת @@ -15574,42 +16230,42 @@ Scanning recursively takes more time, but will identify files in subdirectories. Square - Square + ריבוע Circle - Circle + עיגול Triangle - Triangle + משולש L1 - L1 + L1 R1 - R1 + R1 L2 - L2 + L2 R2 - R2 + R2 @@ -15630,12 +16286,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. L3 - L3 + L3 R3 - R3 + R3 @@ -15651,13 +16307,33 @@ Scanning recursively takes more time, but will identify files in subdirectories. X - X + X Y - Y + Y + + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High @@ -15669,6 +16345,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -15712,7 +16394,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. GT Force - GT Force + GT Force @@ -15722,27 +16404,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. Blue - Blue + כחול Green - Green + ירוק Red - Red + אדום Yellow - Yellow + צהוב Orange - Orange + כתום @@ -15752,102 +16434,102 @@ Scanning recursively takes more time, but will identify files in subdirectories. Player 1 Red - Player 1 Red + שחקן 1 אדום Player 1 Blue - Player 1 Blue + שחקן 1 כחול Player 1 Orange - Player 1 Orange + שחקן 1 כתום Player 1 Green - Player 1 Green + שחקן 1 ירוק Player 1 Yellow - Player 1 Yellow + שחקן 1 צהוב Player 2 Red - Player 2 Red + שחקן 2 אדום Player 2 Blue - Player 2 Blue + שחקן 2 כחול Player 2 Orange - Player 2 Orange + שחקן 2 כתום Player 2 Green - Player 2 Green + שחקן 2 ירוק Player 2 Yellow - Player 2 Yellow + שחקן 2 צהוב Player 3 Red - Player 3 Red + שחקן 3 אדום Player 3 Blue - Player 3 Blue + שחקן 3 כחול Player 3 Orange - Player 3 Orange + שחקן 3 כתום Player 3 Green - Player 3 Green + שחקן 3 ירוק Player 3 Yellow - Player 3 Yellow + שחקן 3 צהוב Player 4 Red - Player 4 Red + שחקן 4 אדום Player 4 Blue - Player 4 Blue + שחקן 4 כחול Player 4 Orange - Player 4 Orange + שחקן 4 כתום Player 4 Green - Player 4 Green + שחקן 4 ירוק Player 4 Yellow - Player 4 Yellow + שחקן 4 צהוב @@ -15857,122 +16539,122 @@ Scanning recursively takes more time, but will identify files in subdirectories. C 1 - C 1 + C 1 C# 1 - C# 1 + C# 1 D 1 - D 1 + D 1 D# 1 - D# 1 + D# 1 E 1 - E 1 + E 1 F 1 - F 1 + F 1 F# 1 - F# 1 + F# 1 G 1 - G 1 + G 1 G# 1 - G# 1 + G# 1 A 1 - A 1 + A 1 A# 1 - A# 1 + A# 1 B 1 - B 1 + B 1 C 2 - C 2 + C 2 C# 2 - C# 2 + C# 2 D 2 - D 2 + D 2 D# 2 - D# 2 + D# 2 E 2 - E 2 + E 2 F 2 - F 2 + F 2 F# 2 - F# 2 + F# 2 G 2 - G 2 + G 2 G# 2 - G# 2 + G# 2 A 2 - A 2 + A 2 A# 2 - A# 2 + A# 2 B 2 - B 2 + B 2 @@ -16012,17 +16694,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. Z - Z + Z L - L + L R - R + R @@ -16037,19 +16719,19 @@ Scanning recursively takes more time, but will identify files in subdirectories. Printer - Printer + מדפסת None - None + ללא Not Connected - Not Connected + לא מחובר @@ -16157,128 +16839,128 @@ Scanning recursively takes more time, but will identify files in subdirectories. Axes - Axes + צירים Buttons - Buttons + מקשים USBBindingWidget_DrivingForce - + Hints - Hints + רמזים - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad - D-Pad + D-Pad - + Down - Down + למטה - + Left - Left + שמאל - + Up - Up + למעלה - + Right - Right + ימין - + L1 - L1 + L1 - + L2 - L2 + L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start - Start + התחל - + Face Buttons Face Buttons - + Circle - Circle + עיגול - + Cross - Cross + איקס - + Triangle - Triangle + משולש - + Square Square - + R1 - R1 + R1 - + R2 - R2 + R2 - + Accelerator Accelerator @@ -16286,67 +16968,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints - Hints + רמזים - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X - X + X - + A - A + A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle - Right Paddle + דוושה ימנית - + Y - Y + Y - + B - B + B - + Accelerator Accelerator @@ -16354,71 +17036,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons - Buttons + מקשים - + A - A + A - + C - C + C - + Start - Start + התחל - + Select Select - + B - B + B - + D-Pad - D-Pad + D-Pad - - + + Down - Down + למטה - - + + Left - Left + שמאל - - + + Up - Up + למעלה - - + + Right - Right + ימין - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16427,29 +17109,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger - Trigger + הדק - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16457,34 +17139,34 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings - Settings + הגדרות - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping USB Port %1 - USB Port %1 + יציאת USB %1 @@ -16494,7 +17176,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Clear Bindings - Clear Bindings + נקה מיפויים @@ -16515,32 +17197,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) - PS2 BIOS ({}) + PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error - Error + שגיאה - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16557,197 +17239,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_hi-IN.ts b/pcsx2-qt/Translations/pcsx2-qt_hi-IN.ts index eba4f8e00b1d4b..3debbc558f417b 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_hi-IN.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_hi-IN.ts @@ -80,32 +80,38 @@ तैयार है - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>आपका रेट्रोअचीवमेंट्स लॉगिन टोकन अब मान्य नहीं है।</strong> उपलब्धियों को ट्रैक करने के लिए आपको अपनी साख दोबारा दर्ज करनी होगी। आपका पासवर्ड PCSX2 में सहेजा नहीं जाएगा, इसके बजाय एक एक्सेस टोकन बनाया और उपयोग किया जाएगा। - + &Login लॉग इन करें - + Logging in... लॉगिन कर रहे है... - + Login Error लॉग इन करने में त्रुटि - - Login failed. Please check your username and password, and try again. - लॉगिन विफल। अपने यूज़रनेम और पासवर्ड की जाँच करें और पुन: प्रयास करें। + + Login failed. +Error: %1 + +Please check your username and password, and try again. + लॉगिन असफल। +गलती: %1 + + कृपया अपने यूज़रनेम और पासवर्ड की जाँच करें और पुन: प्रयास करें। - + Login failed. लॉगिन असफल है @@ -113,271 +119,502 @@ AchievementSettingsWidget - - Global Settings - ग्लोबल सेटिंग - - - - + + Enable Achievements उपलब्धियाँ सक्षम करें - - - Show Challenge Indicators - चुनौती संकेतक दिखाएँ? - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - RA का रिच उपस्थिति सक्षम करें - - - - + + Enable Hardcore Mode हार्डकोर मोड सक्षम करें - - - Enable Leaderboards - लीडरबोर्ड सक्षम करें - - - + Test Unofficial Achievements अनौपचारिक अचीवमेंट्स का परीक्षण करें - - - Enable Test Mode - टेस्ट मोड सक्षम करें - - - - + + Enable Sound Effects ध्वनि प्रभाव सक्षम करें - + Notifications सूचनाएं - - - Show Notifications - सूचनाएं दिखाएं - - - - Duration - अवधि - - - - - - + + 5 seconds 5 सेकंड - + Account अकाउंट - - + + Login... लॉग इन करें... - + View Profile... प्रोफ़ाइल देखें... - + + Settings + समायोजन + + + + + Enable Spectator Mode + दर्शक मोड सक्षम करे + + + + + Enable Encore Mode + ऐणकोर मोड सक्षम करे + + + + + Show Achievement Notifications + उपलब्धियों की सूचनाएं दिखाए + + + + + Show Leaderboard Notifications + लीडर बोर्ड की सूचनाएं दिखाए + + + + + Enable In-Game Overlays + ईन-गेम ओवरलय सक्षम करे + + + + Username: +Login token generated at: + उपयोगकर्ता नाम: +लॉगिन टोकन उत्पन्न किया गया: + + + Game Info गेम की जानकारी - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 RetroAchievements को एक उपलब्धी डेटाबेस और प्रोग्रेस ट्रैकिंग के लिए इस्तमाल कर्ता है। उपलब्धियां का इस्तमाल करने के लिए कृपया एक अकाउंट बनाएं <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify"> गेम के दोरान उपलब्धियां की लिस्ट देखने के लिए हॉटकी दबायें <span style=" font-weight:600;">विराम मेन्यू खोलिये़</span> और मेन्यू में से <span style=" font-weight:600;">उपलब्धियां</span>चुनिए।</p></body></html> + - seconds - सेकंड - - - - + + - - Unchecked अनियंत्रित - - When enabled and logged in, PCSX2 will scan for achievements on game load. - इनेबल और लॉग इन होने पर PCSX2 गेम लोड पर उपलब्धियों के लिए स्कैन करेगा। - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. इनेबल होने पर, PCSX2 मान लेगा कि सभी उपलब्धियाँ लॉक हो गई हैं और सर्वर पर कोई अनलॉक सूचना नहीं भेजेगा। - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. इनेबल होने पर, PCSX2 अनौपचारिक स्टेटस मे से उपलब्धियों की सूची देगा। कृपया ध्यान रखें कि ये उपलब्धिये़ RetroAchievements के द्वारा ट्रैक नहीं की जाएंगी, तो यह हर बार खुलेंगे। - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - इनेबल होने पर, रिच उपस्थिति की जानकारी एकांत्रित की जाएगी और RetroAchievements के सर्वर को भेजी जाएगी जब सहायता हो। - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "चुनती"उपलब्धियां और लीडर बोर्ड ट्रैकिंग के लिए मोड। सेव स्टेट, चिटस और स्लोडाउन के समारोह को बंध कर देता है। - - - - + + + + Checked नियंत्रित - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - लीडर बर्ड्स को ट्रैक करके जमा करना, समर्थित गेम्स मे इनेबल कर्ता है। अगर लीडर बर्ड्स बंध हों, तो भी आप लीडर बर्ड्स और स्कोर देख पाएंगे, मगर कोई स्कोर अपलोड नहीं किया जाएगा। - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - उपलब्धियां खुलने और लीडर बर्ड्स प्रविष्टियाँ होने पर पॉप अप संदेशों को दिखाता है। - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. उपलब्धियां खुलने और लीडर बर्ड्स प्रविष्टियाँ होने पर आवाज का प्रभाव बजाता है। - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. चुनौती/दुरुस्त उपलब्धी सक्रिय होते समाए निचले-दाएं स्क्रीन के कोने पर आइकनस दिखाता है। - - - - Notification Duration - अधिसूचना का दौरान + + When enabled and logged in, PCSX2 will scan for achievements on startup. + सक्षम और लॉग इन होने पर PCSX2 गेम लोड पर उपलब्धियों के लिए स्कैन करेगा। + + + + Displays popup messages on events such as achievement unlocks and game completion. + उपलब्धियां खुलने और गेम समापन होने पर पॉप अप संदेशों को दिखाता है। - - - - The duration, in seconds, an achievement popup notification will remain on screen. - The duration, in seconds, an achievement popup notification will remain on screen. + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + लीडर बोर्ड चुनौती को शुरू, जमा करते या हारते समय पॉपअप संदेश दिखाता है। + + + + When enabled, each session will behave as if no achievements have been unlocked. + सक्षम होने पर, हर सत्र ऐसा बर्ताव करेगा जैसे कोई उपलब्धियां ना खुली हो। - + Reset System - रिसेट सिस्टम + रीसेट सिस्टम - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? + हार्डकोर मोड सिस्टम रिसेट होने से पहले सक्षम नहीं होगा, क्या आप सिस्टम को अभी रिसेट करना चाहते हैं? + + + + + %n seconds + + %n सेकंड + %n seconds + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. - Username: %1 -Login token generated on %2. + उपयोगकर्ता नाम: %1 +लॉगिन टोकन %2 पर उत्पन्न किया गया है। - + Logout लॉगआउट - + Not Logged In. लॉग इन नहीं हैं - - - %1 seconds - %1 सेकंड - Achievements - + Hardcore mode will be enabled on system reset. - Hardcore mode will be enabled on system reset. + हार्डकोर मोड सिस्टम रिसेट पर सक्षम होगा। - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. + हार्डकोर मोड के सक्रिय होने पर {0} नहीं किया जा सकता है। क्या आप हार्डकोर मोड को असक्षम करना चाहते हैं? नहीं चुन्ने पर {0} रद्द हो जाएगा। - + Hardcore mode is now enabled. हार्डकोर मोड अब सक्षम है। - + + {} (Hardcore Mode) + {} (हार्डकोर मोड) + + + + {} (Unofficial) + {} (अनौपचारिक) + + + + Mastered {} + महारती {} + + + + Leaderboard attempt started. + लीडर बोर्ड चेष्टा शुरू हो गई। + + + + Leaderboard attempt failed. + लीडर बोर्ड चेष्टा असफल रही। + + + + Your Time: {}{} + आपका समय: {}{} + + + + Your Score: {}{} + आपका अंक:{}{} + + + + Your Value: {}{} + आपका मह्त्व: {}{} + + + + (Submitting) + (जमा हो रहा है) + + + + Achievements Disconnected + उपलब्धियां कट गयी। + + + + An unlock request could not be completed. We will keep retrying to submit this request. + एक खोलने की विन्ती पूरी नहीं की जा सकी। हम इस विन्ती को भेजने की कोशिस करते करेंगे। + + + + Achievements Reconnected + उपलब्धियां जुड़ गई। + + + + All pending unlock requests have completed. + सभी लंबित खुलने वाली विन्तीयां पूरी हो चुकी है। + + + Hardcore mode is now disabled. हार्डकोर मोड अब असक्षम है। - + + Confirm Hardcore Mode + हार्डकोर मोड स्थायी करें + + + + Active Challenge Achievements + चालू चुनौती की उपलब्धियां + + + (Hardcore Mode) (हार्डकोर मोड) - - You have earned {0} of {1} achievements, and {2} of {3} points. - You have earned {0} of {1} achievements, and {2} of {3} points. + + You have unlocked all achievements and earned {} points! + आपने सारी उपलब्धियां खोल ली है और {} अंक कमाये है। - - This game has no achievements. - इस गेम मे कोई उपलब्धियां नहीं हैं। + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + आपने {0} मे से {1} उपलब्धियां खोल ली है, और {2} मे से {3} सम्भावित अंक कमाये है। + + + + {0} achievements, {1} points + {0} उपलब्धियां, {1} अंक + + + + Your Time: {0} (Best: {1}) + आपका समय: {0} (श्रेष्ट: {1}) + + + + Your Score: {0} (Best: {1}) + आपका अंक: {0} (श्रेष्ट: {1}) + + + + Your Value: {0} (Best: {1}) + आपका मह्त्व: {0} (श्रेष्ट: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +लीडर बोर्ड स्तिथि: {1} मे {2} + + + + Server error in {0}: +{1} + {0} मे सर्वर की तुष्टि: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + अंक: {0}({1} सॉफ्टकोर) +अपठित संदेश: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + आपने {1} मे से {0} उपलब्धियां खोल ली है, {3} मे से {2} सम्भावित अंक कमाये है। + + + + Unknown + अनजान + + + + Locked + अवरोधित + + + + Unlocked + खुला + + + + Unsupported + असमर्थित + + + + Unofficial + अनौपचारिक + + + + Recently Unlocked + हाल ही में खुला गया + + + + Active Challenges + चालू चुनौतियां + + + + Almost There + लगभग हो गया! + + + + {} points + {} अंक + + + + {} point + {} अंक + + + + XXX points + XXX अंक + + + + Unlocked: {} + खुल गया: {} - - Leaderboard submission is enabled. - लीडर बोर्ड जमा करना सक्षम है। + + This game has {} leaderboards. + इस गेम मे {} लीडर बोर्ड है। + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + अंक भेजना असक्षम है क्यूंकि हार्डकोर मोड बंध है। लीडर बोर्ड अब केवल पढ़ने के लिए है। + + + + Show Best + श्रेष्ट दिखाएं + + + + Show Nearby + पास के दिखाएं + + + + Rank + स्थान + + + + Name + नाम - + + Time + समय + + + + Score + अंक + + + + Value + मूल्य + + + + Date Submitted + सबमिट करने की तारीख + + + + Downloading leaderboard data, please wait... + लीडर बोर्ड डाटा डाउनलोड हो रहा है, कृपया प्रतीक्षा करे। + + + + + Loading... + लोड हो रहा है... + + + + + Leaderboard download failed + लीडर बोर्ड डाउनलोड असफल + + + + This game has no achievements. + इस गेम मे कोई उपलब्धियां नहीं हैं। + + + Failed to read executable from disc. Achievements disabled. - Failed to read executable from disc. Achievements disabled. + निष्पादन को डिस्क से पढ़ने मे असफलता। उपलब्धियां असक्रिय है। @@ -447,542 +684,542 @@ Login token generated on %2. Moderate speedup for some games, with no known side effects. - Moderate speedup for some games, with no known side effects. + कुछ गेम्स के लिए मध्यम गतिबढ़न, बगेर किसी जाने माने दूश प्रभाव के साथ। Enable Cache (Slow) - Enable Cache (Slow) + द्रुतिका सक्षम करे (धीमा) Unchecked - Unchecked + अनियंत्रित Interpreter only, provided for diagnostic. - Interpreter only, provided for diagnostic. + केवल ईनटरर्पेटर, निदान के लिए प्रदान किया गया। INTC Spin Detection INTC = Name of a PS2 register, leave as-is. "spin" = to make a cpu (or gpu) actively do nothing while you wait for something. Like spinning in a circle, you're moving but not actually going anywhere. - INTC Spin Detection + INTC स्पिन डिटेक्शन Huge speedup for some games, with almost no compatibility side effects. - Huge speedup for some games, with almost no compatibility side effects. + कुछ गेम्स के लिए विशाल गतिबढ़न, बगैर किसी सुसंगति दूश प्रभाव के साथ। Enable Fast Memory Access - Enable Fast Memory Access + तेज मेमोरी एक्सेस सक्षम करे Uses backpatching to avoid register flushing on every memory access. "Backpatching" = To edit previously generated code to change what it does (in this case, we generate direct memory accesses, then backpatch them to jump to a fancier handler function when we realize they need the fancier handler function) - Uses backpatching to avoid register flushing on every memory access. + बेकपैचिंग का उपयोग करके रजिस्टर फ्लशिंग का बचाव कर्ता है हर मेमोरी एक्सेस पर। Pause On TLB Miss - Pause On TLB Miss + TLB चुकने पर ठेरना Pauses the virtual machine when a TLB miss occurs, instead of ignoring it and continuing. Note that the VM will pause after the end of the block, not on the instruction which caused the exception. Refer to the console to see the address where the invalid access occurred. - Pauses the virtual machine when a TLB miss occurs, instead of ignoring it and continuing. Note that the VM will pause after the end of the block, not on the instruction which caused the exception. Refer to the console to see the address where the invalid access occurred. + TLB चुकने पर वर्चुअल मशीन को अनदेखा करने और जारी रखने के बजाय उसे रोक देता है। ध्यान दें कि VM ब्लॉक के अंत के बाद रुकेगा, न कि उस निर्देश पर जिसके कारण अपवाद हुआ। उस पते को देखने के लिए कंसोल का संदर्भ लें जहां अमान्य पहुंच हुई थी। VU0 Rounding Mode - VU0 Rounding Mode + VU0 राऊंडिंग मोड VU1 Rounding Mode - VU1 Rounding Mode + VU1 राऊंडिंग मोड VU0 Clamping Mode - VU0 Clamping Mode + VU0 क्लैंपिंग मोड VU1 Clamping Mode - VU1 Clamping Mode + VU1 क्लैंपिंग मोड Enable VU0 Recompiler (Micro Mode) VU0 = Vector Unit 0. One of the PS2's processors. - Enable VU0 Recompiler (Micro Mode) + VU0 रिकम्पाईलर सक्षम करे (माइक्रो मोड) Enables VU0 Recompiler. - Enables VU0 Recompiler. + VU0 रिकम्पाईलर सक्षम कर्ता है Enable VU1 Recompiler VU1 = Vector Unit 1. One of the PS2's processors. - Enable VU1 Recompiler + VU1 रिकम्पाईलर सक्षम करे Enables VU1 Recompiler. - Enables VU1 Recompiler. + VU1 रिकम्पाईलर सक्षम कर्ता है mVU Flag Hack mVU = PCSX2's recompiler for VU (Vector Unit) code (full name: microVU) - mVU Flag Hack + mVU फ्लैग हैक Good speedup and high compatibility, may cause graphical errors. - Good speedup and high compatibility, may cause graphical errors. + अच्छा गतिबढ़ण और उच्च अनुकूलता, मगर ग्राफिकल त्रुटियाँ कर सकता है। Performs just-in-time binary translation of 32-bit MIPS-I machine code to x86. - Performs just-in-time binary translation of 32-bit MIPS-I machine code to x86. + 32-बीट MIPS-IV मशीन कोड को x86 मे जस्ट-ईन-टाईम अनुवाद कर्ता है। Enable Game Fixes - Enable Game Fixes + गेम फिक्स सक्षम करें Automatically loads and applies fixes to known problematic games on game start. - Automatically loads and applies fixes to known problematic games on game start. + खुद ब खुद ज्ञात समस्यात्मक गेम्स मे फिक्स लगाता है गेम के शुरू होने पर। Enable Compatibility Patches - Enable Compatibility Patches + कम्पेटिबिलीटी पेचीस सक्षम करे Automatically loads and applies compatibility patches to known problematic games. - Automatically loads and applies compatibility patches to known problematic games. + खुद ब खुद ज्ञात समस्यात्मक गेम्स मे सुसंगति पैच लगाता है। AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. + इन विकल्पों को बदलने से गेम्स गैर-कार्यात्मक हो सकते हैं। अपने जोखिम पर संशोधित करें, PCSX2 टीम इन सेटिंग्स में बदलाव के साथ कॉन्फ़िगरेशन के लिए सहायता प्रदान नहीं करेगी। - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). - EmotionEngine (MIPS-IV) + EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. - Rounding Mode: + राऊंडिंग मोड: - - - + + + Nearest - Nearest + नेयरेस्ट - - - + + + Negative - Negative + नेगेटिव - - - + + + Positive - Positive + पौसेटिव - - - + + + Chop / Zero (Default) - Chop / Zero (Default) + चौप / जिरो (डिफौलट) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. - Clamping Mode: + क्लैंपिंग मोड: - - + + None - None + कोई नहीं - - - + + + Normal (Default) - Normal (Default) + नॉर्मल (डिफॉल्ट) - + None ClampMode - None + कोई नहीं - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). - Extra + Preserve Sign + एक्स्ट्रा + पर्रीसर्व साइन - + Full - Full + पूरा - + Wait Loop Detection - Wait Loop Detection + वेट लुप डिटेक्शन - - + + Enable Recompiler - Enable Recompiler + रिकम्पाईलर सक्षम करे - + Enable Fast Memory Access - Enable Fast Memory Access + तेज मेमोरी एक्सेस सक्षम करे - + Enable Cache (Slow) - Enable Cache (Slow) + द्रुतिका सक्षम करे (धीमा) - + INTC Spin Detection - INTC Spin Detection + INTC स्पिन डिटेक्शन - + Pause On TLB Miss - Pause On TLB Miss + TLB चुकने पर ठेरना - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. - Vector Units (VU) + वेक्टर यूनिट्स (VU) - + VU1 Rounding Mode: - VU1 Rounding Mode: + VU1 राऊंडिंग मोड: - + mVU Flag Hack - mVU Flag Hack + mVU फ्लैग हैक - + Enable VU1 Recompiler - Enable VU1 Recompiler + VU1 रिकम्पाईलर सक्षम करे - + Enable VU0 Recompiler (Micro Mode) - Enable VU0 Recompiler (Micro Mode) + VU0 रिकम्पाईलर सक्षम करे (माइक्रो मोड) - - + + Extra - Extra + अतिरिक्त - + VU0 Clamping Mode: - VU0 Clamping Mode: + VU0 क्लैंपिंग मोड: - + VU0 Rounding Mode: - VU0 Rounding Mode: + VU0 राऊंडिंग मोड: - + VU1 Clamping Mode: - VU1 Clamping Mode: + VU1 क्लैंपिंग मोड: - + I/O Processor (IOP, MIPS-I) - I/O Processor (IOP, MIPS-I) + I/O प्रोसेसर (IOP, MIPS-I) - + Game Settings - Game Settings + गेम की सेटिंग - + Enable Game Fixes - Enable Game Fixes + गेम फिक्स सक्षम करें - + Enable Compatibility Patches - Enable Compatibility Patches + कम्पेटिबिलीटी पेचीस सक्षम करे - + Frame Rate Control - Frame Rate Control + फ्रेम रेट नियंत्रण - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. - hz + hz - + PAL Frame Rate: - PAL Frame Rate: + PAL फ्रेम रेट: - + NTSC Frame Rate: - NTSC Frame Rate: + NTSC फ्रेम रेट: - + PINE Settings - PINE Settings + PINE सेटिंग्स - + Slot: - Slot: + स्लॉट: - + Enable - Enable + सक्षम AudioSettingsWidget - + Timestretch Settings - Timestretch Settings + समय-विस्तार समायोजन - + Sequence Length: - Sequence Length: + अनुक्रमण की लम्बाई: - + 30 - 30 + 30 - + Seekwindow Size: - Seekwindow Size: + सीकविंडो आकर: - + 20 - 20 + 20 - + Overlap: - Overlap: + ओवरलैप: - + 10 - 10 + 10 - + Restore Defaults - Restore Defaults + डिफ़ाल्ट पर लाएं - + Volume - Volume + आवाज़ - + 100% - 100% + 100% - + Mixing Settings - Mixing Settings + मिश्रण समायोजन - + Synchronization: - Synchronization: + तुल्यकालन: - + TimeStretch (Recommended) - TimeStretch (Recommended) + टाइम-स्ट्रेच (अनुशंसित) - + Async Mix (Breaks some games!) - Async Mix (Breaks some games!) + अतुल्यकालिक मिश्रण (कुछ गेम्स तोड़ देता है!) - + None (Audio can skip.) - None (Audio can skip.) + कोई नहीं (ऑडियो छुठ सकती है।) - + Expansion: - Expansion: + विस्तार: - + Stereo (None, Default) - Stereo (None, Default) + स्टीरियो (नॉन, डिफॉल्ट) - + Quadraphonic - Quadraphonic + कुआडराफोनीक - + Surround 5.1 - Surround 5.1 + सर्राउंड 5.1 - + Surround 7.1 - Surround 7.1 + सर्राउंड 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. - ProLogic Level: + प्रोलोजिक्र स्तर: - + None (Default) - None (Default) + कोई नहीं (डिफॉल्ट) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. - ProLogic Decoding (basic) + प्रोलोजिक्र व्याख्यास (बुनियादी) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. - ProLogic II Decoding (gigaherz) + Pro Logic II डिकोडिंग (gigaherz) - + Target Latency: - Target Latency: + लक्ष्य की वितंबता: - + 60 ms - 60 ms + 60 ms - + Output Settings - Output Settings + उत्पादन की समायोजना - + Output Module: - Output Module: + उत्पादन मॉड्यूल: - + Output Latency: - Output Latency: + उत्पादन की विलंबता: - + 20 ms - 20 ms + 20 ms - + Minimal - Minimal + न्यूनतम - + Output Backend: - Output Backend: + उत्पादन बेकएंड: - + Maximum Latency: - Maximum Latency: + अधिकतम विलंबता: - + Output Device: - Output Device: + आउटपुट डिवाइस: Cubeb (Cross-platform) - Cubeb (Cross-platform) + Cubeb (क्रॉस-प्लेटफॉर्म) @@ -992,43 +1229,43 @@ Login token generated on %2. ms Measuring unit that will appear after the number selected in its option. Adapt the space depending on your language's rules. - ms + ms Synchronization - Synchronization + तुल्यकालन When running outside of 100% speed, adjusts the tempo on audio instead of dropping frames. Produces much nicer fast-forward/slowdown audio. - When running outside of 100% speed, adjusts the tempo on audio instead of dropping frames. Produces much nicer fast-forward/slowdown audio. + 100% गति से बाहर चलने पर, फ़्रेम को गिराने के बजाय ऑडियो पर गति को समायोजित करता है। बहुत अच्छा तेज़-फ़ॉरवर्ड/धीमा ऑडियो तैयार करता है। Expansion - Expansion + विस्तार Determines how the stereo output from the emulated system is upmixed into a greater number of the output speakers. - Determines how the stereo output from the emulated system is upmixed into a greater number of the output speakers. + यह निर्धारित करता है कि एम्युलेटेड सिस्टम से स्टीरियो आउटपुट को अधिक संख्या में आउटपुट स्पीकर में कैसे मिलाया जाता है। Output Module Cubeb is an audio engine name. Leave as-is. - Output Module + उत्पादन मॉड्यूल Selects the library to be used for audio output. - Selects the library to be used for audio output. + ऑडियो आउटपुट के लिए उपयोग की जाने वाली लाइब्रेरी का चयन करता है। Output Backend - Output Backend + उत्पादन बेकएंड @@ -1037,105 +1274,105 @@ Login token generated on %2. Default - Default + डिफॉल्ट When the sound output module supports multiple audio backends, determines the API to be used for audio output to the system. - When the sound output module supports multiple audio backends, determines the API to be used for audio output to the system. + जब ध्वनि आउटपुट मॉड्यूल एकाधिक ऑडियो बैकएंड का समर्थन करता है, तो सिस्टम में ऑडियो आउटपुट के लिए उपयोग की जाने वाली एपीआई निर्धारित करता है। Output Device - Output Device + आउटपुट डिवाइस Determines which audio device to output the sound to. - Determines which audio device to output the sound to. + यह निर्धारित करता है कि किस ऑडियो डिवाइस पर ध्वनि आउटपुट करना है। Target Latency - Target Latency + लक्ष्य की वितंबता Determines the buffer size which the time stretcher will try to keep filled. It effectively selects the average latency, as audio will be stretched/shrunk to keep the buffer size within check. - Determines the buffer size which the time stretcher will try to keep filled. It effectively selects the average latency, as audio will be stretched/shrunk to keep the buffer size within check. + बफ़र आकार निर्धारित करता है जिसे टाइम स्ट्रेचर भरा रखने का प्रयास करेगा। यह प्रभावी रूप से औसत विलंबता का चयन करता है, क्योंकि बफर आकार को नियंत्रण में रखने के लिए ऑडियो को बढ़ाया/सिकुड़ा जाएगा। Output Latency - Output Latency + उत्पादन की विलंबता Determines the latency from the buffer to the host audio output. This can be set lower than the target latency to reduce audio delay. - Determines the latency from the buffer to the host audio output. This can be set lower than the target latency to reduce audio delay. + बफ़र से होस्ट ऑडियो आउटपुट तक विलंबता निर्धारित करता है। ऑडियो विलंब को कम करने के लिए इसे लक्ष्य विलंबता से कम सेट किया जा सकता है। Sequence Length - Sequence Length + अनुक्रमण की लम्बाई 30 ms - 30 ms + 30 ms Seek Window Size Seek Window: the region of samples (window) the audio stretching algorithm is allowed to search. - Seek Window Size + सीकविंडो आकर Overlap - Overlap + ओवरलैप 10 ms - 10 ms + 10 ms Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. - Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. + आपके कंप्यूटर पर अग्रेषित करने से पहले गेम के ऑडियो आउटपुट पर वॉल्यूम संशोधक पहले से लागू करें। Use Global Setting [%1] - Use Global Setting [%1] + ग्लोबल समायोजन इस्तमाल करें [%1] %1% Variable value that indicates a percentage. Preserve the %1 variable, adapt the latter % (and/or any possible spaces) to your language's ruleset. - %1% + %1% N/A Preserve the %1 variable, adapt the latter ms (and/or any possible spaces in between) to your language's ruleset. - N/A + अनुपलब्ध %1 ms - %1 ms + %1 ms Average Latency: %1 ms (%2 ms buffer + %3 ms output) - Average Latency: %1 ms (%2 ms buffer + %3 ms output) + औसत विलंबता: %1 ms (%2 ms बफर +%3 ms आउटपुट) Average Latency: %1 ms (minimum output latency unknown) - Average Latency: %1 ms (minimum output latency unknown) + औसत विलंबता: %1 ms (न्यूनतम आउटपुट विलंबता अज्ञात) @@ -1145,182 +1382,192 @@ Login token generated on %2. Automatic Updater - Automatic Updater + स्वत: अद्यतन Update Available - Update Available + अपडेट उपलब्ध है Current Version: - Current Version: + वर्तमान संस्करण: New Version: - New Version: + नया संस्करण: - - Download and Install... - Download and Install... + + Download Size: + डाउनलोड माप: - Skip This Update - Skip This Update + Download and Install... + डाउनलोड और स्थापित करें + Skip This Update + इस अद्यतन को छोड़ें + + + Remind Me Later - Remind Me Later + मुझे बाद में याद दिलाएं Updater Error - Updater Error + अपडेट त्रुटि - + <h2>Changes:</h2> - <h2>Changes:</h2> + <h2>परिवर्तन:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> + <h2>सेव स्टेट चेतावनी</h2><p>इस अपडेट को इंस्टॉल करने से आपके सेव स्टेट्स <b>असंगत</b> हो जाएंगे। कृपया सुनिश्चित करें कि आपने इस अद्यतन को स्थापित करने से पहले अपने गेम को मेमोरी कार्ड में सेव कर लिया है अन्यथा आप प्रगति खो देंगे।</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> - <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> + <h2>सेटिंग्स चेतावनी</h2><p>इस अपडेट को इंस्टॉल करने से आपका प्रोग्राम कॉन्फ़िगरेशन रीसेट हो जाएगा। कृपया ध्यान दें कि इस अपडेट के बाद आपको अपनी सेटिंग्स को फिर से कॉन्फ़िगर करना होगा।</p> Savestate Warning - Savestate Warning + सेवस्टेट चेतावनी <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> - <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> + <h1>चेतावनी</h1><p style='font-size:12pt;'>इस अपडेट को इंस्टॉल करने से आपके <b>सेव स्टेट्स असंगत</b> हो जाएंगे, <i>सुनिश्चित करें आगे बढ़ने से पहले अपने मेमोरी कार्ड में किसी भी प्रगति को सहेजने के लिए</i>.</p><p>क्या आप जारी रखना चाहते हैं?</p> Downloading %1... - Downloading %1... + डाउनलोड कर रहा है %1... Cancel - Cancel + रद्द करें No updates are currently available. Please try again later. - No updates are currently available. Please try again later. + फिलहाल कोई अपडेट उपलब्ध नहीं है. कृपया बाद में पुन: प्रयास करें। Current Version: %1 (%2) - Current Version: %1 (%2) + वर्तमान संस्करण: %1 (%2) New Version: %1 (%2) - New Version: %1 (%2) + नया संस्करण: %1 (%2) + Download Size: %1 MB + डाउनलोड माप: %1 MB + + + Loading... - Loading... + लोड हो रहा है... BIOSSettingsWidget - + BIOS Directory - BIOS Directory + BIOS निर्देशिका - + PCSX2 will search for BIOS images in this directory. - PCSX2 will search for BIOS images in this directory. + PCSX2 इस निर्देशिका में BIOS छवियों की खोज करेगा। - + Browse... - Browse... + ब्राउज़ करें... - + Reset - Reset + रीसेट - + BIOS Selection - BIOS Selection + BIOS चयन - - Open in Explorer... - Open in Explorer... + + Open BIOS Folder... + BIOS फ़ोल्डर खोलें... - + Refresh List - Refresh List + सूची रिफ्रेश करे - + Filename - Filename + फ़ाइल का नाम - + Version - Version + संस्करण - + Options and Patches - Options and Patches + विकल्प ऐवम पैच - + Fast Boot - Fast Boot + फास्ट बूट - + Fast Forward Boot - Fast Forward Boot + फास्ट फॉरवर्ड बूट Checked - Checked + जांचा हुआ Patches the BIOS to skip the console's boot animation. - Patches the BIOS to skip the console's boot animation. + कंसोल के बूट एनीमेशन को छोड़ने के लिए BIOS को पैच करता है। Unchecked - Unchecked + अनियंत्रित Removes emulation speed throttle until the game starts to reduce startup time. - Removes emulation speed throttle until the game starts to reduce startup time. + जब तक खेल शुरू न हो जाए, स्टार्टअप समय को कम करने के लिए इम्यूलेशन स्पीड थ्रॉटल को हटा देता है। @@ -1328,74 +1575,74 @@ Login token generated on %2. Create / Modify Breakpoint - Create / Modify Breakpoint + ब्रेकपॉइंट बनाएं/संशोधित करें Type - Type + प्रकार Execute - Execute + निष्‍पादित करें Memory - Memory + मेमोरी Address - Address + पता 0 - 0 + 0 Read - Read + पढ़ें Write - Write + लिखें Change - Change + बदलें Size - Size + आकार 1 - 1 + 1 Condition - Condition + हालत Log - Log + लॉग Enable - Enable + सक्षम @@ -1403,113 +1650,106 @@ Login token generated on %2. Error - Error + त्रुटि Invalid address "%1" - Invalid address "%1" + अमान्य पता "%1" Invalid condition "%1" - Invalid condition "%1" + अमान्य शर्त "%1" Invalid size "%1" - Invalid size "%1" + अमान्य आकार "%1" BreakpointModel - + Execute - Execute + निष्‍पादित करें - - No Condition - No Condition - - - - + + -- - -- + -- - - + Enabled - Enabled + सक्षम है - - + Disabled - Disabled + असक्षम है - + Read - Read + पढ़ें - + Write(C) (C) = changes, as in "look for changes". - Write(C) + लिखें(C) - + Write - Write + लिखें - + TYPE Warning: limited space available. Abbreviate if needed. - TYPE + प्रकार - + OFFSET Warning: limited space available. Abbreviate if needed. - OFFSET + ओफ़्सेट - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. - SIZE / LABEL + आकार/लेबल - + INSTRUCTION Warning: limited space available. Abbreviate if needed. - INSTRUCTION + निर्देश - + CONDITION Warning: limited space available. Abbreviate if needed. - CONDITION + हालत - + HITS Warning: limited space available. Abbreviate if needed. - HITS + हिट्स - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1517,32 +1757,32 @@ Login token generated on %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. + गेम डिस्क का स्थान हटाने योग्य ड्राइव पर है, घबराहट और अटकने जैसी प्रदर्शन समस्याएं हो सकती हैं। - + Saving CDVD block dump to '{}'. - Saving CDVD block dump to '{}'. + CDVD ब्लॉक डंप को '{}' में सहेजा जा रहा है। Audio - Audio + ध्वनि Mode 1 - Mode 1 + मोड 1 Mode 2 - Mode 2 + मोड 2 Unknown - Unknown + अनजान @@ -1550,297 +1790,292 @@ Login token generated on %2. Select LED Color - Select LED Color + एलईडी रंग चुनें ControllerBindingWidget - + Virtual Controller Type - Virtual Controller Type + वर्चुअल कंट्रोलर प्रकार - + Bindings - Bindings + बाइंडिंगस - + Settings - Settings + समायोजन - + Macros - Macros + मैक्रोज़ - + Automatic Mapping - Automatic Mapping + स्वचालित मानचित्रण - + Clear Mapping - Clear Mapping + मैपिंग साफ़ करें Controller Port %1 - Controller Port %1 + नियंत्रक पोर्ट %1 No devices available - No devices available + कोई डिवाइस उपलब्ध नहीं Clear Bindings Binding: A pair of (host button, target button); Mapping: A list of bindings covering an entire controller. These are two different things (which might be the same in your language, please make sure to verify this). - Clear Bindings + बाइन्डिंग क्लियर करें Are you sure you want to clear all bindings for this controller? This action cannot be undone. Binding: A pair of (host button, target button); Mapping: A list of bindings covering an entire controller. These are two different things (which might be the same in your language, please make sure to verify this). - Are you sure you want to clear all bindings for this controller? This action cannot be undone. + क्या आप वाकई इस नियंत्रक के लिए सभी बाइंडिंग साफ़ करना चाहते हैं? इस एक्शन को वापस नहीं किया जा सकता। Automatic Binding - Automatic Binding + स्वचालित मानचित्रण No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. + डिवाइस '%1' के लिए कोई सामान्य बाइंडिंग उत्पन्न नहीं की गई। नियंत्रक/स्रोत स्वचालित मैपिंग का समर्थन नहीं कर सकता है। ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - D-Pad + D-Pad - - - + + + Down - Down + नीचे - - - + + + Left - Left + बाएं - - - + + + Up - Up + ऊपर - - - + + + Right - Right + दाएँ - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Left Analog + बायें एनालॉग - + Large Motor - Large Motor + बड़ी मोटर - + L2 Leave this button name as-is. - L2 + L2 - + R2 Leave this button name as-is. - R2 + R2 - + L1 Leave this button name as-is. - L1 + L1 - + R1 Leave this button name as-is. - R1 + R1 - + Start Leave this button name as-is or uppercase it entirely. - Start + शुरु - + Select Leave this button name as-is or uppercase it entirely. - Select + चयन - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Face Buttons + फैस बटन - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Cross + क्रॉस - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Square + स्कूऐर - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Triangle + ट्राईंगल - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Circle + सर्कल - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Right Analog + दायाः एनालॉग - + Small Motor - Small Motor + छोटी मोटर - + L3 Leave this button name as-is. - L3 + L3 - + R3 Leave this button name as-is. - R3 + R3 - + Pressure Modifier - Pressure Modifier + दबाव संशोधक - + Analog - Analog + ऐनालॉग ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow - Yellow - - - - - - - - - - - - - + पीला + + + + + + + + + + + + + PushButton - PushButton + पुशबटन - + Start - Start + शुरु - + Red - Red + लाल - + Green - Green + हरा - + Orange - Orange + नारंगी - + Select - Select + चयन - + Strum Up - Strum Up + स्ट्रम अप - + Strum Down - Strum Down + स्ट्रम डाउन - + Blue - Blue + नीला - + Whammy Bar - Whammy Bar + व्हैमी बार - + Tilt - Tilt + टिल्ट @@ -1848,139 +2083,149 @@ Login token generated on %2. Restore Default Settings - Restore Default Settings + डिफ़ॉल्ट सेटिंग्स रीस्टोर करें Browse... - Browse... + ब्राउज़ करें... Select File - Select File + फ़ाइल चुनें ControllerGlobalSettingsWidget - + SDL Input Source - SDL Input Source + SDL इनपुट स्रोत - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). + SDL इनपुट स्रोत अधिकांश नियंत्रकों का समर्थन करता है, और ब्लूटूथ मोड (वाईर्बेशण / एलईडी नियंत्रण) में DualShock 4 / DualSense पैड के लिए उन्नत कार्यक्षमता प्रदान करता है। - + Enable SDL Input Source - Enable SDL Input Source + SDL इनपुट स्रोत सक्षम करें - + DualShock 4 / DualSense Enhanced Mode - DualShock 4 / DualSense Enhanced Mode + DualShock 4 / DualSense एन्हांस्ड मोड - + XInput Source - XInput Source + XInput स्रोत - + Enable XInput Input Source - Enable XInput Input Source + XInput स्रोत सक्षम करें - + DInput Source - DInput Source + DInput स्रोत - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. + DInput स्रोत पुराने नियंत्रकों के लिए समर्थन प्रदान करता है जो XInput का समर्थन नहीं करते हैं। इसके बजाय SDL के माध्यम से इन नियंत्रकों तक पहुँचने की अनुशंसा की जाती है, लेकिन यदि वे SDL के साथ संगत नहीं हैं तो DirectInput का उपयोग किया जा सकता है। - + Enable DInput Input Source - Enable DInput Input Source + DInput इनपुट स्रोत सक्षम करें + + + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>कुछ तृतीय पक्ष नियंत्रक गलत तरीके से अपने एनालॉग स्टिक्स को सकारात्मक घटक पर उल्टा चिह्नित करते हैं, लेकिन नकारात्मक नहीं।</p><p>परिणामस्वरूप, एनालॉग स्टिक &quot;फंस गई&quot; तटस्थ स्थिति में आराम करते हुए भी। </p><p>इस सेटिंग को सक्षम करने से PCSX2 को मैपिंग बनाते समय व्युत्क्रम फ़्लैग को अनदेखा करने के लिए कहा जाएगा, जिससे ऐसे नियंत्रक सामान्य रूप से कार्य कर सकेंगे।</p></body></html> + + + + Ignore Inversion + उलटाव पर ध्यान न दें - + Profile Settings - Profile Settings + प्रोफ़ाइल सेटिंग्स - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. + जब यह विकल्प सक्षम होता है, तो हॉटकीज़ को इस इनपुट प्रोफ़ाइल में सेट किया जा सकता है, और वैश्विक हॉटकीज़ के बजाय इसका उपयोग किया जाएगा। डिफ़ॉल्ट रूप से, हॉटकीज़ हमेशा सभी प्रोफ़ाइलों के बीच साझा की जाती हैं। - + Use Per-Profile Hotkeys - Use Per-Profile Hotkeys + प्रति-प्रोफ़ाइल हॉटकीज़ का उपयोग करें - - + + Controller LED Settings - Controller LED Settings + कन्ट्रोलर LED सेटिंग्स - + Enable SDL Raw Input - Enable SDL Raw Input + SDL रो इनपुट सक्षम करें - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. + XInput स्रोत Xbox 360 / Xbox One / Xbox सीरीज कन्ट्रोर्लस और तीसरे पक्ष कन्ट्रोर्लस के लिए समर्थन प्रदान करता है जो XInput प्रोटोकॉल लागू करते हैं। - + Controller Multitap - Controller Multitap + कन्ट्रोलर मल्टीटैप - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. + मल्टीटैप 8 कन्ट्रोर्लस को कंसोल से कनेक्ट करने में सक्षम बनाता है। प्रत्येक मल्टीटैप 4 पोर्ट प्रदान करता है। मल्टीटैप सभी गेम द्वारा समर्थित नहीं है. - + Multitap on Console Port 1 - Multitap on Console Port 1 + कंसोल पोर्ट 1 पर मल्टीटैप - + Multitap on Console Port 2 - Multitap on Console Port 2 + कंसोल पोर्ट 2 पर मल्टीटैप - + Mouse/Pointer Source - Mouse/Pointer Source + माउस/पॉइंटर स्रोत - + PCSX2 allows you to use your mouse to simulate analog stick movement. - PCSX2 allows you to use your mouse to simulate analog stick movement. + PCSX2 आपको एनालॉग स्टिक मूवमेंट का अनुकरण करने के लिए अपने माउस का उपयोग करने की अनुमति देता है। - + Settings... - Settings... + सेटिंग्स... - + Enable Mouse Mapping - Enable Mouse Mapping + माउस मैपिंग सक्षम करें - + Detected Devices Detected Devices @@ -2016,58 +2261,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons Binds/Buttons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - + Pressure Pressure - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - - + + 100% 100% - + Trigger Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: Deadzone: - + Frequency Frequency - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Set... @@ -2170,46 +2415,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller Settings - + Editing Profile: Editing Profile: - + New Profile New Profile - + Load Profile Load Profile - + Delete Profile Delete Profile - - + + Restore Defaults Restore Defaults - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2220,35 +2465,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Error - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2261,12 +2506,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2275,12 +2520,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2293,13 +2538,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2307,8 +2552,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2316,26 +2561,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2407,204 +2652,242 @@ You cannot undo this action. Functions - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Refresh - + Filter Filter - + Memory Search Memory Search - + End End - + Value Value - + Start Start - + Type Type - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Search - + Memory Memory - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New New - + Edit Edit - - - + + + Copy Copy - + Delete Delete - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2660,22 +2943,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet Device: - + Ethernet Device Type: Ethernet Device Type: - + Intercept DHCP Intercept DHCP @@ -2685,135 +2968,130 @@ You cannot undo this action. Enabled - + Enabled InterceptDHCP Enabled - + Subnet Mask: Subnet Mask: - + Gateway Address: Gateway Address: - - + + Auto Auto - + Intercept DHCP: Intercept DHCP: - + PS2 Address: PS2 Address: - + DNS1 Address: DNS1 Address: - + DNS2 Address: DNS2 Address: - + Internal DNS Internal DNS - + Add Add - + Delete Delete - + Export Export - + Import Import - + Per game Per game - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Enabled - + Hard Disk Drive Hard Disk Drive - + HDD File: HDD File: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD Enabled - + Browse Browse - + Create Image Create Image - - - - - PCAP Bridged @@ -2846,7 +3124,7 @@ You cannot undo this action. - + Use Global Setting [%1] Use Global Setting [%1] @@ -2866,78 +3144,78 @@ You cannot undo this action. Address - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Exported Successfully - + Failed to open file Failed to open file - + No Hosts in file No Hosts in file - + Imported Successfully Imported Successfully - - + + Per Game Host list Per Game Host list - + Copy global settings? Copy global settings? - + Delete per game host list? Delete per game host list? - + HDD Image File HDD Image File - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Overwrite File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2946,22 +3224,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2969,69 +3247,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Browse... - - + + Open... Open... @@ -3044,29 +3322,53 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run Run - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Pause @@ -3079,149 +3381,174 @@ Do you want to overwrite? Disassembly - + Copy Address Copy Address - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3229,17 +3556,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games Scan For New Games @@ -3247,48 +3574,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3296,192 +3619,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled Disabled - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3569,12 +3892,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3638,45 +3971,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3684,79 +4012,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3764,2082 +4092,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display - On-Screen Display + ऑन-स्क्रीन डिस्प्ले + + + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. - + BIOS Configuration - BIOS Configuration + BIOS विन्यास - + BIOS Selection BIOS Selection - + Options and Patches - Options and Patches + विकल्प ऐवम पैच - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - - Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. + + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Half-Pixel Offset + अपस्केलिंग फिक्सीस - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging - Logging + लॉगिंग - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + कुआडराफोनीक - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5848,2221 +6196,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + टेक्स्चर प्रतिपादन करते समय अनीसोर्टोपिक फिल्टरिंग कहा उपयोग की जाएगी वह चयन कर्ता है। + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + कुछ गेम्स मे असत्य पढ़ने से बचने के लिए विकल्प माध्यम का प्रयोग करके अंदरूनी FPS की गणना करना। - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account - Account + खाता - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game - Current Game - - - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: + मौजूदा गेम - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} - Console Port {} + कौनसोल पोर्ट {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot - Default Boot - - - - Slow Boot - Slow Boot + Default Boot - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8075,7 +8324,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8130,12 +8379,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8191,7 +8440,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8202,266 +8451,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8469,74 +8860,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8545,12 +8962,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8558,32 +8975,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8609,17 +9026,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8637,7 +9054,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8656,399 +9073,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9056,62 +9484,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9121,12 +9549,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9137,92 +9565,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9230,355 +9658,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9586,79 +10019,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9669,606 +10097,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10278,69 +10716,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10409,8 +10841,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10462,6 +10894,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10521,11 +10954,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10577,6 +11020,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10592,11 +11090,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10634,7 +11127,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10723,8 +11216,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10866,11 +11359,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10921,11 +11409,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11043,7 +11526,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11083,6 +11566,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11136,29 +11624,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11166,405 +11664,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11722,6 +12220,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11749,137 +12337,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12072,7 +12660,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12129,14 +12717,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12641,13 +13229,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12659,7 +13247,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12670,7 +13258,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12685,27 +13273,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12718,168 +13306,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12894,97 +13487,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12993,12 +13586,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13011,70 +13604,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13083,42 +13676,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13126,8 +13719,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13208,6 +13801,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13258,11 +13852,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13388,103 +13977,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13654,58 +14244,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13755,10 +14345,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13954,6 +14549,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13970,14 +14575,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14024,13 +14629,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14101,40 +14699,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14152,13 +14773,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14363,7 +14984,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14413,222 +15033,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14641,12 +15282,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14659,33 +15300,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14771,8 +15394,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15039,97 +15662,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15335,6 +15958,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15366,6 +15994,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15381,6 +16015,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15401,6 +16041,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15456,6 +16102,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15656,6 +16311,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15666,6 +16341,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16165,117 +16846,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16283,67 +16964,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16351,71 +17032,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16424,29 +17105,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16454,27 +17135,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings Settings - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16512,32 +17193,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16554,197 +17235,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_hr-HR.ts b/pcsx2-qt/Translations/pcsx2-qt_hr-HR.ts index b2abe71d1f7d3d..f946d22732818d 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_hr-HR.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_hr-HR.ts @@ -6,7 +6,7 @@ About PCSX2 - O PCSX2 + O PCSX2-u @@ -27,12 +27,12 @@ Website - Webstranica + Web stranica Support Forums - Forum za podršku + Forumi za podršku @@ -80,32 +80,38 @@ Priprema... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Vaš RetroAchievements token prijave više ne vrijedi.</strong>Morate ponovo unijeti svoje podatke da bi postignuća bila praćena.Vaša lozinka neće biti spremljena u PCSX2, token pristupa će biti generiran i korišten umjesto nje. - + &Login &Prijava - + Logging in... Prijavljivanje... - + Login Error Pogreška prijave - - Login failed. Please check your username and password, and try again. - Prijava neuspješna. Molimo provjerite korisničko ime i zaporku i pokušajte ponovno. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login failed. +Error: %1 + +Please check your username and password, and try again. - + Login failed. Prijava neuspješna. @@ -113,268 +119,500 @@ AchievementSettingsWidget - - Global Settings - Globalne Postavke - - - - + + Enable Achievements Omogući Postignuća - - - Show Challenge Indicators - Pokaži Pokazatelje Izazova - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Omogući bogatu prisutnost RA'a - - - - + + Enable Hardcore Mode - Omogući Hradcore Mode + Omogući hardcore način - - - Enable Leaderboards - Omogući Ploče s rezultatima - - - + Test Unofficial Achievements Testirajte Neslužbena Postignuća - - - Enable Test Mode - Omogući Mod Testiranja - - - - + + Enable Sound Effects Omogući Zvučne Efekte - + Notifications Obavijesti - - - Show Notifications - Prikaži Obavijesti - - - - Duration - Trajanje - - - - - - + + 5 seconds 5 sekundi - + Account Račun - - + + Login... Prijava... - + View Profile... Pogledaj Profil... - - Game Info - Informacije o Igri + + Settings + Postavke - - <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> - <html><head/><body><p align="justify">PCSX2 koristi RetroAchievements kao bazu podataka postignuća i za praćenje napretka. Da biste koristili postignuća, prijavite se za račun na <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Da biste vidjeli popis postignuća u igri, pritisnite tipku za <span style=" font-weight:600;"> Otvori Izbornik Pauze </span> i izaberite <span style=" font-weight:600;">Postignuća</span> sa izbornika.</p></body></html> + + + Enable Spectator Mode + Omogući Mod Promatranja - - seconds - sekundi + + + Enable Encore Mode + Omogući Mod Bis + + + + + Show Achievement Notifications + Pokaži Obavjest Postignuća + + Show Leaderboard Notifications + Pokaži Obavjest Ljestvice + + + - - - - Unchecked - Odznači + Enable In-Game Overlays + Omogući Prekrivanja U-Igri - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Kada je omogućeno i prijavljen, PCSX2 će tražiti postignuća u učitavanju igre. + + Username: +Login token generated at: + Korisničko Ime: +Prijavni token generiran na: + + Game Info + Informacije o Igri + + + + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + <html><head/><body><p align="justify">PCSX2 koristi RetroAchievements kao bazu podataka postignuća i za praćenje napretka. Da biste koristili postignuća, prijavite se za račun na <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Da biste vidjeli popis postignuća u igri, pritisnite tipku za <span style=" font-weight:600;"> Otvori Izbornik Pauze </span> i izaberite <span style=" font-weight:600;">Postignuća</span> sa izbornika.</p></body></html> + + + + + + + Unchecked + Neprovjereno + + + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Kada je omogućen, PCSX2 će pretpostaviti da su sva postignuća zaključana i neće slati serveru obavijesti o otključavanju poslužitelju. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Kada je omogućen, PCSX2 će navesti postignuća iz neslužbenih setova. Imajte na umu da retroAchievements ne prati ova postignuća, pa se svaki put otključavaju. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Kada je omogućeno, podaci o bogatoj prisutnosti prikupljat će se i slati na poslužitelje RetroAchievements gdje su podržani. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. Mode " Izazova " za postignuća, uključujući praćenje ploče s najboljim rezultatima. Onemogućuje funkcije spremanja stanja, varanja i usporavanja. - - - - + + + + Checked - Provjeren - - - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Omogućuje praćenje i slanje ploča s najboljim rezultatima u podržanim igrama. Ako su ploče s najboljim rezultatima onemogućene, i dalje ćete moći pregledavati ploču s rezultatima i rezultate, ali rezultati se neće prenositi. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Prikazuje skočne poruke o događajima kao što su otključavanje postignućima i slanje ploča s rezultatima. + Provjereno - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Reproducira zvučne efekte za događaje kao što su otključavanje postignuća i slanje ploča s rezultatima. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Prikazuje ikone u dolje-densom kutu ekrana kada je postignuće izazova/temeljnog postignuća aktivno. - - - - Notification Duration - Trajanje obavijesti + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Kada je omogućn i prijavljen, PCSX2 će skenirati postignuća pri pokretanju. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Prikazuje skočne poruke na događajima poput otključavanje postignuća i završavanje igre. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Trajanje, u sekundama, kako dugo će skočna obavijest postignuća ostati na ekranu. + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Prikazuje skočne poruke pri počinjanju, slanju, ili neuspjehu u izazovu ljestvice. - + + When enabled, each session will behave as if no achievements have been unlocked. + Kad omogućeno, svaka sesija će se ponašati kao da ni jedno postignuće nije otključano. + + + Reset System Resetiraj Sistem - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore način rada neće biti omogućen dok se sustav ne resetira. Želite li sada resetirati sustav? + + + + %n seconds + + %n sekunda + %n sekundi + %n sekunde + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Korisničko Ime: %1 Token za prijavu generiran na %2. - + Logout Odjava - + Not Logged In. Niste prijavljeni. - - - %1 seconds - %1 sekundi - Achievements - + Hardcore mode will be enabled on system reset. Tvrdokorni način će biti dopušten na resetiranju sustava. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} se ne može napraviti kada je tvrdokorni način aktivan. Želite li otpustiti tvrdokorni način? {0} će se prekinuti ako izaberete Ne. - + Hardcore mode is now enabled. Tvrdokorni način je sada dopušten. - + + {} (Hardcore Mode) + {} (Hardcore Mod) + + + + {} (Unofficial) + {} (Neslužbeno) + + + + Mastered {} + Svladao {} + + + + Leaderboard attempt started. + Pokušaj ljestvice započeo. + + + + Leaderboard attempt failed. + Pokušaj ljestvice neuspješan. + + + + Your Time: {}{} + Vaše vrijeme: {}{} + + + + Your Score: {}{} + Vaš rezultat: {}{} + + + + Your Value: {}{} + Vaša Vrijednost: {}{} + + + + (Submitting) + (Slanje) + + + + Achievements Disconnected + Postignuća Isključena + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Zahtjev za otključavanje nije mogao biti dovršen. Nastavit ćemo ponovno pokušavati poslati ovaj zahtjev. + + + + Achievements Reconnected + Postignuća Uključena + + + + All pending unlock requests have completed. + Svi zahtjevi otključavanja u tjeku su završeni. + + + Hardcore mode is now disabled. Tvrdokorni način je sada otpušten. - + + Confirm Hardcore Mode + Potvrdi Hardcore Mod + + + + Active Challenge Achievements + Aktiviraj Postignuća Izazova + + + (Hardcore Mode) (Hardcore mode) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Ovojili ste {0} od {1} postignuća i {2} od {3} bodova. + + You have unlocked all achievements and earned {} points! + Otključali ste sva postignuća i zaradali {} bodova! - - This game has no achievements. - Ova igra nema postignuća. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Otključali ste {0} od {1} postignuća, i zaradili {2} od {3} bodova. + + + + {0} achievements, {1} points + {0} postignuća, {1} bod/ova + + + + Your Time: {0} (Best: {1}) + Vaše Vrijeme: {0} (Najbolje: {1}) - - Leaderboard submission is enabled. - Omogućeno je slanje ploče s rezultatima. + + Your Score: {0} (Best: {1}) + Vaš Rezultat: {0} (Najbolje: {1}) + + + + Your Value: {0} (Best: {1}) + Vaša Vrijednost: {0} (Najbolja: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Pozicija na ljestvici: {1} od {2} + + + + Server error in {0}: +{1} + Greška Servera u {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Rezultat: {0} ({1} softcore) +Nepročitanje Poruke: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Otključali ste {0} od {1} postignuća, zaradivši {2} od {3} moguća bodova. + + + + Unknown + Nepoznato - + + Locked + Zaključano + + + + Unlocked + Otključano + + + + Unsupported + Nepodržano + + + + Unofficial + Neslužbeno + + + + Recently Unlocked + Nedavno otključano + + + + Active Challenges + Aktivni Izazovi + + + + Almost There + Skoro gotovo + + + + {} points + {} bodova + + + + {} point + {} bod + + + + XXX points + XXX bodova + + + + Unlocked: {} + Otključano: {} + + + + This game has {} leaderboards. + Ova igra ima {} ljestvica. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Slanje rezultata je ne omogućeno jer je hardcore mod ugašen. Ljestvice su samo za pregled. + + + + Show Best + Prikaži Najbolje + + + + Show Nearby + Prikaži Približne + + + + Rank + Čin + + + + Name + Ime + + + + Time + Vrijeme + + + + Score + Rezultat + + + + Value + Vrijednost + + + + Date Submitted + Datuma Slanja + + + + Downloading leaderboard data, please wait... + Preuzimanje podataka ljestvica, molimo pričekajte... + + + + + Loading... + Učitavanje... + + + + + Leaderboard download failed + Preuzimanje ljestvica neuspješno + + + + This game has no achievements. + Ova igra nema postignuća. + + + Failed to read executable from disc. Achievements disabled. Čitanje izvršne datoteke s diska nije uspjelo. Postignuća onemogućena. @@ -578,220 +816,220 @@ Token za prijavu generiran na %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Promjena ovih opcija može uzrokovati da igre postanu nefunkcionalne. Izmijenite na vlastitu odgovornost, PCSX2 tim neće pružiti podršku za konfiguracije s promijenjenim postavkama. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Način zaokruživanja: - - - + + + Nearest Najbliže - - - + + + Negative Negativno - - - + + + Positive Pozitivno - - - + + + Chop / Zero (Default) Usitnjavanje / Nula (Zadano) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Način stezanja: - - + + None Nijedan - - - + + + Normal (Default) Normalno (Zadano) - + None ClampMode Nijedan - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Ekstra + znak očuvanja - + Full Potpuni - + Wait Loop Detection Pričekaj otkrivanje petlje - - + + Enable Recompiler Omogući Rekompilator - + Enable Fast Memory Access Dopusti brzi pristup memoriji - + Enable Cache (Slow) Dopusti predmemoriju (sporo) - + INTC Spin Detection INTC Detekcija Okretaja - + Pause On TLB Miss Pauziraj na TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vektorske Jedinice (VU) - + VU1 Rounding Mode: Način Zaokruživanja VU1: - + mVU Flag Hack mVU Flag Hack - + Enable VU1 Recompiler Omogući Rekompilator za VU1 - + Enable VU0 Recompiler (Micro Mode) Omogući Rekompilator za VU0 (Mikro način rada) - - + + Extra Dodatno - + VU0 Clamping Mode: Način stezanja VU0: - + VU0 Rounding Mode: Način zaokruživanja VU0: - + VU1 Clamping Mode: Način stezanja VU1: - + I/O Processor (IOP, MIPS-I) I/O Procesor (IOP, MIPS-I) - + Game Settings Postavke igre - + Enable Game Fixes Dopusti popravke igara - + Enable Compatibility Patches Dopusti zakrpe kompatibilnosti - + Frame Rate Control Upravljanje brzinom sličica po sekundi - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL sličice po sekundi: - + NTSC Frame Rate: NTSC sličice po sekundi: - + PINE Settings Postavke PINE-a - + Slot: Utor: - + Enable Dopusti @@ -799,182 +1037,186 @@ Token za prijavu generiran na %2. AudioSettingsWidget - + Timestretch Settings Postavke razduživanja vremena - + Sequence Length: Duljina Sekvence: - + 30 30 - + Seekwindow Size: Veličina prozora traženja: - + 20 20 - + Overlap: Preklapanje: - + 10 10 - + Restore Defaults Vrati na Zadano - + Volume Glasnoća - + 100% 100% - + Mixing Settings Postavke mješanja - + Synchronization: Sinkronizacija: - + TimeStretch (Recommended) Razduživanje vremena (preporučeno) - + Async Mix (Breaks some games!) Async mješavina (Razbija neke igre!) - + None (Audio can skip.) Ništa (Zvuk se može preskočiti.) - + Expansion: Proširenje: - + Stereo (None, Default) Stereo (ništa, zadano) - + Quadraphonic - Quadraphonic + Ključ: ZvučnePostavkeNaprave['Kvadrofoni'] +ZvučnePstavkeNaprave../Postavke/ZvučnePostavkeNaprave. ui: 322 +Datoteka: pcsx2-qt_hr. ts - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Razina ProLogic-a: - + None (Default) Ništa (zadano) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Dekodiranje ProLogic-a (osnovno) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Dekodiranje ProLogic-a II (gigaherz) - + Target Latency: Ciljana Latencija: - + 60 ms 60 ms - + Output Settings Postavke izlaza - + Output Module: Modula izlaza: - + Output Latency: Izlazna latencija: - + 20 ms 20 ms - + Minimal Minimalno - + Output Backend: - Output Backend: + Ključ: ZvučnePostavkeNaprave['Izlazna pozadina:'] +ZvučnePstavkeNaprave../Postavke/ZvučnePostavkeNaprave. ui: 472 +Datoteka: pcsx2-qt_hr. ts: - + Maximum Latency: Maksimalna Latencija: - + Output Device: Uređaj izlaza: @@ -1027,7 +1269,9 @@ Token za prijavu generiran na %2. Output Backend - Output Backend + Ključ: ZvučnePostavkeNaprave['Izlazna pozadina:'] +ZvučnePstavkeNaprave../Postavke/ZvučnePostavkeNaprave. cpp: 113 +Datoteka: pcsx2-qt_hr. ts @@ -1102,7 +1346,9 @@ Token za prijavu generiran na %2. Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. - Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. + Ključ: ZvučnePostavkeNaprave['Prethodno postavi glasovni modifikator u igri's zvukovni izlaz prije prosljeđivanja na vaš kompjuter +ZvučnePstavkeNaprave../Postavke/ZvučnePostavkeNaprave.cpp:134 +Datoteka: pcsx2-qt_hr. ts. @@ -1162,17 +1408,22 @@ Token za prijavu generiran na %2. Nova verzija: - + + Download Size: + Veličina preuzimanja: + + + Download and Install... Preuzmi i instaliraj... - + Skip This Update Preskoči ovo ažuriranje - + Remind Me Later Podsjeti me kasnije @@ -1182,19 +1433,19 @@ Token za prijavu generiran na %2. Greška ažuriratelja - + <h2>Changes:</h2> <h2>Promjene:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> + <h2>Upozorenje Sacuvane Pozicije</h2><p>instaliranje ovog ažuriranja će učiniti vaše sačuvane pozicije <b>nekompatibilnima</b>.Molimo osigurajte da ste sačuvali vaše igre na Memorijsku Karticu prije instaliranja ovog ažuriranja ili će te izgubiti napredak.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> - <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> + <h2>Postavke Upozorenje</h2><p>Instaliranjem ovog ažuriranja će resetirati vaš programski oblik. Molimo zabilježite da ćete morati ponovno configurirati vaše postavke nakon ovog ažuriranja</p> @@ -1204,7 +1455,8 @@ Token za prijavu generiran na %2. <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> - <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> + <h1>UPOZORENJE</h1><p style='font-size:12pt;'>;instaliranje ovog ažuriranja će učiniti vaše <b> sačuvane pozicije ne upotreblivimae</b>, <i>budite sigurni da savučate bilo koji napredak na vaše memory kartice prije postupka +</i>.</p><p> Želite li nastaviti?</p> @@ -1233,6 +1485,11 @@ Token za prijavu generiran na %2. + Download Size: %1 MB + Veličina Preuzimanja: %1 MB + + + Loading... Učitavanje... @@ -1240,66 +1497,66 @@ Token za prijavu generiran na %2. BIOSSettingsWidget - + BIOS Directory BIOS Direktorij - + PCSX2 will search for BIOS images in this directory. PCSX2 će tražiti BIOS slike u ovom direktoriju. - + Browse... Pregledaj... - + Reset Ponovno postavi - + BIOS Selection Odabir BIOS-a - - Open in Explorer... - Otvori u pregledaču... + + Open BIOS Folder... + Otvori BIOS Mapu... - + Refresh List Osvježi listu - + Filename Naziv datoteke - + Version Verzija - + Options and Patches Postavke i zakrpe - + Fast Boot Brzo pokretanje - + Fast Forward Boot - Fast Forward Boot + Pokretanje Brzo Unaprijed @@ -1309,7 +1566,7 @@ Token za prijavu generiran na %2. Patches the BIOS to skip the console's boot animation. - Patches the BIOS to skip the console's boot animation. + Zakrpljava BIOS kako bih konzola 's započela animaciju. @@ -1319,7 +1576,7 @@ Token za prijavu generiran na %2. Removes emulation speed throttle until the game starts to reduce startup time. - Removes emulation speed throttle until the game starts to reduce startup time. + Miče emulacijsku brzinsku prigušnicu dok igra počne smanjivati vrijeme za početi igru. @@ -1413,7 +1670,7 @@ Token za prijavu generiran na %2. Invalid condition "%1" - Invalid condition "%1" + Nevažeće stanje "%1" @@ -1424,91 +1681,84 @@ Token za prijavu generiran na %2. BreakpointModel - + Execute Izvrši - - No Condition - Nema stanja - - - - + + -- -- - - + Enabled Dopušteno - - + Disabled Otpušteno - + Read Čitaj - + Write(C) (C) = changes, as in "look for changes". Piši(C) - + Write Piši - + TYPE Warning: limited space available. Abbreviate if needed. VRSTA - + OFFSET Warning: limited space available. Abbreviate if needed. ISTUP - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. VELIČINA / ETIKETA - + INSTRUCTION Warning: limited space available. Abbreviate if needed. UPUTA - + CONDITION Warning: limited space available. Abbreviate if needed. UVJET - + HITS Warning: limited space available. Abbreviate if needed. - HITS + HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - OMOGUĆENO + X @@ -1519,9 +1769,9 @@ Token za prijavu generiran na %2. Lokacija diska s igrom je na prijenosnom disku, mogu se pojaviti problemi s performansama poput podrhtavanja i zamrzavanja. - + Saving CDVD block dump to '{}'. - Saving CDVD block dump to '{}'. + ČUvanje CDVD da se blokira istovarenje do '{}'. @@ -1555,32 +1805,32 @@ Token za prijavu generiran na %2. ControllerBindingWidget - + Virtual Controller Type Vrsta virtualnog kontrolera - + Bindings Mapiranja - + Settings Postavke - + Macros Makronaredbe - + Automatic Mapping Automatsko Mapiranje - + Clear Mapping Izbriši Mapiranje @@ -1620,146 +1870,146 @@ Token za prijavu generiran na %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Gumbi za kretanje - - - + + + Down Dolje - - - + + + Left Lijevo - - - + + + Up Gore - - - + + + Right Desno - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Lijeva palica - + Large Motor Veliki motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Akcijski gumbi - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Križ - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kvadrat - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Trokut - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Krug - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Desni analog - + Small Motor Mali motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Modifikator pritiska - + Analog Analog @@ -1767,77 +2017,72 @@ Token za prijavu generiran na %2. ControllerBindingWidget_Guitar - - Form - Obrazac - - - + Yellow Žuto - - - - - - - - - - - + + + + + + + + + + + PushButton PritisniGumb - + Start Početak - + Red Crveno - + Green Zeleno - + Orange Narančasto - + Select Odaberi - + Strum Up - Strum Up + Drndanje gore - + Strum Down - Strum Down + Drndanje dolje - + Blue Plava - + Whammy Bar - Whammy Bar + Udarna Šipka - + Tilt Nagib @@ -1863,123 +2108,133 @@ Token za prijavu generiran na %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL izvor ulaza - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). SDL ulazni izvor podržava većinu kontrolera i daje dodatnu funkcionalnost za DualShock 4 / DualSense kontrolere u načinu Bluetooth-a (vibracija / kontroliranje LED-a). - + Enable SDL Input Source Dopusti SDL izvor ulaza - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense poboljšani način - + XInput Source Izvor XInput - + Enable XInput Input Source Dopusti XInput izvor ulaza - + DInput Source Izvor DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. + DInput izvor pruža pomoć za starije kontrolere koji ne podržavaju XInput. Pristupanje takvim controlerima pomoću SDL je preporučeno, ali DirectInput se može koristit u slučaju da SDL nije podržan. - + Enable DInput Input Source - Enable DInput Input Source + Koristi DInput kao ulazni izvor + + + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion - + Profile Settings Postavke Profila - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. + Kada je opcija uključena, prečac može biti postavljen u ovome ulaznom profilu, i biti će korišten umjesto globalnih prečaca. Po zadanome, prečaci su uvijek podjeljeni s drugim profilima. - + Use Per-Profile Hotkeys - Use Per-Profile Hotkeys + Koristi Zasebne Profilne prečice - - + + Controller LED Settings Postavke LED Kontrolera - + Enable SDL Raw Input - Enable SDL Raw Input + Uključi SDL Raw ulaz - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. + XInput izvor pruža podršku za Xbox 360 / Xbox One / Xbox Series kontrolere, i za treće strane kontrolere koji izvršava XInput protokol. - + Controller Multitap - Controller Multitap + Kontroler mnogododir - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. + Mnogodobir se uključuje do 8 kontrolera spojenih na konzolu. Svaki mnogododir pruža 4 utičnice. Mnogododir nije podržan od svih igara. - + Multitap on Console Port 1 - Multitap on Console Port 1 + Mnogododir na konsolskoj utičnici 1 - + Multitap on Console Port 2 - Multitap on Console Port 2 + Mnogododir na konsolskoj utičnici 2 - + Mouse/Pointer Source Izvor Miša/Pokazivača - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 omogućuje korištenje miša za simulaciju kretanja analogne palice. - + Settings... Postavke... - + Enable Mouse Mapping Omogući Mapiranje Miša - + Detected Devices Pronađeni Uređaji @@ -2015,58 +2270,58 @@ Token za prijavu generiran na %2. ControllerMacroEditWidget - + Binds/Buttons Mapiranja/Gumbi - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Odaberite gumbe koje želite pokrenuti ovom makronaredbom. Svi gumbi se aktiviraju istovremeno. - + Pressure Pritisak - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Za gumbe koji su osjetljivi na pritisak, ovaj klizač kontrolira koliko će sile biti simulirano kada je makronaredba aktivna. - - + + 100% 100% - + Trigger Okidač - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Odaberite okidač za aktiviranje ove makronaredbe. To može biti jedan gumb ili kombinacija gumba (akord). Pritisnite Shift i kliknite za više okidača. - + Deadzone: Mrtva Zona: - + Frequency Frekvencija - + Macro will toggle every N frames. Makronaredba će se uključiti svakih N okvira. - + Set... Postavi... @@ -2107,7 +2362,7 @@ Token za prijavu generiran na %2. Controller Port %1 Macros - Controller Port %1 Macros + Kontrolna utičnica %1 makro @@ -2117,7 +2372,7 @@ Token za prijavu generiran na %2. Macro 1 Not Configured/Buttons configured - Macro %1 + Makro %1 %2 @@ -2150,7 +2405,7 @@ Not Configured/Buttons configured <html><head/><body><p><span style=" font-weight:700;">Mouse Mapping Settings</span><br/>These settings fine-tune the behavior when mapping a mouse to the emulated controller.</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">Mouse Mapping Settings</span><br/>These settings fine-tune the behavior when mapping a mouse to the emulated controller.</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Postavke za Mapiranje Miša</span><br/>Ove postavke fino podesite kada mapirate miš na oponašani kontroler</p></body></html> @@ -2169,46 +2424,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - Postavke PCSX2 Kontrolera + PCSX2 Controller Settings - + Editing Profile: - Uređuje Profil: + Editing Profile: - + New Profile - Novi Profil + New Profile - + Load Profile - Učitaj Profil + Load Profile - + Delete Profile - Izbriši Profil + Delete Profile - - + + Restore Defaults - Vrati na Zadano + Restore Defaults - - + + Create Input Profile - Izradi Ulazni Profil + Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2474,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error - Pogreška + Error - + A profile with the name '%1' already exists. - Profil sa imenom '%1' već postoji. + A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile - Učitaj Ulazni Profil + Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2515,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile - Izbriši Ulazni Profil + Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2529,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2547,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings - Globalne Postavke + Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2561,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2570,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys - Prečaci + Hotkeys - + Shared "Shared" refers here to the shared input profile. - Zajedničko + Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2369,7 +2624,7 @@ You cannot undo this action. Waiting to start... - Waiting to start... + Čekanje na početak... @@ -2406,204 +2661,242 @@ You cannot undo this action. Funkcije - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Osvježi - + Filter - Filter + Filtar - + Memory Search Pretraga Memorije - + End Kraj - + Value Vrijednost - + Start Započni - + Type Vrsta - + 1 Byte (8 bits) 1 Bajt (8 bitova) - + 2 Bytes (16 bits) 2 Bajta (16 bitova) - + 4 Bytes (32 bits) 4 Bajta (32 bitova) - + 8 Bytes (64 bits) 8 Bajta (64 bitova) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Pretraži - + Memory Memorija - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New Novo - + Edit Uredi - - - + + + Copy Kopiraj - + Delete Izbriši - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Kopiraj Ime Funkcije - + + Copy Function Address Kopriaj Adresu Funkcije - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address Nevažeća početna adresa - + Invalid end address Nevažeća završna adresa - + Start address can't be equal to or greater than the end address Početna adresa nemože biti jednaka ili veća od završne adrese - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2623,196 +2916,191 @@ You cannot undo this action. OK - OK + OK Cancel - Cancel + Otkaži Selected - Selected + Odabrano Name - Name + Ime Url - Url + Url Address - Address + Adresa Enabled - Enabled + Omogućeno DEV9SettingsWidget - + Ethernet - Ethernet + Ethernet - + Ethernet Device: Ethernet Device: - + Ethernet Device Type: Ethernet Device Type: - + Intercept DHCP Intercept DHCP Enabled - Enabled + Omogućeno - + Enabled InterceptDHCP - Enabled + Omogućeno - + Subnet Mask: Subnet Mask: - + Gateway Address: Gateway Address: - - + + Auto - Auto + Automatski - + Intercept DHCP: Intercept DHCP: - + PS2 Address: - PS2 Address: + PS2 adresa: - + DNS1 Address: - DNS1 Address: + DNS1 adresa: - + DNS2 Address: - DNS2 Address: + DNS2 adresa: - + Internal DNS Internal DNS - + Add - Add + Dodaj - + Delete - Delete + Izbriši - + Export - Export + Izvezi - + Import - Import + Uvezi - + Per game - Per game + Po igri - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Enabled - + Hard Disk Drive - Hard Disk Drive + Tvrdi disk - + HDD File: HDD File: - + 40 - 40 + 40 - + 120 - 120 + 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD Enabled - + Browse - Browse + Pretraži - + Create Image Create Image - - - - - PCAP Bridged @@ -2845,19 +3133,19 @@ You cannot undo this action. - + Use Global Setting [%1] Use Global Setting [%1] Name - Name + Ime Url - Url + URL @@ -2865,78 +3153,78 @@ You cannot undo this action. Address - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Exported Successfully - + Failed to open file Failed to open file - + No Hosts in file No Hosts in file - + Imported Successfully - Imported Successfully + Uspješno uvezeno - - + + Per Game Host list Per Game Host list - + Copy global settings? Copy global settings? - + Delete per game host list? Delete per game host list? - + HDD Image File HDD Image File - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Overwrite File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3233,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2968,71 +3256,71 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Browse... - - + + Open... - Open... + Otvori... @@ -3043,31 +3331,55 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run - Run + Pokreni - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause - Pause + Pauza @@ -3078,149 +3390,174 @@ Do you want to overwrite? Disassembly - + Copy Address - Copy Address + Kopiraj Adresu - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function - Add Function + Dodaj Funkciju - - + + Rename Function - Rename Function + Preimenuj Funkciju - + Remove Function - Remove Function + Ukloni Funkciju - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address - Invalid address + Neispravna adresa - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3228,67 +3565,62 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games - Scan For New Games + Skeniraj Za Nove Igre EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3296,192 +3628,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control - Speed Control + Kontrola brzine - + Normal Speed: - Normal Speed: + Normalna Brzina: - + Enable Speed Limiter Enable Speed Limiter - + System Settings - System Settings + Postavke sustava - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled - Disabled + Onemogućeno - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3494,7 +3826,7 @@ Achievements: %5 (%6) Normal Speed - Normal Speed + Normalna Brzina @@ -3505,7 +3837,7 @@ Achievements: %5 (%6) User Preference - User Preference + Korisnički Definirano @@ -3569,12 +3901,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3638,45 +3980,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Neograničen - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3684,79 +4021,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Pretraži... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3764,2082 +4101,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Koristi Globalnu Postavku - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Nepoznat - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection BIOS Selection - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + VU Add Hack + VU Add Hack - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + Full VU0 Synchronization + Full VU0 Synchronization + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + VU Overflow Hack + VU Overflow Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - (Fifa Street 2). - (Fifa Street 2). + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + Quadraphonic + Quadraphonic - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + Load State + Load State - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - VU Add Hack - VU Add Hack + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Disable Depth Emulation + Disable Depth Emulation - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - Full VU0 Synchronization - Full VU0 Synchronization + + Disable Render Fixes + Disable Render Fixes - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Preload Frame Data + Preload Frame Data - - VU Sync (Run behind) - VU Sync (Run behind) + + Texture Inside RT + Texture Inside RT - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - VU Overflow Hack - VU Overflow Hack + + Half Pixel Offset + Half Pixel Offset - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Offset X + Texture Offset X - - VU XGkick Sync - VU XGkick Sync + + Texture Offset Y + Texture Offset Y - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. - - Use Blit for internal FPS - Use Blit for internal FPS + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. - - Quadraphonic - Quadraphonic + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. - - Load State - Load State + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. - + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5848,2221 +6205,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode - + + Spectator Mode + Spectator Mode + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} + + Game: {0} ({1}) + Game: {0} ({1}) - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8075,7 +8333,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8130,12 +8388,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8191,7 +8449,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8202,266 +8460,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8469,74 +8869,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8545,12 +8971,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8558,32 +8984,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8609,17 +9035,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8637,7 +9063,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8656,399 +9082,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9056,62 +9493,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9121,12 +9558,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9137,92 +9574,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9230,355 +9667,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9586,79 +10028,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9669,606 +10106,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10278,69 +10725,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10409,8 +10850,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10462,6 +10903,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10521,11 +10963,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10577,6 +11029,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10592,11 +11099,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10634,7 +11136,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10723,8 +11225,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10866,11 +11368,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10921,11 +11418,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11043,7 +11535,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11083,6 +11575,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11136,29 +11633,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Zadano - - + + (Default) (Default) @@ -11166,405 +11673,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11723,6 +12230,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11750,137 +12347,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12073,7 +12670,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12130,14 +12727,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12642,13 +13239,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12660,7 +13257,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12671,7 +13268,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12686,27 +13283,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12719,168 +13316,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12895,97 +13497,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12994,12 +13596,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13012,70 +13614,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13084,42 +13686,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13127,8 +13729,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13209,6 +13811,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13259,11 +13862,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13389,103 +13987,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13655,58 +14254,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13756,10 +14355,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13955,6 +14559,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13971,14 +14585,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14025,13 +14639,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14102,40 +14709,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14153,13 +14783,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14364,7 +14994,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14414,222 +15043,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14642,12 +15292,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14660,33 +15310,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14772,8 +15404,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15040,97 +15672,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15336,6 +15968,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15367,6 +16004,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15382,6 +16025,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15402,6 +16051,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15457,6 +16112,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15657,6 +16321,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15667,6 +16351,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16166,117 +16856,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad Gumbi za kretanje - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16284,67 +16974,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16352,71 +17042,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad Gumbi za kretanje - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16425,29 +17115,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16455,27 +17145,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings Settings - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16513,32 +17203,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16555,197 +17245,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_hu-HU.ts b/pcsx2-qt/Translations/pcsx2-qt_hu-HU.ts index 1d02208d4073f3..95eb59f95769d8 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_hu-HU.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_hu-HU.ts @@ -80,32 +80,38 @@ Kész... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. - <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. + <strong>A RetroAchievement bejelentkezési Tokened többé nem érvényes.</strong> Add meg újra az adataid hogy a teljesítményeid követhetőek legyenek. A jelszavad nem lesz elmentve a PCSX2-ben, hanem létre lesz hozva egy hozzáférési Token. - + &Login &Bejelentkezés - + Logging in... Belépés... - + Login Error Bejelentkezési hiba - - Login failed. Please check your username and password, and try again. - Sikertelen bejelentkezés. Kérem ellenőrizze a felhasználónevét és jelszavát. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login failed. +Error: %1 + +Please check your username and password, and try again. - + Login failed. A bejelentkezés nem sikerült. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Globális beállítások - - - - + + Enable Achievements Trófeák bekapcsolása - - - Show Challenge Indicators - Kihívásjelző megjelenítése - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Mutasd RA-n mivel játszok - - - - + + Enable Hardcore Mode Hardcore mód bekapcsolása - - - Enable Leaderboards - Ranglisták bekapcsolása - - - + Test Unofficial Achievements Nemhivatalos trófeák kipróbálása - - - Enable Test Mode - Teszt mód bekapcsolása - - - - + + Enable Sound Effects Hangeffektek bekapcsolása - + Notifications Értesítések - - - Show Notifications - Értesítések mutatása - - - - Duration - Időtartam - - - - - - + + 5 seconds 5 másodperc - + Account Fiók - - + + Login... Bejelentkezés... - + View Profile... Profil megtekintése... - + + Settings + Settings + + + + + Enable Spectator Mode + Enable Spectator Mode + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Show Achievement Notifications + + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info Játék információk - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">A PCSX2 a RetroAchievements adatbázisára támaszkodik a játékokban való haladásod követéséhez. A trófeák bekapcsolásához készítened kell a <a href="https://retroachievements.org/">retroachievements.org</a> oldalon egy fiókot.</p><p align="justify">A megszerzett trófeáidat a <span style=" font-weight:600;">Szünet menü</span> előhívásával megtekintheted játék közben is, a <span style=" font-weight:600;">Trófeák</span> menüpont kiválasztásával.</p></body></html> + - seconds - másodperc - - - - + + - - Unchecked Nincs bejelölve - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Ha be van jelölve (és be vagy jelentkezve), a PCSX2 össze fogja gyűjteni az adott játékhoz tartozó trófeákat a játék betöltése során. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Ha be van jelölve, a PCSX2 úgy fog tenni mintha nem lenne egy trófeád sem, és nem fogja megkérni a szervert hogy bármelyiket megszerzettnek jelölje soha. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Ha be van jelölve, a PCSX2 mutatni fog nemhivatalos trófeákat is. Fontos, hogy ezeket a RetroAchievements rendszere nem tartja számon, így ha meg is szerzed őket, nem mentődnek el. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Ha be van jelölve, az aktuálisan játszott játék információja el lesz küldve a RetroAchievements szerverei számára. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Nehezített" mód a trófeák megszerzésére, külön ranglistán vezetve. Kikapcsolja az állapotmentéseket, a patcheket, és a játéksebesség-manipulációt. - - - - + + + + Checked Ellenőrzött - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Bekapcsolja a ranglistákon megjelenést a támogatott játékoknál. Ha kikapcsolod, a ranglistákat, és a pontszámokat rajtuk, továbbra is meg tudod majd nézni, de a saját pontszámaid nem fognak rájuk felkerülni. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Értesítés megjelenítése ha trófeát érsz el vagy ha ranglistára kerülsz. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Hangeffekt játszása ha trófeát érsz el vagy ha ranglistára kerülsz. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Ikon megjelenítése a képernyő jobb alsó sarkában ha egy különleges trófea épp megszerezhető. - - - - Notification Duration - Értesítés Időtartalma + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - The duration, in seconds, an achievement popup notification will remain on screen. + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - + Reset System Rendszer visszaállítás - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? A hardcore mód a (virtuális) gép újraindításáig nem lesz bekapcsolva. Újraindítasz most? + + + + %n seconds + + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Felhasználónév: %1 Bejelentkezési kulcs létrehozva ekkor: %2. - + Logout Kijelentkezés - + Not Logged In. Nincs bejelentkezve. - - - %1 seconds - %1 másodperc - Achievements - + Hardcore mode will be enabled on system reset. - Hardcore mode will be enabled on system reset. + A hardcore mód engedélyezve lesz rendszer visszaállításkor. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. + {0} Nem teljesíthető amíg a Hardcore mód aktív. Ki akarod kapcsolni a Hardcore módot? {0} visszamodnhatja, ha a Nem lehetőséget választja. - + Hardcore mode is now enabled. - Hardcore mode is now enabled. + Hardcore mód engedélyezve. + + + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Unofficial) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} - + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. - Hardcore mode is now disabled. + Hardcore mód kikapcsolva. + + + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements - + (Hardcore Mode) (Hardcore mód) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Az elért trófeáid száma {0}/{1}, a pontjaid száma {2}/{3}. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - Ehhez a játékhoz nem készítettek még trófeákat. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Unknown + + + + Locked + Locked + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + Unofficial + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Unlocked: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Name + + + + Time + Time + + + + Score + Score + + + + Value + Value - - Leaderboard submission is enabled. - Ranglistára kerülés bekapcsolva. + + Date Submitted + Date Submitted - + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + Loading... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + Ehhez a játékhoz nem készítettek még trófeákat. + + + Failed to read executable from disc. Achievements disabled. Az alkalmazás fájljának beolvasása sikertelen. Trófeák kikapcsolva. @@ -578,220 +815,220 @@ Bejelentkezési kulcs létrehozva ekkor: %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Ezeknek a beállításoknak a módosítása eltörhet bizonyos játékokat. Csak saját felelősségre állítsd át őket; a PCSX2 csapata nem fog támogatást nyújtani a számodra, ha ezeket a beállításokat módosítod. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Kerekítési mód: - - - + + + Nearest Legközelebbi - - - + + + Negative Negatív - - - + + + Positive Pozitív - - - + + + Chop / Zero (Default) Levágás / nulla felé (alapértelmezés) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Clampelési mód: - - + + None Nincs - - - + + + Normal (Default) Szokásos (alapértelmezett) - + None ClampMode Nincs clampelés - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Sign megtartása - + Full Tele - + Wait Loop Detection Tevékeny várakozás detektálása - - + + Enable Recompiler Újrafordító használata - + Enable Fast Memory Access Gyors memória-hozzáférés bekapcsolása - + Enable Cache (Slow) Bufferelés bekapcsolása (lassú) - + INTC Spin Detection INTC-s tevékeny várakozás detektálása - + Pause On TLB Miss Szünet TLB miss esetén - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: VU1 kerekítési mód: - + mVU Flag Hack mVU flag hack - + Enable VU1 Recompiler VU1: újrafordító mód - + Enable VU0 Recompiler (Micro Mode) VU0: újrafordító mód (microVU) - - + + Extra Extra - + VU0 Clamping Mode: VU0 clampelési mód: - + VU0 Rounding Mode: VU0 kerekítési mód: - + VU1 Clamping Mode: VU1 clampelési mód: - + I/O Processor (IOP, MIPS-I) I/O koprocesszor (IOP, MIPS-I) - + Game Settings Játékbeállítások - + Enable Game Fixes Játékjavítások engedélyezése - + Enable Compatibility Patches Kompatibilitási patchek engedélyezése - + Frame Rate Control Képfrissítési-ráta vezérlés - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL képfrissítési gyakoriság: - + NTSC Frame Rate: NTSC képfrissítési gyakoriság: - + PINE Settings PINE beállítások - + Slot: Port: - + Enable Engedélyezés @@ -799,182 +1036,182 @@ Bejelentkezési kulcs létrehozva ekkor: %2. AudioSettingsWidget - + Timestretch Settings Hangnyújtási beállítások - + Sequence Length: Szekvenciahossz: - + 30 30 - + Seekwindow Size: Megfigyelési ablak: - + 20 20 - + Overlap: Átfedés: - + 10 10 - + Restore Defaults Alapértelmezések visszaállítása - + Volume Hangerő - + 100% 100% - + Mixing Settings Hangkeverési beállítások - + Synchronization: Szinkronizáció: - + TimeStretch (Recommended) Hangnyújtás (ajánlott) - + Async Mix (Breaks some games!) Aszinkron hangkeverés (eltör pár játékot!) - + None (Audio can skip.) Semmilyen (a hang kieshet néha) - + Expansion: Leképezés: - + Stereo (None, Default) Sztereó (nincs, alapértelmezés) - + Quadraphonic - Quadraphonic + Kvadrafonikus - + Surround 5.1 Térbeli (5.1) - + Surround 7.1 Térbeli (7.1) - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic szint: - + None (Default) Ki (alapértelmezés) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic dekódolás (alapvető) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II dekódolás (gigaherz-féle) - + Target Latency: Cél késleltetés: - + 60 ms 60 ms - + Output Settings Kimenet beállítások - + Output Module: Kimeneti modul: - + Output Latency: Kimeneti késleltetés: - + 20 ms 20 ms - + Minimal Minimális - + Output Backend: Kimeneti backend: - + Maximum Latency: Maximum késleltetés: - + Output Device: Kimeneti eszköz: @@ -1162,17 +1399,22 @@ Bejelentkezési kulcs létrehozva ekkor: %2. Új verzió: - + + Download Size: + Download Size: + + + Download and Install... Letöltés és telepítés... - + Skip This Update Frissítés kihagyása - + Remind Me Later Emlékeztess később @@ -1182,29 +1424,29 @@ Bejelentkezési kulcs létrehozva ekkor: %2. Frissítési hiba - + <h2>Changes:</h2> <h2>Változtatások:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Állapotmentésekkel kapcsolatos figyelmeztetés</h2><p>Ez a frissítés a jelenlegi állapotmentéseidet <b>használhatatlanná</b> fogja tenni. Győződj meg róla, hogy a játékállásaidat memóriakártyára is lementetted mielőtt frissítenél, különben elveszhetnek.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Beállításokkal kapcsolatos figyelmeztetés</h2><p>Ez a frissítés alaphelyzetbe fogja állítani az összes beállítást. Kérünk tartsd figyelemben, hogy a beállításaidat újra alkalmaznod kell majd frissítés után.</p> Savestate Warning - Savestate Warning + Gyorsmentés Figyelmeztetés <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> - <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> + <h1>FIGYELMEZTETÉS</h1><p style='font-size:12pt;'>Ezt a frissítést telepítve az <b>mentések inkompatibilisak lesznek</b>, <i>a továbblépés előtt feltétlenül mentsd el a folyamatot a memóriakártyára</i>.</p><p>Akarod folytatni?</p> @@ -1233,6 +1475,11 @@ Bejelentkezési kulcs létrehozva ekkor: %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... Betöltés... @@ -1240,63 +1487,63 @@ Bejelentkezési kulcs létrehozva ekkor: %2. BIOSSettingsWidget - + BIOS Directory BIOS mappa - + PCSX2 will search for BIOS images in this directory. A PCSX2 ebbe a mappába fogja keresni a BIOS fájlokat. - + Browse... Tallózás... - + Reset Visszaállítás - + BIOS Selection BIOS választó - - Open in Explorer... - Megnyitás a Fájlkezelőben... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List Lista frissítése - + Filename Fájlnév - + Version Verzió - + Options and Patches További lehetőségek - + Fast Boot Gyorsindítás - + Fast Forward Boot Indítás előretekerés @@ -1369,12 +1616,12 @@ Bejelentkezési kulcs létrehozva ekkor: %2. Change - Change + Módosítás Size - Size + Méret @@ -1424,91 +1671,84 @@ Bejelentkezési kulcs létrehozva ekkor: %2. BreakpointModel - + Execute - Execute + Végrehajtás - - No Condition - Nincs feltétel - - - - + + -- -- - - + Enabled Engedélyezett - - + Disabled Letiltva - + Read Olvasás - + Write(C) (C) = changes, as in "look for changes". Írás(C) - + Write Írás - + TYPE Warning: limited space available. Abbreviate if needed. TÍPUS - + OFFSET Warning: limited space available. Abbreviate if needed. - OFFSET + OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. - SIZE / LABEL + MÉRET / LABEL - + INSTRUCTION Warning: limited space available. Abbreviate if needed. - INSTRUCTION + Utasítás - + CONDITION Warning: limited space available. Abbreviate if needed. - CONDITION + CONDITION - + HITS Warning: limited space available. Abbreviate if needed. - HITS + TALÁLATOK - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1516,12 +1756,12 @@ Bejelentkezési kulcs létrehozva ekkor: %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. + A játéklemez helye egy cserélhető meghajtón található, teljesítményhez köthető problémák, például akadozás és lefagyás történhet. - + Saving CDVD block dump to '{}'. - Saving CDVD block dump to '{}'. + CDVD blokk kiírása és mentése ide: '{}'. @@ -1531,12 +1771,12 @@ Bejelentkezési kulcs létrehozva ekkor: %2. Mode 1 - Mode 1 + Mód 1 Mode 2 - Mode 2 + Mód 2 @@ -1549,50 +1789,50 @@ Bejelentkezési kulcs létrehozva ekkor: %2. Select LED Color - Select LED Color + LED szín kiválasztása ControllerBindingWidget - + Virtual Controller Type - Virtual Controller Type + Virtuális Kontroller Típus - + Bindings - Bindings + Gomb Kiosztás - + Settings Beállítások - + Macros Makrók - + Automatic Mapping Automatikus Hozzárendelés - + Clear Mapping - Clear Mapping + Kiosztás törlése Controller Port %1 - Controller Port %1 + Kontroller Port %1 No devices available - No devices available + Nincs elérhető eszköz @@ -1604,162 +1844,162 @@ Bejelentkezési kulcs létrehozva ekkor: %2. Are you sure you want to clear all bindings for this controller? This action cannot be undone. Binding: A pair of (host button, target button); Mapping: A list of bindings covering an entire controller. These are two different things (which might be the same in your language, please make sure to verify this). - Are you sure you want to clear all bindings for this controller? This action cannot be undone. + Biztos hogy törölni akarod a Kontroller Kiosztást ennél a Kontrollernél? Ezt nem lehet visszacsinálni. Automatic Binding - Automatic Binding + Automatikus Gomb Kiosztás No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. + A(z) eszközhöz nem jött létre Automatikus Kiosztás '%1'. Előfordulhat, hogy a kontroller/forrás nem támogatja az automatikus gombkiosztást. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - D-Pad + D-Pad - - - + + + Down - Down + Le - - - + + + Left - Left + Balra - - - + + + Up - Up + Fel - - - + + + Right - Right + Jobbra - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Left Analog + Bal analóg kar - + Large Motor - Large Motor + Nagy rezgő motor - + L2 Leave this button name as-is. - L2 + L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Műveletgombok - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kereszt - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Négyzet - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Háromszög - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kör - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Jobb analóg kar - + Small Motor Kis motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Nyomáserősség-módosító - + Analog Analog @@ -1767,77 +2007,72 @@ Bejelentkezési kulcs létrehozva ekkor: %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow - Yellow - - - - - - - - - - - - - + Sárga + + + + + + + + + + + + + PushButton - PushButton + NyomóGomb - + Start - Start + Start - + Red - Red + Piros - + Green - Green + Zöld - + Orange - Orange + Narancssárga - + Select - Select + Select - + Strum Up - Strum Up + Gitárhúr Pengetés Fel - + Strum Down - Strum Down + Gitárhúr Pengetés Le - + Blue - Blue + Kék - + Whammy Bar - Whammy Bar + Whammy Bar - + Tilt Döntés @@ -1863,123 +2098,133 @@ Bejelentkezési kulcs létrehozva ekkor: %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL bemenetforrás - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). Az SDL bemenetforrás kompatibilis a szinte minden játékvezérlővel, és extra funkcionalitást biztosít DualShock 4 és DualSense használatakor Bluetooth módban (rezgés és fénysáv vezérlés). - + Enable SDL Input Source SDL bemenetforrás használata - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense extrák bekapcsolása - + XInput Source XInput bemenetforrás - + Enable XInput Input Source XInput bemenetforrás használata - + DInput Source DInput bemenetforrás - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. A DInput bemenetforrás elavult, XInputot nem támogató, játékvezérlők használatához ajánlott. Érdemes először SDL-en át kipróbálni őket, de ha a működésük úgy nem megfelelő, ez a mód alkalmas lehet a feladatra. - + Enable DInput Input Source DInput bemenetforrás használata - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Profilspecifikus beállítások - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Ha ez a beállítás engedélyezve van, akkor a játékvezérlők gombhozzárendelései mellett a gyorsbillentyűk is felülbírálhatóak lesznek a profilban. Alapból ez nem lenne lehetséges, ezt kikapcsolva a gyorsbillentyűk profilokon átívelőek. - + Use Per-Profile Hotkeys Profilspecifikus gyorsbillentyűk használata - - + + Controller LED Settings Fénysáv beállítások - + Enable SDL Raw Input SDL 'raw' bemenetforrás használata - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. Az XInput bemenetforrás támogatást nyújt az Xbox 360, Xbox One és Xbox Series konzolok játékvezérlőihez, és minden egyéb játékvezérlőhöz ami implementálja az XInput protokollt. - + Controller Multitap Játékvezérlő multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. A multitap funkció lehetővé teszi akár 8 játékvezérlő egyidejű csatlakoztatását a konzolhoz. Mindegyik multitap 4 portot biztosít. A multitap funkciót nem minden játék támogatja. - + Multitap on Console Port 1 Multitap a konzol első csatlakozóján - + Multitap on Console Port 2 Multitap a konzol második csatlakozóján - + Mouse/Pointer Source Egér és mutató bemenetforrás - + PCSX2 allows you to use your mouse to simulate analog stick movement. A PCSX2 lehetővé teszi, hogy az egérmozgatásodat az analóg karokhoz rendeld. - + Settings... Beállítások... - + Enable Mouse Mapping Egérmozgatás hozzárendelésének bekapcsolása - + Detected Devices Észlelt eszközök @@ -2015,58 +2260,58 @@ Bejelentkezési kulcs létrehozva ekkor: %2. ControllerMacroEditWidget - + Binds/Buttons Hozzárendelések - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Válaszd ki azokat a gombokat, amiket le szeretnél nyomni ezzel a makróval. Minden kiválasztott gomb egyszerre lesz lenyomva. - + Pressure Nyomás - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Olyan gombokért, amik nyomás szenzítivek, ez a csusztató fogja irányítani, hogy mennyi erőt fog stimulálni a makró. - - + + 100% 100% - + Trigger - Trigger + Ravasz - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. + Válaszd a ravaszt hogy aktiváld a macro-t. Ez akár lehet egy egyetlen gomb is, vagy gombkombináció. Shift-kattintás több ravaszért. - + Deadzone: - Deadzone: + Deadzone: - + Frequency Gyakoriság - + Macro will toggle every N frames. A makró minden N képkockaként kapcsolódni fog. - + Set... Beállitás... @@ -2084,12 +2329,12 @@ Bejelentkezési kulcs létrehozva ekkor: %2. Set Frequency - Set Frequency + Frekvencia Beállítása Frequency: - Frequency: + Frekvencia: @@ -2107,7 +2352,7 @@ Bejelentkezési kulcs létrehozva ekkor: %2. Controller Port %1 Macros - Controller Port %1 Macros + Kontroller Port %1 Makró @@ -2125,7 +2370,7 @@ Not Configured/Buttons configured Mouse Mapping Settings - Mouse Mapping Settings + Egér Gombkiosztás Beállítása @@ -2149,65 +2394,65 @@ Not Configured/Buttons configured <html><head/><body><p><span style=" font-weight:700;">Mouse Mapping Settings</span><br/>These settings fine-tune the behavior when mapping a mouse to the emulated controller.</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">Mouse Mapping Settings</span><br/>These settings fine-tune the behavior when mapping a mouse to the emulated controller.</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Egér Gombkiosztás Beállítása</span><br/>Ezek a beállítások finomhangolják az egeret az emulált vezérlőhöz való hozzárendeléskor.</p></body></html> Inertia - Inertia + Tehetetlenség X Dead Zone - X Dead Zone + X Dead Zóna Y Dead Zone - Y Dead Zone + Y Dead Zóna - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - PCSX2 Kontroller Beállítások + PCSX2 Controller Settings - + Editing Profile: Editing Profile: - + New Profile - Új Profil + New Profile - + Load Profile - Profil Betöltése + Load Profile - + Delete Profile - Profil Törlése + Delete Profile - - + + Restore Defaults - Alapértelmezett Visszaállítása + Restore Defaults - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2218,35 +2463,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error - Hiba + Error - + A profile with the name '%1' already exists. - Egy profil a '%1' névvel már létezik. + A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2259,12 +2504,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2273,12 +2518,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. - Nem sikerült letörölni: '%1'. + Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2291,46 +2536,49 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings - Globális Beállítások + Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Kontroller Port %1%2 %3 + Controller Port %1%2 +%3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Kontroller Port %1 %2 + Controller Port %1 +%2 - - + + USB Port %1 %2 - USB Port %1 %2 + USB Port %1 +%2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. - Megosztott + Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2402,204 +2650,242 @@ You cannot undo this action. Függvények - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Újratöltés - + Filter Szűrőkifejezés - + Memory Search Memória-kereső - + End Vége - + Value Érték - + Start Eleje - + Type Típus - + 1 Byte (8 bits) 1 bájt (8 bit) - + 2 Bytes (16 bits) 2 bájt (16 bit) - + 4 Bytes (32 bits) 4 bájt (32 bit) - + 8 Bytes (64 bits) 8 bájt (64 bit) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Keresés - + Memory Memória - + Breakpoints Töréspontok - + Threads Szálak - + Active Call Stack Jelenlegi hívási lánc - + Breakpoint List Context Menu Töréspontlista helyi menüje - + New Új - + Edit Szerkesztés - - - + + + Copy Másolás - + Delete Törlés - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Szállista helyi menüje - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Névroncsolás visszafejtése - + + Copy Function Name Függvénynév másolása - + + Copy Function Address Függvény címének másolása - + + Go to in Disassembly Ugrás ide a disassemblerben - + + Go to in Memory View Ugrás ide a memória böngészőben - + + + Module Tree + Module Tree + + + Stack List Context Menu Veremlista helyi menüje - - - - - + + + + + Debugger Debugger - + Invalid start address Érvénytelen kezdőcím - + Invalid end address Érvénytelen végcím - + Start address can't be equal to or greater than the end address A kezdőcím nem lehet egyenlő vagy nagyobb a végcímnél. - + Invalid search value Érvénytelen keresési érték. - + Value is larger than type Az érték nagyobb mint amennyit a típus megenged. @@ -2655,160 +2941,155 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet Device: - + Ethernet Device Type: Ethernet Device Type: - + Intercept DHCP Intercept DHCP Enabled - Enabled + Engedélyezve - + Enabled InterceptDHCP - Enabled + Engedélyezve - + Subnet Mask: - Subnet Mask: + Alhálózati Maszk: - + Gateway Address: - Gateway Address: + Gateway Cím: - - + + Auto - Auto + Automatikus - + Intercept DHCP: - Intercept DHCP: + DHCP elfogása: - + PS2 Address: - PS2 Address: + PS2 Címe: - + DNS1 Address: - DNS1 Address: + DNS1 Címe: - + DNS2 Address: - DNS2 Address: + DNS2 Címe: - + Internal DNS - Internal DNS + Belső DNS - + Add - Add + Hozzáad - + Delete Törlés - + Export Exportálás - + Import Importálás - + Per game - Per game + Játékonként - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 + A Belső DNS kiválasztható a DNS1/2 legördülő menüből, vagy átállítva azt 192.0.2.1 -re - + Enabled InternalDNSTable - Enabled + Engedélyezve - + Hard Disk Drive Merevlemez Meghajtó - + HDD File: - HDD File: + HDD Fájl: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Méret (GiB): - + Enabled HDD - Enabled + Engedélyezve - + Browse Tallózás - + Create Image Lemezkép létrehozása - - - - - PCAP Bridged @@ -2841,7 +3122,7 @@ You cannot undo this action. - + Use Global Setting [%1] Globális beállítás használata [%1] @@ -2861,78 +3142,78 @@ You cannot undo this action. Hálózati cím - - + + Hosts File Hosts fájl - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS hosztok - + Exported Successfully Az exportálás sikeres. - + Failed to open file A fájl megnyitása sikertelen - + No Hosts in file Nincs hoszt a fájlban - + Imported Successfully Az importálás sikeres. - - + + Per Game Host list Játékspecifikus DNS hosztlista - + Copy global settings? Lemásolod a globális beállításokat? - + Delete per game host list? Biztosan törlöd a játékspecifikus DNS hosztlistát? - + HDD Image File HDD lemezkép-fájl - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Felülírod a fájlt? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2941,22 +3222,22 @@ Do you want to overwrite? Felülírod? - + HDD Creator HDD lemezkép-készítő - + HDD image created HDD lemezkép elkészítve - + Use Global Globális haszn. - + Override Felülbírálás @@ -2964,69 +3245,69 @@ Felülírod? DebugSettingsWidget - + GS GS - + Draw Dumping Draw dumpolás - + Dump GS Draws GS draw-ok dumpolása - + Save RT RT mentése - + Save Frame Képkocka mentése - + Save Texture Textúra mentése - + Save Depth Mélységinfó mentése - + Start Draw Number: Első draw szám: - + Draw Dump Count: Dumpolandó drawok száma: - + Hardware Dump Directory: Hardveres dumpok könyvtára: - + Software Dump Directory: Szoftveres dumpok könyvtára: - - + + Browse... Tallózás... - - + + Open... Megnyitás... @@ -3039,29 +3320,53 @@ Felülírod? PCSX2 Debugger - - - + + Run Futtatás - + Step Into Lépj bele - + + F11 + F11 + + + Step Over Lépd át - + + F10 + F10 + + + Step Out Lépj vissza - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Szünet @@ -3074,149 +3379,174 @@ Felülírod? Disassembly - + Copy Address - Copy Address + Cím Másolása - + Copy Instruction Hex - Copy Instruction Hex + Utasítás másolása (hexadecimálisan) - + Copy Instruction Text - Copy Instruction Text + Útmutató másolása (szövegben) - + Assemble new Instruction(s) - Assemble new Instruction(s) + Új utasítás(ok) összeállítása - + NOP Instruction(s) - NOP Instruction(s) + NOP Utasítás(ok) - + Run to Cursor - Run to Cursor + Futtatás a Kurzorig - + Jump to Cursor - Jump to Cursor + Ugrás a Kurzorhoz - + Toggle Breakpoint - Toggle Breakpoint + Töréspont Bekapcsolása - + Follow Branch - Follow Branch + Branch Követése - + Go to Address - Go to Address + Ugrás a címhez - + Go to in Memory View - Go to in Memory View + Memória Nézetbe lépés - - + + Add Function - Add Function + Funkció Hozzáadása - - + + Rename Function - Rename Function + Funkció Átnevezése - + Remove Function - Remove Function + Funkció Eltávolítása - - + + Assemble Error - Assemble Error + Hiba Összeállítás - + Unable to change assembly while core is running - Unable to change assembly while core is running + Az összeállítás nem módosítható, amíg a Mag fut - + Assemble Instruction - Assemble Instruction + Utasítás Összerakás - + Go to address - Go to address + Ugrás a címhez - + Go to address error - Go to address error + Hiba lépett fel a címhez jutás során - + Invalid address - Invalid address + Érvénytelen cím - + Add Function Error - Add Function Error + Funkcióhiba hozzáadása - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3224,17 +3554,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games Scan For New Games @@ -3242,48 +3572,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3291,192 +3617,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled Kikapcsolva - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3564,12 +3890,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3633,45 +3969,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3679,79 +4010,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3759,2082 +4090,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection BIOS Selection - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack - + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5843,2221 +6194,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Példa https://www.pelda-nem-egy-igazi-domain.com/boritok/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX pontok - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rang - - - - Name - Név - - - - Time - Idő - - - - Score - Pontszám - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode - + + Spectator Mode + Spectator Mode + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} + + Game: {0} ({1}) + Game: {0} ({1}) - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8070,7 +8322,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8125,12 +8377,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8186,7 +8438,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8197,266 +8449,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8464,74 +8858,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8540,12 +8960,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8553,32 +8973,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8604,17 +9024,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8632,7 +9052,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8651,399 +9071,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Lemez - + PS1 Disc PS1 Lemez - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazília) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (Kína) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japán) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Tajvan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Egyéb - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Ausztrália) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (Dél-Afrika) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Ausztria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Európa/Ausztrália) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (Franciaország) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finnország) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Németország) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Görögország) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Olaszország) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Európa/Ausztrália) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Hollandia) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norvégia) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugália) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Oroszország) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spanyolország) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Skandinávia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Svédország) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Svájc) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Egyesült-Királyság) - + Compatibility: Kompatibilitás: - + Unknown Ismeretlen - + Not Bootable Nem indítható - + Reaches Intro Eléri a főcímet - + Reaches Menu Eléri a főmenűt - + In-Game Játékban - + Playable Játszható - + Perfect Tökéletes - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9051,62 +9482,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9116,12 +9547,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9132,92 +9563,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9225,355 +9656,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Részleges - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9581,79 +10017,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9664,606 +10095,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10273,69 +10714,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10404,8 +10839,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10457,6 +10892,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Nincs bejelölve @@ -10516,11 +10952,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10572,6 +11018,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10587,11 +11088,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10629,7 +11125,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10718,8 +11214,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10861,11 +11357,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10916,11 +11407,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11038,7 +11524,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11078,6 +11564,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11131,29 +11622,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11161,405 +11662,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11717,6 +12218,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11744,137 +12335,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12067,7 +12658,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12124,14 +12715,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12636,13 +13227,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12654,7 +13245,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12665,7 +13256,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12680,27 +13271,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12713,168 +13304,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12889,97 +13485,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12988,12 +13584,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13006,70 +13602,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13078,42 +13674,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13121,8 +13717,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13203,6 +13799,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13253,11 +13850,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13383,103 +13975,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13649,58 +14242,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13750,10 +14343,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13949,6 +14547,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13965,14 +14573,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14019,13 +14627,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14096,40 +14697,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14147,13 +14771,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14358,7 +14982,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14408,222 +15031,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14636,12 +15280,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14654,33 +15298,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14766,8 +15392,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15034,97 +15660,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15330,6 +15956,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15361,6 +15992,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15376,6 +16013,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15396,6 +16039,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15451,6 +16100,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15651,6 +16309,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15661,6 +16339,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16160,117 +16844,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16278,67 +16962,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16346,71 +17030,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16419,29 +17103,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16449,27 +17133,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings Settings - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16507,32 +17191,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16549,197 +17233,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_id-ID.ts b/pcsx2-qt/Translations/pcsx2-qt_id-ID.ts index 1ebecdaeda54fe..dcb3f55203e2b8 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_id-ID.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_id-ID.ts @@ -77,35 +77,41 @@ Ready... - Siap... + Menunggu... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Token login RetroAchievements Anda sudah tidak berlaku lagi.</strong> Anda harus memasukkan kembali kredensial Anda agar prestasi dapat dilacak. Kata sandi Anda tidak akan disimpan di PCSX2, token akses akan dibuat dan digunakan sebagai gantinya. - + &Login &Masuk - + Logging in... Sedang masuk... - + Login Error - Proses masuk bermasalah + Proses Masuk Bermasalah - - Login failed. Please check your username and password, and try again. - Proses masuk gagal. Silahkan periksa nama pengguna dan kata sandi anda, lalu coba lagi. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Gagal masuk. +Eror: %1 + +Silahkan periksa nama pengguna dan kata sandi anda, lalu coba lagi. - + Login failed. Proses masuk gagal. @@ -113,268 +119,498 @@ AchievementSettingsWidget - - Global Settings - Pengaturan Global - - - - + + Enable Achievements Aktifkan Prestasi - - - Show Challenge Indicators - Tampilkan Indikator Tantangan - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Nyalakan RetroAchievements Rich Presence - - - - + + Enable Hardcore Mode Aktifkan Mode Hardcore - - - Enable Leaderboards - Aktifkan Papan Peringkat - - - + Test Unofficial Achievements Uji Coba Prestasi Tidak Resmi - - - Enable Test Mode - Aktifkan Mode Pengujian - - - - + + Enable Sound Effects Aktifkan Efek Suara - + Notifications Notifikasi - - - Show Notifications - Tampilkan Notifikasi - - - - Duration - Durasi - - - - - - + + 5 seconds 5 detik - + Account Akun - - + + Login... Masuk... - + View Profile... Lihat Profil... - + + Settings + Pengaturan + + + + + Enable Spectator Mode + Aktifkan Mode Penonton + + + + + Enable Encore Mode + Aktifkan Mode Encore + + + + + Show Achievement Notifications + Tampilkan Pemberitahuan Prestasi + + + + + Show Leaderboard Notifications + Tampilkan Pemberitahuan Papan Peringkat + + + + + Enable In-Game Overlays + Aktifkan Overlay Dalam Game + + + + Username: +Login token generated at: + Nama pengguna: +Token masuk dibuat pada: + + + Game Info Informasi Game - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 menggunakan RetroAchievement sebagai database dan pelacak progres prestasi. Untuk menggunakan prestasi, buat akun di <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Untuk melihat daftar prestasi di dalam game, tekan hotkey untuk <span style=" font-weight:600;">Buka Menu Pause</span> dan pilih <span style=" font-weight:600;">Prestasi</span> dari menu.</p></body></html> + - seconds - detik - - - - + + - - Unchecked Tidak Dicentang - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Jika diaktifkan dan Anda terhubung dengan RetroAchievements, PCSX2 akan memindai prestasi pada saat game dimulai. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Jika diaktifkan, PCSX2 akan menganggap semua prestasi terkunci dan tidak akan mengirimkan notifikasi pencapaian prestasi ke server RetroAchievements. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Jika diaktifkan, PCSX2 akan menampilkan daftar prestasi dari set tidak resmi. Daftar prestasi tersebut tidak akan dilacak oleh RetroAchievements, dan akan terbuka setiap anda meraihnya. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Jika diaktifkan dan mendukung, informasi rich presence akan dikumpulkan dan dikirim ke server RetroAchievements. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. Mode "tantangan" untuk prestasi dan pelacakan papan peringkat. Menonaktifkan fungsi save state, cheat, dan juga gerak lambat. - - - - + + + + Checked Dicentang - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Mengaktifkan pelacakan dan pengiriman papan peringkat di game yang didukung. Jika papan peringkat dinonaktifkan, Anda masih dapat melihat papan peringkat dan skor, tetapi skor yang Anda dapat tidak akan diunggah. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Menampilkan pesan popup untuk aktivitas seperti pencapaian prestasi dan peningkatan di papan peringkat. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Memainkan efek suara untuk aktivitas seperti pencapaian prestasi dan peningkatan di papan peringkat. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Menampilkan ikon indikator di pojok kanan bawah layar saat prestasi utama/tantangan sedang aktif. - - - - Notification Duration - Durasi Notifikasi + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Apabila diaktifkan dan telah masuk, PCSX2 akan memindai prestasi saat pengaktifan. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Menampilkan pesan popup untuk aktivitas seperti pencapaian prestasi dan penyelesaian game. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Menampilkan pesan popup ketika memulai, mengirimkan, atau gagal dalam tantangan papan peringkat. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Durasi, dalam detik, notifikasi popup prestasi akan tetap muncul di layar. + + When enabled, each session will behave as if no achievements have been unlocked. + Ketika diaktifkan, setiap sesi akan berperilaku seolah-olah tidak ada prestasi yang belum dibuka. - + Reset System Reset Sistem - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Mode hardcore tidak akan aktif hingga sistem di reset ulang. Apakah Anda ingin me-reset sistem sekarang? + + + + %n seconds + + %n detik + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Nama pengguna: %1 Token masuk dibuat pada %2. - + Logout Keluar - + Not Logged In. Belum Masuk. - - - %1 seconds - %1 detik - Achievements - + Hardcore mode will be enabled on system reset. Mode Hardcore akan diaktifkan pada saat sistem reset. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} tidak dapat dilakukan saat mode hardcore aktif. Apakah Anda ingin menonaktifkan mode hardcore? {0} akan dibatalkan jika Anda memilih Tidak. - + Hardcore mode is now enabled. Mode Hardcore telah diaktifkan. - + + {} (Hardcore Mode) + {} (Mode Hardcore) + + + + {} (Unofficial) + {} (Tidak Resmi) + + + + Mastered {} + Menguasai {} + + + + Leaderboard attempt started. + Percobaan papan peringkat dimulai. + + + + Leaderboard attempt failed. + Percobaan papan peringkat gagal. + + + + Your Time: {}{} + Waktu Anda: {} {} + + + + Your Score: {}{} + Skor Anda: {} {} + + + + Your Value: {}{} + Nilai Anda: {} {} + + + + (Submitting) + (Mengirim) + + + + Achievements Disconnected + Prestasi Terputus + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Permintaan buka prestasi tidak dapat diselesaikan. Kami akan terus mencoba mengirimkan permintaan ini. + + + + Achievements Reconnected + Prestasi Terhubung Kembali + + + + All pending unlock requests have completed. + Semua permintaan buka prestasi yang tertunda telah selesai. + + + Hardcore mode is now disabled. Mode Hardcore telah dinonaktifkan. - + + Confirm Hardcore Mode + Konfirmasikan Mode Hardcore + + + + Active Challenge Achievements + Prestasi Tantangan Aktif + + + (Hardcore Mode) (Mode Hardcore) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Anda telah memperoleh {0} prestasi dari {1}, dan {2} poin dari {3}. + + You have unlocked all achievements and earned {} points! + Anda telah membuka semua prestasi dan mendapatkan {} poin! - - This game has no achievements. - Prestasi tidak tersedia untuk game ini. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Anda telah membuka {0} dari {1} prestasi, dan mendapatkan {2} dari {3} poin. + + + + {0} achievements, {1} points + {0} prestasi, {1} poin + + + + Your Time: {0} (Best: {1}) + Waktu Anda: {0} (Terbaik: {1}) + + + + Your Score: {0} (Best: {1}) + Skor Anda: {0} (Terbaik: {1}) + + + + Your Value: {0} (Best: {1}) + Nilai Anda: {0} (Terbaik: {1}) - - Leaderboard submission is enabled. - Pengiriman untuk papan peringkat diaktifkan. + + {0} +Leaderboard Position: {1} of {2} + {0} +Posisi Papan Peringkat: {1} dari {2} - + + Server error in {0}: +{1} + Server eror {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Skor: {0} ({1} softcore) +Pesan yang belum dibaca: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Anda telah membuka {0} dari {1} prestasi, dan mendapatkan {2} dari {3} poin yang dapat diperoleh. + + + + Unknown + Tidak Diketahui + + + + Locked + Terkunci + + + + Unlocked + Terbuka + + + + Unsupported + Tidak Didukung + + + + Unofficial + Tidak Resmi + + + + Recently Unlocked + Baru Saja Dibuka + + + + Active Challenges + Tantangan Aktif + + + + Almost There + Hampir Selesai + + + + {} points + {} poin + + + + {} point + {} poin + + + + XXX points + XXX poin + + + + Unlocked: {} + Terbuka: {} + + + + This game has {} leaderboards. + Permainan ini memiliki {} papan peringkat. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Pengiriman skor dinonaktifkan karena mode hardcore tidak aktif. Papan peringkat hanya dapat dilihat. + + + + Show Best + Tampilkan Terbaik + + + + Show Nearby + Tampilkan Terdekat + + + + Rank + Peringkat + + + + Name + Nama + + + + Time + Waktu + + + + Score + Skor + + + + Value + Nilai + + + + Date Submitted + Tanggal Dikirimkan + + + + Downloading leaderboard data, please wait... + Mengunduh data papan peringkat, harap tunggu... + + + + + Loading... + Sedang memuat... + + + + + Leaderboard download failed + Pengunduhan papan peringkat gagal + + + + This game has no achievements. + Prestasi tidak tersedia untuk game ini. + + + Failed to read executable from disc. Achievements disabled. Gagal membaca eksekutabel dari disk. Prestasi dinonaktifkan. @@ -499,12 +735,12 @@ Token masuk dibuat pada %2. VU0 Rounding Mode - Mode Pembulatan VU0 + Mode Rounding VU0 VU1 Rounding Mode - Mode Pembulatan VU1 + Mode Rounding VU1 @@ -578,220 +814,220 @@ Token masuk dibuat pada %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Mengubah pengaturan berikut dapat menyebabkan game gagal berfungsi. Ubah pengaturan dengan risiko Anda sendiri, tim PCSX2 tidak akan memberikan dukungan untuk konfigurasi dengan perubahan pengaturan berikut. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. - Mode Pembulatan: + Mode Rounding: - - - + + + Nearest Terdekat - - - + + + Negative Negatif - - - + + + Positive Positif - - - + + + Chop / Zero (Default) Chop / Zero (Default) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Mode Clamping: - - + + None Nonaktif - - - + + + Normal (Default) Normal (Default) - + None ClampMode Nonaktif - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Ekstra + Pertahankan Simbol - + Full Penuh - + Wait Loop Detection Deteksi Wait Loop - - + + Enable Recompiler Aktifkan Recompiler - + Enable Fast Memory Access Aktifkan Akses Memori Cepat - + Enable Cache (Slow) Akfifkan Cache (Lambat) - + INTC Spin Detection Deteksi Spin INTC - + Pause On TLB Miss Pause Saat Miss TLB - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: Mode Pembulatan VU1: - + mVU Flag Hack Hack Flag mVU - + Enable VU1 Recompiler Aktifkan VU1 Recompiler - + Enable VU0 Recompiler (Micro Mode) Aktifkan VU0 Recompiler (Mode Mikro) - - + + Extra Ekstra - + VU0 Clamping Mode: Mode Clamping VU0: - + VU0 Rounding Mode: Mode Pembulatan VU0: - + VU1 Clamping Mode: Mode Clamping VU1: - + I/O Processor (IOP, MIPS-I) Prosesor I/O (IOP, MIPS-I) - + Game Settings Pengaturan Game - + Enable Game Fixes Aktifkan Perbaikan Game - + Enable Compatibility Patches Aktifkan Patch Kompatibilitas - + Frame Rate Control Kontrol Frame Rate - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: Frame Rate PAL: - + NTSC Frame Rate: Frame Rate NTSC: - + PINE Settings Pengaturan PINE - + Slot: Slot: - + Enable Aktifkan @@ -799,182 +1035,182 @@ Token masuk dibuat pada %2. AudioSettingsWidget - + Timestretch Settings Pengaturan Timestretch - + Sequence Length: Panjang Urutan: - + 30 30 - + Seekwindow Size: Ukuran Seekwindow: - + 20 20 - + Overlap: - Tumpang Tindih: + Overlap: - + 10 10 - + Restore Defaults Kembalikan Pengaturan Default - + Volume Volume - + 100% 100% - + Mixing Settings Pengaturan Mixing - + Synchronization: Sinkronisasi: - + TimeStretch (Recommended) TimeStretch (Disarankan) - + Async Mix (Breaks some games!) Mix Asinkron (Merusak beberapa game!) - + None (Audio can skip.) Nonaktif (Audio dapat terlewati) - + Expansion: Ekspansi: - + Stereo (None, Default) Stereo (Tidak Ada, Default) - + Quadraphonic - Quadraphonic + Quadrafonik - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Level ProLogic: - + None (Default) Nonaktif (Default) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Decoding Prologic (dasar) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Decoding ProLogic II (gigaherz) - + Target Latency: Target Latensi: - + 60 ms 60 ms - + Output Settings Pengaturan Output - + Output Module: Modul Output: - + Output Latency: Latensi Output: - + 20 ms 20 ms - + Minimal Minimal - + Output Backend: Backend Output: - + Maximum Latency: Latensi Maksimum: - + Output Device: Perangkat Output: @@ -1092,7 +1328,7 @@ Token masuk dibuat pada %2. Overlap - Tumpang Tindih + Overlap @@ -1162,17 +1398,22 @@ Token masuk dibuat pada %2. Versi Terbaru: - + + Download Size: + Ukuran Unduhan: + + + Download and Install... Unduh dan Pasang... - + Skip This Update Lewati Pembaruan Ini - + Remind Me Later Ingatkan Saya Nanti @@ -1182,17 +1423,17 @@ Token masuk dibuat pada %2. Pembaruan Bermasalah - + <h2>Changes:</h2> <h2>Catatan Perubahan:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Peringatan Save State</h2><p>Pembaruan ini <b>tidak kompatibel dengan Save State Anda</b>. Pastikan Anda telah menyimpan Save Game ke Memory Card sebelum mengunduh pembaruan ini, atau progres game Anda akan hilang.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Peringatan Pengaturan</h2><p>Menginstal pembaruan ini akan me-reset konfigurasi program anda. Anda harus membuat konfigurasi baru setelah memasang pembaruan ini.</p> @@ -1233,6 +1474,11 @@ Token masuk dibuat pada %2. + Download Size: %1 MB + Ukuran Unduhan: %1 MB + + + Loading... Sedang memuat... @@ -1240,63 +1486,63 @@ Token masuk dibuat pada %2. BIOSSettingsWidget - + BIOS Directory Direktori BIOS - + PCSX2 will search for BIOS images in this directory. PCSX2 akan mencari image BIOS di direktori ini. - + Browse... Telusuri... - + Reset Reset - + BIOS Selection Seleksi BIOS - - Open in Explorer... - Buka di Explorer... + + Open BIOS Folder... + Buka Folder BIOS... - + Refresh List Refresh Daftar - + Filename Nama File - + Version Versi - + Options and Patches Pengaturan dan Patch - + Fast Boot Boot Cepat - + Fast Forward Boot Percepat Boot @@ -1424,91 +1670,84 @@ Token masuk dibuat pada %2. BreakpointModel - + Execute Execute - - No Condition - No Condition - - - - + + -- -- - - + Enabled Enabled - - + Disabled Disabled - + Read Read - + Write(C) (C) = changes, as in "look for changes". Write(C) - + Write Write - + TYPE Warning: limited space available. Abbreviate if needed. TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. SIZE / LABEL - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCTION - + CONDITION Warning: limited space available. Abbreviate if needed. CONDITION - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1519,7 +1758,7 @@ Token masuk dibuat pada %2. Disk game berlokasi di drive yang dapat dilepas, isu performa seperti jittering dan freezing dapat terjadi. - + Saving CDVD block dump to '{}'. Menyimpan dump blok CDVD ke '{}'. @@ -1555,32 +1794,32 @@ Token masuk dibuat pada %2. ControllerBindingWidget - + Virtual Controller Type Tipe Kontroler Virtual - + Bindings Penetapan Tombol - + Settings Pengaturan - + Macros Makro - + Automatic Mapping Penetapan Tombol Otomatis - + Clear Mapping Bersihkan Penetapan Tombol @@ -1620,146 +1859,146 @@ Token masuk dibuat pada %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. D-Pad - - - + + + Down Bawah - - - + + + Left Kiri - - - + + + Up Atas - - - + + + Right Kanan - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Analog Kiri - + Large Motor Motor Besar - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Tombol Aksi - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Silang - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kotak - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Segitiga - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Lingkaran - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Analog Kanan - + Small Motor Motor Kecil - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Pengubah Tekanan - + Analog Analog @@ -1767,77 +2006,72 @@ Token masuk dibuat pada %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow Kuning - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start Start - + Red Merah - + Green Hijau - + Orange Oranye - + Select Select - + Strum Up Petik Atas - + Strum Down Petik Bawah - + Blue Biru - + Whammy Bar Bar Tremolo - + Tilt Miring @@ -1863,123 +2097,133 @@ Token masuk dibuat pada %2. ControllerGlobalSettingsWidget - + SDL Input Source Sumber Input SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). Sumber input SDL mendukung kebanyakan kontroler, dan menawarkan fungsionalitas lebih untuk DualShock 4 / DualSense di mode Bluetooth (Getaran / Kontrol Panel Lampu). - + Enable SDL Input Source Aktifkan Sumber Input SDL - + DualShock 4 / DualSense Enhanced Mode Mode Enhanced DualShock 4 / DualSense - + XInput Source Sumber XInput - + Enable XInput Input Source Aktifkan Sumber Input XInput - + DInput Source Sumber DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. Sumber DInput mendukung kontroler lama yang tidak mendukung XInput. Kami menyarankan menggunakan sumber input SDL, namun DirectInput dapat digunakan apabila kontroler tidak kompatibel dengan SDL. - + Enable DInput Input Source Aktifkan Sumber Input DInput - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Beberapa kontroler pihak ketiga secara tidak tepat menandai stik analog mereka sebagai inversi pada komponen positif, tetapi tidak pada komponen negatif. </p><p>Sebagai akibatnya, stik analog akan &quot;tersangkut&quot;bahkan ketika berada pada posisi netral. </p><p>Mengaktifkan pengaturan ini akan memberi tahu PCSX2 untuk mengabaikan flag inversi ketika membuat pemetaan, sehingga memungkinkan kontroler tersebut berfungsi secara normal.</p></body></html> + + + + Ignore Inversion + Abaikan Inversi + + + Profile Settings Pengaturan Profil - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Jika diaktifkan, hotkey dapat diatur di profil input ini dan akan digunakan sebagai pengganti hotkey global. Secara default, semua profil input menggunakan hotkey global. - + Use Per-Profile Hotkeys Gunakan Hotkey Per Profil - - + + Controller LED Settings Pengaturan Panel Lampu Kontroler - + Enable SDL Raw Input Aktifkan Input Raw SDL - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. Sumber XInput mendukung kontroler Xbox 360 / Xbox One / Xbox Series dan kontroler pihak ketiga yang mendukung protokol XInput. - + Controller Multitap Multitap Kontroler - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Multitap memungkinkan 8 kontroler untuk dihubungkan ke konsol secara bersamaan. Setiap multitap menyediakan 4 port. Tidak semua game mendukung multitap. - + Multitap on Console Port 1 Multitap di Port 1 Konsol - + Multitap on Console Port 2 Multitap di Port 2 Konsol - + Mouse/Pointer Source Sumber Mouse - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 dapat menggunakan mouse untuk menyimulasikan gerakan stik analog. - + Settings... Pengaturan... - + Enable Mouse Mapping Aktifkan Penetapan Mouse - + Detected Devices Perangkat Yang Terdeteksi @@ -2015,58 +2259,58 @@ Token masuk dibuat pada %2. ControllerMacroEditWidget - + Binds/Buttons Tombol - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Pilih tombol yang ingin anda aktifkan dengan makro ini. Semua tombol akan diaktifkan secara bersamaan. - + Pressure Tekanan - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Untuk tombol yang sensitif terhadap tekanan, penggeser ini dapat mengontrol seberapa banyak tekanan yang akan disimulasikan saat makro diaktifkan. - - + + 100% 100% - + Trigger Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Atur hotkey untuk mengaktifkan makro ini. Dapat berupa satu tombol atau kombinasi dari beberapa tombol (kord). Tekan Shift-klik untuk mengatur beberapa hotkey. - + Deadzone: Deadzone: - + Frequency Frekuensi - + Macro will toggle every N frames. Makro akan aktif setiap N frame. - + Set... Setel... @@ -2169,46 +2413,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings Pengaturan Kontroler PCSX2 - + Editing Profile: Mengedit Profil: - + New Profile Profil Baru - + Load Profile Muat Profil - + Delete Profile Hapus Profil - - + + Restore Defaults Kembalikan Pengaturan Default - - + + Create Input Profile Buat Profil Input - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2463,35 @@ Untuk menerapkan profil input kustom ke game, buka Properti Game, lalu ubah &apo Masukkan nama untuk profil input yang baru: - - - - + + + + Error Eror - + A profile with the name '%1' already exists. Profil dengan nama '%1' sudah ada. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Apakah Anda ingin menyalin semua penetapan tombol dari profil yang saat ini dipilih ke profil baru? Memilih Tidak akan membuat profil baru yang kosong. - + Failed to save the new profile to '%1'. Gagal menyimpan profil baru ke '%1'. - + Load Input Profile Muat Profil Input - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2504,12 @@ Semua penetapan tombol global akan dihapus dan penetapan tombol dari profil inpu Anda tidak dapat membatalkan aksi ini. - + Delete Input Profile Hapus Profil Input - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2518,12 @@ You cannot undo this action. Anda tidak dapat membatalkan aksi ini. - + Failed to delete '%1'. Gagal menghapus '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2536,13 @@ Semua konfigurasi dan penetapan tombol global akan dihapus, namun profil input A Anda tidak dapat membatalkan aksi ini. - + Global Settings Pengaturan Global - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2550,8 @@ Anda tidak dapat membatalkan aksi ini. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2559,26 @@ Anda tidak dapat membatalkan aksi ini. %2 - - + + USB Port %1 %2 Port USB %1 %2 - + Hotkeys Hotkey - + Shared "Shared" refers here to the shared input profile. Global - + The input profile named '%1' cannot be found. Profil input '%1' tidak ditemukan. @@ -2359,7 +2603,7 @@ Anda tidak dapat membatalkan aksi ini. By default, the downloaded covers will be saved with the game's title. If this is not desired, you can check the "Use Serial File Names" box below. Using serials instead of game titles will prevent conflicts when multiple regions of the same game are used. - Secara bawaan, sampul yang telah diunduh akan disimpan dengan nama file judul game. Jika terjadi konflik dengan game yang sama dari region yang berbeda, Anda dapat mencentang kotak "Gunakan Nama File Serial"di bawah ini untuk menyimpan sampul dengan nama file serial game. + Secara bawaan, sampul yang telah diunduh akan disimpan dengan nama file berupa judul game. Jika terjadi konflik dengan judul game yang sama dari region yang berbeda, Anda dapat mencentang kotak "Gunakan Nama File Serial" di bawah ini untuk menyimpan sampul dengan nama file berupa serial game. @@ -2406,204 +2650,242 @@ Anda tidak dapat membatalkan aksi ini. Functions - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Refresh - + Filter Filter - + Memory Search Memory Search - + End End - + Value Value - + Start Start - + Type Type - + 1 Byte (8 bits) 1 Byte (8 bit) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Search - + Memory Memory - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New New - + Edit Edit - - - + + + Copy Copy - + Delete Delete - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2659,22 +2941,22 @@ Anda tidak dapat membatalkan aksi ini. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Perangkat Ethernet: - + Ethernet Device Type: Jenis Perangkat Ethernet: - + Intercept DHCP Intercept DHCP @@ -2684,135 +2966,130 @@ Anda tidak dapat membatalkan aksi ini. Aktif - + Enabled InterceptDHCP Aktif - + Subnet Mask: Subnet Mask: - + Gateway Address: Alamat Gateway: - - + + Auto Otomatis - + Intercept DHCP: Intercept DHCP: - + PS2 Address: Alamat PS2: - + DNS1 Address: Alamat DNS1: - + DNS2 Address: Alamat DNS2: - + Internal DNS DNS Internal - + Add Tambah - + Delete Hapus - + Export Ekspor - + Import Impor - + Per game Per game - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 DNS Internal dapat dipilih menggunakan dropdown DNS1/2, atau dengan mengaturnya ke 192.0.2.1 - + Enabled InternalDNSTable Aktif - + Hard Disk Drive Hard Disk - + HDD File: File HDD: - + 40 40 - + 120 120 - + HDD Size (GiB): Kapasitas HDD (GiB): - + Enabled HDD Aktif - + Browse Telusuri - + Create Image Buat Image - - - - - PCAP Bridged @@ -2845,7 +3122,7 @@ Anda tidak dapat membatalkan aksi ini. - + Use Global Setting [%1] Gunakan Pengaturan Global [%1] @@ -2865,78 +3142,78 @@ Anda tidak dapat membatalkan aksi ini. Alamat - - + + Hosts File File Host - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts Host DNS - + Exported Successfully Ekspor Berhasil - + Failed to open file Gagal membuka file - + No Hosts in file Tidak ada host dalam file - + Imported Successfully Impor Berhasil - - + + Per Game Host list Daftar Host Per Game - + Copy global settings? Salin pengaturan global? - + Delete per game host list? Hapus daftar host per game? - + HDD Image File File Image HDD - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Timpa File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3222,22 @@ Do you want to overwrite? Apakah Anda ingin menimpanya? - + HDD Creator Pembuat HDD - + HDD image created Image HDD dibuat - + Use Global Gunakan Global - + Override Timpa @@ -2968,69 +3245,69 @@ Apakah Anda ingin menimpanya? DebugSettingsWidget - + GS GS - + Draw Dumping Dump Draw - + Dump GS Draws Dump Draw GS - + Save RT Simpan RT - + Save Frame Simpan Frame - + Save Texture Simpan Tekstur - + Save Depth Simpan Kedalaman - + Start Draw Number: Nomor Mulai Draw: - + Draw Dump Count: Hitungan Dump Draw: - + Hardware Dump Directory: Direktori Dump Hardware: - + Software Dump Directory: Direktori Dump Software: - - + + Browse... Telusuri... - - + + Open... Buka... @@ -3043,29 +3320,53 @@ Apakah Anda ingin menimpanya? Debugger PCSX2 - - - + + Run Run - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - - Step Out + + F10 + F10 + + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Selalu di Atas + + + + Show this window on top + Tampilkan jendela ini diatas jendela lainnya + + + Pause Pause @@ -3078,149 +3379,174 @@ Apakah Anda ingin menimpanya? Disassembly - + Copy Address Copy Address - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3228,17 +3554,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">Game dalam format yang didukung tidak ditemukan. </span></p><p>Silakan tambahkan direktori game untuk memulai.</p><p>Game dalam format berikut ini akan dipindai dan ditampilkan:</p></body></html> - + Add Game Directory... Tambah Direktori Game... - + Scan For New Games Pindai Game Baru @@ -3246,47 +3572,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - ID Game: %1 -Judul Game: %2 -Prestasi: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n poin - - - + Rich presence inactive or unsupported. Rich presence tidak aktif atau tidak didukung. - + Game not loaded or no RetroAchievements available. Tidak ada game yang berjalan atau tidak ada RetroAchievements yang tersedia. @@ -3294,192 +3617,192 @@ Prestasi: %5 (%6) EmulationSettingsWidget - + Speed Control Kontrol Kecepatan - + Normal Speed: Kecepatan Normal: - + Enable Speed Limiter Aktifkan Pembatas Kecepatan - + System Settings Pengaturan Sistem - + Enable Instant VU1 Aktifkan VU1 Instan - + Enable Cheats Aktifkan Cheat - + Slow-Motion Speed: Kecepatan Gerak Lambat: - + Fast-Forward Speed: Kecepatan Maju Cepat: - + Enable Multithreaded VU1 (MTVU) Aktifkan Multi-Threaded VU1 (MTVU) - + Enable Host Filesystem Aktifkan Sistem File Host - + Enable Fast CDVD Aktifkan CDVD Cepat - + EE Cycle Skipping: Lewati Siklus EE: - - + + Disabled Nonaktif - + Mild Underclock Underclock Ringan - + Moderate Underclock Underclock Sedang - + Maximum Underclock Underclock Maksimum - + EE Cycle Rate: Rate Siklus EE: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Kecepatan Normal) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Kontrol Afinitas: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Kontrol Frame Pacing / Latensi - + frames This string will appear next to the amount of frames selected, in a dropdown box. frame - + Maximum Frame Latency: Latensi Frame Maksimum: - + Optimal Frame Pacing Frame Pacing Optimal - + Scale To Host Refresh Rate Skalakan Ke Refresh Rate Host @@ -3567,12 +3890,22 @@ Prestasi: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Izinkan game dan homebrew untuk mengakses file / folder dari komputer host secara langsung. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Mempercepat emulasi sehingga kecepatan refresh konsol virtual dengan host. Hal ini menghasilkan animasi sehalus mungkin, dapat berpotensi meningkatkan kecepatan emulasi kurang dari 1%. Kecepatan Refresh Scale To Host tidak akan berlaku jika kecepatan refresh konsol terlalu jauh dari kecepatan refresh host. Pengguna layar Variable Refresh Rate (VRR) harus menonaktifkan opsi ini. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Kecepatan Maju Cepat + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3636,45 +3969,40 @@ Prestasi: %5 (%6) Mengatur jumlah frame maksimum yang dapat diantrekan ke GS, sebelum thread CPU menunggu salah satunya selesai sebelum melanjutkan. Jumlah yang lebih tinggi dapat menghaluskan frame time yang tidak teratur, namun akan menambah input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Mengatur kecepatan emulasi sehingga refresh rate konsol sesuai dengan refresh rate host saat opsi VSync dan Resampling Audio diaktifkan. Menghasilkan animasi sehalus mungkin, namun dapat meningkatkan kecepatan emulasi kurang dari 1%. Opsi ini tidak akan berpengaruh jika refresh rate konsol terlalu jauh dari refresh rate host. Pengguna layar variable refresh rate (VRR) sebaiknya menonaktifkan opsi ini. - - - + Use Global Setting [%1%] Gunakan Pengaturan Global [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Tidak terbatas - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Kustom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Kustom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Kecepatan Kustom - + Enter Custom Speed Masukkan Kecepatan Kustom @@ -3682,79 +4010,79 @@ Prestasi: %5 (%6) FolderSettingsWidget - + Cache Directory Direktori Cache - - - - - + + + + + Browse... Telusuri... - - - - - + + + + + Open... Buka... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Untuk menyimpan shader, daftar game, dan data prestasi. - + Cheats Directory Direktori Cheat - + Used for storing .pnach files containing game cheats. Untuk menyimpan file .pnach yang berisi cheat game. - + Covers Directory Direktori Sampul - + Used for storing covers in the game grid/Big Picture UIs. Untuk menyimpan sampul yang akan digunakan oleh tampilan kisi game/UI Big Picture. - + Snapshots Directory Direktori Snapshot - + Used for screenshots and saving GS dumps. Untuk menyimpan screenshot dan dump GS. - + Save States Directory Direktori Save State - + Used for storing save states. Untuk menyimpan save state. @@ -3762,4307 +4090,4229 @@ Prestasi: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Perangkat CD/DVD-ROM tidak ditemukan. Pastikan drive CD/DVD Anda telah terhubung dan memiliki izin akses yang memadai. - + Use Global Setting Gunakan Pengaturan Global - + Automatic binding failed, no devices are available. Penetapan tombol otomatis gagal, tidak ada perangkat yang tersedia. - + Game title copied to clipboard. Judul game telah disalin ke clipboard. - + Game serial copied to clipboard. Kode serial game telah disalin ke clipboard. - + Game CRC copied to clipboard. Kode CRC game telah disalin ke clipboard. - + Game type copied to clipboard. Tipe game telah disalin ke clipboard. - + Game region copied to clipboard. Region game telah disalin ke clipboard. - + Game compatibility copied to clipboard. Kompatibilitas game telah disalin ke clipboard. - + Game path copied to clipboard. Path game telah disalin ke clipboard. - + Per-game controller configuration initialized with global settings. Pengaturan kontroller per game telah diatur dengan pengaturan global. - + Controller settings reset to default. Pengaturan kontroller dikembalikan ke default. - + No input profiles available. Tidak ada profil masukan yang tersedia. - + Create New... Buat Profil Baru... - + Enter the name of the input profile you wish to create. Tentukan nama untuk profil masukan yang ingin Anda buat. - + Are you sure you want to restore the default settings? Any preferences will be lost. Apakah Anda yakin ingin mengembalikan pengaturan default? Semua pengaturan yang tersimpan akan hilang. - + Settings reset to defaults. Pengaturan telah direset ke default. - - Quick Save Slot - Slot savestate cepat - - - + No save present in this slot. Tidak ada savesate pada slot ini. - + No save states found. Savestate tidak ditemukan. - + Failed to delete save state. Gagal untuk menghapus savestate. - + Failed to copy text to clipboard. Gagal menyalin teks ke cliipboard. - + This game has no achievements. Prestasi tidak tersedia untuk game ini. - + This game has no leaderboards. Game ini tidak memiliki papan peringkat. - + Reset System Reset Sistem - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Mode hardcore tidak akan aktif hingga sistem di reset ulang. Apakah Anda ingin me-reset sistem sekarang? - + Launch a game from images scanned from your game directories. Jalankan game dari image yang telah dipindai dari direktori game anda. - + Launch a game by selecting a file/disc image. Jalankan game dengan memilih file atau image disk. - + Start the console without any disc inserted. Jalankan konsol tanpa memasukan disk. - + Start a game from a disc in your PC's DVD drive. Jalankan game dari disk yang dimasukkan ke DVD drive PC anda. - + Change settings for the emulator. Ubah pengaturan dari emulator. - + Exits the program. Keluar dari program. - + No Binding Tidak ada penetapan tombol - + Setting %s binding %s. Mengatur %s ke %s. - + Push a controller button or axis now. Harap tekan tombol controller sekarang. - + Timing out in %.0f seconds... Membatalkan dalam %.0f detik... - + Unknown Tidak Diketahui - + OK OK - + Select Device Pilih Perangkat - + Details Rincian - + Options Pengaturan - + Copies the current global settings to this game. Salin pengaturan global saat ini ke game ini. - + Clears all settings set for this game. Hapus semua pengaturan yang ditetapkan untuk game ini. - + Behaviour Perilaku - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Mencegah screen saver aktif saat emulasi berjalan. - + Shows the game you are currently playing as part of your profile on Discord. Menunjukkan game yang sedang Anda mainkan sebagai status profil Discord. - + Pauses the emulator when a game is started. Menjeda emulator saat game dimulai. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Menjeda emulator saat jendela dikecilkan atau saat jendela sedang tidak dalam fokus (mis. saat Anda beralih ke aplikasi lain). Emulator akan dilanjutkan saat jendela emulator kembali dalam fokus. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Menjeda emulator saat Anda membuka menu cepat, dan melanjutkan saat Anda menutupnya. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Menentukan apakah prompt akan ditampilkan untuk mengonfirmasi mematikan mesin virtual saat hotkey ditekan. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Secara otomatis menyimpan save state lanjutan saat mesin virtual dimatikan. Anda dapat melanjutkan langsung dari titik terakhir yang Anda tinggalkan dengan save state tersebut. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Membolehkan memuat ini overlays dari gamesettings, atau dari pengaturan khusus per-game. - - - + Uses a light coloured theme instead of the default dark theme. Gunakan tema terang alih-alih tema gelap default. - + Game Display Tampilan Game - - Automatically switches to fullscreen mode when the program is started. - Secara otomatis, beralih ke mode layar penuh saat game dimulai. - - - + Switches between full screen and windowed when the window is double-clicked. Mengganti antara full screen dan windowed saat window di double click. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Menyembunyikan kursor mouse saat emulator sedang menggunakan mode layar penuh. - + Determines how large the on-screen messages and monitor are. menentukan seberapa besar pesan di layar dan monitor. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Menampilkan pesan pada layar seperti notifikasi save state yang sedang dibuat/dimuat, tangkapan layar yang sedang diambil, dsb. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Menampilkan kecepatan emulasi sistem saat ini pada pojok kanan atas layar dengan persentase. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Tampilkan jumlah frame video (atau v-syncs) yang ditampilkan setiap detiknya oleh sistem pada pojok kanan atas layar. - + Shows the CPU usage based on threads in the top-right corner of the display. menampilkan penggunaan CPU berdasarkan dari threads pada pojok kanan atas layar. - + Shows the host's GPU usage in the top-right corner of the display. Menunjukkan host dan 's pemakaian GPU di ujung atas kanan display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Menunjukkan resolusi game yang dirender di pojok kanan atas layar. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Menampilkan statistik tentang GS (primitives, draw calls) di sudut kanan atas layar. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Menampilkan indikator saat mempercepat, menjeda, dan status abnormal lainnya sedang aktif. - + Shows the current configuration in the bottom-right corner of the display. Menunjukan konfigurasi saat ini di sudut kanan bawah layar. - + Shows the current controller state of the system in the bottom-left corner of the display. Menampilkan status kontroler sistem saat ini di sudut kiri bawah layar. - + Shows a visual history of frame times in the upper-left corner of the display. Menampilkan riwayat visual dari frame times di sudut kiri atas di layar. - + Displays warnings when settings are enabled which may break games. Menampilkan peringatan jika ada pengaturan di aktifkan yang mungkin mempengaruhi stabilitas di game. - + Resets configuration to defaults (excluding controller settings). Merubah ulang kepengaturan awal (kecuali pengaturan controller/stik). - + Changes the BIOS image used to start future sessions. Mengganti gambar BIOS yang digunakan untuk sesi selanjutnya. - + Automatic Otomatis - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + Jika diaktifkan, pengaturan kustom per game akan diterapkan. Nonaktifkan untuk selalu menggunakan konfigurasi global. + + + + Automatically switches to fullscreen mode when a game is started. + Secara otomatis, beralih ke mode layar penuh saat game dimulai. + + + On-Screen Display - On-Screen Display + On-Screen Display + + + + %d%% + %d%% - + + Shows the resolution of the game in the top-right corner of the display. + Menampilkan resolusi game di pojok kanan atas layar. + + + BIOS Configuration - BIOS Configuration + Konfigurasi BIOS - + BIOS Selection Seleksi BIOS - + Options and Patches - Options and Patches + Pengaturan dan Patch - + Skips the intro screen, and bypasses region checks. Lewati layar intro, dan mem-bypass regional cek. - + Speed Control Kontrol Kecepatan - + Normal Speed Kecepatan Normal - + Sets the speed when running without fast forwarding. Atur kecepatan saat emulator berjalan tanpa fast fowarding. - + Fast Forward Speed Kecepatan Maju Cepat - + Sets the speed when using the fast forward hotkey. Atur kecepatan saat menggunakan fast foward hotkey. - + Slow Motion Speed Kecepatan Gerakan Lambat - + Sets the speed when using the slow motion hotkey. Atur kecepatan saat menggunakan slow motion hotkey. - + Enable Speed Limiter Aktifkan Pembatas Kecepatan - + When disabled, the game will run as fast as possible. Jika dinonaktifkan, sistem akan berjalan secepat mungkin. - + System Settings Pengaturan Sistem - + EE Cycle Rate Rate SIklus EE - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclock atau overclock Cpu Emotion Engine yang di emulasi. - + EE Cycle Skipping Lewati Siklus EE - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Tambahkan penalti kepada Emotion Engine yang di emulasi saat mengesekusi program VU. - - - + Affinity Control Mode Mode Affinity Control - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pin emulation thread ke cpu core yang mungkin dapat meningkatkan performa / perbedaan frame time. - + Enable MTVU (Multi-Threaded VU1) Aktifkan MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Menggunakan thread kedua untuk program VU1 Micro. Kecepatan meningkat cukup besar. - - - + Enable Instant VU1 Aktifkan Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Mengurangi timeslicing antara VU1 dan EE recompilers, dengan efektif VU1 berjalan pada clock speed tidak terbatas. - - - + Enable Cheats Aktifkan Cheat - + Enables loading cheats from pnach files. Mengaktifkan cheat loading dari file pnach. - + Enable Host Filesystem Mengaktifkan Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Mengaktifkan akses ke file dari host: namespace di mesin virtual. - + Enable Fast CDVD Aktifkan CDVD Cepat - + Fast disc access, less loading times. Not recommended. Akses CD dengan cepat, mengurangi waktu loading. Tidak direkomendasikan. - + Frame Pacing/Latency Control Kontrol Frame Pacing / Latensi - + Maximum Frame Latency Frame Latency Tertinggi - + Sets the number of frames which can be queued. Tetapkan angka frame yang dapat di antrikan/queued. - + Optimal Frame Pacing Frame Pacing Terbaik - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Singkronasi EE dan GS thread setelah per gambar. Mengurangi latensi input, tetapi meningkatkan kebutuhan system/hardware. - - Adjust To Host Refresh Rate - Sesuaikan dengan Refresh Rate Host - - - + Speeds up emulation so that the guest refresh rate matches the host. - Speeds up emulation so that the guest refresh rate matches the host. + Mengatur kecepatan emulasi sehingga refresh rate konsol sesuai dengan refresh rate host. - + Renderer Perender - + Selects the API used to render the emulated GS. Pilih API yang akan di gunakan untuk merender emulasi GS. - + Sync To Host Refresh (VSync) Sinkronisasikan dengan Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. - Synchronizes frame presentation with host refresh. + Mensinkronisasikan presentasi frame dengan host refresh. - + Display Tampilan - + Aspect Ratio Aspek Rasio - + Selects the aspect ratio to display the game content at. Pilih aspect ratio ke layar di game. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Pilih aspect ratio ke layar saat FMV terdeteksi digunakan. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - Selects the algorithm used to convert the PS2's interlaced output to progressive for display. + Memilih algoritma yang digunakan untuk mengonversi output interlaced PS2 ke progresif untuk ditampilkan. - + Screenshot Size Ukuran Tangkapan Layar - + Determines the resolution at which screenshots will be saved. Menentukan resolusi screenshot saat di simpan. - + Screenshot Format Format Tangkapan Layar - + Selects the format which will be used to save screenshots. Pilih format file saat screenshot di simpan. - + Screenshot Quality Kualitas Tangkapan Layar - + Selects the quality at which screenshots will be compressed. Pilih kualitas screenshot yang mana akan di kecilkan/compressed. - + Vertical Stretch Peregangan Vertikal - + Increases or decreases the virtual picture size vertically. Tambahkan atau kurangi ukuran gambar virtual secara vertikal. - + Crop Potong - + Crops the image, while respecting aspect ratio. Potong gambar, tetapi tidak merubah aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Aktifkan patch layar lebar - + Enables loading widescreen patches from pnach files. Mengaftikan patch loading layar lebar dari file pnach. - + Enable No-Interlacing Patches Aktifkan Patch No-Interlacing - + Enables loading no-interlacing patches from pnach files. Aktifkan patch loading no-interlacing dari file pnach. - + Bilinear Upscaling Pembesaran gambar Bilinear - + Smooths out the image when upscaling the console to the screen. Menhaluskan gambar ketika upscaling dari konsole ke layar. - + Integer Upscaling Penskalaan Integer - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Menambahkan padding ke area tampilan untuk memastikan bahwa rasio antara piksel pada host dan piksel di konsol adalah bilangan bulat. Dapat menghasilkan gambar yang lebih tajam pada beberapa game 2D. - + Screen Offsets Offset Layar - + Enables PCRTC Offsets which position the screen as the game requests. - Enables PCRTC Offsets which position the screen as the game requests. + Mengaktifkan fungsi Offset PCRTC untuk menyeimbangkan posisi layar sesuai permintaan game. - + Show Overscan Tampilkan Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. - Enables the option to show the overscan area on games which draw more than the safe area of the screen. + Menampilkan area overscan di game yang me-render grafis lebih dari area aman layar. - + Anti-Blur - Anti-Blur + Anti Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. + Mengaktifkan hack anti blur internal. Tidak akurat dengan render PS2 namun dapat membuat sebagian besar game tampak lebih jernih. - + Rendering - Rendering + Render - + Internal Resolution Resolusi Internal - + Multiplies the render resolution by the specified factor (upscaling). - Multiplies the render resolution by the specified factor (upscaling). + Mengalikan resolusi render dengan faktor yang ditentukan (upscaling). - + Mipmapping - Mipmapping + Mipmapping - + Determines how mipmaps are used when rendering textures. - Determines how mipmaps are used when rendering textures. + Menentukan bagaimana mipmap digunakan ketika merender tekstur. - + Bilinear Filtering Penyaringan Bilinear - + Selects where bilinear filtering is utilized when rendering textures. - Selects where bilinear filtering is utilized when rendering textures. + Memilih di mana pemfilteran bilinear digunakan ketika merender tekstur. - + Trilinear Filtering Penyaringan Trilinear - + Selects where trilinear filtering is utilized when rendering textures. - Selects where trilinear filtering is utilized when rendering textures. + Memilih di mana pemfilteran trilinear digunakan ketika merender tekstur. - + Anisotropic Filtering - Anisotropic Filtering - - - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. + Filter Anisotropis - + Dithering - Dithering + Dithering - + Selects the type of dithering applies when the game requests it. - Selects the type of dithering applies when the game requests it. + Memilih jenis dithering yang berlaku saat game memintanya. - + Blending Accuracy - Blending Accuracy + Akurasi Blending - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Menentukan tingkat akurasi saat mengemulasikan mode campuran yang tidak didukung oleh API grafis host. - + Texture Preloading - Pramuat tekstur + Pramuat Tekstur - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. + Mengunggah tekstur secara penuh pada GPU yang digunakan, alih-alih menggunakan daerah yang digunakan. Dapat meningkatkan performa di beberapa permainan. - + Software Rendering Threads - Software Rendering Threads + Thread Perender Software - + Number of threads to use in addition to the main GS thread for rasterization. - Number of threads to use in addition to the main GS thread for rasterization. + Jumlah thread yang digunakan selain thread GS utama untuk rasterisasi. - + Auto Flush (Software) - Auto Flush (Software) + Flush Otomatis (Software) - + Force a primitive flush when a framebuffer is also an input texture. - Force a primitive flush when a framebuffer is also an input texture. + Paksa flush primitif ketika framebuffer juga merupakan tekstur input. - + Edge AA (AA1) - Edge AA (AA1) + Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). - Enables emulation of the GS's edge anti-aliasing (AA1). + Memungkinkan emulasi anti-aliasing edge GS (AA1). - + Enables emulation of the GS's texture mipmapping. - Enables emulation of the GS's texture mipmapping. + Mengaktifkan emulasi mipmapping tekstur GS. - + Hardware Fixes Perbaikan Hardware - + Manual Hardware Fixes Perbaikan Hardware secara manual - + Disables automatic hardware fixes, allowing you to set fixes manually. - Disables automatic hardware fixes, allowing you to set fixes manually. + Menonaktifkan perbaikan otomatis hardware, sehingga Anda dapat mengatur perbaikan secara manual. - + CPU Sprite Render Size - CPU Sprite Render Size + Ukuran Render Sprite CPU - + Uses software renderer to draw texture decompression-like sprites. - Uses software renderer to draw texture decompression-like sprites. + Menggunakan perender software untuk gambar yang terlihat seperti untuk mendekompresi tekstur. - + CPU Sprite Render Level - CPU Sprite Render Level + Tingkat Render Sprite CPU - + Determines filter level for CPU sprite render. - Determines filter level for CPU sprite render. + Menentukan tingkat filter untuk render sprite CPU. - + Software CLUT Render - Software CLUT Render + Render CLUT Software - + Uses software renderer to draw texture CLUT points/sprites. - Uses software renderer to draw texture CLUT points/sprites. + Gunakan perender software untuk menggambar titik dan sprite yang memanfaatkan tekstur CLUT. - + Skip Draw Start - Skip Draw Start + Skipdraw Awal - + Object range to skip drawing. - Object range to skip drawing. + Rentang objek untuk skipdraw. - + Skip Draw End - Skip Draw End + Skipdraw Akhir - + Auto Flush (Hardware) - Auto Flush (Hardware) + Flush Otomatis (Hardware) - + CPU Framebuffer Conversion - CPU Framebuffer Conversion + Konversi CPU Framebuffer - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. + Konversikan frame buffer 4-bit dan 8-bit di CPU daripada di GPU. - + Disable Safe Features - Disable Safe Features + Nonaktifkan Fitur Aman - + This option disables multiple safe features. - This option disables multiple safe features. + Opsi ini menonaktifkan beberapa fitur aman. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. - This option disables game-specific render fixes. - - - - Preload Frame - Preload Frame + Menonaktifkan perbaikan render per game. - + Uploads GS data when rendering a new frame to reproduce some effects accurately. - Uploads GS data when rendering a new frame to reproduce some effects accurately. + Mengunggah data GS saat me-render frame baru untuk mereproduksi beberapa efek secara lebih akurat. - + Disable Partial Invalidation - Disable Partial Invalidation + Nonaktifkan Invalidasi Parsial - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. - Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - - - Texture Inside Render Target - Texture Inside Render Target + Menghapus antrian cache tekstur saat ada persimpangan, bukan hanya pada area persimpangan. - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. + Memungkinkan cache tekstur untuk digunakan kembali sebagai tekstur input bagian dalam dari framebuffer sebelumnya. - + Read Targets When Closing - Read Targets When Closing + Baca Target Saat Menutup - + Flushes all targets in the texture cache back to local memory when shutting down. - Flushes all targets in the texture cache back to local memory when shutting down. + Membuat semua target di cache tekstur di-flush kembali ke memori lokal saat mematikan. - + Estimate Texture Region - Estimate Texture Region + Perkirakan Region Tekstur - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). + Mengupayakan pengurangan ukuran tekstur jika game tidak mengaturnya (mis. game dengan Snowblind engine). - + GPU Palette Conversion - GPU Palette Conversion - - - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. + Konversi Palet GPU - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Half-Pixel Offset + Perbaikan Upscaling - + Adjusts vertices relative to upscaling. - Adjusts vertices relative to upscaling. + Menyesuaikan titik sudut relatif terhadap upscaling. - + Round Sprite Sprite bundar - + Adjusts sprite coordinates. - Adjusts sprite coordinates. + Menyesuaikan koordinat sprite. - + Bilinear Upscale Pembesaran Bilinear - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - - - TC Offset X - TC Offset X + Dapat menghaluskan tekstur dengan di-filter secara bilinear saat upscaling. Mis. Efek sinar matahari di game Brave. - + Adjusts target texture offsets. - Adjusts target texture offsets. - - - - TC Offset Y - TC Offset Y + Adjusts target texture offsets. - + Align Sprite - Align Sprite + Sejajarkan Sprite - + Fixes issues with upscaling (vertical lines) in some games. - Fixes issues with upscaling (vertical lines) in some games. + Memperbaiki masalah upscaling (garis vertikal) di beberapa permainan. - + Merge Sprite - Merge Sprite + Gabungkan Sprite - + Replaces multiple post-processing sprites with a larger single sprite. - Replaces multiple post-processing sprites with a larger single sprite. + Menggantikan beberapa sprite post-processing dengan satu sprite yang lebih besar. - + Wild Arms Hack - Wild Arms Hack + Hack Wild Arms - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. + Menurunkan presisi GS untuk menghindari celah antar piksel saat upscaling. Memperbaiki teks di seri game Wild Arms. - + Unscaled Palette Texture Draws - Unscaled Palette Texture Draws + Render Palet Tekstur Tidak Berskala - + Can fix some broken effects which rely on pixel perfect precision. - Can fix some broken effects which rely on pixel perfect precision. + Dapat memperbaiki sebagian efek yang rusak, yang mengandalkan presisi piksel yang sempurna. - + Texture Replacement - Texture Replacement + Penggantian Tekstur - + Load Textures - Load Textures + Muat Tekstur - + Loads replacement textures where available and user-provided. - Loads replacement textures where available and user-provided. + Memuat tekstur pengganti jika tersedia dan disediakan oleh pengguna. - + Asynchronous Texture Loading - Asynchronous Texture Loading + Pemuat Tekstur Asinkron - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Memuat tekstur pengganti pada thread pekerja, mengurangi microstutter apabila penggantian diaktifkan. - + Precache Replacements - Precache Replacements + Prechache Penggantian Tekstur - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. - Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Memuat semua tekstur pengganti ke memori. Tidak diperlukan dengan pemuatan asinkron. - + Replacements Directory - Replacements Directory + Direktori Penggantian - + Folders - Folders + Folder - + Texture Dumping - Texture Dumping + Dump Tekstur - + Dump Textures - Dump Textures - - - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. + Dump Tekstur - + Dump Mipmaps - Dump Mipmaps + Dump Mipmap - + Includes mipmaps when dumping textures. - Includes mipmaps when dumping textures. + Masukkan mipmap saat dump tekstur. - + Dump FMV Textures - Dump FMV Textures + Dump Tekstur FMV - + Allows texture dumping when FMVs are active. You should not enable this. - Allows texture dumping when FMVs are active. You should not enable this. + Mengizinkan dump tekstur saat FMV aktif. Anda sebaiknya tidak mengaktifkan ini. - + Post-Processing - Post-Processing + Post Processing - + FXAA - FXAA + FXAA - + Enables FXAA post-processing shader. - Enables FXAA post-processing shader. + Mengaktifkan shader post processing FXAA. - + Contrast Adaptive Sharpening - Contrast Adaptive Sharpening + Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. - Enables FidelityFX Contrast Adaptive Sharpening. + Nyalakan FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness Ketajaman CAS - + Determines the intensity the sharpening effect in CAS post-processing. - Determines the intensity the sharpening effect in CAS post-processing. + Menentukan intensitas efek penajaman dalam post processing CAS. - + Filters Filter - + Shade Boost - Shade Boost + Shade Boost - + Enables brightness/contrast/saturation adjustment. - Enables brightness/contrast/saturation adjustment. + Memungkinkan penyesuaian kecerahan, kontras, dan saturasi. - + Shade Boost Brightness - Shade Boost Brightness + Kecerahan Shade Boost - + Adjusts brightness. 50 is normal. - Adjusts brightness. 50 is normal. + Menyesuaikan kecerahan. Normalnya 50. - + Shade Boost Contrast - Shade Boost Contrast + Kontras Shade Boost - + Adjusts contrast. 50 is normal. - Adjusts contrast. 50 is normal. + Menyesuaikan kontras. Normalnya 50. - + Shade Boost Saturation - Shade Boost Saturation + Saturasi Shade Boost - + Adjusts saturation. 50 is normal. - Adjusts saturation. 50 is normal. + Menyesuaikan saturasi. Normalnya 50. - + TV Shaders Shader TV - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced - Advanced + Tingkat Lanjut - + Skip Presenting Duplicate Frames Lewati Menampilkan Frame Duplikat - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation - Disable Threaded Presentation - - - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. + Nonaktifkan Presentasi Threaded - + Hardware Download Mode Mode Unduhan Hardware - + Changes synchronization behavior for GS downloads. - Changes synchronization behavior for GS downloads. + Mengubah perilaku sinkronisasi untuk unduhan GS. - + Allow Exclusive Fullscreen - Allow Exclusive Fullscreen + Izinkan Mode Layar Penuh Eksklusif - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. + Mengambil alih heuristis driver untuk mengaktifkan layar penuh ekslusif, atau direct flip/scanout. - + Override Texture Barriers - Override Texture Barriers + Timpa Barier Tekstur - + Forces texture barrier functionality to the specified value. - Forces texture barrier functionality to the specified value. + Memaksakan fungsi penghalang tekstur ke nilai yang ditentukan. - + GS Dump Compression - GS Dump Compression + Kompresi GS Dump - + Sets the compression algorithm for GS dumps. - Sets the compression algorithm for GS dumps. + Mengatur algoritma kompresi untuk dump GS. - + Disable Framebuffer Fetch - Disable Framebuffer Fetch + Matikan Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. - Prevents the usage of framebuffer fetch when supported by host GPU. + Mencegah penggunaan framebuffer fetch bila didukung oleh GPU host. - + Disable Dual-Source Blending - Disable Dual-Source Blending + Matikan Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. - Prevents the usage of dual-source blending when supported by host GPU. + Mencegah penggunaan dual-source blending bila didukung oleh GPU host. - + Disable Shader Cache - Disable Shader Cache + Matikan Cache Shader - + Prevents the loading and saving of shaders/pipelines to disk. - Prevents the loading and saving of shaders/pipelines to disk. + Mencegah pemuatan dan penyimpanan shader/pipeline ke disk. - + Disable Vertex Shader Expand - Disable Vertex Shader Expand + Nonaktifkan Perluasan Shader Verteks - + Falls back to the CPU for expanding sprites/lines. - Falls back to the CPU for expanding sprites/lines. + Kembali ke CPU untuk memperluas sprite/baris. - + Runtime Settings - Runtime Settings + Pengaturan Runtime - + Applies a global volume modifier to all sound produced by the game. - Applies a global volume modifier to all sound produced by the game. + Menerapkan pengubah volume global ke semua suara yang dihasilkan oleh game. - + Mixing Settings - Mixing Settings + Pengaturan Mixing - + Changes when SPU samples are generated relative to system emulation. - Changes when SPU samples are generated relative to system emulation. + Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. - Determines how the stereo output is transformed to greater speaker counts. + Menentukan bagaimana output stereo ditransformasikan ke jumlah speaker yang lebih banyak. - + Output Settings - Output Settings + Pengaturan Output - + Determines which API is used to play back audio samples on the host. - Determines which API is used to play back audio samples on the host. + Menentukan API mana yang digunakan untuk memutar sampel audio pada host. - + Sets the average output latency when using the cubeb backend. - Sets the average output latency when using the cubeb backend. + Mengatur latensi output rata-rata saat menggunakan backend cubeb. + + + + %d ms (avg) + %d ms (rata-rata) - + Timestretch Settings - Timestretch Settings + Pengaturan Timestretch - + Affects how the timestretcher operates when not running at 100% speed. - Affects how the timestretcher operates when not running at 100% speed. + Mempengaruhi cara kerja timestretcher ketika emulasi tidak berjalan pada kecepatan 100%. + + + + %d ms + %d ms - + Settings and Operations - Settings and Operations + Pengaturan dan Pengoperasian - + Creates a new memory card file or folder. - Creates a new memory card file or folder. + Membuat file atau folder memory card baru. - + Simulates a larger memory card by filtering saves only to the current game. - Simulates a larger memory card by filtering saves only to the current game. + Mensimulasikan Memory Card yang lebih besar dengan memfilter penyimpanan hanya untuk permainan saat ini saja. - + Automatically ejects Memory Cards when they differ after loading a state. - Automatically ejects Memory Cards when they differ after loading a state. + Secara otomatis mengeluarkan Memory Card bila berbeda setelah memuat status. - + If not set, this card will be considered unplugged. - If not set, this card will be considered unplugged. + Jika tidak di aktifkan, Memory Card ini akan dianggap tercabut. - + The selected memory card image will be used for this slot. - The selected memory card image will be used for this slot. + Image Memory Card yang dipilih akan digunakan untuk slot ini. - + Resets the card name for this slot. - Resets the card name for this slot. + Mengatur ulang nama Memory Card untuk slot ini. - + Create Memory Card - Create Memory Card + Buat Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. + Masukkan nama Memory Card yang ingin dibuat, lalu pilih kapasitasnya. Kami merekomendasikan Memory Card 8 MB atau Memory Card folder untuk kompatibilitas terbaik. - + Card Name: - Card Name: + Nama Memory Card: - + Configuration - Configuration + Konfigurasi - + Uses game-specific settings for controllers for this game. - Uses game-specific settings for controllers for this game. + Menggunakan pengaturan spesifik game untuk kontroler game ini. - + Copies the global controller configuration to this game. - Copies the global controller configuration to this game. + Menyalin konfigurasi kontroler global ke game ini. - + Resets all configuration to defaults (including bindings). - Resets all configuration to defaults (including bindings). + Mengatur ulang semua konfigurasi ke default (termasuk penetapan tombol). - + Replaces these settings with a previously saved input profile. - Replaces these settings with a previously saved input profile. + Mengganti pengaturan ini dengan profil input yang disimpan sebelumnya. - + Stores the current settings to an input profile. - Stores the current settings to an input profile. + Menyimpan pengaturan saat ini ke profil input. - + Input Sources - Input Sources + Sumber Input - + The SDL input source supports most controllers. - The SDL input source supports most controllers. + Sumber input SDL mendukung kebanyakan kontroler. - + Provides vibration and LED control support over Bluetooth. - Provides vibration and LED control support over Bluetooth. + Menyediakan dukungan kontrol getaran dan LED melalui Bluetooth. - + Allow SDL to use raw access to input devices. - Allow SDL to use raw access to input devices. + Izinkan SDL menggunakan akses ke perangkat input. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - The XInput source provides support for XBox 360/XBox One/XBox Series controllers. + Sumber XInput mendukung kontroler Xbox 360 / Xbox One / Xbox Series. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. - Enables an additional three controller slots. Not supported in all games. + Mengaktifkan tiga slot kontroler tambahan. Tidak didukung di semua game. - + Attempts to map the selected port to a chosen controller. - Attempts to map the selected port to a chosen controller. + Mencoba memetakan port yang dipilih ke kontroler yang dipilih. - + No Buttons Selected - No Buttons Selected + Tidak ada tombol yang dipilih - + Determines how much pressure is simulated when macro is active. - Determines how much pressure is simulated when macro is active. + Menentukan berapa banyak tekanan yang disimulasikan ketika makro aktif. - + Determines the pressure required to activate the macro. - Determines the pressure required to activate the macro. + Menentukan tekanan yang diperlukan untuk mengaktifkan makro. - + Toggle every %d frames - Toggle every %d frames + Ubah setiap %d frame - + Clears all bindings for this USB controller. - Clears all bindings for this USB controller. + Hapus semua penetapan tombol untuk kontroler USB ini. - + Data Save Locations - Data Save Locations + Lokasi Penyimpanan Data - + Show Advanced Settings - Show Advanced Settings + Tampilkan Pengaturan Lanjutan - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. + Mengubah pengaturan berikut dapat menyebabkan game gagal berfungsi. Ubah pengaturan dengan risiko Anda sendiri, tim PCSX2 tidak akan memberikan dukungan untuk konfigurasi dengan perubahan pengaturan berikut. - + Logging - Logging + Pencatatan Log - + System Console Konsol Sistem - + Writes log messages to the system console (console window/standard output). - Writes log messages to the system console (console window/standard output). + Menulis pesan log ke konsol sistem (jendela konsol/output standar). - + File Logging - File Logging + Logging File - + Writes log messages to emulog.txt. - Writes log messages to emulog.txt. + Menulis pesan log ke emulog.txt. - + Verbose Logging - Verbose Logging + Logging Detail - + Writes dev log messages to log sinks. - Writes dev log messages to log sinks. + Menulis pesan log dev ke log sink. - + Log Timestamps - Log Timestamps + Cap Waktu Log - + Writes timestamps alongside log messages. - Writes timestamps alongside log messages. + Menulis cap waktu di samping pesan log. - + EE Console - EE Console + Konsol EE - + Writes debug messages from the game's EE code to the console. - Writes debug messages from the game's EE code to the console. + Menulis pesan debug dari kode EE game ke konsol. - + IOP Console - IOP Console + Konsol IOP - + Writes debug messages from the game's IOP code to the console. - Writes debug messages from the game's IOP code to the console. + Menulis pesan debug dari kode IOP game ke konsol. - + CDVD Verbose Reads - CDVD Verbose Reads + Pembacaan Detail CDVD - + Logs disc reads from games. - Logs disc reads from games. + Mencatat pembacaan disk yang dibaca dari game. - + Emotion Engine Emotion Engine - + Rounding Mode - Rounding Mode + Mode Pembulatan - + Determines how the results of floating-point operations are rounded. Some games need specific settings. - Determines how the results of floating-point operations are rounded. Some games need specific settings. + Menentukan bagaimana hasil operasi floating-point dibulatkan. Beberapa game memerlukan pengaturan khusus. - + Clamping Mode - Clamping Mode + Mode Clamping - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. - Determines how out-of-range floating point numbers are handled. Some games need specific settings. + Menentukan bagaimana angka floating point di luar jangkauan ditangani. Beberapa game memerlukan pengaturan khusus. - + Enable EE Recompiler - Enable EE Recompiler + Aktifkan EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. + Menjalankan penerjemahan binary yang tepat waktu dari kode mesin MIPS-IV 64-bit ke kode asli. - + Enable EE Cache - Enable EE Cache + Aktifkan Cache EE - + Enables simulation of the EE's cache. Slow. - Enables simulation of the EE's cache. Slow. + Mengaktifkan simulasi cache EE. Lambat. - + Enable INTC Spin Detection - Enable INTC Spin Detection + Aktifkan Deteksi Spin INTC - + Huge speedup for some games, with almost no compatibility side effects. - Huge speedup for some games, with almost no compatibility side effects. + Meningkatkan performa dengan sangat signifikan untuk sebagian game, dengan hampir tanpa efek samping terhadap kompatibilitas. - + Enable Wait Loop Detection - Enable Wait Loop Detection + Aktifkan Deteksi Wait Loop - + Moderate speedup for some games, with no known side effects. - Moderate speedup for some games, with no known side effects. + Meningkatkan performa untuk sebagian game, tanpa efek samping yang diketahui. - + Enable Fast Memory Access - Enable Fast Memory Access + Aktifkan Akses Memori Cepat - + Uses backpatching to avoid register flushing on every memory access. - Uses backpatching to avoid register flushing on every memory access. + Menggunakan backpatching untuk menghindari register flush pada setiap akses memori. - + Vector Units - Vector Units + Vector Units - + VU0 Rounding Mode - VU0 Rounding Mode + Mode Pembulatan VU0 - + VU0 Clamping Mode - VU0 Clamping Mode + Mode Clamping VU0 - + VU1 Rounding Mode - VU1 Rounding Mode + Mode Pembulatan VU1 - + VU1 Clamping Mode - VU1 Clamping Mode + Mode Clamping VU1 - + Enable VU0 Recompiler (Micro Mode) - Enable VU0 Recompiler (Micro Mode) + Aktifkan Recompiler VU0 (Mode Mikro) - + New Vector Unit recompiler with much improved compatibility. Recommended. - New Vector Unit recompiler with much improved compatibility. Recommended. + Vector Unit recompiler baru dengan kompabilitas yang lebih baik. Direkomendasikan. - + Enable VU1 Recompiler - Enable VU1 Recompiler + Aktifkan Recompiler VU1 - + Enable VU Flag Optimization - Enable VU Flag Optimization + Aktifkan Flag Optimisasi VU - + Good speedup and high compatibility, may cause graphical errors. - Good speedup and high compatibility, may cause graphical errors. + Meningkatkan performa dan memiliki kompatibilitas tinggi, dapat menyebabkan eror pada grafis. - + I/O Processor - I/O Processor + Prosesor I/O - + Enable IOP Recompiler - Enable IOP Recompiler + Aktifkan IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. + Menjalankan penerjemahan kode binari yang tepat waktu dari kode mesin MIPS-I 32-bit ke kode asli. - + Graphics Grafis - + Use Debug Device Gunakan Perangkat Debug - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings - Settings + Pengaturan - + No cheats are available for this game. - No cheats are available for this game. + Tidak ada cheat yang tersedia untuk game ini. - + Cheat Codes - Cheat Codes + Kode Cheat - + No patches are available for this game. - No patches are available for this game. + Tidak ada patch yang tersedia untuk game ini. - + Game Patches - Game Patches + Patch Game - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. + Mengaktifkan cheat dapat menyebabkan perilaku yang tidak dapat diprediksi, crash, soft-lock, atau merusak save game. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. + Mengaktifkan cheat dapat menyebabkan perilaku yang tidak dapat diprediksi, crash, soft-lock, atau merusak save game. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. + Gunakan patch dengan risiko Anda sendiri, tim PCSX2 tidak akan memberikan dukungan bagi pengguna yang telah mengaktifkan patch game. - + Game Fixes - Game Fixes + Perbaikan Game - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. + Perbaikan game tidak seharusnya dimodifikasi kecuali Anda mengetahui apa yang dilakukan oleh setiap opsi dan implikasinya. - + FPU Multiply Hack - FPU Multiply Hack + Hack Perkalian FPU - + For Tales of Destiny. - For Tales of Destiny. + Untuk Tales of Destiny. - + FPU Negative Div Hack - FPU Negative Div Hack + Hack Pembagian Negatif FPU - + For Gundam games. - For Gundam games. + Untuk game Gundam. - + Preload TLB Hack - Preload TLB Hack + Pramuat Hack TLB - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. - Needed for some games with complex FMV rendering. + Diperlukan untuk beberapa game dengan rendering FMV yang kompleks. - + Skip MPEG Hack - Skip MPEG Hack + Hack Lewati MPEG - + Skips videos/FMVs in games to avoid game hanging/freezes. - Skips videos/FMVs in games to avoid game hanging/freezes. + Melompati video/FMV dalam game untuk menghindari game hang/macet. - + OPH Flag Hack - OPH Flag Hack + Hack Flag OPH - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. + + EE Timing Hack + Hack Timing EE - - EE Timing Hack - EE Timing Hack + + Instant DMA Hack + Hack DMA Instan - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Diketahui mempengaruhi game-game berikut: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Instant DMA Hack - Instant DMA Hack + + For SOCOM 2 HUD and Spy Hunter loading hang. + Untuk SOCOM 2 HUD dan Spy Hunter hang saat memuat. - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + VU Add Hack + Hack Add VU - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + Full VU0 Synchronization + Sinkronisasi Penuh VU0 - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + Forces tight VU0 sync on every COP2 instruction. + Memaksakan sinkronisasi VU0 yang ketat pada setiap instruksi COP2. - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + VU Overflow Hack + Hack Overflow VU - - (Fifa Street 2). - (Fifa Street 2). + + To check for possible float overflows (Superman Returns). + Untuk memeriksa kemungkinan float overflow (Superman Returns). - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + Use accurate timing for VU XGKicks (slower). + Gunakan pengaturan waktu yang akurat untuk VU XGKicks (lebih lambat). - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + Quadraphonic + Quadrafonik - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Load State + Muat Savestate - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Melewati siklus Emotion Engine yang diemulasikan. Membantu sebagian kecil game seperti SOTC. Namun dapat berdampak buruk pada performa di kebanyakan game. - - VU Add Hack - VU Add Hack + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Meningkatkan performa di CPU dengan 4 core atau lebih. Aman untuk sebagian besar game, namun beberapa game tidak kompatibel dengan opsi ini dan mungkin akan hang. - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Jalankan VU1 dengan instan. Dapat menambah performa di kebanyakan game. Aman untuk kebanyakan game, namun dapat menyebabkan eror grafis di beberapa game. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Scale To Host Refresh Rate + Skalakan Ke Refresh Rate Host - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Disable Depth Emulation + Nonaktifkan Emulasi Kedalaman - - Full VU0 Synchronization - Full VU0 Synchronization + + Disable the support of depth buffers in the texture cache. + Nonaktifkan dukungan buffer kedalaman di cache tekstur. - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Render Fixes + Nonaktifkan Perbaikan Render - - VU Sync (Run behind) - VU Sync (Run behind) + + Preload Frame Data + Pramuat Data Frame - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Texture Inside RT + Tekstur Dalam RT - - VU Overflow Hack - VU Overflow Hack + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + Jika diaktifkan, GPU akan mengonversi tekstur colormap, jika tidak diaktifkan, tekstur colormap akan dikonversi oleh CPU. Opsi ini memilih kompromi antara CPU dan GPU. - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Half Pixel Offset + Offset Setengah Piksel - - VU XGkick Sync - VU XGkick Sync + + Texture Offset X + Offset Tekstur X - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Texture Offset Y + Offset Tekstur Y - - Use Blit for internal FPS - Use Blit for internal FPS + + Dumps replaceable textures to disk. Will reduce performance. + Dump tekstur yang dapat diganti ke disk. Akan mengurangi performa. - - Quadraphonic - Quadraphonic + + Applies a shader which replicates the visual effects of different styles of television set. + Menerapkan shader yang mereplikasi efek visual dari berbagai jenis televisi. - - Load State - Load State + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Melewatkan tampilan frame yang tidak berubah dalam game 25/30fps. Dapat meningkatkan kecepatan tetapi meningkatkan jeda input/membuat frame pacing menjadi lebih buruk. - - Save State - Save State + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Menyajikan frame pada thread GS utama, bukan pada thread worker. Digunakan untuk men-debug masalah frametime. - - Load Resume State - Load Resume State + + Enables API-level validation of graphics commands. + Mengaktifkan validasi tingkat API untuk perintah grafis. - - A resume save state created at %s was found. - -Do you want to load this save and continue? - A resume save state created at %s was found. - -Do you want to load this save and continue? + + Use Software Renderer For FMVs + Gunakan Perender Software untuk FMV - - Region: - Region: + + To avoid TLB miss on Goemon. + Untuk menghindari TLB Miss dalam Goemon. - - Compatibility: - Kompatibilitas: + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Hack timing untuk berbagai tujuan. Diketahui dapat mempengaruhi game-game berikut ini: Digital Devil Saga, SSX. - - No Game Selected - No Game Selected + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Baik untuk masalah emulasi cache. Diketahui dapat mempengaruhi game-game berikut ini: Fire Pro Wrestling Z. - - Search Directories - Search Directories + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Diketahui dapat mempengaruhi game-game berikut: Bleach Blade Battles, Growlanser II dan III, Wizardry. - - Adds a new directory to the game search list. - Adds a new directory to the game search list. + + Emulate GIF FIFO + Emulasi GIF FIFO - - Scanning Subdirectories - Scanning Subdirectories + + Correct but slower. Known to affect the following games: Fifa Street 2. + Benar tetapi lebih lambat. Diketahui dapat mempengaruhi game-game berikut ini: FIFA Street 2. - - Not Scanning Subdirectories - Not Scanning Subdirectories + + DMA Busy Hack + Hack DMA Sibuk - - List Settings - List Settings + + Delay VIF1 Stalls + Mengundur VIF1 Stalls - - Sets which view the game list will open to. - Sets which view the game list will open to. + + Emulate VIF FIFO + Emulasi VIF FIFO - - Determines which field the game list will be sorted by. - Determines which field the game list will be sorted by. + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulasikan Readahead VIF1 FIFO. Diketahui dapat mempengaruhi game berikut ini: Test Drive Unlimited, Transformers. - - Reverses the game list sort order from the default (usually ascending to descending). - Reverses the game list sort order from the default (usually ascending to descending). + + VU I Bit Hack + Hack VU I Bit - - Cover Settings - Pengaturan Sampul + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Menghindari rekompilasi yang konstan di beberapa game. Diketahui mempengaruhi game-game berikut ini: Scarface The World is Yours, Crash Tag Team Racing. - - Downloads covers from a user-specified URL template. - Downloads covers from a user-specified URL template. + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Untuk Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - - Operations - Operations + + VU Sync + Sinkron VU - - Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + + Run behind. To avoid sync problems when reading or writing VU registers. + Untuk menghindari masalah sinkronisasi saat membaca atau menulis register VU. - - Identifies any new files added to the game directories. - Identifies any new files added to the game directories. + + VU XGKick Sync + Sinkron VU XGKick - - Forces a full rescan of all games previously identified. - Forces a full rescan of all games previously identified. + + Force Blit Internal FPS Detection + Paksa Deteksi Blit FPS Internal - - Download Covers - Unduh Sampul + + Save State + Simpan Savestate - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 dapat mengunduh sampul game yang tidak memiliki sampul secara otomatis. Kami tidak menghosting gambar sampul apa pun, Anda harus menyediakan sumber gambar sampul sendiri. + + Load Resume State + Muat Save State Lanjutan - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: + + A resume save state created at %s was found. + +Do you want to load this save and continue? + Savestate lanjutan dibuat pada %s ditemukan. + + +Apakah Anda ingin memuat savestate ini dan melanjutkan? - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. + + Region: + Region: - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg + + Compatibility: + Kompatibilitas: - - Use Serial File Names - Use Serial File Names + + No Game Selected + Tidak Ada Game yang Dipilih - - About PCSX2 - About PCSX2 + + Search Directories + Direktori Pencarian - - PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. + + Adds a new directory to the game search list. + Menambahkan direktori baru ke daftar pencarian game. - - PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. + + Scanning Subdirectories + Memindai subdirektori - - XXX points - XXX points + + Not Scanning Subdirectories + Tidak memindai subdirektori - - Unlocked Achievements - Unlocked Achievements + + List Settings + Pengaturan Daftar - - Locked Achievements - Locked Achievements + + Sets which view the game list will open to. + Mengatur tampilan mana yang akan digunakan untuk daftar game. - - Active Challenge Achievements - Active Challenge Achievements + + Determines which field the game list will be sorted by. + Menentukan field mana daftar permainan akan diurutkan. - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + Reverses the game list sort order from the default (usually ascending to descending). + Membalikkan urutan daftar game dari default (biasanya atas ke bawah). - - Rank - Rank + + Cover Settings + Pengaturan Sampul - - Name - Name + + Downloads covers from a user-specified URL template. + Mengunduh sampul dari URL yang ditentukan pengguna. - - Time - Time + + Operations + Tindakan - - Score - Score + + Selects where anisotropic filtering is utilized when rendering textures. + Memilih di mana pemfilteran anisotropis digunakan ketika merender tekstur. - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Gunakan metode alternatif untuk menghitung FPS internal untuk menghindari pembacaan yang salah di beberapa game. - - When enabled and logged in, PCSX2 will scan for achievements on startup. - When enabled and logged in, PCSX2 will scan for achievements on startup. + + Identifies any new files added to the game directories. + Mengidentifikasi file baru yang ditambahkan ke direktori game. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. + + Forces a full rescan of all games previously identified. + Memaksa pemindaian ulang penuh semua game yang telah diidentifikasi sebelumnya. - - "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. + + Download Covers + Unduh Sampul - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. + + About PCSX2 + Tentang PCSX2 - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Displays popup messages on events such as achievement unlocks and leaderboard submissions. + + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. + PCSX2 adalah sebuah emulator PlayStation 2 (PS2) yang bebas dan bersumber terbuka (open-source). Bertujuan untuk mengemulasikan perangkat keras PS2 menggunakan kombinasi dari Interpreter MIPS CPU, Recompiler, dan Mesin Virtual yang mengelola berbagai perangkat dan sistem memori dari PS2. Memungkinkan Anda untuk memainkan game PS2 di PC dengan banyak fitur tambahan. - - Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Plays sound effects for events such as achievement unlocks and leaderboard submissions. + + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. + PlayStation 2 dan PS2 adalah merek dagang terdaftar dari Sony Interactive Entertainment. Aplikasi ini sama sekali tidak berafiliasi dengan Sony Interactive Entertainment. - - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Apabila diaktifkan dan telah masuk, PCSX2 akan memindai prestasi saat pengaktifan. - - When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. + + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. + Mode "tantangan" untuk prestasi dan pelacakan papan peringkat. Menonaktifkan fungsi save state, cheat, dan juga gerak lambat. - - When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. + + Displays popup messages on events such as achievement unlocks and leaderboard submissions. + Menampilkan pesan popup untuk aktivitas seperti pencapaian prestasi dan peningkatan di papan peringkat. - - Account - Account + + Plays sound effects for events such as achievement unlocks and leaderboard submissions. + Memainkan efek suara untuk aktivitas seperti pencapaian prestasi dan peningkatan di papan peringkat. - - Logs out of RetroAchievements. - Logs out of RetroAchievements. + + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + Menampilkan ikon indikator di pojok kanan bawah layar saat prestasi utama/tantangan sedang aktif. - - Logs in to RetroAchievements. - Logs in to RetroAchievements. + + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. + Jika diaktifkan, PCSX2 akan menampilkan daftar prestasi dari set tidak resmi. Daftar prestasi tersebut tidak akan dilacak oleh RetroAchievements, dan akan terbuka setiap anda meraihnya. - - Current Game - Current Game + + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. + Jika diaktifkan, PCSX2 akan menganggap semua prestasi terkunci dan tidak akan mengirimkan notifikasi pencapaian prestasi ke server RetroAchievements. - - Achievements Login - Achievements Login + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Menampilkan pesan popup ketika memulai, mengirimkan, atau gagal dalam tantangan papan peringkat. - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. + + When enabled, each session will behave as if no achievements have been unlocked. + Ketika diaktifkan, setiap sesi akan berperilaku seolah-olah tidak ada prestasi yang belum dibuka. - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. + + Account + Akun + + + + Logs out of RetroAchievements. + Keluar dari RetroAchievements. - - User Name: - Nama Pengguna: + + Logs in to RetroAchievements. + Masuk ke RetroAchievements. - - Password: - Kata Sandi: + + Current Game + Permainan Saat Ini - + {} is not a valid disc image. - {} is not a valid disc image. + {} bukan image disk yang valid. - + Automatic mapping completed for {}. - Automatic mapping completed for {}. + Penetapan tombol otomatis telah selesai untuk {}. - + Automatic mapping failed for {}. - Automatic mapping failed for {}. + Penetapan tombol otomatis gagal untuk {}. - + Game settings initialized with global settings for '{}'. - Game settings initialized with global settings for '{}'. + Pengaturan game diinisialisasi dengan pengaturan global untuk '{}'. - + Game settings have been cleared for '{}'. - Game settings have been cleared for '{}'. + Pengaturan game telah dihapus untuk '{}'. - + Console Port {} - Console Port {} + Port Konsol {} - + {} (Current) - {} (Current) + {} (Saat Ini) - + {} (Folder) - {} (Folder) + {} (Folder) - + Memory card name '{}' is not valid. - Memory card name '{}' is not valid. + Nama Memory Card '{}' tidak valid. - + Memory Card '{}' created. - Memory Card '{}' created. + Memory Card '{}' berhasil dibuat. - + Failed to create memory card '{}'. - Failed to create memory card '{}'. + Gagal membuat Memory Card '{}'. - + A memory card with the name '{}' already exists. - A memory card with the name '{}' already exists. + Memory Card dengan nama '{}' sudah ada. - + Failed to load '{}'. - Failed to load '{}'. + Gagal memuat '{}'. - + Input profile '{}' loaded. - Input profile '{}' loaded. + Profil input '{}' berhasil dimuat. - + Input profile '{}' saved. - Input profile '{}' saved. + Profil input '{}' berhasil disimpan. - + Failed to save input profile '{}'. - Failed to save input profile '{}'. + Gagal menyimpan profil input '{}'. - + Port {} Controller Type - Port {} Controller Type + Port {} Tipe Kontroler - + Select Macro {} Binds - Select Macro {} Binds + Pilih Makro {} Penetapan Tombol - + + Macro {} Frequency + Frekuensi Makro {} + + + Macro will toggle every {} frames. - Macro will toggle every {} frames. + Makro akan aktif setiap {} frame. - + Port {} Device - Port {} Device + Perangkat Port {} - + Port {} Subtype - Port {} Subtype + Subtipe Port {} - + {} unlabelled patch codes will automatically activate. - {} unlabelled patch codes will automatically activate. + {} kode patch yang tidak berlabel akan diaktifkan secara otomatis. - + {} unlabelled patch codes found but not enabled. - {} unlabelled patch codes found but not enabled. + {} kode patch yang tidak berlabel ditemukan tetapi tidak diaktifkan. - + This Session: {} - This Session: {} + Sesi Ini: {} - + All Time: {} - All Time: {} + Total Waktu: {} - + Save Slot {0} - Save Slot {0} + Slot Savestate {0} - + Saved {} - Saved {} + Tersimpan pada {} - + {} does not exist. - {} does not exist. + {} tidak ada. - + {} deleted. - {} deleted. + {} dihapus. - + Failed to delete {}. - Failed to delete {}. + Gagal menghapus {}. - + File: {} - File: {} + File: {} - + CRC: {:08X} - CRC: {:08X} + CRC: {:08X} - + Time Played: {} - Time Played: {} + Lama Bermain: {} - + Last Played: {} - Last Played: {} + Terakhir Dimainkan: {} - + Size: {:.2f} MB - Size: {:.2f} MB - - - - {} points - {} points + Ukuran: {:.2f} MB - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Kiri: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Atas: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Kanan: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bawah: - + Summary - Summary + Ringkasan - + Interface Settings - Interface Settings + Pengaturan Antarmuka - + BIOS Settings - BIOS Settings + Pengaturan BIOS - + Emulation Settings Pengaturan Emulasi - + Graphics Settings Pengaturan Grafis - + Audio Settings Pengaturan Audio - + Memory Card Settings Pengaturan Memory Card - + Controller Settings Pengaturan Kontroler - + Hotkey Settings - Hotkey Settings + Pengaturan Hotkey - + Achievements Settings - Achievements Settings + Pengaturan Prestasi - + Folder Settings - Folder Settings + Pengaturan folder - + Advanced Settings - Advanced Settings + Pengaturan Lanjutan - + Patches - Patches + Patch - + Cheats Cheat - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] - 2% [1 FPS (NTSC) / 1 FPS (PAL)] + 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - 10% [6 FPS (NTSC) / 5 FPS (PAL)] + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - 25% [15 FPS (NTSC) / 12 FPS (PAL)] + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - 50% [30 FPS (NTSC) / 25 FPS (PAL)] + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - 75% [45 FPS (NTSC) / 37 FPS (PAL)] + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - 90% [54 FPS (NTSC) / 45 FPS (PAL)] + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - 100% [60 FPS (NTSC) / 50 FPS (PAL)] + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - 110% [66 FPS (NTSC) / 55 FPS (PAL)] + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - 120% [72 FPS (NTSC) / 60 FPS (PAL)] + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - 150% [90 FPS (NTSC) / 75 FPS (PAL)] + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - 175% [105 FPS (NTSC) / 87 FPS (PAL)] + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - 200% [120 FPS (NTSC) / 100 FPS (PAL)] + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - 300% [180 FPS (NTSC) / 150 FPS (PAL)] + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - 400% [240 FPS (NTSC) / 200 FPS (PAL)] + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - 500% [300 FPS (NTSC) / 250 FPS (PAL)] + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - 1000% [600 FPS (NTSC) / 500 FPS (PAL)] + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed - 50% Speed + Kecepatan 50% - + 60% Speed - 60% Speed + Kecepatan 60% - + 75% Speed - 75% Speed + Kecepatan 75% - + 100% Speed (Default) - 100% Speed (Default) + Kecepatan 100% (Default) - + 130% Speed - 130% Speed + Kecepatan 130% - + 180% Speed - 180% Speed + Kecepatan 180% - + 300% Speed - 300% Speed + Kecepatan 300% - + Normal (Default) - Normal (Default) + Normal (Default) - + Mild Underclock - Mild Underclock + Underclock Ringan - + Moderate Underclock - Moderate Underclock + Underclock Sedang - + Maximum Underclock - Maximum Underclock + Underclock Maksimum - + Disabled - Disabled + Nonaktif - + EE > VU > GS - EE > VU > GS + EE > VU > GS - + EE > GS > VU - EE > GS > VU + EE > GS > VU - + VU > EE > GS - VU > EE > GS + VU > EE > GS - + VU > GS > EE - VU > GS > EE + VU > GS > EE - + GS > EE > VU - GS > EE > VU + GS > EE > VU - + GS > VU > EE - GS > VU > EE + GS > VU > EE - + 0 Frames (Hard Sync) - 0 Frames (Hard Sync) + 0 Frames (Sinkronisasi Keras) - + 1 Frame - 1 Frame + 1 Frame - + 2 Frames - 2 Frames + 2 Frame - + 3 Frames - 3 Frames + 3 Frame - + None - None + Nonaktif - + Extra + Preserve Sign - Extra + Preserve Sign + Extra + Preserve Sign - + Full - Full + Penuh - + Extra - Extra + Ekstra - + Automatic (Default) - Automatic (Default) + Otomatis (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off - Off + Nonaktif - + On - On + Aktif - + Adaptive - Adaptive + Adaptif - + Bilinear (Smooth) - Bilinear (Smooth) + Bilinear (Halus) - + Bilinear (Sharp) - Bilinear (Sharp) + Bilinear (Tajam) - + Weave (Top Field First, Sawtooth) - Weave (Top Field First, Sawtooth) + Weave (Bidang Atas Terlebih Dahulu, Gerigi) - + Weave (Bottom Field First, Sawtooth) - Weave (Bottom Field First, Sawtooth) + Weave (Bidang Bawah Terlebih Dahulu, Gerigi) - + Bob (Top Field First) - Bob (Top Field First) + Bob (Bidang Atas Lebih Dulu) - + Bob (Bottom Field First) - Bob (Bottom Field First) + Bob (Bidang Bawah Lebih Dulu) - + Blend (Top Field First, Half FPS) - Blend (Top Field First, Half FPS) + Blend (Bidang Atas Terlebih Dahulu, Setengah FPS) - + Blend (Bottom Field First, Half FPS) - Blend (Bottom Field First, Half FPS) + Blend (Bidang Bawah Terlebih Dahulu, Setengah FPS) - + Adaptive (Top Field First) - Adaptive (Top Field First) + Adaptive (Bidang Atas Terlebih Dahulu) - + Adaptive (Bottom Field First) - Adaptive (Bottom Field First) + Adaptive (Bidang Bawah Terlebih Dahulu) - + Native (PS2) - Native (PS2) + Native (PS2) - + 1.25x Native - 1.25x Native + 1.25x Native - + 1.5x Native - 1.5x Native + 1.5x Native - + 1.75x Native - 1.75x Native + 1.75x Native - + 2x Native (~720p) - 2x Native (~720p) + 2x Native (~720p) - + 2.25x Native - 2.25x Native + 2.25x Native - + 2.5x Native - 2.5x Native + 2.5x Native - + 2.75x Native - 2.75x Native + 2.75x Native - + 3x Native (~1080p) - 3x Native (~1080p) + 3x Native (~1080p) - + 3.5x Native - 3.5x Native + 3.5x Native - + 4x Native (~1440p/2K) - 4x Native (~1440p/2K) + 4x Native (~1440p/2K) - + 5x Native (~1620p) - 5x Native (~1620p) + 5x Native (~1620p) - + 6x Native (~2160p/4K) - 6x Native (~2160p/4K) + 6x Native (~2160p/4K) - + 7x Native (~2520p) - 7x Native (~2520p) + 7x Native (~2520p) - + 8x Native (~2880p) - 8x Native (~2880p) + 8x Native (~2880p) - + Basic (Generated Mipmaps) - Basic (Generated Mipmaps) + Dasar (Menghasilkan Mipmap) - + Full (PS2 Mipmaps) - Full (PS2 Mipmaps) + Penuh (Mipmap PS2) - + Nearest - Nearest + Terdekat - + Bilinear (Forced) - Bilinear (Forced) + Bilinear (Paksa) - + Bilinear (PS2) - Bilinear (PS2) + Bilinear (PS2) - + Bilinear (Forced excluding sprite) - Bilinear (Forced excluding sprite) + Bilinear (Paksa tanpa sprite) - + Off (None) - Off (None) + Mati (Nonaktif) - + Trilinear (PS2) - Trilinear (PS2) + Trilinear (PS2) - + Trilinear (Forced) - Trilinear (Forced) + Trilinear (Paksa) - + Scaled - Scaled + Berskala - + Unscaled (Default) - Unscaled (Default) + Tidak Berskala (Default) - + Minimum - Minimum + Minimum - + Basic (Recommended) - Basic (Recommended) + Dasar (Disarankan) - + Medium - Medium + Menengah - + High - High + Tinggi - + Full (Slow) - Full (Slow) + Penuh (Lambat) - + Maximum (Very Slow) - Maximum (Very Slow) + Maksimum (Sangat Lambat) - + Off (Default) - Off (Default) + Nonaktif (Default) - + 2x - 2x + 2x - + 4x - 4x + 4x - + 8x - 8x + 8x - + 16x - 16x + 16x - + Partial - Partial + Sebagian - + Full (Hash Cache) - Full (Hash Cache) + Penuh (Hash Cache) - + Force Disabled - Force Disabled + Paksa Nonaktifkan - + Force Enabled - Force Enabled + Paksa Aktifkan - + Accurate (Recommended) - Accurate (Recommended) + Akurat (Disarankan) - + Disable Readbacks (Synchronize GS Thread) - Disable Readbacks (Synchronize GS Thread) + Nonaktifkan Readback (Sinkronisasi Thread GS) - + Unsynchronized (Non-Deterministic) - Unsynchronized (Non-Deterministic) + Tidak Disinkronisasi (Non Deterministik) - + Disabled (Ignore Transfers) - Disabled (Ignore Transfers) + Nonaktif (Abaikan Transfer) - + Screen Resolution - Screen Resolution + Resolusi Layar + + + + Internal Resolution (Aspect Uncorrected) + Resolusi Internal (Tanpa Koreksi Aspek Rasio) + + + + Cannot show details for games which were not scanned in the game list. + Tidak dapat menampilkan detail untuk game yang tidak dipindai dalam daftar game. + + + + Full Boot + Boot Penuh + + + + Achievement Notifications + Pemberitahuan Prestasi + + + + Leaderboard Notifications + Tampilkan Pemberitahuan Papan Peringkat + + + + Enable In-Game Overlays + Aktifkan Overlay Dalam Game + + + + Encore Mode + Mode Encore - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Spectator Mode + Mode Penonton - + PNG - PNG + PNG - + JPEG - JPEG + JPEG - + 0 (Disabled) - 0 (Disabled) + 0 (Nonaktif) - + 1 (64 Max Width) - 1 (64 Max Width) + 1 (64 Lebar Maksimal) - + 2 (128 Max Width) - 2 (128 Max Width) + 2 (128 Lebar Maksimal) - + 3 (192 Max Width) - 3 (192 Max Width) + 3 (192 Lebar Maksimal) - + 4 (256 Max Width) - 4 (256 Max Width) + 4 (256 Lebar Maksimal) - + 5 (320 Max Width) - 5 (320 Max Width) + 5 (320 Lebar Maksimal) - + 6 (384 Max Width) - 6 (384 Max Width) + 6 (384 Lebar Maksimal) - + 7 (448 Max Width) - 7 (448 Max Width) + 7 (448 Lebar Maksimal) - + 8 (512 Max Width) - 8 (512 Max Width) + 8 (512 Lebar Maksimal) - + 9 (576 Max Width) - 9 (576 Max Width) + 9 (576 Lebar Maksimal) - + 10 (640 Max Width) - 10 (640 Max Width) + 10 (640 Lebar Maksimal) - + Sprites Only - Sprites Only + Hanya Sprite - + Sprites/Triangles - Sprites/Triangles + Sprite/Segitiga - + Blended Sprites/Triangles - Blended Sprites/Triangles + Sprite Campuran/Segitiga - + 1 (Normal) - 1 (Normal) + 1 (Normal) - + 2 (Aggressive) - 2 (Aggressive) + 2 (Agresif) - + Inside Target - Inside Target + Di Dalam Target - + Merge Targets - Merge Targets + Gabungkan Target - + Normal (Vertex) - Normal (Vertex) + Normal (Verteks) - + Special (Texture) - Special (Texture) + Spesial (Tekstur) - + Special (Texture - Aggressive) - Special (Texture - Aggressive) + Spesial (Tekstur - Agresif) - + Half - Half + Setengah - + Force Bilinear - Force Bilinear + Paksa Bilinear - + Force Nearest - Force Nearest + Paksa Terdekat - + Disabled (Default) - Disabled (Default) + Nonaktif (Default) - + Enabled (Sprites Only) - Enabled (Sprites Only) + Aktif (Hanya Sprite) - + Enabled (All Primitives) - Enabled (All Primitives) + Aktif (Semua Primitif) - + None (Default) - None (Default) + Nonaktif (Default) - + Sharpen Only (Internal Resolution) - Sharpen Only (Internal Resolution) + Hanya Pertajam (Resolusi Internal) - + Sharpen and Resize (Display Resolution) - Sharpen and Resize (Display Resolution) + Pertajam dan Ubah Ukuran (Resolusi Layar) - + Scanline Filter - Scanline Filter + Filter Scanline - + Diagonal Filter - Diagonal Filter + Filter Diagonal - + Triangular Filter - Triangular Filter + Filter Triangular - + Wave Filter - Wave Filter + Filter Gelombang - + Lottes CRT - Lottes CRT + Lottes CRT - + 4xRGSS - 4xRGSS + 4xRGSS - + NxAGSS - NxAGSS + NxAGSS - + Uncompressed - Uncompressed + Tidak Dikompres - + LZMA (xz) - LZMA (xz) + LZMA (xz) - + Zstandard (zst) - Zstandard (zst) + Zstandard (zst) - + TimeStretch (Recommended) - TimeStretch (Recommended) + TimeStretch (Disarankan) - + Async Mix (Breaks some games!) - Async Mix (Breaks some games!) + Mix Asinkron (Merusak beberapa game!) - + None (Audio can skip.) - None (Audio can skip.) + Nonaktif (Audio dapat terlewati) - + Stereo (None, Default) - Stereo (None, Default) + Stereo (Tidak Ada, Default) - + Surround 5.1 - Surround 5.1 + Surround 5.1 - + Surround 7.1 - Surround 7.1 + Surround 7.1 - + No Sound (Emulate SPU2 only) - No Sound (Emulate SPU2 only) + Tanpa Suara (Hanya emulasikan SPU2) - + Cubeb (Cross-platform) - Cubeb (Cross-platform) + Cubeb (Cross-platform) - + XAudio2 - XAudio2 + XAudio2 - + PS2 (8MB) - PS2 (8MB) + PS2 (8MB) - + PS2 (16MB) - PS2 (16MB) + PS2 (16MB) - + PS2 (32MB) - PS2 (32MB) + PS2 (32MB) - + PS2 (64MB) - PS2 (64MB) + PS2 (64MB) - + PS1 - PS1 + PS1 - + 8 MB [Most Compatible] - 8 MB [Most Compatible] + 8 MB [Paling Kompatibel] - + 16 MB - 16 MB + 16 MB - + 32 MB - 32 MB + 32 MB - + 64 MB - 64 MB + 64 MB - + Folder [Recommended] - Folder [Recommended] + Folder [Disarankan] - + 128 KB [PS1] - 128 KB [PS1] + 128 KB [PS1] + + + + Negative + Negatif + + + + Positive + Positif + + + + Chop/Zero (Default) + Chop / Zero (Default) - + Game Grid - Game Grid + &Kisi Game - + Game List - Game List + &Daftar Game - + Game List Settings - Game List Settings + Pengaturan Daftar Game - + Type - Type + Tipe - + Serial - Serial + Serial - + Title - Title + Judul - + File Title - File Title + Judul File - + CRC - CRC + CRC - + Time Played - Time Played + Lama Bermain - + Last Played - Last Played + Terakhir Dimainkan - + Size - Size + Ukuran - + Select Disc Image - Select Disc Image + Pilih Image Disk - + Select Disc Drive - Select Disc Drive + Pilih drive disk - + Start File - Start File + Jalankan File - + Start BIOS - Start BIOS + Jalankan BIOS - + Start Disc - Start Disc + Jalankan Disk - + Exit - Exit + Keluar - + Set Input Binding - Set Input Binding + Atur Input Penetapan Tombol - + Region - Region + Region - + Compatibility Rating - Compatibility Rating + Peringkat Kompatibilitas - + Path - Path + Lokasi - + Disc Path - Disc Path + Lokasi Disk - + Select Disc Path - Select Disc Path - - - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. + Pilih Lokasi Disk - + Copy Settings - Copy Settings + Salin Pengaturan - + Clear Settings - Clear Settings + Hapus Pengaturan - + Inhibit Screensaver Matikan Screensaver - + + Enable Discord Presence + Aktifkan Discord Rich Presence + + + Pause On Start - Pause On Start + Pause Saat Memulai - + Pause On Focus Loss - Pause On Focus Loss + Pause Saat Jendela Tidak Dalam Fokus - + Pause On Menu - Pause On Menu + Pause Saat Membuka Menu - + Confirm Shutdown - Confirm Shutdown + Konfirmasi Matikan - + Save State On Shutdown - Save State On Shutdown + Simpan Save State Saat Mematikan - + Enable Per-Game Settings - Enable Per-Game Settings + Aktifkan Pengaturan Per Game - + Use Light Theme Gunakan Tema Terang - + Start Fullscreen - Start Fullscreen + Mulai Dengan Mode Layar Penuh - + Double-Click Toggles Fullscreen - Double-Click Toggles Fullscreen + Aktifkan/Nonaktifkan Layar Penuh Dengan Klik Ganda - + Hide Cursor In Fullscreen - Hide Cursor In Fullscreen + Sembunyikan Kursor di Mode Layar Penuh - + OSD Scale - OSD Scale + Skala OSD - + Show Messages - Show Messages + Tampilkan Pesan - + Show Speed - Show Speed + Tampilkan Kecepatan - + Show FPS - Show FPS + Tampilkan FPS - + Show CPU Usage - Show CPU Usage + Tampilkan Penggunaan CPU - + Show GPU Usage - Show GPU Usage + Tampilkan Penggunaan GPU - + Show Resolution - Show Resolution + Tampilkan Resolusi - + Show GS Statistics - Show GS Statistics + Tampilkan Statistik GS - + Show Status Indicators - Show Status Indicators + Tampilkan Indikator Status - + Show Settings - Show Settings + Tampilkan Pengaturan - + Show Inputs - Show Inputs + Tampilkan Input - + Show Frame Times - Show Frame Times + Tampilkan Frame Time - + Warn About Unsafe Settings - Warn About Unsafe Settings + Peringatkan Tentang Pengaturan Tidak Aman - + Reset Settings - Reset Settings + Atur Ulang Pengaturan - + Change Search Directory - Change Search Directory + Ganti Direktori Pencarian - + Fast Boot - Fast Boot + Boot Cepat - + Output Volume - Output Volume + Volume Output - + Synchronization Mode - Synchronization Mode + Mode Sinkronisasi - + Expansion Mode - Expansion Mode + Mode Ekspansi - + Output Module - Output Module + Modul Output - + Latency - Latency + Latensi - + Sequence Length - Sequence Length + Panjang Urutan - + Seekwindow Size - Seekwindow Size + Ukuran Seekwindow - + Overlap - Overlap + Overlap - + Memory Card Directory - Memory Card Directory + Direktori Memory Card - + Folder Memory Card Filter - Folder Memory Card Filter + Filter Folder Memory Card - + Auto Eject When Loading - Auto Eject When Loading + Keluarkan Otomatis Saat Memuat - + Create - Create + Buat Baru - + Cancel - Cancel + Batalkan - + Load Profile - Load Profile + Muat Profil - + Save Profile - Save Profile + Simpan profil - + Per-Game Configuration - Per-Game Configuration + Pengaturan Per-Game - + Copy Global Settings - Copy Global Settings + Salin Pengaturan Global - + Enable SDL Input Source - Enable SDL Input Source + Aktifkan Sumber Input SDL - + SDL DualShock 4 / DualSense Enhanced Mode - SDL DualShock 4 / DualSense Enhanced Mode + Mode Enhanced DualShock 4 / DualSense SDL - + SDL Raw Input - SDL Raw Input + Input Raw SDL - + Enable XInput Input Source - Enable XInput Input Source + Aktifkan Sumber Input XInput - + Enable Console Port 1 Multitap - Enable Console Port 1 Multitap + Aktifkan Port Konsol 1 Multitap - + Enable Console Port 2 Multitap - Enable Console Port 2 Multitap + Aktifkan Port Konsol 2 Multitap - + Controller Port {}{} - Controller Port {}{} + Port Kontroler {}{} - + Controller Port {} - Controller Port {} + Port Kontroler {} - + Controller Type - Controller Type + Tipe Kontroler - + Automatic Mapping - Automatic Mapping + Penetapan Tombol Otomatis - + Controller Port {}{} Macros - Controller Port {}{} Macros + Makro Kontroller Port {}{} - + Controller Port {} Macros - Controller Port {} Macros + Makro Kontroller Port {} - + Macro Button {} - Macro Button {} + Tombol Makro {} - + Buttons - Buttons + Tombol - + Frequency - Frequency + Frekuensi - + Pressure - Pressure + Tekanan - + Controller Port {}{} Settings - Controller Port {}{} Settings + Pengaturan Port Konroller {}{} - + Controller Port {} Settings - Controller Port {} Settings + Pengaturan Port Konroller {} - + USB Port {} - USB Port {} + Port USB {} - + Device Type - Device Type + Jenis Perangkat - + Device Subtype - Device Subtype + Subtipe Perangkat - + {} Bindings - {} Bindings + {} Penetapan Tombol - + Clear Bindings - Clear Bindings + Bersihkan Penetapan Tombol - + {} Settings - {} Settings + {} Pengaturan - + Cache Directory - Cache Directory + Direktori Cache - + Covers Directory - Covers Directory + Direktori Sampul - + Snapshots Directory - Snapshots Directory + Direktori Snapshot - + Save States Directory - Save States Directory + Direktori Save State - + Game Settings Directory - Game Settings Directory + Direktorin Pengaturan Game - + Input Profile Directory - Input Profile Directory + Direktori Profil Input - + Cheats Directory - Cheats Directory + Direktori Cheat - + Patches Directory - Patches Directory + Direktori Patch - + Texture Replacements Directory - Texture Replacements Directory + Direktori Penggantian Tekstur - + Video Dumping Directory - Video Dumping Directory + Direktori Dump Video - + Resume Game - Resume Game + Lanjutkan Permainan - + Toggle Frame Limit - Toggle Frame Limit + Aktifkan/Nonaktifkan Pembatas Frame - + Game Properties - Game Properties + Properti Game - + Achievements - Achievements + Prestasi - + Save Screenshot Simpan Tangkapan Layar - + Switch To Software Renderer - Switch To Software Renderer + Beralih ke Perender Software - + Switch To Hardware Renderer - Switch To Hardware Renderer + Beralih ke Perender Hardware - + Change Disc - Change Disc + Ganti Disk - + Close Game - Close Game + Tutup Game - + Exit Without Saving - Exit Without Saving + Keluar Tanpa Menyimpan - + Back To Pause Menu - Back To Pause Menu + Kembali ke Menu Pause - + Exit And Save State - Exit And Save State + Exit dan Simpan State - + Leaderboards - Leaderboards + Papan Peringkat - + Delete Save - Delete Save + Hapus Save - + Close Menu - Close Menu + Tutup Menu - - Clean Boot - Clean Boot - - - + Delete State - Delete State + Hapus State - + Default Boot - Default Boot - - - - Slow Boot - Slow Boot + Boot Default - + Reset Play Time - Reset Play Time + Reset Waktu Permainan - + Add Search Directory - Add Search Directory + Tambah Direktori Pencarian - + Open in File Browser - Open in File Browser + Buka di Peramban File - + Disable Subdirectory Scanning - Disable Subdirectory Scanning + Nonaktifkan Pemindaian Subdirektori - + Enable Subdirectory Scanning - Enable Subdirectory Scanning + Aktifkan Pemindaian Subdirektori - + Remove From List - Remove From List + Hapus Dari Daftar - + Default View - Default View + Tampilan Default - + Sort By - Sort By + Urutkan Berdasarkan - + Sort Reversed - Sort Reversed + Urutkan Terbalik - + Scan For New Games - Scan For New Games - - - - Rescan All Games - Rescan All Games + Pindai Game Baru - - Start Download - Start Download + + Rescan All Games + Pindai Ulang Semua Game - + Website - Website + Situs Web - + Support Forums - Support Forums + Forum Dukungan - + GitHub Repository - GitHub Repository + Repositori GitHub - + License - License + Lisensi - + Close - Close + Tutup - + RAIntegration is being used instead of the built-in achievements implementation. - RAIntegration is being used instead of the built-in achievements implementation. + RAIntegration digunakan sebagai pengganti implementasi prestasi bawaan. - + Enable Achievements - Enable Achievements - - - - Rich Presence - Rich Presence + Aktifkan Prestasi - + Hardcore Mode - Hardcore Mode - - - - Show Notifications - Show Notifications + Mode Hardcore - + Sound Effects - Sound Effects + Efek Suara - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements - Test Unofficial Achievements - - - - Test Mode - Test Mode + Uji Coba Prestasi Tidak Resmi - + Username: {} - Username: {} + Nama Pengguna: {} - + Login token generated on {} - Login token generated on {} + Token masuk dibuat pada {} - + Logout - Logout + Keluar - + Not Logged In - Not Logged In + Belum Masuk - + Login - Login - - - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} + Masuk - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. - Rich presence inactive or unsupported. + Rich presence tidak aktif atau tidak didukung. - + Game not loaded or no RetroAchievements available. - Game not loaded or no RetroAchievements available. + Tidak ada game yang berjalan atau tidak ada RetroAchievements yang tersedia. - + Card Enabled - Card Enabled + Memory Card Diaktifkan - + Card Name - Card Name + Nama Memory Card - + Eject Card - Eject Card + Eject Memory Card @@ -8073,7 +8323,7 @@ ${serial}: Serial of the game. Membuka ulang gagal, mengembalikan konfigurasi lama. - + Upscale multiplier set to {}x. Nilai pengali upscale diatur ke {}x. @@ -8085,7 +8335,7 @@ ${serial}: Serial of the game. Saved screenshot to '{}'. - Tangkapan layar tersimpan di '{}'. + Tangkapan layar tersimpan sebagai '{}'. @@ -8128,14 +8378,14 @@ ${serial}: Serial of the game. Menonaktifkan mipmap yang dibuat secara otomatis pada satu atau lebih tekstur pengganti yang terkompresi. Mohon buat mipmap saat mengompresi tekstur Anda. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Buffer stensil dan barier tekstur tidak tersedia, dapat merusak beberapa efek grafis. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. - Putar GPU Saat Readback diaktifkan, namun cap waktu terkalibrasi tidak tersedia. Performa mungkin akan sangat lambat. + Opsi Jaga GPU Siaga Saat Readback diaktifkan, namun cap waktu terkalibrasi tidak tersedia. Performa mungkin akan sangat lambat. @@ -8189,7 +8439,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8198,266 +8448,408 @@ graphical quality, but this will increase system requirements. kualitas grafis, namun akurasi blending yang lebih tinggi akan memengaruhi performa. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Perbaikan perender hardware GS manual aktif, perbaikan otomatis tidak diterapkan: - + No tracks provided. Tidak ada trek yang disediakan. - + Hash {} is not in database. Hash {} tidak tersedia di database. - + Data track number does not match data track in database. Nomor trek data tidak cocok dengan trek data dalam database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Trek {} dengan hash {} tidak ditemukan di database. + Trek {0} dengan hash {1} tidak ditemukan di database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Trek {} dengan hash {} adalah untuk game yang berbeda ({}). + Trek {0} dengan hash {1} adalah untuk game yang berbeda ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Trek {} dengan hash {} tidak cocok dengan database trek. + Trek {0} dengan hash {1} tidak cocok dengan database trek. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Perbaikan Game (Perubahan global TIDAK disarankan) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - Hack Pembagian Negatif FPU (Untuk Game Gundam) + Hack Pembagian Negatif FPU - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - Hack Perkalian FPU (Untuk Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Gunakan Perender Software untuk FMV + Hack Perkalian FPU - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Hack Lewati MPEG (Lewati Video/FMV) + Hack Lewati MPEG - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Hack Pramuat TLB (Untuk Goemon) + Pramuat Hack TLB - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - Hack Timing EE (Hack Timing Umum) + Hack Timing EE - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Hack DMA Instan (Baik untuk masalah cache emulasi) + Hack DMA Instan - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - Hack Flag OPH (Untuk Bleach Blade Battlers) + Hack Flag OPH - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulasikan FIFO GIF (Akurat Namun Lebih Lambat) + Emulasi GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - Hack DMA Busy (Tolak Write Saat Sibuk) + Hack DMA Sibuk - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Penundaan VIF1 (Untuk SOCOM 2 HUD/Spy Hunter) + Mengundur VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulasikan FIFO VIF (Akurat Namun Lebih Lambat) + Emulasi VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Sinkronisasi Penuh VU0 (Akurat Namun lebih Lambat) + Sinkronisasi Penuh VU0 - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - Hack I Bit VU (Untuk Scarface The World is Yours/Crash Tag Team Racing) + Hack VU I Bit - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - Hack Add VU (Untuk Game Tri-Ace) + Hack Penjumlahan VU - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - Hack Overflow VU (Superman Returns) + Hack Overflow VU - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sinkron (Run Behind, game M-Bit) + Sinkron VU - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - Sinkronisasi XGKick VU (Akurat Namun Lebih Lambat) + Sinkron VU XGKick - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Paksa Deteksi Blit FPS Internal (Saat deteksi otomatis gagal) + Paksa Deteksi Blit FPS Internal + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Gunakan Perender Software untuk FMV + + + + + + + + + + + + + + + + + + + + + + Unchecked + Tidak Dicentang + + + + For Tales of Destiny. + Untuk Tales of Destiny. + + + + For Gundam Games. + Untuk game Gundam. + + + + To avoid TLB miss on Goemon. + Untuk menghindari TLB Miss dalam Goemon. + + + + Needed for some games with complex FMV rendering. + Diperlukan untuk beberapa game dengan rendering FMV yang kompleks. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Melompati video/FMV dalam game untuk menghindari game hang/macet. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Diketahui dapat mempengaruhi game-game berikut: Bleach Blade Battles, Growlanser II dan III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Hack timing untuk berbagai tujuan. Diketahui dapat mempengaruhi game-game berikut ini: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Baik untuk masalah emulasi cache. Diketahui dapat mempengaruhi game-game berikut ini: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Diketahui mempengaruhi game-game berikut: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Benar tetapi lebih lambat. Diketahui dapat mempengaruhi game-game berikut ini: FIFA Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulasikan Readahead VIF1 FIFO. Diketahui dapat mempengaruhi game berikut ini: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + Untuk SOCOM 2 HUD dan Spy Hunter hang saat memuat. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Untuk Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Menghindari rekompilasi yang konstan di beberapa game. Diketahui mempengaruhi game-game berikut ini: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Memaksakan sinkronisasi VU0 yang ketat pada setiap instruksi COP2. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Untuk menghindari masalah sinkronisasi saat membaca atau menulis register VU. + + + + To check for possible float overflows (Superman Returns). + Untuk memeriksa kemungkinan float overflow (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Gunakan pengaturan waktu yang akurat untuk VU XGKicks (lebih lambat). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Gunakan metode alternatif untuk menghitung FPS internal untuk menghindari pembacaan yang salah di beberapa game. GameList - + Never - Never + Tidak pernah - + Today - Today + Hari Ini - + Yesterday - Yesterday + Kemarin - + {}h {}m - {}h {}m + {}j {}m - + {}h {}m {}s - {}h {}m {}s + {}j {}m {}d - + {}m {}s - {}m {}s + {}m {}d - + {}s - {}s + {}d - + {} hours - {} hours + {} jam - + {} minutes - {} minutes + {} menit + + + + Downloading cover for {0} [{1}]... + Mengunduh sampul untuk {0} [{1}]... GameListModel - + Type Tipe - + Code Kode - + Title Judul - + File Title Judul File - + CRC CRC - + Time Played Lama Bermain - + Last Played Terakhir Dimainkan - + Size Ukuran - + Region Region - + Compatibility Kompatibilitas @@ -8465,74 +8857,100 @@ kualitas grafis, namun akurasi blending yang lebih tinggi akan memengaruhi perfo GameListSettingsWidget - + + Game Scanning + Pemindaian Game + + + Search Directories (will be scanned for games) Direktori Pencarian (akan di pindai untuk game) - + Add... Tambah... - - - + + + Remove Hapus - + Search Directory Direktori Pencarian - + Scan Recursively Pemindaian Rekursif - + Excluded Paths (will not be scanned) Direktori yang Dikecualikan (tidak akan dipindai) - + Directory... Direktori... - + File... File... - + Scan For New Games Pindai Game Baru - + Rescan All Games Pindai Ulang Semua Game - + + Display + Tampilan + + + + + Prefer English Titles + Utamakan Judul Game Dalam Bahasa Inggris + + + + Unchecked + Tidak Dicentang + + + + For games with both a title in the game's native language and one in English, prefer the English title. + Untuk game dengan judul dalam bahasa asli game dan bahasa Inggris, pilihlah judul dalam bahasa Inggris. + + + Open Directory... Buka Direktori... - + Select Search Directory Pilih Direktori Pencarian - + Scan Recursively? Pindai Secara Rekursif? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8541,12 +8959,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Pemindaian rekursif memakan lebih banyak waktu, namun dapat mengidentifikasi file dalam subdirektori. - + Select File Pilih File - + Select Directory Pilih Direktori @@ -8554,32 +8972,32 @@ Pemindaian rekursif memakan lebih banyak waktu, namun dapat mengidentifikasi fil GameListWidget - + Game List Daftar Game - + Game Grid Kisi Game - + Show Titles Tampilkan Judul - + All Types Semua Jenis - + All Regions Semua Region - + Search... Cari... @@ -8605,17 +9023,17 @@ Pemindaian rekursif memakan lebih banyak waktu, namun dapat mengidentifikasi fil <html><head/><body><p><span style=" font-weight:700;">Pembuat: </span>Pembuat Patch</p><p>Deskripsi di sini</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Pembuat: </strong>%1<br>%2 - + Unknown Tidak diketahui - + No description provided. Deskripsi tidak tersedia. @@ -8633,7 +9051,7 @@ Pemindaian rekursif memakan lebih banyak waktu, namun dapat mengidentifikasi fil Muat Ulang Patch - + There are no patches available for this game. Tidak ada patch yang tersedia untuk game ini. @@ -8652,399 +9070,410 @@ Pemindaian rekursif memakan lebih banyak waktu, namun dapat mengidentifikasi fil - + Restore Kembalikan - Path: - Jalur: + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Judul untuk Pengurutan: + English Title: + Judul Bahasa Inggris: + + + + Path: + Lokasi: + + + Serial: Serial: - + CRC: CRC: - + Type: Tipe: - + PS2 Disc Disk PS2 - + PS1 Disc Disk PS1 - + ELF (PS2 Executable) ELF (Eksekutabel PS2) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (Tiongkok) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Jepang) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (Amerika Serikat) - + Other Lainnya - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (Afrika Selatan) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgia) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Eropa/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (Prancis) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finlandia) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Jerman) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Yunani) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italia) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Eropa/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Belanda) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norwegia) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Polandia) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Rusia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spanyol) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Skandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Swedia) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Swiss) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Britania Raya) - + Compatibility: Kompatibilitas: - + Unknown Tidak Diketahui - + Not Bootable Tidak Dapat Di-Boot - + Reaches Intro Meraih Intro Game - + Reaches Menu Meraih Menu - + In-Game In-Game - + Playable Dapat Dimainkan - + Perfect Sempurna - + Input Profile: Profil Input: - + Shared Refers to the shared settings profile. Global - + Disc Path: - Jalur Disk: + Lokasi Disk: - + Browse... Telusuri... - + Clear Bersihkan - + Verify Verifikasi - + Search on Redump.org... Cari di Redump.org... - + Select Disc Path - Pilih Jalur Disk + Pilih Lokasi Disk - + Game is not a CD/DVD. Game ini bukan CD/DVD. - + Track list unavailable while virtual machine is running. Daftar trek tidak tersedia saat mesin virtual masih berjalan. - + # # - + Mode Mode - - + + Start Mulai - - + + Sectors Sektor - - + + Size Ukuran - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <belum terkomputasi> - + Error Eror - + Cannot verify image while a game is running. Tidak dapat memverifikasi image disk saat game sedang berjalan. - + One or more tracks is missing. Satu trek atau lebih tidak dapat ditemukan. - + Verified as %1 [%2] (Version %3). Terverfikasi sebagai %1 [%2] (Versi %3). - + Verified as %1 [%2]. Terverifikasi sebagai %1 [%2]. @@ -9052,62 +9481,62 @@ Pemindaian rekursif memakan lebih banyak waktu, namun dapat mengidentifikasi fil GraphicsSettingsWidget - + Renderer: Perender: - + Adapter: GPU: - + Display Tampilan - + Fullscreen Mode: Mode Layar Penuh: - + Aspect Ratio: Aspek Rasio: - + Fit to Window / Fullscreen Sesuaikan Dengan Jendela / Layar Penuh - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Standar Otomatis (4:3 Interlaced / 3:2 Progresif) - - + + Standard (4:3) Standar (4:3) - - + + Widescreen (16:9) Layar Lebar (16:9) - + FMV Aspect Ratio: Aspek Rasio FMV: - - - + + + @@ -9117,12 +9546,12 @@ Pemindaian rekursif memakan lebih banyak waktu, namun dapat mengidentifikasi fil Nonaktif (Default) - - - - - - + + + + + + @@ -9133,92 +9562,92 @@ Pemindaian rekursif memakan lebih banyak waktu, namun dapat mengidentifikasi fil Otomatis (Default) - + None (Interlaced, also used by Progressive) Nonaktif (Interlaced, juga digunakan oleh Progresif) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bidang Atas Terlebih Dahulu, Gerigi) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bidang Bawah Terlebih Dahulu, Gerigi) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bidang Atas Terlebih Dahulu, Frame Penuh) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bidang Bawah Terlebih Dahulu, Frame Penuh) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bidang Atas Terlebih Dahulu, Menggabungkan 2 Bidang) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bidang Bawah Terlebih Dahulu, Menggabungkan 2 Bidang) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bidang Atas Terlebih Dahulu, Seperti Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bidang Bawah Terlebih Dahulu, Seperti Bob + Weave) - + Bilinear Filtering: Pemfilteran Bilinear: - - + + None Nonaktif - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Halus) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Tajam) - + Vertical Stretch: Peregangan Vertikal: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9226,355 +9655,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Pangkas: - + Left: Warning: short space constraints. Abbreviate if necessary. Kiri: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Atas: - + Right: Warning: short space constraints. Abbreviate if necessary. Kanan: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bawah: - + Screen Offsets Offset Layar - + VSync VSync - + Show Overscan Tampilkan Overscan - + Enable Widescreen Patches Aktifkan Patch Layar Lebar - + Enable No-Interlacing Patches Aktifkan Patch No-Interlacing - + Anti-Blur Anti Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Nonaktifkan Offset Interlace - + Screenshot Size: Ukuran Tangkapan Layar: - + Screen Resolution Resolusi Layar - + Internal Resolution Resolusi Internal - + Internal Resolution (Aspect Uncorrected) Resolusi Internal (Tanpa Koreksi Aspek Rasio) - + PNG PNG - + JPEG JPEG - + Quality: Kualitas: - - + + Rendering Render - + Internal Resolution: Resolusi Internal: - + Mipmapping: Mipmapping: - - + + Off Mati - + Basic (Generated Mipmaps) Dasar (Menghasilkan Mipmap) - + Full (PS2 Mipmaps) Penuh (Mipmap PS2) - - + + Texture Filtering: Filter Tekstur: - - + + Nearest Terdekat - - + + Bilinear (Forced) Bilinear (Paksa) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Paksa tanpa sprite) - + Trilinear Filtering: Filter Trilinear: - + Off (None) Mati (Nonaktif) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Paksa) - + Anisotropic Filtering: Filter Anisotropis: - + Dithering: Dithering: - + Scaled Berskala - + Unscaled (Default) Tidak Berskala (Default) - + Blending Accuracy: Akurasi Blending: - + Minimum Minimum - + Basic (Recommended) Dasar (Disarankan) - + Medium Menengah - + High Tinggi - + Full (Slow) Penuh (Lambat) - + Maximum (Very Slow) Maksimum (Sangat Lambat) - + Texture Preloading: Pramuat Tekstur: - + Partial Sebagian - + Full (Hash Cache) Penuh (Hash Cache) - + + Software Rendering Threads: + Thread Perender Software: + + + + Skip Draw Range: + Jangkauan Skipdraw: + + + GPU Palette Conversion Konversi Palet GPU - + Manual Hardware Renderer Fixes Perbaikan Perender Hardware Manual - + Spin GPU During Readbacks - Putar GPU Saat Readback + Jaga GPU Siaga Saat Readback - + Spin CPU During Readbacks - Putar CPU Saat Readback - - - - Extra Rendering Threads: - Thread Render Ekstra: + Jaga CPU Siaga Saat Readback - + threads thread - + Mipmapping Mipmapping - + Auto Flush Flush Otomatis - + Hardware Fixes Perbaikan Hardware - + Force Disabled Paksa Nonaktifkan - + Force Enabled Paksa Aktifkan - + CPU Sprite Render Size: Ukuran Render Sprite CPU: - - - + + + 0 (Disabled) @@ -9582,79 +10016,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Nonaktif) - + 1 (64 Max Width) 1 (64 Lebar Maksimal) - + 2 (128 Max Width) 2 (128 Lebar Maksimal) - + 3 (192 Max Width) 3 (192 Lebar Maksimal) - + 4 (256 Max Width) 4 (256 Lebar Maksimal) - + 5 (320 Max Width) 5 (320 Lebar Maksimal) - + 6 (384 Max Width) 6 (384 Lebar Maksimal) - + 7 (448 Max Width) 7 (448 Lebar Maksimal) - + 8 (512 Max Width) 8 (512 Lebar Maksimal) - + 9 (576 Max Width) 9 (576 Lebar Maksimal) - + 10 (640 Max Width) 10 (640 Lebar Maksimal) - - Skipdraw Range: - Jangkauan Skipdraw: - - - + Frame Buffer Conversion Konversi Frame Buffer - + Disable Depth Emulation Nonaktifkan Emulasi Kedalaman - + Disable Safe Features Nonaktifkan Fitur Aman - + Preload Frame Data Pramuat Data Frame @@ -9665,606 +10094,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Tekstur Dalam RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Agresif) - + Software CLUT Render: Render CLUT Software: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. Target CLUT GPU: - - - + + + Disabled (Default) Nonaktif (Default) - + Enabled (Exact Match) Aktif (Sama Persis) - + Enabled (Check Inside Target) Aktif (Periksa Di Dalam Target) - + Upscaling Fixes Perbaikan Upscaling - + Half Pixel Offset: Offset Setengah Piksel: - + Normal (Vertex) Normal (Verteks) - + Special (Texture) Spesial (Tekstur) - + Special (Texture - Aggressive) Spesial (Tekstur - Agresif) - + Round Sprite: Bulatkan Sprite: - + Half Setengah - + Full Penuh - + Texture Offsets: Offset Tekstur: - + X: X: - + Y: Y: - + Merge Sprite Gabungkan Sprite - + Align Sprite Sejajarkan Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Hanya Sprite - + Sprites/Triangles Sprite/Segitiga - + Blended Sprites/Triangles Sprite Campuran/Segitiga - + Auto Flush: Flush Otomatis: - + Enabled (Sprites Only) Aktif (Hanya Sprite) - + Enabled (All Primitives) Aktif (Semua Primitif) - + Texture Inside RT: Tekstur Dalam RT: - + Inside Target Di Dalam Target - + Merge Targets Gabungkan Target - + Disable Partial Source Invalidation Nonaktifkan Invalidasi Sumber Parsial - + Read Targets When Closing Baca Target Saat Menutup - + Estimate Texture Region Perkirakan Region Tekstur - + Disable Render Fixes Nonaktifkan Perbaikan Render - + Unscaled Palette Texture Draws Render Palet Tekstur Tidak Berskala - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Hack Wild Arms - + Bilinear Dirty Upscale: Upscale Kotor Bliinear: - + Force Bilinear Paksa Bilinear - + Force Nearest Paksa Terdekat - + Texture Replacement Penggantian Tekstur - + Search Directory Direktori Pencarian - - + + Browse... Telusuri... - - + + Open... Buka... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 akan menyimpan dump dan memuat pengganti tekstur dari direktori ini. - + Options Pengaturan - + Dump Textures Dump Tekstur - + Dump Mipmaps Dump Mipmap - + Dump FMV Textures Dump Tekstur FMV - - - Async Texture Loading - Muat Tekstur Secara Asinkron - - - + Load Textures Muat Tekstur - + Precache Textures Pra-cache Tekstur - + Post-Processing Post Processing - + Sharpening/Anti-Aliasing Penajaman/Anti Alias - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) Nonaktif (Default) - + Sharpen Only (Internal Resolution) Hanya Pertajam (Resolusi Internal) - + Sharpen and Resize (Display Resolution) Pertajam dan Ubah Ukuran (Resolusi Layar) - + Sharpness: Ketajaman: - + FXAA FXAA - + Filters Filter - + TV Shader: Shader TV: - + Scanline Filter Filter Scanline - + Diagonal Filter Filter Diagonal - + Triangular Filter Filter Triangular - + Wave Filter Filter Gelombang - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Kecerahan: - + Contrast: Kontras: - Saturation Saturasi - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: Skala OSD: - + Show Indicators Tampilkan Indikator - + Show Resolution Tampilkan Resolusi - + Show Inputs Tampilkan Input - + Show GPU Usage Tampilkan Penggunaan GPU - + Show Settings Tampilkan Pengaturan - + Show FPS Tampilkan FPS - + + + Disable Dual-Source Blending + Matikan Dual-Source Blending + + + Disable Shader Cache Matikan Cache Shader - + Disable Vertex Shader Expand Nonaktifkan Perluasan Shader Verteks - + Show Statistics Tampilkan Statistik - + + + Asynchronous Texture Loading + Pemuat Tekstur Asinkron + + + + Saturation: + Saturasi: + + + Show CPU Usage Tampilkan Penggunaan CPU - + Warn About Unsafe Settings Peringatkan Tentang Pengaturan Tidak Aman - + Show Frame Times Tampilkan Frame Time - + Recording Rekaman - + Video Dumping Directory Direktori Dump Video - + Capture Setup Pengaturan Rekaman - + Container: Kontainer: - - + + Codec: Kodek: - - + + Extra Arguments Argumen Tambahan - + Capture Audio Rekam Audio - + Resolution: Resolusi: - + x x - + Auto Otomatis - + Capture Video Rekam Video - + Advanced Advanced here refers to the advanced graphics options. Tingkat Lanjut - + Advanced Options Opsi Tingkat Lanjut - + Hardware Download Mode: Mode Unduhan Hardware: - + Accurate (Recommended) Akurat (Disarankan) - + Disable Readbacks (Synchronize GS Thread) Nonaktifkan Readback (Sinkronisasi Thread GS) - + Unsynchronized (Non-Deterministic) Tidak Disinkronisasi (Non Deterministik) - + Disabled (Ignore Transfers) Nonaktif (Abaikan Transfer) - + GS Dump Compression: Kompresi Dump GS: - + Uncompressed Tidak Dikompres - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Lewati Menampilkan Frame Duplikat - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10274,72 +10713,66 @@ Swap chain: see Microsoft's Terminology Portal. Gunakan Blit Swap Chain - + Disable Threaded Presentation Nonaktifkan Presentasi Threaded - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Izinkan Mode Layar Penuh Eksklusif: - + Disallowed Dilarang - + Allowed Diizinkan - + Debugging Options Pengaturan Debugging - + Override Texture Barriers: Timpa Barier Tekstur: - + Use Debug Device Gunakan Perangkat Debug - - - Disable Dual Source Blending - Matikan Blending Dua Sumber - - - + Show Speed Percentages Tampilkan Persentase Kecepatan - + Disable Framebuffer Fetch - Matikan Pengambilan Framebuffer + Matikan Framebuffer Fetch @@ -10405,8 +10838,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Gunakan Pengaturan Global [%1] @@ -10458,6 +10891,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Tidak Dicentang @@ -10517,11 +10951,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Kontrol level akurasi emulasi unit blending.<br> Semakin tinggi pengaturannya, semakin akurat emulasi blending di shader, dan semakin berat emulasinya.<br> Kapabilitas blending di Direct3D tidak sebaik OpenGL/Vulkan. + + + Software Rendering Threads + Thread Perender Software + Software CLUT Render Render CLUT Software + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Nonaktifkan dukungan buffer kedalaman di cache tekstur. Dapat meningkatkan performa namun dapat menimbulkan beragam glitch. + This option disables game-specific render fixes. @@ -10573,6 +11017,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Memperbaiki masalah upscaling (garis vertikal) di game Namco seperti Ace Combat, Tekken, Soul Calibur, dsb. + + + Dumps replaceable textures to disk. Will reduce performance. + Dump tekstur yang dapat diganti ke disk. Akan mengurangi performa. + + + + Includes mipmaps when dumping textures. + Masukkan mipmap saat dump tekstur. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Mengizinkan dump tekstur saat FMV aktif. Anda sebaiknya tidak mengaktifkan ini. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Memuat tekstur pengganti pada thread pekerja, mengurangi microstutter apabila penggantian diaktifkan. + + + + Loads replacement textures where available and user-provided. + Memuat tekstur pengganti jika tersedia dan disediakan oleh pengguna. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Memuat semua tekstur pengganti ke memori. Tidak diperlukan dengan pemuatan asinkron. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Nyalakan FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Menentukan intensitas efek penajaman dalam post processing CAS. + + + + Adjusts brightness. 50 is normal. + Menyesuaikan kecerahan. Normalnya 50. + + + + Adjusts contrast. 50 is normal. + Menyesuaikan kontras. Normalnya 50. + + + + Adjusts saturation. 50 is normal. + Menyesuaikan saturasi. Normalnya 50. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10588,11 +11087,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Menampilkan berbagai macam pengaturan dan nilai dari pengaturan tersebut, berguna untuk debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Menampilkan status kontroler saat ini dari sistem di sudut kiri bawah layar. - Displays a graph showing the average frametimes. @@ -10630,7 +11124,7 @@ Swap chain: see Microsoft's Terminology Portal. Aktifkan opsi ini untuk menyesuaikan refresh rate PCSX2 dengan monitor atau layar Anda. VSync dinonaktifkan secara otomais jika tidak memungkinkan (misalnya saat game tidak berjalan di kecepatan 100%). - + Integer Scaling Penskalaan Integer @@ -10719,8 +11213,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Layar Penuh Borderless @@ -10860,12 +11354,7 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - Melakukan tugas tidak berguna di GPU saat readback untuk mencegah GPU masuk ke mode hemat daya. Dapat meningkatkan performa namun menaikkan penggunaan daya secara signifikan. - - - - Extra Rendering Threads - Thread Render Ekstra + Memberikan tugas tidak berguna kepada GPU saat readback untuk mencegah GPU masuk ke mode hemat daya. Dapat meningkatkan performa namun menaikkan penggunaan daya secara signifikan. @@ -10917,11 +11406,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Akhir Jangkauan Skipdraw - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Nonaktifkan dukungan buffer kedalaman di cache tekstur. Dapat meningkatkan performa namun dapat menimbulkan beragam glitch. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11039,7 +11523,7 @@ Swap chain: see Microsoft's Terminology Portal. Skala OSD - + Show OSD Messages Tampilkan Pesan OSD @@ -11079,6 +11563,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Menampilkan penghitung untuk penggunaan grafis internal, berguna untuk debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Menampilkan status kontroler sistem saat ini di sudut kiri bawah layar. + Displays warnings when settings are enabled which may break games. @@ -11132,29 +11621,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Aktifkan Perangkat Debug + + + + Enables API-level validation of graphics commands. + Mengaktifkan validasi tingkat API untuk perintah grafis. + + + GS Download Mode Mode Unduhan GS - + Accurate Akurat - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Melewati sinkronisasi thread GS dan GPU host untuk unduhan GS. Dapat meningkatkan performa secara signifikan pada sistem yang lambat dengan mengorbankan banyak efek grafis. Jika game Anda mengalami eror grafis dan Anda mengaktifkan opsi ini, harap nonaktifkan opsi ini. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11162,405 +11661,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Grafis - + Save Screenshot Simpan Tangkapan Layar - + Toggle Video Capture Aktifkan/Nonaktifkan Rekaman Video - + Save Single Frame GS Dump Simpan GS Dump Frame Tunggal - + Save Multi Frame GS Dump Simpan GS Dump Multi Frame - + Toggle Software Rendering Ubah Perender Software - + Increase Upscale Multiplier Tingkatkan Pengali Upscale - + Decrease Upscale Multiplier Turunkan Pengali Upscale - + Toggle On-Screen Display Aktifkan/Nonaktifkan OSD - + Cycle Aspect Ratio Ubah Aspek Rasio - + Aspect ratio set to '{}'. Aspek Rasio diatur ke '{}'. - + Cycle Hardware Mipmapping Ubah Mipmapping Hardware - + Hardware mipmapping set to '{}'. Mipmapping Hardware diatur ke '{}'. - + Cycle Deinterlace Mode Ubah Mode Deinterlace - + Deinterlace mode set to '{}'. Mode Deinterlace diatur ke '{}'. - + Toggle Texture Dumping Aktifkan/Nonaktifkan Dump Tekstur - + Texture dumping is now enabled. Dump tekstur kini aktif. - + Texture dumping is now disabled. Dump tekstur kini nonaktif. - + Toggle Texture Replacements Aktifkan/Nonaktifkan Penggantian Tekstur - + Texture replacements are now enabled. Penggantian tekstur aktif. - + Texture replacements are now disabled. Penggantian tekstur nonaktif. - + Reload Texture Replacements Muat Ulang Tekstur Pengganti - + Texture replacements are not enabled. Penggantian tekstur nonaktif. - + Reloading texture replacements... Memuat Ulang Tekstur Pengganti... - + Target speed set to {:.0f}%. Target kecepatan diatur ke {:.0f}%. - + Volume: Muted Volume: Bisu - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Slot penyimpanan {} dipilih (penyimpanan terakhir: {}). + + Save slot {0} selected (last save: {1}). + Slot penyimpanan {0} dipilih (penyimpanan terakhir: {1}). - + Save slot {} selected (no save yet). Slot Save State {} dipilih (Kosong). - + No save state found in slot {}. Save state tidak ditemukan di slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System Sistem - + Open Pause Menu Buka Menu Pause - + Open Achievements List Buka Daftar Prestasi - + Open Leaderboards List Buka Daftar Papan Peringkat - + Toggle Pause Pause - + Toggle Fullscreen Aktifkan/Nonaktifkan Layar Penuh - + Toggle Frame Limit Aktifkan/Nonaktifkan Pembatas Frame - + Toggle Turbo / Fast Forward Aktifkan/Nonaktifkan Turbo / Maju Cepat - + Toggle Slow Motion Aktifkan/Nonaktifkan Gerak Lambat - + Turbo / Fast Forward (Hold) Turbo / Maju Cepat (Tekan) - + Increase Target Speed Tingkatkan Kecepatan Target - + Decrease Target Speed Turunkan Kecepatan Target - + Increase Volume Tingkatkan Volume - + Decrease Volume Turunkan Volume - + Toggle Mute Bisukan/Bunyikan Audio - + Frame Advance Maju Satu Frame - + Shut Down Virtual Machine Matikan Mesin Virtual - + Reset Virtual Machine Reset Mesin Virtual - + Toggle Input Recording Mode Mode Rekaman Input - - - - + + + + Save States Save State - + Select Previous Save Slot Pilih Slot Save Sebelumnya - + Select Next Save Slot Pilih Slot Save Selanjutnya - + Save State To Selected Slot Simpan Save State Ke Slot Yang Dipilih - + Load State From Selected Slot Muat Save State Dari Slot Yang Dipilih - + Save State To Slot 1 Simpan Save State Ke Slot 1 - + Load State From Slot 1 Muat Save State Dari Slot 1 - + Save State To Slot 2 Simpan Save State Ke Slot 2 - + Load State From Slot 2 Muat Save State Dari Slot 2 - + Save State To Slot 3 Simpan Save State Ke Slot 3 - + Load State From Slot 3 Muat Save State Dari Slot 3 - + Save State To Slot 4 Simpan Save State Ke Slot 4 - + Load State From Slot 4 Muat Save State Dari Slot 4 - + Save State To Slot 5 Simpan Save State Ke Slot 5 - + Load State From Slot 5 Muat Save State Dari Slot 5 - + Save State To Slot 6 Simpan Save State Ke Slot 6 - + Load State From Slot 6 Muat Save State Dari Slot 6 - + Save State To Slot 7 Simpan Save State Ke Slot 7 - + Load State From Slot 7 Muat Save State Dari Slot 7 - + Save State To Slot 8 Simpan Save State Ke Slot 8 - + Load State From Slot 8 Muat Save State Dari Slot 8 - + Save State To Slot 9 Simpan Save State Ke Slot 9 - + Load State From Slot 9 Muat Save State Dari Slot 9 - + Save State To Slot 10 Simpan Save State Ke Slot 10 - + Load State From Slot 10 Muat Save State Dari Slot 10 @@ -11717,6 +12216,96 @@ Klik kanan untuk membersihkan penetapan tombol %1 [%2] %1 [%2] + + + Left Analog + Analog Kiri + + + + Right Analog + Analog Kanan + + + + Cross + Silang + + + + Square + Kotak + + + + Triangle + Segitiga + + + + Circle + Lingkaran + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Bawah + + + + D-Pad Right️ + D-Pad Kanan️ + + + + D-Pad Up️ + D-Pad Atas️ + + + + D-Pad Left️ + D-Pad Kiri️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11744,137 +12333,137 @@ Klik kanan untuk membersihkan penetapan tombol InterfaceSettingsWidget - + Behaviour Perilaku - + Pause On Focus Loss Pause Saat Jendela Tidak Dalam Fokus - + Inhibit Screensaver Matikan Screensaver - + Save State On Shutdown Simpan Save State Saat Mematikan - + Pause On Start Pause Saat Memulai - + Confirm Shutdown Konfirmasi Penonaktifan - + Create Save State Backups Buat Backup Save State - + Enable Discord Presence Aktifkan Discord Rich Presence - + Enable Per-Game Settings Aktifkan Pengaturan Per Game - + Game Display Tampilan Game - + Start Fullscreen Mulai Dengan Mode Layar Penuh - + Double-Click Toggles Fullscreen Aktifkan/Nonaktifkan Layar Penuh Dengan Klik Ganda - + Render To Separate Window Render Di Jendela Terpisah - + Hide Main Window When Running Sembunyikan Jendela Utama Saat Game Dijalankan - + Disable Window Resizing Nonaktifkan Pengubahan Ukuran Jendela - + Hide Cursor In Fullscreen Sembunyikan Kursor di Mode Layar Penuh - + Preferences Preferensi - + Language: Bahasa: - + Theme: Tema: - + Automatic Updater Pembaruan Otomatis - + Update Channel: Saluran Pembaruan: - + Current Version: Versi Saat Ini: - + Enable Automatic Update Check Aktifkan Pemeriksaan Pembaruan Otomatis - + Check for Updates... Periksa Pembaruan... @@ -12067,7 +12656,7 @@ Klik kanan untuk membersihkan penetapan tombol Menunjukkan game yang sedang Anda mainkan sebagai status profil Discord. - + System Language [Default] Bahasa Sistem [Default] @@ -12124,14 +12713,14 @@ Klik kanan untuk membersihkan penetapan tombol - - + + Change Disc Ubah Disk - + Load State Muat Save State @@ -12636,13 +13225,13 @@ Klik kanan untuk membersihkan penetapan tombol - + Start Big Picture Mode Mulai Mode Big Picture - + Big Picture In Toolbar Big Picture @@ -12654,7 +13243,7 @@ Klik kanan untuk membersihkan penetapan tombol - + Show Advanced Settings Tampilkan Pengaturan Lanjutan @@ -12665,42 +13254,42 @@ Klik kanan untuk membersihkan penetapan tombol - + Video Capture Perekam Video Edit Cheats... - Edit Cheats... + Ubah Cheat... Edit Patches... - Edit Patches... + Ubah Patch... - + Internal Resolution Resolusi Internal - + %1x Scale Skala %1x - + Select location to save block dump: Pilih lokasi untuk menyimpan dump block: - + Do not show again Jangan tampilkan lagi - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12713,168 +13302,173 @@ Tim PCSX2 tidak akan memberi dukungan dalam bentuk apapun untuk konfigurasi yang Apakah Anda ingin melanjutkan? - + %1 Files (*.%2) %1 File (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Masuk sebagai %1 (%2, %3 softcore). %4 pesan yang belum dibaca. + + + Confirm Shutdown Konfirmasi Matikan - + Are you sure you want to shut down the virtual machine? Apakah Anda yakin ingin mematikan mesin virtual? - + Save State For Resume - Simpan Save State Untuk Melanjutkan + Simpan Save State Untuk Dilanjutkan Lain Waktu - - - - - - + + + + + + Error Eror - + You must select a disc to change discs. Anda harus memilih suatu disk untuk mengganti disk. - + Properties... Properti... - + Open Containing Directory... Refers to the directory where a game is contained. Buka Direktori Game... - + Set Cover Image... Pasang Gambar Sampul... - + Exclude From List Kecualikan Dari Daftar - + Reset Play Time Reset Waktu Permainan - + Default Boot Boot Default - + Fast Boot Boot Cepat - + Full Boot Boot Penuh - + Boot and Debug Boot dan Debug - + Add Search Directory... Tambah Direktori Pencarian... - + Start File Jalankan File - + Start Disc Jalankan Disk - + Select Disc Image Pilih Image Disk - + Updater Error Pembaruan Bermasalah - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Maaf, Anda mencoba memperbarui versi PCSX2 yang bukan dirilis resmi dari GitHub. Untuk mencegah ketidakcocokan, pembaruan otomatis hanya diaktifkan pada versi resmi. Untuk mendapatkan versi resmi, silakan unduh dari tautan di bawah ini:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Pembaruan otomatis tidak didukung pada platform ini. - + Confirm File Creation - Confirm File Creation + Konfirmasi Pembuatan File - + The pnach file '%1' does not currently exist. Do you want to create it? - The pnach file '%1' does not currently exist. Do you want to create it? + File pnach '%1' saat ini tidak ada. Apakah Anda ingin membuatnya? - + Failed to create '%1'. - Failed to create '%1'. + Gagal membuat '%1'. - + Input Recording Files (*.p2m2) File Rekaman Input (*.p2m2) - + Paused Pause - + Load State Failed Gagal Memuat Save State - + Cannot load a save state without a running VM. Tidak dapat memuat Save State tanpa mesin virtual yang sedang berjalan. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? + ELF baru tidak dapat dimuat tanpa mereset ulang mesin virtual. Apakah Anda ingin mereset ulang mesin virtual sekarang? - + Cannot change from game to GS dump without shutting down first. - Cannot change from game to GS dump without shutting down first. + Tidak dapat mengubah dari game ke GS dump tanpa mematikan game terlebih dahulu. - + Failed to get window info from widget Gagal mendapat info jendela dari widget @@ -12889,97 +13483,97 @@ Apakah Anda ingin melanjutkan? Semua Jenis File (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Image Raw Trek Tunggal (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;Image CHD MAME (*.chd);;Image CSO (*.cso);;Image GZ (*.gz);;Block Dump (*.dump) - + Stop Big Picture Mode - Hentikan Mode Big Picture Mode + Hentikan Mode Big Picture - + Exit Big Picture In Toolbar Keluar dari Mode Big Picture - + Game Properties Properti Game - + Game properties is unavailable for the current game. Properti game tidak tersedia untuk game ini. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Perangkat CD/DVD-ROM tidak ditemukan. Pastikan drive CD/DVD Anda telah terhubung dan memiliki izin akses yang memadai. - + Select disc drive: Pilih drive disk: - + This save state does not exist. Save state ini tidak ada. - + Select Cover Image Pilih Gambar Sampul - - All Cover Image Types (*.jpg *.jpeg *.png) - Semua Jenis Gambar Sampul (*.jpg *.jpeg *.png) - - - + Cover Already Exists Sampul Sudah Ada - + A cover image for this game already exists, do you wish to replace it? Gambar sampul untuk game ini sudah ada, apakah Anda ingin menggantinya? - - - - + + + + Copy Error Salin Eror - + Failed to remove existing cover '%1' Gagal menghapus sampul '%1' - + Failed to copy '%1' to '%2' Gagal menyalin '%1' ke '%2' - + Failed to remove '%1' Gagal menghapus '%1' - - + + Confirm Reset Konfirmasi Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + Semua Jenis Gambar Sampul (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. - You must select a different file to the current cover image. + Anda harus memilih file yang berbeda dengan gambar sampul saat ini. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12988,12 +13582,12 @@ This action cannot be undone. Tindakan ini tidak dapat dibatalkan. - + Load Resume State Muat Save State Lanjutan - + A resume save state was found for this game, saved at: %1. @@ -13006,70 +13600,70 @@ Do you want to load this state, or start from a fresh boot? Apakah Anda ingin memuat save state ini, atau memulai dari boot baru? - + Fresh Boot Boot Baru - + Delete And Boot Hapus dan Boot Baru - + Failed to delete save state file '%1'. Gagal menghapus file save state '%1'. - + Load State File... Muat File Save State... - + Load From File... Muat Dari file... - - + + Select Save State File Pilih File Save State - - + + Save States (*.p2s) Save State (*.p2s) - + Delete Save States... Hapus Save State... - + Undo Load State Batalkan Pemuatan Save State - + Resume (%2) Lanjutkan (%2) - + Load Slot %1 (%2) Muat Slot %1 (%2) - - + + Delete Save States Hapus Save State - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13078,42 +13672,42 @@ The saves will not be recoverable. Save State tidak akan dapat dipulihkan. - + %1 save states deleted. %1 save state dihapus. - + Save To File... Simpan Ke file... - + Empty Kosong - + Save Slot %1 (%2) Simpan Slot %1 (%2) - + Confirm Disc Change Konfirmasi Penggantian Disk - + Do you want to swap discs or boot the new image (via system reset)? Apakah Anda ingin mengganti disk atau boot file image baru (via reset sistem)? - + Swap Disc Ganti Disk - + Reset Reset @@ -13121,8 +13715,8 @@ Save State tidak akan dapat dipulihkan. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' berhasil disimpan. @@ -13203,6 +13797,7 @@ Save State tidak akan dapat dipulihkan. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x lebih besar dari Memory Card standar. Dapat menyebabkan isu kompatibilitas. @@ -13253,11 +13848,6 @@ Save State tidak akan dapat dipulihkan. Cannot Convert Memory Card Tidak Bisa Mengonversi Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x lebih besar dari Memory Card standar. Dapat menyebabkan isu kompatibilitas. - MemoryCardCreateDialog @@ -13383,103 +13973,104 @@ Save State tidak akan dapat dipulihkan. MemoryCardSettingsWidget - + Console Ports Port Konsol - + Memory Cards Memory Card - + Folder: Folder: - + Browse... Telusuri... - + Open... Buka... - + Reset Reset - + Name Nama - + Type Jenis - + Formatted Diformat - + Last Modified Terakhir Diubah - + Refresh Refresh - + + Create Buat Baru - + Duplicate Duplikasi - + Rename Ubah Nama - + Convert Konversi - + Delete Hapus - + Settings Pengaturan - + Automatically manage saves based on running game Mengelola save data secara otomatis berdasarkan game yang sedang berjalan - + Auto-eject Memory Cards when loading save states Keluarkan Memory Card secara otomatis saat memuat save state @@ -13650,58 +14241,58 @@ Tindakan ini tidak dapat dibatalkan, dan Anda akan kehilangan semua save data pa Memory - + Copy Address Salin Alamat - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13738,7 +14329,7 @@ Tindakan ini tidak dapat dibatalkan, dan Anda akan kehilangan semua save data pa Select File Path - Pilih Jalur File + Pilih Lokasi File @@ -13751,10 +14342,15 @@ Tindakan ini tidak dapat dibatalkan, dan Anda akan kehilangan semua save data pa Masukkan Nama Pembuat - + Input Recording Files (*.p2m2) File Rekaman Input (*.p2m2) + + + Select a File + Pilih File + Pad @@ -13950,6 +14546,16 @@ Tindakan ini tidak dapat dibatalkan, dan Anda akan kehilangan semua save data pa Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Mengatur deadzone stik analog, yaitu persentase dari gerakan analog yang akan diabaikan. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13966,14 +14572,14 @@ Tindakan ini tidak dapat dibatalkan, dan Anda akan kehilangan semua save data pa Mengatur deadzone untuk mengaktivasi tombol/trigger, yaitu persentase tekanan tombol/trigger yang akan diabaikan. - - Analog light is now on for port {} / slot {} - Lampu analog telah diaktifkan untuk port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Lampu analog telah diaktifkan untuk port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Lampu analog telah dinonaktifkan untuk port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Lampu analog telah diaktifkan untuk port {0} / slot {1} @@ -14020,14 +14626,6 @@ Tindakan ini tidak dapat dibatalkan, dan Anda akan kehilangan semua save data pa DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Port kontroler {}, slot {} memiliki {} yang terhubung, tetapi savestate memiliki {} sedang terhubung sebelumnya. - -Membiarkan tipe kontroler sebelumnya tetap terhubung, tetapi hal ini dapat menyebabkan masalah. - Strum Up @@ -14098,40 +14696,64 @@ Membiarkan tipe kontroler sebelumnya tetap terhubung, tetapi hal ini dapat menye Guitar Gitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Port kontroler {0}, slot {1} memiliki {2} yang terhubung, tetapi savestate memiliki {3} sedang terhubung sebelumnya. + +Membiarkan tipe kontroler sebelumnya tetap terhubung, tetapi hal ini dapat menyebabkan masalah. + Patch - + Failed to open {}. Built-in game patches are not available. Gagal membuka {}. Patch game bawaan tidak tersedia. - + {} GameDB patches {} Patch GameDB - + {}{} game patches {}{} patch game - + {}{} cheat patches {}{} cheat patch - + {} are active. {} aktif. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. Tidak ada cheat atau patch (layar lebar, kompatibilitas atau lainnya) yang aktif / ditemukan. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14149,13 +14771,13 @@ The URL was: %1 Tautan nya adalah: %1 - + HDD Creator Pembuat HDD - + Failed to create HDD image Gagal membuat file image HDD @@ -14360,7 +14982,6 @@ Jika tidak, hapuslah savestate dan lakukan boot baru. SettingWidgetBinder - @@ -14376,7 +14997,7 @@ Jika tidak, hapuslah savestate dan lakukan boot baru. Confirm Folder - Confirm Folder + Konfirmasi Folder @@ -14385,21 +15006,23 @@ Jika tidak, hapuslah savestate dan lakukan boot baru. %1 Do you want to create this directory? - The chosen directory does not currently exist: + Direktori yang dipilih saat ini tidak ada: + %1 -Do you want to create this directory? + +Apakah Anda ingin membuat direktori ini? Error - Error + Eror Folder path cannot be empty. - Folder path cannot be empty. + Lokasi folder tidak boleh kosong. @@ -14410,279 +15033,286 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Gunakan Pengaturan Global [Aktif] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Gunakan Pengaturan Global [Nonaktif] + + + + + Use Global Setting [%1] + Gunakan Pengaturan Global [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings Pengaturan PCSX2 - + Restore Defaults Kembalikan Pengaturan Default - + Copy Global Settings - Copy Global Settings + Salin Pengaturan Global - + Clear Settings - Clear Settings + Hapus Pengaturan - + Close Tutup - - - Summary - Ringkasan - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Ringkasan</strong><hr>Halaman ini menampilkan ringkasan tentang game yang dipilih. Mengubah Profil Input akan mengatur skema penetapan tombol kontroler untuk game ini ke profil mana pun yang dipilih, alih-alih konfigurasi default (Global). Daftar trek dan verifikasi dump dapat digunakan untuk menentukan apakah image disk Anda cocok dengan dump yang telah terverifikasi. Jika tidak cocok, game mungkin akan bermasalah. - + + + Summary + Ringkasan + + + Summary is unavailable for files not present in game list. Ringkasan tidak tersedia untuk file yang tidak ada dalam daftar game. - + Interface Antarmuka - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Pengaturan Antarmuka</strong><hr>Pengaturan berikut mengontrol tampilan dan perilaku PCSX2.<br><br>Arahkan kursor mouse ke opsi untuk informasi lebih lanjut. - + Game List Daftar Game - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Pengaturan Daftar Game</strong><hr>Daftar di atas adalah direktori-direktori yang akan dipindai oleh PCSX2 untuk mengisi daftar game. Direktori pencarian dapat ditambah, dihapus, dan diganti menjadi rekursif/non rekursif. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>Pengaturan BIOS</strong><hr>Konfigurasikan BIOS Anda di sini.<br><br>Arahkan kursor mouse ke opsi untuk infomasi lebih lanjut. - + Emulation Emulasi - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Pengaturan Emulasi</strong><hr>Pengaturan berikut menentukan konfigurasi frame pacing dan pengaturan game.<br><br>Arahkan kursor mouse ke opsi untuk informasi lebih lanjut. - + Patches Patch - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patch</strong><hr>Anda dapat memilih patch opsional yang dapat meningkatkan performa, visual, atau grafis game di sini. - + Cheats Cheat - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheat</strong><hr>Anda dapat memilih cheat yang ingin diaktifkan di sini. Anda tidak bisa mengaktifkan/menonaktifkan cheat tanpa label untuk file pnach format lama, cheat-cheat tersebut akan aktif secara otomatis bila opsi "Aktifkan Cheat" utama diaktifkan. - + Game Fixes Perbaikan Game - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Pengaturan Perbaikan Game</strong><hr>Perbaikan Game dapat memperbaiki emulasi tidak akurat di beberapa game.<br>Tetapi, Perbaikan Game dapat menimbulkan masalah di game jika tidak digunakan dengan benar.<br>Kami menyarankan untuk menonaktifkan semuanya kecuali disarankan. - + Graphics Grafis - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Pengaturan Grafis</strong><hr>Pengaturan berikut menentukan konfigurasi output grafis.<br><br>Arahkan kursor mouse ke opsi untuk informasi lebih lanjut. - + Audio - Audio + Suara - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Pengaturan Audio</strong><hr>Pengaturan berikut mengontrol output audio konsol.<br><br>Arahkan kursor mouse ke opsi untuk informasi lebih lanjut. - + Memory Cards Memory Card - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Pengaturan Memory Card</strong><hr>Buat dan konfigurasikan Memory Card di sini.<br><br>Arahkan kursor mouse ke opsi untuk informasi lebih lanjut. - + Network & HDD Jaringan & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Pengaturan Jaringan & HDD</strong><hr>Pengaturan berikut mengontrol konektivitas jaringan dan penyimpanan HDD internal konsol.<br><br>Arahkan kursor mouse ke opsi untuk informasi lebih lanjut. - + Folders Folder - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Pengaturan Folder</strong><hr>Opsi berikut mengontrol dimana PCSX2 akan menyimpan data file runtime. - + Achievements Prestasi - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Pengaturan Penghargaan</strong><hr>Opsi ini mengontrol implementasi RetroAchievements di PCSX2, sehingga Anda dapat memperoleh penghargaan dalam game. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration sedang digunakan, dukungan RetroAchievements bawaan telah dinonaktifkan. - + Advanced Tingkat Lanjut - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Pengaturan Lanjutan</strong><hr>Pengaturan berikut adalah pengaturan tingkat lanjut untuk menentukan konfigurasi konsol yang disimulasikan.<br><br>Arahkan kursor mouse ke opsi untuk informasi lebih lanjut. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Pengaturan Debug</strong><hr>Pengaturan berikut dapat digunakan untuk membuat log informasi internal PCSX2. <strong>Jangan modifikasi pengaturan ini kecuali Anda tahu apa yang Anda lakukan </strong>, Pengaturan ini dapat melambatkan performa secara signifikan, dan dapat membuang banyak kapasitas penyimpanan. - + Confirm Restore Defaults Konfirmasi Pengembalian Pengaturan Default - + Are you sure you want to restore the default settings? Any preferences will be lost. Apakah Anda yakin ingin mengembalikan pengaturan default? Semua pengaturan yang tersimpan akan hilang. - + Reset UI Settings Reset Pengaturan UI - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. Do you want to continue? - The configuration for this game will be replaced by the current global settings. + Konfigurasi untuk game ini akan digantikan oleh pengaturan global saat ini. + + +Semua nilai pengaturan saat ini akan ditimpa. -Any current setting values will be overwritten. -Do you want to continue? +Apakah Anda ingin melanjutkan? - + Per-game configuration copied from global settings. - Per-game configuration copied from global settings. + Konfigurasi per game disalin dari pengaturan global. - + The configuration for this game will be cleared. Any current setting values will be lost. Do you want to continue? - The configuration for this game will be cleared. + Konfigurasi untuk game ini akan dihapus. + + +Semua pengaturan saat ini akan hilang. -Any current setting values will be lost. -Do you want to continue? +Apakah Anda ingin melanjutkan? - + Per-game configuration cleared. - Per-game configuration cleared. + Konfigurasi per game dihapus. - + Recommended Value Nilai Yang Disarankan - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Gunakan Pengaturan Global [Aktif] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Gunakan Pengaturan Global [Nonaktif] - - - - - Use Global Setting [%1] - Gunakan Pengaturan Global [%1] - SetupWizardDialog @@ -14768,8 +15398,8 @@ Do you want to continue? - Open in Explorer... - Buka di Explorer... + Open BIOS Folder... + Buka Folder BIOS... @@ -15036,97 +15666,97 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15332,6 +15962,11 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub Scales the crosshair image set above. Menskalakan gambar crosshair. + + + %.0f%% + %.0f%% + Cursor Color @@ -15363,6 +15998,12 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub Scales the position to simulate CRT curvature. Menskalakan posisi untuk menyimulasikan lengkungan CRT. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15378,6 +16019,12 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub Sets the horizontal center position of the simulated screen. Atur posisi tengah horizontal dari layar yang disimulasikan. + + + + %.0fpx + %.0fpx + Center Y @@ -15398,6 +16045,12 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub Sets the width of the simulated screen. Atur lebar layar yang disimulasikan. + + + + %dpx + %dpx + Screen Height @@ -15453,6 +16106,15 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub Specifies the latency to the host input device. Menspesifikasikan latensi ke perangkat input host. + + + + + + + %dms + %dms + Output Latency @@ -15521,12 +16183,12 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub Image Path - Jalur Image + Lokasi Image Sets the path to image which will back the virtual mass storage device. - Mengatur jalur menuju file image yang akan digunakan untuk perangkat penyimpan data virtual. + Mengatur lokasi file image yang akan digunakan untuk perangkat penyimpan data virtual. @@ -15653,6 +16315,26 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub Y Y + + + Off + Nonaktif + + + + Low + Rendah + + + + Medium + Menengah + + + + High + Tinggi + Steering Smoothing @@ -15663,6 +16345,12 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Menghaluskan perubahan arah setir ke persentase yang ditentukan per pol. Diperlukan untuk menggunakan keyboard. + + + + %d%% + %d%% + Steering Deadzone @@ -16162,117 +16850,117 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub USBBindingWidget_DrivingForce - + Hints Petunjuk - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Untuk mengatur kemudi dengan kebanyakan perangkat setir 900 derajat modern, putar setir satu rotasi ke salah satu arah, lalu putar kembali ke tengah. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Bawah - + Left Kiri - + Up Atas - + Right Kanan - + L1 L1 - + L2 L2 - + Brake Pedal Rem - + Steering Left Setir Kiri - + Steering Right Setir Kanan - + Select Select - + Start Start - + Face Buttons Tombol Aksi - + Circle Lingkaran - + Cross Silang - + Triangle Segitiga - + Square Kotak - + R1 R1 - + R2 R2 - + Accelerator Pedal Gas @@ -16280,67 +16968,67 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub USBBindingWidget_GTForce - + Hints Petunjuk - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Untuk mengatur kemudi dengan kebanyakan perangkat setir 900 derajat modern, putar setir satu rotasi ke salah satu arah, lalu putar kembali ke tengah. - + Force Feedback Force Feedback - + X X - + A A - + Brake Pedal Rem - + Steering Left Setir Kiri - + Steering Right Setir Kanan - + Left Paddle Paddle Shift Kiri - + Right Paddle Paddle Shift Kanan - + Y Y - + B B - + Accelerator Pedal Gas @@ -16348,71 +17036,71 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub USBBindingWidget_GunCon2 - + Buttons Tombol - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Bawah - - + + Left Kiri - - + + Up Atas - - + + Right Kanan - + Pointer Setup Pengaturan Pointer - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16421,29 +17109,29 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub <p>Jika Anda ingin menggunakan kontroler atau lightgun yang menyimulasikan sebuah kontroler alih-alih mouse, Anda harus mengatur Bidikan Relatif. Selain itu, Bidikan Relatif lebih baik <strong> tidak diatur</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Bidikan Relatif - - + + Trigger - Pelatuk + Trigger - + Shoot Offscreen Tembak ke Luar Layar - + Calibration Shot Tembakan Kalibrasi - + Calibration shot is required to pass the setup screen in some games. Tembakan kalibrasi dibutuhkan untuk menyelesaikan layar setup di beberapa game. @@ -16451,27 +17139,27 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub USBDeviceWidget - + Device Type Jenis Perangkat - + Bindings Penetapan Tombol - + Settings Pengaturan - + Automatic Mapping Penetapan Tombol Otomatis - + Clear Mapping Bersihkan Penetapan Tombol @@ -16509,32 +17197,32 @@ Pemindaian rekursif akan lebih lama, namun dapat mengidentifikasi file dalam sub VMManager - + Failed to back up old save state {}. Gagal membuat backup save state lama {}. - + Failed to save save state: {}. Gagal menyimpan save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Game Tidak Diketahui - + Error Eror - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16551,197 +17239,217 @@ Setelah di dump, Image BIOS ini harus ditempatkan di folder bios yang tersimpan Silakan baca FAQ dan Panduan untuk petunjuk lebih lanjut. - + + Resuming state + Melanjutkan savestate + + + State saved to slot {}. Save state disimpan ke slot {}. - + Failed to save save state to slot {}. Gagal menyimpan save sate ke slot {}. - + + + Loading state + Memuat savestate + + + There is no save state in slot {}. Tidak ada save state di slot {}. - + Loading state from slot {}... Memuat save state dari slot {}... - + Saving state to slot {}... Menyimpan save state ke slot {}... - + + Frame advancing + Maju Satu Frame + + + Disc removed. Disk dikeluarkan. - + Disc changed to '{}'. Disk diganti ke '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Gagal membuka image disk baru '{}'. Mengembalikan ke image sebelumnya. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Gagal membuka image disk baru '{}'. Mengembalikan ke image sebelumnya. +Erornya adalah: {} - - Failed to switch back to old disc image. Removing disc. - Gagal mengubah ke image disk lama. Melepas disk. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Gagal mengubah ke image disk lama. Melepas disk. +Erornya adalah: {} - + Cheats have been disabled due to achievements hardcore mode. Cheat telah dinonaktifkan karena mode hardcore prestasi. - + Fast CDVD is enabled, this may break games. CDVD Cepat aktif, dapat merusak game. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Lewati/rate siklus EE tidak diatur ke default, dapat menyebabkan crash atau mengurangi performa game secara signifikan. - + Audio is using async mix, expect desynchronization in FMVs. Audio menggunakan mix asinkron, FMV dapat mengalami desinkronisasi. - + Upscale multiplier is below native, this will break rendering. Nilai pengali upscale di bawah native, dapat merusak render. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping tidak diatur ke otomatis. Dapat merusak render di beberapa game. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Filter tekstur tidak di atur ke Bilinear (PS2). Akan merusak render di beberapa game. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Filter trilinear tidak diatur ke otomatis. Dapat merusak render di beberapa game. - + Blending is below basic, this may break effects in some games. Akurasi blending di bawah dasar, dapat berpengaruh di beberapa game. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Mode Unduhan Hardware tidak diatur ke Akurat, dapat merusak render di beberapa game. - + EE FPU Round Mode is not set to default, this may break some games. Mode pembulatan FPU EE tidak diatur ke default, dapat merusak beberapa game. - + EE FPU Clamp Mode is not set to default, this may break some games. Mode Clamping FPU EE tidak diatur ke default, dapat merusak beberapa game. - + VU Round Mode is not set to default, this may break some games. Mode Pembulatan VU tidak diatur ke default, dapat merusak beberapa game. - + VU Clamp Mode is not set to default, this may break some games. Mode Clamping VU tidak diatur ke default, dapat merusak beberapa game. - + Game Fixes are not enabled. Compatibility with some games may be affected. Perbaikan Game nonaktif. Dapat memengaruhi kompatibilitas dengan beberapa game. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Patch Kompatibilitas nonaktif. Dapat berpengaruh pada kompatibilitas dengan beberapa game. - + Frame rate for NTSC is not default. This may break some games. Frame rate untuk NTSC bukan default. Dapat merusak beberapa game. - + Frame rate for PAL is not default. This may break some games. Frame rate untuk PAL bukan default. Dapat merusak beberapa game. - + EE Recompiler is not enabled, this will significantly reduce performance. Recompiler EE tidak aktif. Dapat mengurangi performa secara signifikan. - + VU0 Recompiler is not enabled, this will significantly reduce performance. Recompiler VU0 tidak aktif. Dapat mengurangi performa secara signifikan. - + VU1 Recompiler is not enabled, this will significantly reduce performance. Recompiler VU1 tidak aktif. Dapat mengurangi performa secara signifikan. - + IOP Recompiler is not enabled, this will significantly reduce performance. Recompiler IOP tidak aktif. Dapat mengurangi performa secara signifikan. - + EE Cache is enabled, this will significantly reduce performance. Cach EE aktif. Dapat mengurangi performa secara signifikan. - + EE Wait Loop Detection is not enabled, this may reduce performance. Deteksi Wait Loop EE nonaktif, dapat mengurangi performa. - + INTC Spin Detection is not enabled, this may reduce performance. Deteksi Spin INTC nonaktif, dapat mengurangi performa. - + Instant VU1 is disabled, this may reduce performance. VU1 Instan nonaktif, dapat mengurangi performa. - + mVU Flag Hack is not enabled, this may reduce performance. Hack Flag mVU nonaktif. Dapat mengurangi performa. - + GPU Palette Conversion is enabled, this may reduce performance. Konversi Palet GPU aktif, dapat mengurangi performa. - + Texture Preloading is not Full, this may reduce performance. Pramuat Tekstur tidak diatur ke Penuh, dapat mengurangi performa. - + Estimate texture region is enabled, this may reduce performance. Estimasi region tekstur aktif, dapat mengurangi performa. diff --git a/pcsx2-qt/Translations/pcsx2-qt_it-IT.ts b/pcsx2-qt/Translations/pcsx2-qt_it-IT.ts index 6415bd3f42c43b..05fd967f65cd79 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_it-IT.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_it-IT.ts @@ -62,7 +62,7 @@ Please enter user name and password for retroachievements.org below. Your password will not be saved in PCSX2, an access token will be generated and used instead. - Inserisci nome utente e password per retroachievements.org qui sotto. La tua password non verrà salvata in PCSX2, ma verrà generato e utilizzato un token d'accesso. + Inserisci nome utente e password per retroachievements.org qui sotto. La tua password non verrà salvata in PCSX2, ma verrà generato ed utilizzato un token d'accesso. @@ -80,32 +80,38 @@ Pronto... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Il tuo token d'accesso per RetroAchievements non è più valido.</strong> Devi reinserire le tue credenziali per far sì che i tuoi obiettivi vengano tracciati. La tua password non verrà salvata in PCSX2, al suo posto verrà generato ed utilizzato un token d'accesso. - + &Login &Accesso - + Logging in... Accesso in corso... - + Login Error Errore nell'accesso - - Login failed. Please check your username and password, and try again. - Accesso fallito. Per favore, verifica il tuo nome utente e la tua password e riprova. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Accesso fallito. +Errore: %1 + +Per favore, verifica il tuo nome utente e la tua password e riprova. - + Login failed. Accesso fallito. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Impostazioni globali - - - - + + Enable Achievements Abilita obiettivi - - - Show Challenge Indicators - Mostra indicatori sfida - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Attiva la Rich Presence di RA - - - - + + Enable Hardcore Mode Abilita Modalità Hardcore - - - Enable Leaderboards - Abilita Classifiche - - - + Test Unofficial Achievements Testa Obiettivi non ufficiali - - - Enable Test Mode - Abilita modalità test - - - - + + Enable Sound Effects Abilita effetti sonori - + Notifications Notifiche - - - Show Notifications - Mostra notifiche - - - - Duration - Durata - - - - - - + + 5 seconds 5 secondi - + Account - Account + Profilo - - + + Login... Accesso... - + View Profile... Mostra profilo... - - Game Info - Informazioni sul gioco + + Settings + Impostazioni - - <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> - <html><head/><body><p align="justify">PCSX2 usa RetroAchievements come database per gli obiettivi e per monitorare i progressi. Per usare gli obiettivi, registrati su <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Per vedere la lista obiettivi durante il gioco, premi il tasto assegnato per <span style=" font-weight:600;">Aprire il Menu di Pausa</span> e seleziona <span style=" font-weight:600;">Obiettivi</span> dal menu.</p></body></html> + + + Enable Spectator Mode + Abilita Modalità Spettatore - - seconds - secondi + + + Enable Encore Mode + Abilita Modalità Encore + + + + + Show Achievement Notifications + Mostra Notifiche Obiettivi + + Show Leaderboard Notifications + Mostra Notifiche Classifiche + + + - - - - Unchecked - Non spuntato + Enable In-Game Overlays + Abilita Overlay Nel Gioco - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Quando abilitato ed eseguito l'accesso, PCSX2 farà una scansione per gli obiettivi al caricamento del gioco. + + Username: +Login token generated at: + Nome utente: +Token di accesso generato su: + + + + Game Info + Informazioni sul gioco + + + + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + <html><head/><body><p align="justify">PCSX2 usa RetroAchievements come database per gli obiettivi e per monitorare i progressi. Per usare gli obiettivi, registrati su <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Per vedere la lista obiettivi durante il gioco, premi il tasto di scelta rapida per <span style=" font-weight:600;">Aprire il Menu di Pausa</span> e seleziona <span style=" font-weight:600;">Obiettivi</span> dal menu.</p></body></html> + + + + + Unchecked + Non spuntato + + + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Quando abilitato, PCSX2 presumerà che tutti gli obiettivi sono bloccati e non invierà alcuna notifica di sblocco al server. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Quando abilitato, PCSX2 elencherà obiettivi dai set non ufficiali. Nota che questi obiettivi non vengono monitorati da RetroAchievements, quindi si sbloccano ogni volta. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Quando viene abilitato, le informazioni sulla rich presence vengono raccolte e inviate ai server di RetroAchievements ove supportate. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. Modalità "Sfida" per gli obiettivi, incluso il monitoraggio della classifica. Disabilita le funzioni di salvataggio dello stato, trucchi e rallentamento. - - - - + + + + Checked Spuntato - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Abilita monitoraggio e l'invio delle classifiche nei giochi supportati. Se le classifiche sono disabilitate, avrai lo stesso la capacità di vedere la classifica e i punteggi, ma nessun punteggio verrà caricato. + + Plays sound effects for events such as achievement unlocks and leaderboard submissions. + Riproduce effetti sonori per eventi come sblocchi degli obiettivi e invii alle classifiche. - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Mostra messaggi popup su eventi come lo sblocco degli obiettivi e gli invii alle classifiche. + + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + Mostra le icone nell'angolo in basso a destra dello schermo quando una sfida o un obiettivo appuntato è attivo. - - Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Riproduce effetti sonori per eventi come sblocchi degli obiettivi e invii alle classifiche. + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Quando abilitato ed eseguito l'accesso, PCSX2 farà una scansione per gli obiettivi all'avvio del gioco. - - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - Mostra le icone nell'angolo in basso a destra dello schermo quando una sfida/un obiettivo appuntato è attivo. + + Displays popup messages on events such as achievement unlocks and game completion. + Mostra messaggi popup su eventi come lo sblocco degli obiettivi e il completamento del gioco. - - - - Notification Duration - Durata Notifica + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Visualizza i messaggi popup quando si avvia, invia o fallisce una sfida sulle classifiche. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - La durata, in secondi, per la quale una notifica popup di un obiettivo rimarrà sullo schermo. + + When enabled, each session will behave as if no achievements have been unlocked. + Se abilitata, ogni sessione si comporterà come se nessun obiettivo fosse stato sbloccato. - + Reset System Resetta il sistema - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? La modalità hardcore non verrà abilitata finchè il sistema non viene resettato. Vuoi resettare il sistema adesso? + + + + %n seconds + + %n secondo + %n secondi + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Nome utente: %1 Token di accesso generato su %2. - + Logout Disconnettiti - + Not Logged In. Accesso non eseguito. - - - %1 seconds - %1 secondi - Achievements - + Hardcore mode will be enabled on system reset. La modalità hardcore verrà abilitata al riavvio del sistema. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - {0} non può essere eseguita mentre la modalità hardcore è attiva. Vuoi disabilitare la modalità hardcore? {0} verrà cancellata se selezioni No. + {0} non può essere eseguita mentre la modalità hardcore è attiva. Vuoi disabilitare la modalità hardcore? {0} verrà annullato se selezioni No. - + Hardcore mode is now enabled. La modalità hardcore è ora abilitata. - + + {} (Hardcore Mode) + {} (Modalità Hardcore) + + + + {} (Unofficial) + {} (Non ufficiale) + + + + Mastered {} + Padroneggiato {} + + + + Leaderboard attempt started. + Tentativo di classifica avviato. + + + + Leaderboard attempt failed. + Tentativo di classifica fallito. + + + + Your Time: {}{} + Il Tuo Tempo: {}{} + + + + Your Score: {}{} + Il Tuo Punteggio: {}{} + + + + Your Value: {}{} + Il Tuo Valore: {}{} + + + + (Submitting) + (Invio in corso) + + + + Achievements Disconnected + Obiettivi Disconnessi + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Non è stato possibile completare una richiesta di sblocco. Continueremo a riprovare ad inviare questa richiesta. + + + + Achievements Reconnected + Obiettivi Riconnessi + + + + All pending unlock requests have completed. + Tutte le richieste di sblocco in sospeso sono state completate. + + + Hardcore mode is now disabled. La modalità hardcore è ora disabilitata. - + + Confirm Hardcore Mode + Conferma Modalità Hardcore + + + + Active Challenge Achievements + Obiettivi Sfida Attivi + + + (Hardcore Mode) (Modalità Hardcore) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Hai sbloccato {0} su {1} obiettivi, e {2} su {3} punti. + + You have unlocked all achievements and earned {} points! + Hai sbloccato tutti gli obiettivi e guadagnato {} punti! - - This game has no achievements. - Questo gioco non ha obiettivi. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Hai sbloccato {0} di {1} obiettivi e guadagnato {2} di {3} punti. + + + + {0} achievements, {1} points + {0} obiettivi, {1} punti + + + + Your Time: {0} (Best: {1}) + Il Tuo Tempo: {0} (Migliore: {1}) + + + + Your Score: {0} (Best: {1}) + Il Tuo Punteggio: {0} (Migliore: {1}) + + + + Your Value: {0} (Best: {1}) + Il Tuo Valore: {0} (Migliore: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Posizione Classifica: {1} di {2} + + + + Server error in {0}: +{1} + Errore del server in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Punteggio: {0} ({1} softcore) +Messaggi non letti: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Hai sbloccato {0} su {1} obiettivi, guadagnando {2} su {3} punti possibili. + + + + Unknown + Sconosciuto + + + + Locked + Bloccato + + + + Unlocked + Sbloccato + + + + Unsupported + Non supportato + + + + Unofficial + Non ufficiale + + + + Recently Unlocked + Sbloccato di Recente + + + + Active Challenges + Sfide Attive + + + + Almost There + Ci siamo quasi! + + + + {} points + {} punti + + + + {} point + {} punto + + + + XXX points + XXX punti + + + + Unlocked: {} + Sbloccato: {} + + + + This game has {} leaderboards. + Questo gioco ha {} classifiche. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + L'invio dei punteggi è disabilitato perché la modalità hardcore è disattiva. Le classifiche sono di sola lettura. + + + + Show Best + Mostra Migliore + + + + Show Nearby + Mostra Vicini in Classifica + + + + Rank + Posizione + + + + Name + Nome + + + + Time + Tempo + + + + Score + Punteggio - - Leaderboard submission is enabled. - L'invio delle classifiche è abilitato. + + Value + Valore + + + + Date Submitted + Data di Invio - + + Downloading leaderboard data, please wait... + Scaricamento dati classifica, attendere prego... + + + + + Loading... + Caricamento... + + + + + Leaderboard download failed + Scaricamento della classifica fallito + + + + This game has no achievements. + Questo gioco non ha obiettivi. + + + Failed to read executable from disc. Achievements disabled. Lettura dell'eseguibile dal disco fallita. Obiettivi disabilitati. @@ -494,7 +731,7 @@ Token di accesso generato su %2. Pauses the virtual machine when a TLB miss occurs, instead of ignoring it and continuing. Note that the VM will pause after the end of the block, not on the instruction which caused the exception. Refer to the console to see the address where the invalid access occurred. - Mette in pausa la macchina virtuale quando avviene un miss TLB, invece di ignorarlo e continuare. Notare che la MV verrà messa in pausa dopo la fine del blocco, non sull'istruzione che ha causato l'eccezione. Fare riferimento alla console per vedere l'indirizzo in cui è avvenuto l'accesso non valido. + Mette in pausa la macchina virtuale quando avviene un TLB Miss, invece di ignorarlo e continuare. Tieni conto che la MV verrà messa in pausa dopo la fine del blocco, non sull'istruzione che ha causato l'eccezione. Fare riferimento alla console per vedere l'indirizzo in cui è avvenuto l'accesso non valido. @@ -578,220 +815,220 @@ Token di accesso generato su %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Cambiare queste opzioni potrebbe rendere i giochi non funzionanti. Modificale a tuo rischio e pericolo, il team PCSX2 non fornirà alcun supporto per configurazioni con queste impostazioni cambiate. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Modalità di arrotondamento: - - - + + + Nearest Più vicina - - - + + + Negative Negativa - - - + + + Positive Positiva - - - + + + Chop / Zero (Default) Taglia / Zero (Predefinito) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Modalità Clamping: - - + + None Nessuna - - - + + + Normal (Default) Normale (predefinita) - + None ClampMode Nessuno - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + preserva segno - + Full Completa - + Wait Loop Detection Rilevamento Wait Loop - - + + Enable Recompiler Abilita ricompilatore - + Enable Fast Memory Access Abilita accesso rapido alla memoria - + Enable Cache (Slow) - Abilita cache (lenta) + Abilita cache (lento) - + INTC Spin Detection Rilevamento Spin INTC - + Pause On TLB Miss - Pausa Su Miss TLB + Pausa Su TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: Modalità Arrotondamento VU1: - + mVU Flag Hack Hack flag mVU - + Enable VU1 Recompiler Abilita Ricompilatore VU1 - + Enable VU0 Recompiler (Micro Mode) Abilita Ricompilatore VU0 (Modalità Micro) - - + + Extra Extra - + VU0 Clamping Mode: Modalità Clamping VU0: - + VU0 Rounding Mode: Modalità Arrotondamento VU0: - + VU1 Clamping Mode: Modalità Clamping VU1: - + I/O Processor (IOP, MIPS-I) Processore I/O (IOP, MIPS-I) - + Game Settings Impostazioni di gioco - + Enable Game Fixes Abilita correzioni dei giochi - + Enable Compatibility Patches Abilità patch di compatibilità - + Frame Rate Control Controllo frame rate - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: Frame Rate PAL: - + NTSC Frame Rate: Frame Rate NTSC: - + PINE Settings Impostazioni PINE - + Slot: Slot: - + Enable Abilita @@ -799,182 +1036,182 @@ Token di accesso generato su %2. AudioSettingsWidget - + Timestretch Settings Impostazioni Timestretch - + Sequence Length: Lunghezza Sequenza: - + 30 30 - + Seekwindow Size: Dimensione Seekwindow: - + 20 20 - + Overlap: Sovrapposizione: - + 10 10 - + Restore Defaults Ripristina Predefiniti - + Volume Volume - + 100% 100% - + Mixing Settings Impostazioni Mixaggio - + Synchronization: Sincronizzazione: - + TimeStretch (Recommended) Timestretch (Consigliato) - + Async Mix (Breaks some games!) Mix asincrono (rompe alcuni giochi!) - + None (Audio can skip.) Nessuna (l'audio può saltare.) - + Expansion: Espansione: - + Stereo (None, Default) Stereo (Nessuna, Predefinita) - + Quadraphonic - Quadraphonic + Quadrifonico - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Livello ProLogic: - + None (Default) Nessuno (Predefinito) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Decodifica ProLogic (basilare) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Decodifica ProLogic II (gigaherz) - + Target Latency: Latenza Obiettivo: - + 60 ms 60 ms - + Output Settings Impostazioni di output - + Output Module: Modulo di output: - + Output Latency: Latenza di output: - + 20 ms 20 ms - + Minimal Minima - + Output Backend: Backend di output: - + Maximum Latency: Latenza massima: - + Output Device: Dispositivo di output: @@ -1001,7 +1238,7 @@ Token di accesso generato su %2. When running outside of 100% speed, adjusts the tempo on audio instead of dropping frames. Produces much nicer fast-forward/slowdown audio. - Quando si esegue al di fuori del 100% di velocità, regola il tempo sull'audio invece di scartare fotogrammi. Produce audio accelerato/rallentato molto più piacevole. + Quando si esegue al di fuori del 100% di velocità, regola il tempo sull'audio invece di scartare fotogrammi. Produce un migliore audio accelerato/rallentato. @@ -1071,7 +1308,7 @@ Token di accesso generato su %2. Determines the latency from the buffer to the host audio output. This can be set lower than the target latency to reduce audio delay. - Determina la latenza dal buffer all'output audio dell'host. Questa può essere impostata come inferiore alla latenza obiettivo per ridurre il ritardo audio. + Determina la latenza dal buffer all'output audio dell'host. Può essere impostata come inferiore alla latenza obiettivo per ridurre il ritardo audio. @@ -1162,17 +1399,22 @@ Token di accesso generato su %2. Nuova versione: - + + Download Size: + Dimensione del Download: + + + Download and Install... Scarica e installa... - + Skip This Update Salta Questo Aggiornamento - + Remind Me Later Ricordami Più Tardi @@ -1182,19 +1424,19 @@ Token di accesso generato su %2. Errore Aggiornamento - + <h2>Changes:</h2> <h2>Cambiamenti:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - <h2>Avviso stati salvati</h2><p>Installare questo aggiornamento renderà i tuoi stati salvati <b>incompatibili</b>. Per favore, assicurati di aver salvato i tuoi progressi su una Memory Card prima d'installare questo aggiornamento o li perderai.</p> + <h2>Avviso stati salvati</h2><p>Installare questo aggiornamento renderà i tuoi stati salvati <b>incompatibili</b>. Assicurati di aver salvato i tuoi progressi su una Memory Card prima d'installare questo aggiornamento o verranno persi.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> - <h2>Avviso impostazioni</h2><p>Installare questo aggiornamento resetterà la tua configurazione del programma. Per favore, tieni presente che dovrai riconfigurare le tue impostazioni dopo questo aggiornamento.</p> + <h2>Avviso impostazioni</h2><p>Installare questo aggiornamento resetterà la tua configurazione del programma. Tieni presente che dovrai riconfigurare le tue impostazioni dopo questo aggiornamento.</p> @@ -1209,7 +1451,7 @@ Token di accesso generato su %2. Downloading %1... - Download %1 in corso... + Download di %1 in corso... @@ -1219,7 +1461,7 @@ Token di accesso generato su %2. No updates are currently available. Please try again later. - Nessun aggiornamento è al momento disponibile. Per favore, riprova in seguito. + Nessun aggiornamento è al momento disponibile. Riprova più tardi. @@ -1233,6 +1475,11 @@ Token di accesso generato su %2. + Download Size: %1 MB + Dimensione del Download: %1 MB + + + Loading... Caricamento... @@ -1240,63 +1487,63 @@ Token di accesso generato su %2. BIOSSettingsWidget - + BIOS Directory Cartella BIOS - + PCSX2 will search for BIOS images in this directory. PCSX2 cercherà le immagini del BIOS in questa cartella. - + Browse... Sfoglia... - + Reset Resetta - + BIOS Selection Selezione del BIOS - - Open in Explorer... - Apri in Esplora risorse... + + Open BIOS Folder... + Apri Cartella BIOS... - + Refresh List Aggiorna lista - + Filename Nome file - + Version Versione - + Options and Patches Opzioni e patch - + Fast Boot Avvio veloce - + Fast Forward Boot Avanzamento Rapido del Boot @@ -1389,7 +1636,7 @@ Token di accesso generato su %2. Log - Registrazione + Registro @@ -1424,91 +1671,84 @@ Token di accesso generato su %2. BreakpointModel - + Execute Esecuzione - - No Condition - Nessuna condizione - - - - + + -- -- - - + Enabled Abilitato - - + Disabled Disabilitato - + Read Lettura - + Write(C) (C) = changes, as in "look for changes". Scrittura(C) - + Write Scrittura - + TYPE Warning: limited space available. Abbreviate if needed. TIPO - + OFFSET Warning: limited space available. Abbreviate if needed. - SCOSTAM. + OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. - DIMENS. / ETICH. + DIMENS. / ETICH - + INSTRUCTION Warning: limited space available. Abbreviate if needed. ISTRUZIONE - + CONDITION Warning: limited space available. Abbreviate if needed. CONDIZIONE - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ABILITATO + X @@ -1516,10 +1756,10 @@ Token di accesso generato su %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - La posizione del disco di gioco è su un disco rimovibile, potrebbero verificarsi problemi di prestazioni come jittering e blocchi. + La posizione del disco di gioco è su un disco rimovibile, potrebbero verificarsi problemi di prestazioni come jitteraggio e blocchi. - + Saving CDVD block dump to '{}'. Salvataggio del dump del blocco CDVD in '{}'. @@ -1555,32 +1795,32 @@ Token di accesso generato su %2. ControllerBindingWidget - + Virtual Controller Type Tipo di Controller Virtuale - + Bindings Associazioni - + Settings Impostazioni - + Macros Macro - + Automatic Mapping Mappatura Automatica - + Clear Mapping Elimina Mappatura @@ -1620,146 +1860,146 @@ Token di accesso generato su %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Tasti direzionali - - - + + + Down Giù - - - + + + Left Sinistra - - - + + + Up Su - - - + + + Right Destra - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Analogico sinistro - + Large Motor Motore grande - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Pulsanti principali - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Croce - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Quadrato - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangolo - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cerchio - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Analogico Destro - + Small Motor Motore piccolo - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Modificatore pressione - + Analog Analog @@ -1767,77 +2007,72 @@ Token di accesso generato su %2. ControllerBindingWidget_Guitar - - Form - Modulo - - - + Yellow Giallo - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start - START + Start - + Red Rosso - + Green Verde - + Orange Arancione - + Select - SELECT + Select - + Strum Up Pennata Su - + Strum Down Pennata Giù - + Blue Blu - + Whammy Bar Leva del Vibrato - + Tilt Inclinazione @@ -1863,123 +2098,133 @@ Token di accesso generato su %2. ControllerGlobalSettingsWidget - + SDL Input Source Sorgente di input SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). La sorgente di input SDL supporta la maggior parte dei controller, e fornisce funzionalità avanzate per i DualShock 4 / DualSense in modalità Bluetooth (Vibrazione / Controllo LED). - + Enable SDL Input Source Abilita sorgente di input SDL - + DualShock 4 / DualSense Enhanced Mode - Modalità potenziata DualShock 4 / DualSense + Modalità DualShock 4 / DualSense migliorata - + XInput Source Sorgente XInput - + Enable XInput Input Source Abilita sorgente di input XInput - + DInput Source Sorgente DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - La sorgente DInput fornisce il supporto per controller datati che non supportano XInput. Si consiglia di accedere a questi controller tramite SDL, ma DirectInput può essere utilizzato se essi non sono compatibili con SDL. + La sorgente DInput fornisce il supporto per controller datati che non supportano XInput. Si consiglia di accedere a questi controller tramite SDL, ma DirectInput può essere utilizzato se non sono compatibili con SDL. - + Enable DInput Input Source Abilita sorgente di input DInput - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Alcuni controller di terze parti indicano in modo errato le levette analogiche come invertite sul componente positivo, ma non su quello negativo.</p><p> Il risultato è che la levetta analogica rimane &quot;bloccata sulla pressione &quot; anche quando in realtà si trova in posizione neutrale. </p><p>Abilitare questa impostazione dirà a PCSX2 di ignorare le indicazioni di inversione quando si creano le mappature, permettendo a tali controller di funzionare in modo corretto. </p></body></html> + + + + Ignore Inversion + Ignora inversione + + + Profile Settings Impostazioni del profilo - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Quando questa opzione è abilitata, i tasti di scelta rapida possono essere impostati in questo profilo di input, e verranno usati invece dei tasti di scelta rapida globali. Per impostazione predefinita, i tasti di scelta rapida sono sempre condivisi fra tutti i profili. - + Use Per-Profile Hotkeys Usa tasti di scelta rapida per profilo - - + + Controller LED Settings Impostazioni LED del Controller - + Enable SDL Raw Input Abilita Input Grezzo SDL - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. La sorgente XInput fornisce il supporto per i controller Xbox 360 / Xbox One / Xbox Series, e per i controller di terze parti che implementano il protocollo XInput. - + Controller Multitap Multitap per controller - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Il multitap consente di connettere fino a 8 controller alla console. Ciascun multitap fornisce 4 porte. Il multitap non è supportato da tutti i giochi. - + Multitap on Console Port 1 Multitap su porta console 1 - + Multitap on Console Port 2 Multitap su porta console 2 - + Mouse/Pointer Source Sorgente Mouse/Puntatore - + PCSX2 allows you to use your mouse to simulate analog stick movement. - PCSX2 ti permette di usare il tuo mouse per simulare il movimento della levetta analogica. + PCSX2 permette di usare il tuo mouse per simulare il movimento della levetta analogica. - + Settings... Impostazioni... - + Enable Mouse Mapping Abilita Mappatura Mouse - + Detected Devices Dispositivi Rilevati @@ -2015,58 +2260,58 @@ Token di accesso generato su %2. ControllerMacroEditWidget - + Binds/Buttons Associazioni/Pulsanti - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Seleziona i pulsanti che vuoi attivare con questa macro. Tutti i pulsanti vengono attivati contemporaneamente. - + Pressure Pressione - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Per pulsanti che sono sensibili alla pressione, questo cursore controlla quanta forza verrà simulata quando la macro è attiva. - - + + 100% 100% - + Trigger Attivatore - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Seleziona l'attivatore per questa macro. Esso può essere un singolo pulsante, o una combinazione di pulsanti (accordo). Mantieni premuto il tasto Shift e clicca per selezionare multipli attivatori. - + Deadzone: Zona morta: - + Frequency Frequenza - + Macro will toggle every N frames. La macro si attiverà ogni N frame. - + Set... Imposta... @@ -2169,84 +2414,85 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings Impostazioni Controller di PCSX2 - + Editing Profile: Modifica Profilo: - + New Profile Nuovo Profilo - + Load Profile Carica Profilo - + Delete Profile Elimina Profilo - - + + Restore Defaults Ripristina Predefiniti - - + + Create Input Profile Crea Profilo di Input - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - I profili di input personalizzati vengono usati per ignorare il profilo di input condiviso per dei giochi specifici. Per applicare un profilo di input personalizzato a un gioco, vai nelle sue Proprietà di Gioco, poi cambia il 'Profilo di Input' nella scheda Riassunto. + I profili di input personalizzati vengono usati per ignorare il profilo di input Condiviso per dei giochi specifici. +Per applicare un profilo di input personalizzato a un gioco, vai nelle sue Proprietà di Gioco, poi cambia il 'Profilo di Input' nella scheda Riassunto. Inserisci il nome per il nuovo Profilo di Input: - - - - + + + + Error Errore - + A profile with the name '%1' already exists. Un profilo con il nome '%1' esiste già. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Vuoi copiare tutte le associazioni dal profilo attualmente selezionato al nuovo profilo? Selezionare No creerà un profilo completamente vuoto. - + Failed to save the new profile to '%1'. Salvataggio del nuovo profilo in '%1' non riuscito. - + Load Input Profile Carica Profilo di Input - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2259,12 +2505,12 @@ Tutte le associazioni globali attuali verranno rimosse, e le associazioni del pr Non puoi annullare quest'azione. - + Delete Input Profile Elimina Profilo di Input - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2273,12 +2519,12 @@ You cannot undo this action. Non puoi annullare quest'azione. - + Failed to delete '%1'. Eliminazione di '%1' non riuscita. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2291,13 +2537,13 @@ Tutte le associazioni e la configurazione condivise verranno perse, ma i tuoi pr Non puoi annullare quest'azione. - + Global Settings Impostazioni Globali - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2305,8 +2551,8 @@ Non puoi annullare quest'azione. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2314,26 +2560,26 @@ Non puoi annullare quest'azione. %2 - - + + USB Port %1 %2 Porta USB %1 %2 - + Hotkeys Tasti di scelta rapida - + Shared "Shared" refers here to the shared input profile. Condiviso - + The input profile named '%1' cannot be found. Impossibile trovare il profilo di input denominato '%1'. @@ -2405,204 +2651,242 @@ Non puoi annullare quest'azione. Funzioni - + + Module + Modulo + + + + Version + Versione + + + + Count + Conteggio + + + Refresh Aggiorna - + Filter Filtra - + Memory Search Cerca in memoria - + End Fine - + Value Valore - + Start Inizio - + Type Tipo - + 1 Byte (8 bits) 1 Byte (8 bit) - + 2 Bytes (16 bits) 2 Byte (16 bit) - + 4 Bytes (32 bits) 4 Byte (32 bit) - + 8 Bytes (64 bits) 8 Byte (64 bit) - + Float Numero in virgola mobile - + Double Doppio - + String Stringa - + Array of byte Vettore del byte - + Hex Esad. - + Search Cerca - + Memory Memoria - + Breakpoints Punti d'interruzione - + Threads Thread - + Active Call Stack Stack di chiamate attive - + Breakpoint List Context Menu Menu contestuale lista di punti d'interruzione - + New Nuovo - + Edit Modifica - - - + + + Copy Copia - + Delete Elimina - + + + + Copy all as CSV + Copia tutto come CSV + + + + Paste from CSV + Incolla da CSV + + + Thread List Context Menu Menu contestuale lista di thread - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Decodifica simboli - + + Copy Function Name Copia Nome Funzione - + + Copy Function Address Copia Indirizzo Funzione - + + Go to in Disassembly Vai a nel disassemblaggio - + + Go to in Memory View Vai a in Vista Memoria - + + + Module Tree + Albero Di Modulo + + + Stack List Context Menu Menu contestuale lista di stack - - - - - + + + + + Debugger Debugger - + Invalid start address Indirizzo iniziale non valido - + Invalid end address Indirizzo finale non valido - + Start address can't be equal to or greater than the end address L'indirizzo iniziale non può essere uguale o maggiore dell'indirizzo finale - + Invalid search value Valore di ricerca non valido - + Value is larger than type Il valore è più grande del tipo @@ -2658,22 +2942,22 @@ Non puoi annullare quest'azione. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Dispositivo Ethernet: - + Ethernet Device Type: Tipo dispositivo Ethernet: - + Intercept DHCP Intercetta DHCP @@ -2683,135 +2967,130 @@ Non puoi annullare quest'azione. Abilitato - + Enabled InterceptDHCP Abilitato - + Subnet Mask: Maschera di Sottorete: - + Gateway Address: Indirizzo del Gateway: - - + + Auto Automatica - + Intercept DHCP: Intercetta DHCP: - + PS2 Address: Indirizzo PS2: - + DNS1 Address: Indirizzo DNS1: - + DNS2 Address: Indirizzo DNS2: - + Internal DNS DNS Interno - + Add Aggiungi - + Delete Elimina - + Export Esporta - + Import Importa - + Per game Per singolo gioco - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Il DNS interno può essere selezionato usando i menu a discesa DNS1/2, o impostandoli su 192.0.2.1 - + Enabled InternalDNSTable Abilitato - + Hard Disk Drive Disco Rigido - + HDD File: File HDD: - + 40 40 - + 120 120 - + HDD Size (GiB): Dimensione HDD (GiB): - + Enabled HDD Abilitato - + Browse Sfoglia - + Create Image Crea Immagine - - - - - PCAP Bridged @@ -2844,7 +3123,7 @@ Non puoi annullare quest'azione. - + Use Global Setting [%1] Usa impostazione globale [%1] @@ -2864,78 +3143,78 @@ Non puoi annullare quest'azione. Indirizzo - - + + Hosts File File Hosts - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts Host DNS - + Exported Successfully Esportato con successo - + Failed to open file Apertura del file non riuscita - + No Hosts in file Nessun host nel file - + Imported Successfully Importato con successo - - + + Per Game Host list Lista di host per gioco - + Copy global settings? Copiare impostazioni globali? - + Delete per game host list? Eliminare lista di host per gioco? - + HDD Image File File immagine HDD - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Sovrascrivere il file? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2944,22 +3223,22 @@ Do you want to overwrite? Vuoi sovrascriverla? - + HDD Creator Creatore HDD - + HDD image created Immagine HDD creata - + Use Global Usa globale - + Override Ignora @@ -2967,69 +3246,69 @@ Vuoi sovrascriverla? DebugSettingsWidget - + GS GS - + Draw Dumping Dumping draw - + Dump GS Draws Esegui dump delle draw del GS - + Save RT Salva RT - + Save Frame Salva Frame - + Save Texture Salva Texture - + Save Depth Salva profondità - + Start Draw Number: Inizio numero di draw: - + Draw Dump Count: Conteggio dump di draw: - + Hardware Dump Directory: Cartella dump hardware: - + Software Dump Directory: Cartella dump software: - - + + Browse... Sfoglia... - - + + Open... Apri... @@ -3042,29 +3321,53 @@ Vuoi sovrascriverla? Debugger PCSX2 - - - + + Run Esegui - + Step Into Passa a - + + F11 + F11 + + + Step Over Passa oltre - + + F10 + F10 + + + Step Out Esci - + + Shift+F11 + Maiusc+F11 + + + + Always On Top + Sempre in 1° piano + + + + Show this window on top + Mostra questa finestra sopra + + + Pause Metti in pausa @@ -3077,149 +3380,174 @@ Vuoi sovrascriverla? Disassemblaggio - + Copy Address Copia indirizzo - + Copy Instruction Hex Copia esadecimale dell'istruzione - + Copy Instruction Text Copia Testo Istruzione - + Assemble new Instruction(s) Assembla nuova(e) istruzione(i) - + NOP Instruction(s) Istruzione(i) NOP - + Run to Cursor Esegui fino al cursore - + Jump to Cursor Vai al cursore - + Toggle Breakpoint Attiva/disattiva punto d'interruzione - + Follow Branch Segui Ramo - + Go to Address Vai a Indirizzo - + Go to in Memory View Vai a in Vista Memoria - - + + Add Function Aggiungi funzione - - + + Rename Function Rinomina funzione - + Remove Function Rimuovi Funzione - - + + Assemble Error Errore di Assemblaggio - + Unable to change assembly while core is running Impossibile cambiare assembly mentre il core è in esecuzione - + Assemble Instruction Istruzione Assemblaggio - + Go to address Vai a Indirizzo - + Go to address error Vai a errore indirizzo - + Invalid address Indirizzo non valido - + Add Function Error Aggiungi Errore Funzione - + A function entry point already exists here. Consider renaming instead. Un punto di entrata della funzione già esiste qui. Considera la rinominazione, invece. - - + + Function will be (0x%1) instructions long. Enter function name La funzione sarà lunga (0x%1) istruzioni. Inserire nome funzione - + Function name Nome funzione - - + + Rename Function Error Errore nella rinominazione della funzione - + Function name cannot be nothing. Il nome della funzione non può essere vuoto. - + No function / symbol is currently selected. Nessuna funzione / simbolo è attualmente selezionata / o. - + + Restore Function Error + Errore nella Funzione di Ripristino + + + + Unable to stub selected address. + Impossibile utilizzare stub nell'indirizzo selezionato. + + + + Restore Instruction(s) + Istruzione(i) di Ripristino + + + + Restore Function + Funzione Ripristino + + + + Stub (NOP) Function + Funzione Stub (NOP) + + + %1 NOT VALID ADDRESS %1 NON È UN INDIRIZZO VALIDO @@ -3227,17 +3555,17 @@ Inserire nome funzione EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">Non sono stati trovati giochi nei formati supportati.</span></p><p>Per favore, aggiungi una cartella con dei giochi per iniziare.</p><p>Verranno scansionati ed elencati i dump dei giochi nei seguenti formati:</p></body></html> - + Add Game Directory... Aggiungi Cartella Giochi... - + Scan For New Games Scansione nuovi giochi @@ -3245,48 +3573,44 @@ Inserire nome funzione EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Gioco: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - ID Gioco: %1 -Titolo Gioco: %2 -Obiettivi: %5 (%6) - + Gioco: %1 (%2) - - - %n points - - %n punti - %n punti - - - + Rich presence inactive or unsupported. Rich presence disattivata o non supportata. - + Game not loaded or no RetroAchievements available. Gioco non caricato o nessun RetroAchievement disponibile. @@ -3294,192 +3618,192 @@ Obiettivi: %5 (%6) EmulationSettingsWidget - + Speed Control Controllo velocità - + Normal Speed: Velocità normale: - + Enable Speed Limiter Abilita limitatore di velocità - + System Settings Impostazioni di sistema - + Enable Instant VU1 Abilita VU1 istantanea - + Enable Cheats Abilita trucchi - + Slow-Motion Speed: Velocità al Rallentatore: - + Fast-Forward Speed: Velocità di Avanzamento Rapido: - + Enable Multithreaded VU1 (MTVU) Abilita Multithread VU1 (MTVU) - + Enable Host Filesystem Abilita filesystem dell'host - + Enable Fast CDVD Abilita CDVD Veloce - + EE Cycle Skipping: Salti Ciclo EE: - - + + Disabled Disabilitato - + Mild Underclock Underclock leggero - + Moderate Underclock Underclock moderato - + Maximum Underclock Underclock massimo - + EE Cycle Rate: Frequenza cicli EE: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (velocità normale) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Controllo affinità: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Controllo Latenza - + frames This string will appear next to the amount of frames selected, in a dropdown box. frame - + Maximum Frame Latency: Latenza Massima Frame: - + Optimal Frame Pacing Frame Pacing Ottimale - + Scale To Host Refresh Rate Ridimensiona in base a frequenza di aggiornamento host @@ -3567,12 +3891,22 @@ Obiettivi: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Consente a giochi e homebrew di accedere a file / cartelle direttamente sul computer host. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Accelera l'emulazione in modo che la frequenza di aggiornamento corrisponda a quella dell'host. Ciò si traduce in animazioni più fluide possibili, al costo di un potenziale aumento della velocità di emulazione inferiore all'1%. Scala alla Frequenza di Aggiornamento dell'Host non avrà effetto se la frequenza di aggiornamento della console's è troppo lontana dalla velocità di aggiornamento dell'host's. Gli utenti con una frequenza di aggiornamento variabile dovrebbero disabilitare questa opzione. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Velocità di Avanzamento Rapido + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3636,45 +3970,40 @@ Obiettivi: %5 (%6) Imposta il numero massimo di frame che può essere accodato al GS, prima che il thread CPU attenda che uno di loro sia completo prima di continuare. Valori più elevati possono assistere nell'appianamento di frame time irregolari, ma aggiungono dell'ulteriore input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Regola la velocità di emulazione così da far corrispondere la frequenza di aggiornamento della console alla frequenza di aggiornamento dell'host quando entrambe le impostazioni di VSync e Ricampionamento Audio sono abilitate. Questo risulta nelle animazioni più fluide possibili, al costo di un potenziale aumento della velocità di emulazione di meno dell'1%. Ridimensiona in base alla frequenza di aggiornamento dell'host non avrà effetto se la frequenza di aggiornamento della console è troppo lontana dalla frequenza di aggiornamento dell'host. Gli utenti con schermi a frequenza d'aggiornamento variabile dovrebbero disabilitare quest'opzione. - - - + Use Global Setting [%1%] Usa impostazione globale [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Illimitato - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Personalizzato - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Personalizzato [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Velocità personalizzata - + Enter Custom Speed Inserisci Velocità Personalizzata @@ -3682,79 +4011,79 @@ Obiettivi: %5 (%6) FolderSettingsWidget - + Cache Directory Cartella Cache - - - - - + + + + + Browse... Sfoglia... - - - - - + + + + + Open... Apri... - - - - - + + + + + Reset Resetta - + Used for storing shaders, game list, and achievement data. Utilizzata per conservare gli shader, la lista dei giochi e i dati sugli obiettivi. - + Cheats Directory Cartella dei trucchi - + Used for storing .pnach files containing game cheats. Utilizzata per archiviare i file .pnach contenenti i trucchi di gioco. - + Covers Directory Cartella delle copertine - + Used for storing covers in the game grid/Big Picture UIs. Utilizzato per archiviare le copertine nella griglia dei giochi/nell'interfaccia Big Picture. - + Snapshots Directory Cartella screenshot - + Used for screenshots and saving GS dumps. Utilizzata per gli screenshot e per salvare i dump GS. - + Save States Directory Cartella stati salvati - + Used for storing save states. Utilizzata per memorizzare gli stati salvati. @@ -3762,2082 +4091,2102 @@ Obiettivi: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Non è stato possibile trovare alcun dispositivo CD/DVD-ROM. Per favore, assicurati di avere un'unità collegata e permessi sufficienti per accedervi. - + Use Global Setting Utilizza le impostazioni generali - + Automatic binding failed, no devices are available. Associazione automatica non riuscita, nessun dispositivo disponibile. - + Game title copied to clipboard. Titolo del gioco copiato negli appunti. - + Game serial copied to clipboard. Numero di serie del gioco copiato negli appunti. - + Game CRC copied to clipboard. CRC del gioco copiato negli appunti. - + Game type copied to clipboard. Tipo di gioco copiato negli appunti. - + Game region copied to clipboard. Regione del gioco copiata negli appunti. - + Game compatibility copied to clipboard. Compatibilità del gioco copiata negli appunti. - + Game path copied to clipboard. Percorso del gioco copiato negli appunti. - + Per-game controller configuration initialized with global settings. Configurazione del controller per gioco inizializzata con le impostazioni globali. - + Controller settings reset to default. Impostazioni del controller ripristinate ai valori predefiniti. - + No input profiles available. Nessun profilo di input disponibile. - + Create New... Crea nuovo... - + Enter the name of the input profile you wish to create. Inserisci il nome del profilo di input che vuoi creare. - + Are you sure you want to restore the default settings? Any preferences will be lost. Sei sicuro di voler ripristinare le impostazioni predefinite? Qualunque preferenza andrà persa. - + Settings reset to defaults. Impostazioni reimpostate ai valori predefiniti. - - Quick Save Slot - Slot Di Salvataggio Veloce - - - + No save present in this slot. Nessun salvataggio presente in questo slot. - + No save states found. Nessuno stato di salvataggio trovato. - + Failed to delete save state. Impossibile eliminare lo stato di salvataggio. - + Failed to copy text to clipboard. Impossibile copiare il testo negli appunti. - + This game has no achievements. Questo gioco non ha obiettivi. - + This game has no leaderboards. Questo gioco non ha classifiche. - + Reset System Resetta il sistema - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? La modalità hardcore non verrà abilitata finchè il sistema non viene resettato. Vuoi resettare il sistema adesso? - + Launch a game from images scanned from your game directories. Avvia un gioco dalle immagini scansionate dalle cartelle di gioco. - + Launch a game by selecting a file/disc image. Avvia un gioco selezionando un'immagine di file/disco. - + Start the console without any disc inserted. Avvia la console senza alcun disco inserito. - + Start a game from a disc in your PC's DVD drive. Avvia un gioco dal drive DVD del tuo PC. - + Change settings for the emulator. Modifica le impostazioni per l'emulatore. - + Exits the program. Esce dal programma. - + No Binding Nessuna Associazione - + Setting %s binding %s. Impostazione %s associazione %s. - + Push a controller button or axis now. Premi un pulsante o un asse del controller adesso. - + Timing out in %.0f seconds... Timing out in %.0f secondi... - + Unknown Sconosciuto - + OK OK - + Select Device Seleziona dispositivo - + Details Dettagli - + Options Opzioni - + Copies the current global settings to this game. Copia le attuali impostazioni globali in questo gioco. - + Clears all settings set for this game. Cancella tutte le impostazioni per questo gioco. - + Behaviour Comportamento - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Impedisce che il salvaschermo si attivi e che l'host entri in sospensione mentre l'emulazione è in esecuzione. - + Shows the game you are currently playing as part of your profile on Discord. Mostra il gioco a cui stai attualmente giocando come parte del tuo profilo su Discord. - + Pauses the emulator when a game is started. Mette in pausa l'emulatore quando viene avviato un gioco. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Mette in pausa l'emulatore quando riduci la finestra a icona o passi ad un'altra applicazione, e continua quando si passa di nuovo all'emulatore. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Mette in pausa l'emulatore quando apri il menu veloce e continua l'emulazione quando lo chiudi. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determina se verrà visualizzato un prompt per confermare l'arresto della macchina virtuale quando il tasto di scelta rapida viene premuto. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Salva automaticamente lo stato dell'emulatore allo spegnimento o all'uscita. Puoi quindi riprendere direttamente da dove hai smesso, la volta successiva. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Abilita il caricamento delle sovrapposizioni ini dalle impostazioni di gioco o dalle impostazioni personalizzate per ogni gioco. - - - + Uses a light coloured theme instead of the default dark theme. Usa un tema chiaro invece del tema scuro predefinito. - + Game Display Display di gioco - - Automatically switches to fullscreen mode when the program is started. - Passa automaticamente alla modalità a schermo intero quando un gioco viene avviato. - - - + Switches between full screen and windowed when the window is double-clicked. Passa tra schermo intero e finestra quando si clicca due volte sulla finestra. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Nasconde il puntatore del mouse/cursore quando l'emulatore è in modalità a schermo intero. - + Determines how large the on-screen messages and monitor are. Determina la grandezza dei messaggi sullo schermo e sul monitor. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Mostra messaggi a schermo quando si verificano eventi come la creazione/il caricamento di stati salvati, l'acquisizione di screenshot, ecc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Mostra la velocità di emulazione attuale del sistema nell'angolo in alto a destra dello schermo in percentuale. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Mostra il numero di fotogrammi video (o v-sync) visualizzati al secondo dal sistema nell'angolo in alto a destra del display. - + Shows the CPU usage based on threads in the top-right corner of the display. Mostra l'utilizzo della CPU in base ai thread nell'angolo in alto a destra del display. - + Shows the host's GPU usage in the top-right corner of the display. Mostra la risoluzione del gioco nell'angolo in alto a destra dello schermo. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Mostra la risoluzione di rendering del gioco nell'angolo in alto a destra del display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Mostra le statistiche su GS (primitive, draw call) nell'angolo in alto a destra del display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Mostra gli indicatori quando sono attivi avanti veloce, la pausa e altri stati anomali. - + Shows the current configuration in the bottom-right corner of the display. Mostra la configurazione attuale nell'angolo in basso a destra del display. - + Shows the current controller state of the system in the bottom-left corner of the display. Mostra lo stato attuale del controller del sistema nell'angolo in basso a sinistra dello schermo. - + Shows a visual history of frame times in the upper-left corner of the display. Mostra una cronologia visiva dei tempi dei fotogrammi nell'angolo in alto a sinistra del display. - + Displays warnings when settings are enabled which may break games. Mostra avvisi quando sono abilitate impostazioni che potrebbero corrompere i giochi. - + Resets configuration to defaults (excluding controller settings). Reimposta la configurazione ai valori predefiniti (escluse le impostazioni del controller). - + Changes the BIOS image used to start future sessions. Cambia l'immagine BIOS utilizzata per avviare sessioni future. - + Automatic Automatico - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Predefinito + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + Se abilitata, verranno applicate le impostazioni personalizzate per ogni gioco. Disabilita per usare sempre la configurazione globale. + + + + Automatically switches to fullscreen mode when a game is started. + Passa automaticamente alla modalità a schermo intero quando si avvia un gioco. + + + On-Screen Display - On-Screen Display + Mostra A Schermo - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Mostra la risoluzione del gioco nell'angolo in alto a destra dello schermo. + + + BIOS Configuration - BIOS Configuration + Configurazione BIOS - + BIOS Selection Selezione del BIOS - + Options and Patches - Options and Patches + Opzioni e Patch - + Skips the intro screen, and bypasses region checks. Salta la schermata introduttiva e bypassa i controlli della regione. - + Speed Control Controllo velocità - + Normal Speed Velocità Normale - + Sets the speed when running without fast forwarding. Imposta la velocità in esecuzione senza l' avanzamento rapido. - + Fast Forward Speed Velocità di Avanzamento Rapido - + Sets the speed when using the fast forward hotkey. Imposta la velocità in esecuzione quando si utilizza l' avanzamento rapido. - + Slow Motion Speed Velocità al rallentatore - + Sets the speed when using the slow motion hotkey. Imposta la velocità in esecuzione quando si utilizza il tasto di scelta rapido per il rallentatore. - + Enable Speed Limiter Abilita limitatore di velocità - + When disabled, the game will run as fast as possible. Quando disabilitato, il gioco verrà eseguito il più velocemente possibile. - + System Settings Impostazioni di sistema - + EE Cycle Rate Frequenza Cicli EE - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocca od Overclocca la CPU emulata Emotion Engine. - + EE Cycle Skipping Salto Ciclo EE - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Aggiunge una penalità all'Emotion Engine emulato per l'esecuzione di programmi VU. - - - + Affinity Control Mode Controllo affinità - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Fissa i thread di emulazione ai core della CPU per migliorare potenzialmente la variabilità delle prestazioni/fotogrammi. - + Enable MTVU (Multi-Threaded VU1) MTVU (VU1 Multi-threaded) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Utilizza un secondo thread per i microprogrammi VU1. Aumento di velocità considerevole. - - - + Enable Instant VU1 Abilita VU1 istantanea - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Riduce il tempo tra i recompilatori VU1 ed EE, eseguendo di fatto VU1 a una velocità di clock infinita. - - - + Enable Cheats Abilita Trucchi - + Enables loading cheats from pnach files. Abilita il caricamento delle patch widescreen dai file pnach. - + Enable Host Filesystem Abilita filesystem dell'host - + Enables access to files from the host: namespace in the virtual machine. Abilita l'accesso ai file dall'host: namespace nella macchina virtuale. - + Enable Fast CDVD Abilita CDVD Veloce - + Fast disc access, less loading times. Not recommended. Accesso rapido al disco, tempi di caricamento ridotti. Non consigliato. - + Frame Pacing/Latency Control Frame Pacing / Controllo Latenza - + Maximum Frame Latency Latenza Massima Frame - + Sets the number of frames which can be queued. Imposta il numero di fotogrammi che possono essere accodati. - + Optimal Frame Pacing Frame Pacing Ottimale - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Sincronizza i thread EE e GS dopo ogni fotogramma. Latenza d'ingresso più bassa, ma aumenta i requisiti di sistema. - - Adjust To Host Refresh Rate - Ridimensiona in base a frequenza di aggiornamento host - - - + Speeds up emulation so that the guest refresh rate matches the host. Accelera l'emulazione in modo che la frequenza di aggiornamento dell'ospite corrisponda all'host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Seleziona l'API utilizzata per renderizzare il GS emulato. - + Sync To Host Refresh (VSync) Sincronizza con la frequenza di aggiornamento dell'host (VSync) - + Synchronizes frame presentation with host refresh. Sincronizza la presentazione del frame con la frequenza di aggiornamento dell'host. - + Display Schermo - + Aspect Ratio Rapporto d'aspetto - + Selects the aspect ratio to display the game content at. Seleziona il rapporto d'aspetto con cui visualizzare il contenuto del gioco. - + FMV Aspect Ratio Rapporto d'aspetto FMV - + Selects the aspect ratio for display when a FMV is detected as playing. Seleziona il rapporto di aspetto da visualizzare quando viene rilevata la riproduzione un FMV. - + Deinterlacing Deinterlacciamento - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Seleziona l'algoritmo utilizzato per convertire l'output interlacciato della PS2's in progressivo per il display. - + Screenshot Size Dimensione Screenshot - + Determines the resolution at which screenshots will be saved. Determina la risoluzione in cui verranno salvati gli screenshot. - + Screenshot Format Formato screenshot - + Selects the format which will be used to save screenshots. Seleziona il formato che verrà utilizzato per salvare gli screenshot. - + Screenshot Quality Qualità screenshot - + Selects the quality at which screenshots will be compressed. Seleziona la qualità di compressione degli screenshot. - + Vertical Stretch Allungamento verticale - + Increases or decreases the virtual picture size vertically. Aumenta o diminuisce la dimensione dell'immagine virtuale verticalmente. - + Crop Ritaglia - + Crops the image, while respecting aspect ratio. Ritaglia l'immagine, pur rispettando il rapporto di aspetto. - + + %dpx + %dpx + + + Enable Widescreen Patches Abilita patch widescreen - + Enables loading widescreen patches from pnach files. Abilita il caricamento delle patch widescreen dai file pnach. - + Enable No-Interlacing Patches Abilita le patch No-Interlacciamento - + Enables loading no-interlacing patches from pnach files. Abilita il caricamento delle patch no-interlacciamento dai file pnach. - + Bilinear Upscaling Upscaling bilineare - + Smooths out the image when upscaling the console to the screen. Rende più morbida l'immagine durante l'upscaling della console sullo schermo. - + Integer Upscaling Upscaling per integrali - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Aggiunge dei "cuscinetti" all'area del display per assicurare che il rapporto fra pixel sull'host e pixel nella console sia un numero intero. Potrebbe risultare in un'immagine più nitida in alcuni giochi in 2D. - + Screen Offsets Offset Schermo - + Enables PCRTC Offsets which position the screen as the game requests. Abilita l'Offset PCRTC che posiziona lo schermo come impostato nel gioco. - + Show Overscan Mostra overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Abilita l'opzione per mostrare l'area di overscan su giochi che disegnano più dell'area sicura dello schermo. - + Anti-Blur Anti-Sfocatura - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Abilita gli hack interni anti-sfocatura. Meno accurato rispetto al rendering della PS2 ma farà sembrare molti giochi meno sfocati. - + Rendering Rendering - + Internal Resolution Risoluzione Interna - + Multiplies the render resolution by the specified factor (upscaling). Moltiplica la risoluzione del rendering per il fattore specificato (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determina come vengono usate le mipmap durante il rendering delle texture. - + Bilinear Filtering Filtraggio bilineare - + Selects where bilinear filtering is utilized when rendering textures. Seleziona dove viene utilizzato il filtraggio bilineare durante il rendering delle texture. - + Trilinear Filtering Filtraggio trilineare - + Selects where trilinear filtering is utilized when rendering textures. Seleziona dove viene utilizzato il filtraggio bilineare durante il rendering delle texture. - + Anisotropic Filtering Filtraggio anisotropico - - Selects where anistropic filtering is utilized when rendering textures. - Seleziona dove viene utilizzato il filtraggio bilineare durante il rendering delle texture. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Seleziona il tipo di dithering che si applica quando il gioco lo richiede. - + Blending Accuracy Precisione del blending - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determina il livello di precisione quando si emulano modalità di blend non supportate dall'API grafica dell'host. - + Texture Preloading Precaricamento delle texture - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Carica le texture complete alla GPU in uso, piuttosto che solo le regioni utilizzate. Puoi migliorare le prestazioni in alcuni giochi. - + Software Rendering Threads Thread di rendering software - + Number of threads to use in addition to the main GS thread for rasterization. Numero di thread da utilizzare in aggiunta al thread GS principale per la rasterizzazione. - + Auto Flush (Software) Scaricamento automatico (software) - + Force a primitive flush when a framebuffer is also an input texture. Forza un flush primitivo quando anche un framebuffer è una texture di input. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Abilita l'emulazione dell' Edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Abilita l'emulazione della mappatura delle texture del GS. - + Hardware Fixes Correzioni hardware - + Manual Hardware Fixes Correzioni manuali renderer hardware - + Disables automatic hardware fixes, allowing you to set fixes manually. Disabilita le correzioni hardware automatiche, consentendo d'impostare le correzioni manualmente. - + CPU Sprite Render Size Dimensione del renderer delle sprite nella CPU - + Uses software renderer to draw texture decompression-like sprites. Utilizza il renderer software per disegnare gli sprite simili a quelli della decompressione delle texture. - + CPU Sprite Render Level Dimensione del renderer delle sprite nella CPU - + Determines filter level for CPU sprite render. Determina la dimensione del renderer delle sprite nella CPU. - + Software CLUT Render Render Software CLUT - + Uses software renderer to draw texture CLUT points/sprites. Utilizza il renderer software per disegnare i punti CLUT / sprite. - + Skip Draw Start Salta Inizio Disegno - + Object range to skip drawing. Intervallo di oggetti per saltare il disegno. - + Skip Draw End Salta Fine Disegno - + Auto Flush (Hardware) Scaricamento automatico (Hardware) - + CPU Framebuffer Conversion Conversione del framebuffer della CPU - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Converti frame buffer a 4 e 8 bit sulla CPU anziché sulla GPU. - - Disable Depth Support - Disabilita Supporto Profondità - - - - Disable the support of depth buffer in the texture cache. - Disabilita il supporto del buffer di profondità nella cache delle texture. - - - + Disable Safe Features Disabilita Funzionalità Sicure - + This option disables multiple safe features. Questa opzione disabilita molteplici funzioni sicure. - - Disable Render Features - Disabilita Funzionalità Di Rendering - - - + This option disables game-specific render fixes. Quest'opzione disabilita le correzioni del rendering specifiche per il gioco. - - Preload Frame - Precarica Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Carica i dati GS durante il rendering di un nuovo fotogramma per riprodurre accuratamente alcuni effetti. - + Disable Partial Invalidation Disabilita Invalidazione Parziale - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Rimuove le voci della cache delle texture quando c'è un'intersezione, invece che solo le aree intersecate. - - Texture Inside Render Target - Texture Dentro Destinazione Rendering - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Consente alla cache delle texture di riutilizzare come texture di input la porzione interna di un precedente framebuffer. - + Read Targets When Closing Leggi Target Alla Chiusura - + Flushes all targets in the texture cache back to local memory when shutting down. Cancella tutte le destinazioni nella cache delle texture sulla memoria locale quando si spegne. - + Estimate Texture Region Stima Regione delle Texture - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Tenta di ridurre la dimensione delle texture quando i giochi non la impostano da soli (ad es. giochi Snowblind). - + GPU Palette Conversion Conversione palette GPU - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applica le palette alle texture sulla GPU anziché sulla CPU. Può risultare in miglioramenti della velocità in alcuni giochi. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Offset di mezzo pixel + Correzioni per l'Upscaling - + Adjusts vertices relative to upscaling. Regola i vertici relativamente all'upscaling. - + Round Sprite Arrotondamento sprite - + Adjusts sprite coordinates. Regola le coordinate delle sprite. - + Bilinear Upscale Upscale bilineare - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Può smussare le texture che devono essere filtrate bilinearmente nel ridimensionamento. Ad es. il bagliore del sole in Brave. - - TC Offset X - Compensazione X di TC - - - + Adjusts target texture offsets. Regola le compensazioni delle texture designate. - - TC Offset Y - Compensazione Y di TC - - - + Align Sprite Allinea Sprite - + Fixes issues with upscaling (vertical lines) in some games. Risolve i problemi con l'upscaling (linee verticali) in alcuni giochi. - + Merge Sprite Unisci Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Sostituisce più sprite post-elaborazione con un singolo sprite più grande. - + Wild Arms Hack Hack per Wild Arms - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Riduce la precisione del GS per evitare spazi fra i pixel quando si ridimensiona. Corregge il testo nei giochi di Wild Arms. - + Unscaled Palette Texture Draws Draw di Texture Palette Non Scalate - + Can fix some broken effects which rely on pixel perfect precision. Può correggere alcuni effetti corrotti che dipendono da una precisione perfetta al pixel. - + Texture Replacement Sostituzione delle texture - + Load Textures Carica Texture - + Loads replacement textures where available and user-provided. Carica le texture di rimpiazzo dove disponibili e fornite dall'utente. - + Asynchronous Texture Loading Caricamento Asincrono delle Texture - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Carica le texture di rimpiazzo su un thread di lavoro, riducendo il microstuttering quando i rimpiazzi sono abilitati. - + Precache Replacements Precarica Rimpiazzi nella cache - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Precarica tutte le texture di rimpiazzo in memoria. Non necessario con il caricamento asincrono. - + Replacements Directory Cartella dei Rimpiazzi - + Folders Cartelle - + Texture Dumping Scaricamento delle Texture - + Dump Textures Scarica Texture - - Dumps replacable textures to disk. Will reduce performance. - Scarica texture sostituibili sul disco. Ridurrà le prestazioni. - - - + Dump Mipmaps Scarica Mipmaps - + Includes mipmaps when dumping textures. Include le mipmap quando si scaricano le texture. - + Dump FMV Textures Scarica Texture degli FMV - + Allows texture dumping when FMVs are active. You should not enable this. Consente lo scaricamento delle texture quando gli FMV sono attivi. Non dovresti abilitare quest'opzione. - + Post-Processing Post-elaborazione - + FXAA FXAA - + Enables FXAA post-processing shader. Abilita shader di post-elaborazione FXAA. - + Contrast Adaptive Sharpening Nitificatore a Contrasto Adattivo (CAS) - + Enables FidelityFX Contrast Adaptive Sharpening. Abilita il Nitificatore a Contrasto Adattivo FidelityFX. - + CAS Sharpness Nitidezza CAS - + Determines the intensity the sharpening effect in CAS post-processing. Determina l'intensità dell'effetto di nitificazione nella post-elaborazione del CAS. - + Filters Filtri - + Shade Boost Aumento Ombre - + Enables brightness/contrast/saturation adjustment. Abilita la regolazione della luminosità/del contrasto/della saturazione. - + Shade Boost Brightness Luminosità Aumento Ombre - + Adjusts brightness. 50 is normal. Regola la luminosità. 50 è quella normale. - + Shade Boost Contrast Contrasto Aumento Ombre - + Adjusts contrast. 50 is normal. Regola il contrasto. 50 è quello normale. - + Shade Boost Saturation Saturazione Aumento Ombre - + Adjusts saturation. 50 is normal. Regola la saturazione. 50 è quella normale. - + TV Shaders Shader TV - - Selects post-processing TV shader. - Seleziona lo shader TV di post-elaborazione. - - - + Advanced Avanzate - + Skip Presenting Duplicate Frames - Salta la Presentazione di Frame Duplicati - - - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Salta la visualizzazione di frame che non cambiano in giochi a 25/30fps. Può migliorare la velocità ma aumentare l'input lag/peggiorare il ritmo dei frame. + Salta la Presentazione di Frame Duplicati - + Disable Threaded Presentation Disabilita Presentazione Threadata - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presenta i frame su un thread di lavoro, invece che sul thread del GS. Può migliorare i frametime su alcuni sistemi, a costo di un ritmo dei frame potenzialmente peggiore. - - - + Hardware Download Mode Modalità Download Hardware - + Changes synchronization behavior for GS downloads. Cambia il comportamento di sincronizzazione per i download del GS. - + Allow Exclusive Fullscreen Consenti Schermo Intero Esclusivo - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Ignora l'euristica del driver per abilitare lo schermo intero esclusivo, o il flip/scanout diretto. - + Override Texture Barriers Ignora Barriere delle Texture - + Forces texture barrier functionality to the specified value. Forza la funzionalità delle barriere delle texture sul valore specificato. - + GS Dump Compression Compressione Dump del GS - + Sets the compression algorithm for GS dumps. Imposta l'algoritmo di compressione per gli scaricamenti del GS. - + Disable Framebuffer Fetch Disabilita Fetch del Framebuffer - + Prevents the usage of framebuffer fetch when supported by host GPU. Impedisce l'uso del fetch del framebuffer quando supportato dalla GPU host. - + Disable Dual-Source Blending Disabilita Blending a Doppia Sorgente - + Prevents the usage of dual-source blending when supported by host GPU. Impedisce l'uso del blending a doppia sorgente quando supportato dalla GPU host. - + Disable Shader Cache Disabilita Cache Shader - + Prevents the loading and saving of shaders/pipelines to disk. Impedisce il caricamento e il salvataggio di shaders/pipeline su disco. - + Disable Vertex Shader Expand Disabilita Espansione Shader Vertici - + Falls back to the CPU for expanding sprites/lines. Ripiega sulla CPU per espandere sprite/linee. - + Runtime Settings Impostazioni di Esecuzione - + Applies a global volume modifier to all sound produced by the game. Applica un modificatore globale del volume a tutto il suono prodotto dal gioco. - + Mixing Settings Impostazioni Mixaggio - + Changes when SPU samples are generated relative to system emulation. Cambia quando dei campioni SPU vengono generati relativamente all'emulazione del sistema. - + Determines how the stereo output is transformed to greater speaker counts. Determina come l'output stereo viene trasformato in un numero di altoparlanti maggiore. - + Output Settings Impostazioni di Output - + Determines which API is used to play back audio samples on the host. Determina quale API viene usata per riprodurre campioni audio sull'host. - + Sets the average output latency when using the cubeb backend. Imposta la latenza di output media quando si usa il backend cubeb. - + + %d ms (avg) + %d ms (media) + + + Timestretch Settings Impostazioni Timestretch - + Affects how the timestretcher operates when not running at 100% speed. Influisce su come il timestretcher opera quando non gira al 100% della velocità. - + + %d ms + %d ms + + + Settings and Operations Impostazioni e Operazioni - + Creates a new memory card file or folder. Crea un nuovo file o una nuova cartella Memory Card. - + Simulates a larger memory card by filtering saves only to the current game. Simula una Memory Card più grande filtrando i salvataggi solo per il gioco attuale. - + Automatically ejects Memory Cards when they differ after loading a state. Espelle automaticamente le Memory Card quando sono diverse dopo aver caricato uno stato. - + If not set, this card will be considered unplugged. Se non impostato, questa Card verrà considerata scollegata. - + The selected memory card image will be used for this slot. L'immagine selezionata della Memory Card verrà usata per questo slot. - + Resets the card name for this slot. Resetta il nome della Card per questo slot. - + Create Memory Card Crea Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Inserisci il nome della Memory Card che desideri creare, e scegli una dimensione. Consigliamo di usare o Memory Card da 8MB, o cartelle Memory Card per la miglior compatibilità. - + Card Name: Nome della Card: - + Configuration Configurazione - + Uses game-specific settings for controllers for this game. Usa impostazioni specifiche del gioco per i controller per questo gioco. - + Copies the global controller configuration to this game. Copia la configurazione globale del controller su questo gioco. - + Resets all configuration to defaults (including bindings). Reimposta tutta la configurazione ai valori predefiniti (incluse le associazioni). - + Replaces these settings with a previously saved input profile. Sostituisce queste impostazioni con un profilo di input precedentemente salvato. - + Stores the current settings to an input profile. Archivia le impostazioni attuali su un profilo di input. - + Input Sources Sorgenti di Input - + The SDL input source supports most controllers. La sorgente di input SDL supporta la maggior parted dei controller. - + Provides vibration and LED control support over Bluetooth. Fornisce il supporto per la vibrazione e il controllo dei LED tramite Bluetooth. - + Allow SDL to use raw access to input devices. Consenti a SDL di usare l'accesso puro ai dispositivi di input. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. La sorgente XInput fornisce supporto per i controller XBox 360/XBox One/XBox Series. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Abilita tre slot aggiuntivi per i controller. Non supportato in tutti i giochi. - + Attempts to map the selected port to a chosen controller. Tenta di mappare la porta selezionata su un controller scelto. - + No Buttons Selected Nessun Pulsante Selezionato - + Determines how much pressure is simulated when macro is active. Determina quanta pressione viene simulata quando la macro è attiva. - + Determines the pressure required to activate the macro. Determina la pressione richiesta per attivare la macro. - + Toggle every %d frames Attiva/Disattiva ogni %d frame - + Clears all bindings for this USB controller. Cancella tutte le associazioni per questo controller USB. - + Data Save Locations Posizioni dei Salvataggi di Dati - + Show Advanced Settings Mostra Impostazioni Avanzate - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Cambiare queste opzioni potrebbe rendere i giochi non funzionanti. Modificale a tuo rischio e pericolo, il team PCSX2 non fornirà alcun supporto per configurazioni con queste impostazioni cambiate. - + Logging - Logging + Registrazione - + System Console Console di Sistema - + Writes log messages to the system console (console window/standard output). Scrive i messaggi del registro sulla console di sistem (finestra della console/output standard). - + File Logging Registrazione dei File - + Writes log messages to emulog.txt. Scrive i messaggi del registro su emulog.txt. - + Verbose Logging Registrazione Dettagliata - + Writes dev log messages to log sinks. Scrive i messaggi del registro di sviluppo nelle destinazioni dei registri. - + Log Timestamps Timestamp del Registro - + Writes timestamps alongside log messages. Scrive i timestamp a fianco dei messaggi del registro. - + EE Console Console dell'EE - + Writes debug messages from the game's EE code to the console. Scrive i messaggi di debug dal codice EE del gioco sulla console. - + IOP Console Console dell'IOP - + Writes debug messages from the game's IOP code to the console. Scrive i messaggi di debug dal codice IOP del gioco sulla console. - + CDVD Verbose Reads Letture Dettagliate del CDVD - + Logs disc reads from games. Registra le letture del disco dai giochi. - + Emotion Engine Emotion Engine - + Rounding Mode Modalità di arrotondamento - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determina come vengono arrotondati i risultati delle operazioni in virgola mobile. Alcuni giochi necessitano di impostazioni specifiche. - + Clamping Mode Modalità Clamping - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determina come vengono gestiti i numeri in virgola mobile fuori intervallo. Alcuni giochi necessitano di impostazioni specifiche. - + Enable EE Recompiler Abilita EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Esegue la traduzione binaria just-in-time del codice macchina MIPS-IV a 64 bit in codice nativo. - + Enable EE Cache Abilita Cache EE - + Enables simulation of the EE's cache. Slow. Abilita la simulazione della cache EE's. Lento. - + Enable INTC Spin Detection Abilita Rilevamento Spin INTC - + Huge speedup for some games, with almost no compatibility side effects. Enorme aumento di velocità per alcuni giochi, con quasi nessun effetto collaterale sulla compatibilità. - + Enable Wait Loop Detection Abilita rilevamento Wait Loop - + Moderate speedup for some games, with no known side effects. Aumento di velocità moderato per alcuni giochi, senza effetti collaterali noti. - + Enable Fast Memory Access Abilita accesso rapido alla memoria - + Uses backpatching to avoid register flushing on every memory access. Usa il backpatching per evitare lo svuotamento del registro su ogni accesso alla memoria. - + Vector Units Vector Units (VU - + VU0 Rounding Mode Modalità Arrotondamento VU0 - + VU0 Clamping Mode Modalità Clamping VU0 - + VU1 Rounding Mode Modalità Arrotondamento VU1 - + VU1 Clamping Mode Modalità Clamping VU1 - + Enable VU0 Recompiler (Micro Mode) Abilita Ricompilatore VU0 (Modalità Micro) - + New Vector Unit recompiler with much improved compatibility. Recommended. Nuovo ricompilatore Vector Unit con compatibilità molto migliorata. Consigliato. - + Enable VU1 Recompiler Abilita Ricompilatore VU1 - + Enable VU Flag Optimization Abilita l'Ottimizzazione VU Flag - + Good speedup and high compatibility, may cause graphical errors. Buon aumento di velocità e alta compatibilità, potrebbe causare errori grafici. - + I/O Processor Processore I/O - + Enable IOP Recompiler Abilita Ricompilatore IOP - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Esegue la traduzione binaria just-in-time del codice macchina MIPS-I a 32 bit in codice nativo. - + Graphics Grafica - + Use Debug Device Usa Dispositivo di Debug - - Enables API-level validation of graphics commands - Abilita la validazione a livello API dei comandi grafici - - - + Settings Impostazioni - + No cheats are available for this game. Non sono disponibili trucchi per questo gioco. - + Cheat Codes Trucchi - + No patches are available for this game. Non sono disponibili patch per questo gioco. - + Game Patches Patch di gioco - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Attivare i trucchi può causare comportamenti imprevedibili, crash, soft-locks, o giochi salvati corrotti. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Attivare patch per i giochi può causare comportamenti imprevedibili, crash, soft-locks, o giochi salvati corrotti. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Usa le patch a tuo rischio, il team PCSX2 non fornirà supporto agli utenti che hanno abilitato le patch di gioco. - + Game Fixes Correzioni di Gioco - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Le correzioni di gioco non dovrebbero essere modificate a meno che tu non sia consapevole di ciò che ogni opzione fa e delle implicazioni di farlo. - + FPU Multiply Hack Hack Moltiplicazione FPU - + For Tales of Destiny. Per Tales of Destiny. - + FPU Negative Div Hack Hack Divisione Negativa FPU - + For Gundam games. Per i giochi di Gundam. - + Preload TLB Hack Precarica Hack TLB - - To avoid tlb miss on Goemon. - Per evitare dei miss TLB su Goemon. - - - - Switch to Software renderer for FMVs. - Passa al renderer Software per i FMV. - - - + Needed for some games with complex FMV rendering. Necessario per alcuni giochi con rendering FMV complesso. - + Skip MPEG Hack Hack Salto MPEG - + Skips videos/FMVs in games to avoid game hanging/freezes. Salta i video/gli FMV nei giochi per evitare blocchi/freeze del gioco. - + OPH Flag Hack Hack Flag OPH - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Può riguardare i seguenti giochi: Bleach Blade Battler, Growlanser II e III, Wizardry. - - - + EE Timing Hack Hack Timing EE - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Può riguardare i seguenti giochi: Digital Devil Saga (corregge gli FMV e i crash), SSX (Corregge le grafiche corrotte e i crash). - - - + Instant DMA Hack Hack DMA Istantaneo - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Può riguardare i seguenti giochi: Fire Pro Wrestling Z (Grafiche del ring corrotte). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Può riguardare i seguenti giochi: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Gestisce le scritture DMAC quando è occupato. + + For SOCOM 2 HUD and Spy Hunter loading hang. + Per l'HUD di SOCOM 2 e i blocchi nel caricamento di Spy Hunter. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Può riguardare i seguenti giochi: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + Hack Aggiunta VU - - Force GIF PATH3 transfers through FIFO - Forza trasferimenti GIF PATH3 tramite FIFO + + Full VU0 Synchronization + Sincronizzazione VU0 Completa - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forza una sincronizzazione VU0 coordinata su ogni istruzione COP2. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simula la lettura anticipata FIFO del VIF1. Corregge i giochi che caricano lentamente. + + VU Overflow Hack + Hack Overflow VU - - Known to affect following games: Test Drive Unlimited, Transformers. - Può riguardare i seguenti giochi: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + Per controllare se ci sono possibili overflow dei float (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Ritarda gli stalli del VIF1 (FIFO VIF1) + + Use accurate timing for VU XGKicks (slower). + Usa timing accurato per gli XGKick VU (più lento). - - For SOCOM 2 HUD and Spy Hunter loading hang. - Per l'HUD di SOCOM 2 e i blocchi nel caricamento di Spy Hunter. + + Quadraphonic + Quadrifonico - - VU Add Hack - Hack Aggiunta VU + + Load State + Carica Stato - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Giochi che hanno bisogno di questo hack per avviarsi: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Fa sì che l'Emotion Engine emulato salti dei cicli. Aiuta un piccolo sottoinsieme di giochi come SOTC. Nella maggior parte dei casi è dannoso per le prestazioni. - - VU I bit Hack avoid constant recompilation in some games - Hack bit VU I evita la ricompilazione costante in alcuni giochi + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generalmente porta a un aumento di velocità su CPU con 4 o più core. Sicuro per la maggior parte dei giochi, ma alcuni sono incompatibili e potrebbero bloccarsi. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Esegue la VU1 istantaneamente. Fornisce un modesto miglioramento della velocità nella maggior parte dei giochi. Sicuro per la maggior parte dei giochi, ma alcuni giochi potrebbero mostrare errori grafici. - - Full VU0 Synchronization - Sincronizzazione VU0 Completa + + Scale To Host Refresh Rate + Ridimensiona in base a frequenza di aggiornamento host - - Forces tight VU0 sync on every COP2 instruction. - Forza una sincronizzazione VU0 coordinata su ogni istruzione COP2. + + Disable Depth Emulation + Disabilita l'emulazione della profondità - - VU Sync (Run behind) - Sincronizzazione VU (Esecuzione posteriore) + + Disable the support of depth buffers in the texture cache. + Disabilita il supporto del buffer di profondità nella cache delle texture. - - To avoid sync problems when reading or writing VU registers. - Per evitare problemi di sincronizzazione quando si leggono o scrivono i registri VU. + + Disable Render Fixes + Disabilita Correzioni Render - - VU Overflow Hack - Hack Overflow VU + + Preload Frame Data + Precarica Dati Frame - - To check for possible float overflows (Superman Returns). - Per controllare se ci sono possibili overflow dei float (Superman Returns). + + Texture Inside RT + Texture dentro RT - - VU XGkick Sync - Sincronizzazione VU XGkick + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + Quando è abilitato la GPU converte le texture colormap, in caso contrario lo farà la CPU. È uno scambio fra GPU e CPU. - - Use accurate timing for VU XGKicks (slower). - Usa timing accurato per gli XGKick VU (più lento). + + Half Pixel Offset + Offset Half Pixel - - Use Blit for internal FPS - Usa Blit per FPS interni + + Texture Offset X + Offset X delle texture - - Quadraphonic - Quadraphonic + + Texture Offset Y + Offset Y delle texture - - Load State - Carica Stato + + Dumps replaceable textures to disk. Will reduce performance. + Scarica texture sostituibili sul disco. Ridurrà le prestazioni. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applica uno shader che replica gli effetti visivi di diversi stili di televisore. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Salta la visualizzazione di frame che non cambiano in giochi a 25/30fps. Può migliorare la velocità ma aumentare l'input lag/peggiorare il frame pacing. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presenta fotogrammi sul thread principale di GS invece di un thread di lavoro. Usato per debuggare i problemi di frametime. + + + + Enables API-level validation of graphics commands. + Abilita la validazione a livello API dei comandi grafici. + + + + Use Software Renderer For FMVs + Usa renderer software per i FMV + + + + To avoid TLB miss on Goemon. + Per evitare dei miss TLB su Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Hack di temporizzazione per scopi generali. Influisce sui giochi seguenti: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Buono per problemi di emulazione della cache. Influisce sui giochi seguenti: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Influisce sui giochi seguenti: Bleach Blade Battlers, Growlanser II e III, Wizardry. + + + + Emulate GIF FIFO + Emula GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Corretto ma più lento. Influisce sui giochi seguenti: Fifa Street 2. + + + + DMA Busy Hack + Hack DMA Occupato + + + + Delay VIF1 Stalls + Ritardo Blocchi VIF1 + + + + Emulate VIF FIFO + Emula VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simula VIF1 FIFO leggi avanti. Influisce sui giochi seguenti: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + Hack VU I Bit + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Evita la ricompilazione costante in alcuni giochi. Influisce sui giochi seguenti: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Per i giochi Tri-Ace: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Per evitare problemi di sincronizzazione quando si leggono o scrivono i registri VU. - + + VU XGKick Sync + Sincronizzazione VU XGkick + + + + Force Blit Internal FPS Detection + Forza Rilevamento FPS Interno Blit + + + Save State Salva Stato - + Load Resume State Carica Stato di Ripresa - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5846,2221 +6195,2122 @@ Do you want to load this save and continue? Vuoi caricare questo salvataggio e continuare? - + Region: Regione: - + Compatibility: Compatibilità: - + No Game Selected Nessun Gioco Selezionato - + Search Directories Cartelle di Ricerca - + Adds a new directory to the game search list. Aggiunge una nuova directory alla lista di ricerca dei giochi. - + Scanning Subdirectories Scansione delle Sottocartelle - + Not Scanning Subdirectories Nessuna Scansione delle Sottocartelle - + List Settings Impostazioni Elenco - + Sets which view the game list will open to. Imposta come sarà visualizzata la lista di gioco. - + Determines which field the game list will be sorted by. Determina secondo quale campo verrà ordinato l'elenco dei giochi. - + Reverses the game list sort order from the default (usually ascending to descending). Inverte l'ordine di ordinamento della lista di gioco dal valore predefinito (solitamente crescente in discendente). - + Cover Settings Impostazioni Copertina - + Downloads covers from a user-specified URL template. Scarica copertine da un modello di URL specificato dall'utente. - + Operations Operazioni - + + Selects where anisotropic filtering is utilized when rendering textures. + Seleziona dove viene utilizzato il filtraggio bilineare durante il rendering delle texture. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + Usa metodo alternativo per calcolare gli FPS interni per evitare false letture in alcuni giochi. - + Identifies any new files added to the game directories. Identifica qualsiasi nuovo file aggiunto alle directory dei giochi. - + Forces a full rescan of all games previously identified. Forza una nuova scansione completa di tutti i giochi precedentemente identificati. - + Download Covers Scarica Copertine - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 può scaricare automaticamente le copertine per i giochi che attualmente non hanno una copertina impostata. Noi non forniamo alcuna immagine di copertina, l'utente deve fornire la propria fonte per le immagini. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - Nel modulo sottostante, specificare gli URL da cui scaricare le copertine, con un modello di URL per riga. Sono disponibili le seguenti variabili: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Titolo del gioco. -${filetitle}: Nome componente del gioco's nomefile file. -${serial}: Numero di serie del gioco. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Esempio: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Usa nomi file seriali - - - + About PCSX2 Informazioni su PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 è un emulatore gratuito e open-source della PlayStation 2 (PS2). Il suo scopo è quello di emulare l'hardware della PS2, usando una combinazione di interpreti della CPU MIPS, ricompilatori e una macchina virtuale che gestisce stati hardware e la memoria di sistema della PS2. Questo ti permette di giocare ai giochi PS2 sul tuo PC, con molte funzioni e vantaggi aggiuntivi. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 e PS2 sono marchi registrati di Sony Interactive Entertainment. Questa applicazione non è affiliata in alcun modo con Sony Interactive Entertainment. - - XXX points - XXX punti - - - - Unlocked Achievements - Obiettivi Sbloccati - - - - Locked Achievements - Obiettivi Bloccati - - - - Active Challenge Achievements - Obiettivi Sfida Attivi - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - L'invio dei punteggi è disabilitato perché la modalità hardcore è disattivata. Le classifiche sono di sola lettura. - - - - Rank - Livello - - - - Name - Nome - - - - Time - Tempo - - - - Score - Punteggio - - - - Downloading leaderboard data, please wait... - Scaricamento dati classifica, attendere prego... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. Quando abilitato ed eseguito l'accesso, PCSX2 farà una scansione per gli obiettivi al caricamento del gioco. - - When enabled, rich presence information will be collected and sent to the server where supported. - Quando abilitato, le informazioni sulla rich presence verranno raccolte e inviate al server qualora supportate. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. Modalità "Sfida" per gli obiettivi, incluso il monitoraggio della classifica. Disabilita le funzioni di salvataggio dello stato, trucchi e rallentamento. - - Enables tracking and submission of leaderboards in supported games. - Abilita il monitoraggio e l'invio delle classifiche nei giochi supportati. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Mostra messaggi popup su eventi come lo sblocco degli obiettivi e gli invii alle classifiche. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Riproduce effetti sonori per eventi come sblocchi degli obiettivi e invii alle classifiche. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Mostra le icone nell'angolo in basso a destra dello schermo quando una sfida/un obiettivo appuntato è attivo. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. Quando abilitato, PCSX2 elencherà obiettivi dai set non ufficiali. Nota che questi obiettivi non vengono monitorati da RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Quando abilitato, PCSX2 presumerà che tutti gli obiettivi sono bloccati e non invierà alcuna notifica di sblocco al server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Visualizza i messaggi popup quando si avvia, si invia o si fallisce una sfida di leaderboard. + + + + When enabled, each session will behave as if no achievements have been unlocked. + Se abilitata, ogni sessione si comporterà come se nessun risultato fosse stato sbloccato. + + + Account - Account + Account - + Logs out of RetroAchievements. Disconnettiti da RetroAchievments. - + Logs in to RetroAchievements. Accedi a RetroAchievments. - + Current Game - Current Game - - - - Achievements Login - Accesso Obiettivi - - - - Please enter your user name and password for retroachievements.org. - Inserisci il nome utente e la password per retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - La tua password non verrà salvata in PCSX2, ma verrà generato e utilizzato un token di accesso. - - - - User Name: - Nome utente: - - - - Password: - Password: + Gioco Attuale - + {} is not a valid disc image. {} non è un'immagine disco valida. - + Automatic mapping completed for {}. Mappatura automatica completata per {}. - + Automatic mapping failed for {}. Mappatura automatica fallita per {}. - + Game settings initialized with global settings for '{}'. Impostazioni del gioco inizializzate con impostazioni globali per '{}'. - + Game settings have been cleared for '{}'. Le impostazioni del gioco sono state cancellate per '{}'. - + Console Port {} - Console Port {} + Porta {} della Console - + {} (Current) {} (Attuale) - + {} (Folder) {} (Cartella) - + Memory card name '{}' is not valid. Il nome della Memory Card '{}' non è valido. - + Memory Card '{}' created. Memory Card '{}' creata. - + Failed to create memory card '{}'. Creazione della Memory Card '{}' non riuscita. - + A memory card with the name '{}' already exists. Una Memory Card con il nome '{}' esiste già. - + Failed to load '{}'. Caricamento di '{}' non riuscito. - + Input profile '{}' loaded. Profilo di input '{}' caricato. - + Input profile '{}' saved. Profilo di input '{}' salvato. - + Failed to save input profile '{}'. Salvataggio del profilo di input '{}' non riuscito. - + Port {} Controller Type Tipo Controller Porta {} - + Select Macro {} Binds Seleziona Associazioni Macro {} - + + Macro {} Frequency + Frequenza Macro {} + + + Macro will toggle every {} frames. La macro si attiverà ogni {} frame. - + Port {} Device Dispositivo Porta {} - + Port {} Subtype Sottotipo Porta {} - + {} unlabelled patch codes will automatically activate. {} codici di patch non etichettati si attiveranno automaticamente. - + {} unlabelled patch codes found but not enabled. {} codici di patch non etichettati trovati ma non abilitati. - + This Session: {} Questa sessione: {} - + All Time: {} - Assoluto: {} + Tempo Totale: {} - + Save Slot {0} Slot di Salvataggio {0} - + Saved {} Salvato {} - + {} does not exist. {} non esiste. - + {} deleted. {} eliminato. - + Failed to delete {}. Eliminazione di {} non riuscita. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Tempo di gioco: {} - + Last Played: {} Ultimo Avvio: {} - + Size: {:.2f} MB Dimensione: {:.2f} MB - - {} points - {} punti - - - - {} (Hardcore Mode) - {} (Modalità Hardcore) + + Left: + Sinistra: - - You have unlocked all achievements and earned {} points! - Hai sbloccato tutti gli obiettivi e guadagnato {} punti! + + Top: + Sopra: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - Hai sbloccato {} su {} obiettivi, guadagnando {} su {} punti possibili. + + Right: + Destra: - - This game has {} leaderboards. - Questo gioco ha {} classifiche. + + Bottom: + Sotto: - + Summary - Riassunto + Riepilogo - + Interface Settings Impostazioni Interfaccia - + BIOS Settings Impostazioni BIOS - + Emulation Settings Impostazioni Emulazione - + Graphics Settings Impostazioni grafiche - + Audio Settings Impostazioni audio - + Memory Card Settings Impostazioni Memory Card - + Controller Settings Impostazioni del controller - + Hotkey Settings Impostazioni Scorciatoie - + Achievements Settings Impostazioni Obiettivi - + Folder Settings Impostazioni cartelle - + Advanced Settings Impostazioni avanzate - + Patches Patch - + Cheats Trucchi - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed Velocità 50% - + 60% Speed Velocità 60% - + 75% Speed Velocità 75% - + 100% Speed (Default) Velocità 100% (predefinita) - + 130% Speed Velocità 130% - + 180% Speed Velocità 180% - + 300% Speed Velocità 300% - + Normal (Default) Normale (predefinita) - + Mild Underclock Underclock leggero - + Moderate Underclock Underclock moderato - + Maximum Underclock Underclock massimo - + Disabled Disabilitato - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frame (Hard Sync) - + 1 Frame 1 frame - + 2 Frames 2 Frame - + 3 Frames 3 Frame - + None Nessuno - + Extra + Preserve Sign Extra + preserva segno - + Full Completo - + Extra Extra - + Automatic (Default) Automatico (Predefinito) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Nessuno - + Off Disattivato - + On Attivato - + Adaptive Adattivo - + Bilinear (Smooth) Bilineare (Smussato) - + Bilinear (Sharp) Bilineare (Nitido) - + Weave (Top Field First, Sawtooth) Trama (Dal campo superiore in giù, a dente di sega) - + Weave (Bottom Field First, Sawtooth) Trama (Dal campo inferiore in su, a dente di sega) - + Bob (Top Field First) Bob (prima il campo superiore) - + Bob (Bottom Field First) Bob (prima il campo in basso) - + Blend (Top Field First, Half FPS) Blend (Prima il campo superiore, metà FPS) - + Blend (Bottom Field First, Half FPS) Blend (Prima il campo inferiore, metà FPS) - + Adaptive (Top Field First) Adattivo (prima il campo superiore) - + Adaptive (Bottom Field First) Adattivo (prima il campo inferiore) - + Native (PS2) Nativo (PS2) - + 1.25x Native 1.25x Nativo - + 1.5x Native 1.5x Nativo - + 1.75x Native 1.75x Nativo - + 2x Native (~720p) 2x Nativo (~720p) - + 2.25x Native 2.25x Nativo - + 2.5x Native 2.5x Nativo - + 2.75x Native 2.75x Nativo - + 3x Native (~1080p) 3x Nativo (~1080p) - + 3.5x Native 3.5x Nativo - + 4x Native (~1440p/2K) 4x Nativo (~1440p/2K) - + 5x Native (~1620p) 5x Nativo (~1620p) - + 6x Native (~2160p/4K) 6x Nativo (~2160p/4K) - + 7x Native (~2520p) 7x Nativo (~2520p) - + 8x Native (~2880p) 8x Nativo (~2880p) - + Basic (Generated Mipmaps) Di base (Mipmaps generate) - + Full (PS2 Mipmaps) Completo (Mipmaps PS2) - + Nearest Più vicino - + Bilinear (Forced) Bilineare (Forzato) - + Bilinear (PS2) Bilineare (PS2) - + Bilinear (Forced excluding sprite) Bilineare (forzato eccetto sprite) - + Off (None) Disattivato (nessuno) - + Trilinear (PS2) Trilineare (PS2) - + Trilinear (Forced) Trilineare (Forzato) - + Scaled Ridimensionato - + Unscaled (Default) Non ridimensionato (Predefinito) - + Minimum Minimo - + Basic (Recommended) Di base (consigliato) - + Medium Medio - + High Elevato - + Full (Slow) Completo (lento) - + Maximum (Very Slow) Massimo (Molto Lento) - + Off (Default) Disattivato (predefinito) - + 2x x2 - + 4x x4 - + 8x x8 - + 16x x16 - + Partial Parziale - + Full (Hash Cache) Completa (Cache Hash) - + Force Disabled Forza disabilitazione - + Force Enabled Forza abilitazione - + Accurate (Recommended) Accurata (consigliata) - + Disable Readbacks (Synchronize GS Thread) Disabilita Readback (Sincronizza thread GS) - + Unsynchronized (Non-Deterministic) Non sincronizzato (Non deterministico) - + Disabled (Ignore Transfers) Disabilitato (Ignora trasferimenti) - + Screen Resolution Risoluzione dello Schermo - - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) Risoluzione Interna (Aspetto Non Corretto) - + + Cannot show details for games which were not scanned in the game list. + Impossibile mostrare i dettagli per i giochi che non sono stati analizzati nell'elenco dei giochi. + + + + Full Boot + Avvio Completo + + + + Achievement Notifications + Mostra Notifiche Obiettivi + + + + Leaderboard Notifications + Mostra Notifiche Classifiche + + + + Enable In-Game Overlays + Abilita Overlay Nel Gioco + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Modalità spettatore + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabilitato) - + 1 (64 Max Width) 1 (Larghezza Massima 64) - + 2 (128 Max Width) 2 (Larghezza Massima 128) - + 3 (192 Max Width) 3 (Larghezza Massima 192) - + 4 (256 Max Width) 4 (Larghezza Massima 256) - + 5 (320 Max Width) 5 (Larghezza Massima 320) - + 6 (384 Max Width) 6 (Larghezza Massima 384) - + 7 (448 Max Width) 7 (Larghezza Massima 448) - + 8 (512 Max Width) 8 (Larghezza Massima 512) - + 9 (576 Max Width) 9 (Larghezza Massima 576) - + 10 (640 Max Width) 10 (Larghezza Massima 640) - + Sprites Only Solo Sprite - + Sprites/Triangles Sprite/Triangoli - + Blended Sprites/Triangles Sprite/Triangoli Miscelati - + 1 (Normal) 1 (Normale) - + 2 (Aggressive) 2 (Aggressivo) - + Inside Target Target Interno - + Merge Targets Unisci Target - + Normal (Vertex) Normale (Vertice) - + Special (Texture) Speciale (Texture) - + Special (Texture - Aggressive) Speciale (Texture - Aggressivo) - + Half Metà - + Force Bilinear Forza Bilineare - + Force Nearest Forza Più vicino - + Disabled (Default) Disabilitato (Predefinito) - + Enabled (Sprites Only) Abilitato (Solo Sprite) - + Enabled (All Primitives) Abilitato (Tutte le Primitive) - + None (Default) Nessuno (Predefinito) - + Sharpen Only (Internal Resolution) Solo nitidezza (risoluzione interna) - + Sharpen and Resize (Display Resolution) Rende nitido e ridimensiona (risoluzione dello schermo) - + Scanline Filter Filtro linee di scansione - + Diagonal Filter Filtro diagonale - + Triangular Filter Filtro Triangolare - + Wave Filter Filtro onda - + Lottes CRT CRT di Lottes - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Non compresso - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) Timestretch (Consigliato) - + Async Mix (Breaks some games!) Mix asincrono (rompe alcuni giochi!) - + None (Audio can skip.) Nessuna (l'audio può saltare.) - + Stereo (None, Default) Stereo (Nessuna, Predefinita) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) Nessun Suono (Emula solo la SPU2) - + Cubeb (Cross-platform) Cubeb (Multipiattaforma) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [La più compatibile] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Cartella [Consigliata] - + 128 KB [PS1] 128 KB (PS1) - + + Negative + Negativo + + + + Positive + Positivo + + + + Chop/Zero (Default) + Taglia/Zero (Predefinito) + + + Game Grid Griglia dei Giochi - + Game List Lista dei giochi - + Game List Settings Impostazioni Elenco - + Type Tipo - + Serial Seriale - + Title Titolo - + File Title Titolo del File - + CRC CRC - + Time Played Tempo di gioco - + Last Played Ultimo Avvio - + Size Dimensione - + Select Disc Image Seleziona immagine del disco - + Select Disc Drive Seleziona unità disco - + Start File Avvia File - + Start BIOS Avvia BIOS - + Start Disc Avvia Disco - + Exit Esci - + Set Input Binding Imposta Associazione Input - + Region Regione - + Compatibility Rating Valutazione di compatibilità - + Path Percorso - + Disc Path Percorso del disco - + Select Disc Path Seleziona Percorso del disco - - Details unavailable for game not scanned in game list. - Dettagli non disponibili per il gioco non scansionato nella lista dei giochi. - - - + Copy Settings Copia Impostazioni - + Clear Settings Cancella impostazioni - + Inhibit Screensaver Blocca salvaschermo - + + Enable Discord Presence + Attiva la Discord Rich Presence + + + Pause On Start Pausa all'avvio - + Pause On Focus Loss Metti in pausa al passaggio in secondo piano - + Pause On Menu Pausa Nel Menu - + Confirm Shutdown Conferma arresto - + Save State On Shutdown Salva stato all'arresto - + Enable Per-Game Settings Abilita le impostazioni per singolo gioco - + Use Light Theme Usa Tema Chiaro - + Start Fullscreen Avvia a schermo intero - + Double-Click Toggles Fullscreen Il doppio clic passa allo schermo intero - + Hide Cursor In Fullscreen Nascondi il cursore a schermo intero - + OSD Scale Scala OSD - + Show Messages Mostra i messaggi - + Show Speed Mostra velocità - + Show FPS Mostra FPS - + Show CPU Usage Mostra utilizzo CPU - + Show GPU Usage Mostra utilizzo GPU - + Show Resolution Mostra risoluzione - + Show GS Statistics Mostra Statistiche GS - + Show Status Indicators Mostra indicatori di stato - + Show Settings Mostra impostazioni - + Show Inputs Mostra input - + Show Frame Times Mostra frame time - + Warn About Unsafe Settings Avvisa sulle impostazioni non sicure - + Reset Settings Ripristina Impostazioni - + Change Search Directory Cambia Cartella Di Ricerca - + Fast Boot Avvio veloce - + Output Volume Volume di uscita - + Synchronization Mode Modalità di sincronizzazione - + Expansion Mode Modalità Di Espansione - + Output Module Modulo di output - + Latency Latenza - + Sequence Length Lunghezza Sequenza - + Seekwindow Size Dimensione Finestra Seek - + Overlap Sovrapposizione - + Memory Card Directory Cartella delle Memory Card - + Folder Memory Card Filter Filtro della Memory Card Cartella - + Auto Eject When Loading Espelli Automaticamente Durante Il Caricamento - + Create Crea - + Cancel Annulla - + Load Profile Carica Profilo - + Save Profile Salva Profilo - + Per-Game Configuration Configurazione Per Gioco - + Copy Global Settings Copiare impostazioni globali - + Enable SDL Input Source Abilita sorgente di input SDL - + SDL DualShock 4 / DualSense Enhanced Mode Modalità potenziata DualShock 4 / DualSense - + SDL Raw Input Input Grezzo SDL - + Enable XInput Input Source Abilita sorgente di input XInput - + Enable Console Port 1 Multitap Abilita Multitap Console Porta 1 - + Enable Console Port 2 Multitap Abilita Multitap Console Porta 2 - + Controller Port {}{} Ingresso Controller {}{} - + Controller Port {} Ingresso Controller {} - + Controller Type Tipo di Controller - + Automatic Mapping Mappatura Automatica - + Controller Port {}{} Macros Macro per Porta Controller %1 - + Controller Port {} Macros Macro per Porta Controller %1 - + Macro Button {} Pulsante Macro {} - + Buttons Pulsanti - + Frequency Frequenza - + Pressure Pressione - + Controller Port {}{} Settings Impostazioni Porta Controller {}{} - + Controller Port {} Settings Impostazioni Porta Controller {} - + USB Port {} Porta USB {} - + Device Type Tipo di dispositivo - + Device Subtype Sottotipo di dispositivo - + {} Bindings {} Associazioni - + Clear Bindings Elimina Associazioni - + {} Settings {} Impostazioni - + Cache Directory Cartella Cache - + Covers Directory Cartella delle copertine - + Snapshots Directory Cartella screenshot - + Save States Directory Cartella stati salvati - + Game Settings Directory Cartella Impostazioni Di Gioco - + Input Profile Directory Cartella Profilo Input - + Cheats Directory Cartella dei trucchi - + Patches Directory Cartella delle Patch - + Texture Replacements Directory Cartella Delle Sostituzioni Delle Texture - + Video Dumping Directory Cartella Di Dumping Video - + Resume Game Riprendi la partita - + Toggle Frame Limit Attiva/Disattiva Limitatore di Frame - + Game Properties Proprietà del Gioco - + Achievements Obiettivi - + Save Screenshot Cattura Schermata - + Switch To Software Renderer Passa Al Renderer Software - + Switch To Hardware Renderer Passa Al Renderer Hardware - + Change Disc Cambia Disco - + Close Game Chiudi Gioco - + Exit Without Saving Esci senza salvare - + Back To Pause Menu Torna Al Menu Pausa - + Exit And Save State Esci E Salva Stato - + Leaderboards Classifiche - + Delete Save Elimina Salvataggio - + Close Menu Chiudi Menu - - Clean Boot - Avvio Pulito - - - + Delete State Elimina stato - + Default Boot Avvio Predefinito - - Slow Boot - Avvio Lento - - - + Reset Play Time Reimposta tempo di gioco - + Add Search Directory Aggiungi cartella di ricerca - + Open in File Browser Apri nel File Browser - + Disable Subdirectory Scanning Disabilita Scansione Sottocartella - + Enable Subdirectory Scanning Abilita Scansione Sottocartella - + Remove From List Rimuovi dall'elenco - + Default View Visualizzazione predefinita - + Sort By Ordina per - + Sort Reversed Ordinamento Invertito - + Scan For New Games Scansione nuovi giochi - + Rescan All Games Riscansiona tutti i giochi - - Start Download - Avvia Download - - - + Website Sito web - + Support Forums Forum di supporto - + GitHub Repository Repository GitHub - + License Licenza - + Close Chiudi - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration è in uso al posto dell'implementazione degli obiettivi integrata. - + Enable Achievements Abilita obiettivi - - Rich Presence - Rich Presence - - - + Hardcore Mode - Modalità Hardcore - - - - Show Notifications - Mostra Notifiche + Modalità Hardcore - + Sound Effects Effetti Sonori - - Show Challenge Indicators - Mostra Indicatori Sfida - - - + Test Unofficial Achievements Testa Obiettivi non ufficiali - - Test Mode - Modalità di prova - - - + Username: {} Nome utente: {} - + Login token generated on {} Token di login generato su {} - + Logout Disconnettiti - + Not Logged In Accesso non effettuato - + Login Accedi - - Achievements are disabled. - Gli obiettivi sono disabilitati. - - - - Game ID: {} - ID Gioco: {} - - - - Game Title: {} - Titolo Del Gioco: {} - - - - Achievements: {} ({} points) - Obiettivi: {} ({} punti) + + Game: {0} ({1}) + Gioco: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence disattivata o non supportata. - + Game not loaded or no RetroAchievements available. Gioco non caricato o nessun RetroAchievement disponibile. - + Card Enabled Scheda Abilitata - + Card Name Nome della Scheda - + Eject Card Espelli Memory Card @@ -8073,7 +8323,7 @@ ${serial}: Numero di serie del gioco. Riapertura non riuscita, ripristino della configurazione precedente in corso. - + Upscale multiplier set to {}x. Moltiplicatore upscale impostato su {}x. @@ -8128,12 +8378,12 @@ ${serial}: Numero di serie del gioco. Disabilitazione di mipmap autogenerate su una o più texture di sostituzione compresse. Per favore, genera i mipmap quando comprimi le tue texture. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. I buffer stencil e le barriere per texture sono entrambi non disponibili, questo corromperà alcuni effetti grafici. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Mantieni attiva la GPU durante la lettura è abilitato, ma le marche temporali calibrate non sono disponibili. Questo potrebbe essere molto lento. @@ -8189,7 +8439,7 @@ ${serial}: Numero di serie del gioco. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8199,266 +8449,408 @@ L'Accuratezza di Blending Consigliata per questo gioco è {2}. Puoi regolare il livello di blending in Proprietà di Gioco per migliorare la qualità grafica, ma questo aumenterà i requisiti di sistema. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Le correzioni manuali del renderer hardware del GS sono abilitate, le correzioni automatiche non sono state applicate: - + No tracks provided. Nessuna traccia fornita. - + Hash {} is not in database. L'hash {} non è nel database. - + Data track number does not match data track in database. Il numero della traccia dati non corrisponde alla traccia dati nel database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - La traccia {} con hash {} non è stata trovata nel database. + La traccia {0} con hash {1} non è stata trovata nel database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - La traccia {} con hash {} è per un diverso gioco ({}). + La traccia {0} con hash {1} è per un diverso gioco ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - La traccia {} con hash {} non corrisponde alla traccia del database. + La traccia {0} con hash {1} non corrisponde alla traccia del database. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Correzioni di gioco (NON è consigliato cambiarle globalmente) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - Hack divisione negativa FPS (per i giochi di Gundam) + Hack Divisione Negativa FPU - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - Hack moltiplicazione FPU (per Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Usa renderer software per i FMV + Hack Moltiplicazione FPU - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Hack salto MPEG (salta video/FMV) + Hack Salto MPEG - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Hack precaricamento TLB (per Goemon) + Precarica Hack TLB - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - Hack timing EE (hack per timing a scopo generale) + Hack Timing EE - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Hack DMA istantaneo (buono per problemi di emulazione della cache) + Hack DMA Istantaneo - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - Hack flag OPH (per Bleach Blade Battlers) + Hack Flag OPH - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emula FIFO del GIF (corretto ma più lento) + Emula GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - Hack per DMA occupato (nega scrittura quando occupato) + Hack DMA Occupato - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Ritarda blocchi VIF1 (per l'HUD di SOCOM 2/Spy Hunter) + Ritardo Blocchi VIF1 - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emula FIFO del VIF (corretto ma più lento) + Emula VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Sincronizzazione completa VU0 (corretta ma più lenta) + Sincronizzazione VU0 Completa - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - Hack bit VU I (per Scarface: The World Is Yours/Crash Tag Team Racing) + Hack VU I Bit - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - Hack addizione VU (per i giochi di Tri-Ace) + Hack Aggiunta VU - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - Hack overflow VU (Superman Returns) + Hack Overflow VU - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - Sincronizzazione VU (giochi rallentati, M-Bit) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - Sincronizzazione XGKick VU (corretto ma più lento) + Sincronizzazione VU XGkick - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Forza rilevamento interno FPS Blit (quando il rilevamento automatico fallisce) + Forza Rilevamento FPS Interno Blit + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Usa renderer software per i FMV + + + + + + + + + + + + + + + + + + + + + + Unchecked + Non spuntato + + + + For Tales of Destiny. + Per Tales of Destiny. + + + + For Gundam Games. + Per i giochi di Gundam. + + + + To avoid TLB miss on Goemon. + Per evitare dei miss TLB su Goemon. + + + + Needed for some games with complex FMV rendering. + Necessario per alcuni giochi con rendering FMV complesso. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Salta i video/gli FMV nei giochi per evitare blocchi/freeze del gioco. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Influisce sui giochi seguenti: Bleach Blade Battlers, Growlanser II e III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Hack di temporizzazione per scopi generali. Influisce sui giochi seguenti: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Buono per problemi di emulazione della cache. Influisce sui giochi seguenti: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Influisce sui giochi seguenti: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Corretto ma più lento. Influisce sui giochi seguenti: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simula VIF1 FIFO leggi avanti. Influisce sui giochi seguenti: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + Per l'HUD di SOCOM 2 e i blocchi nel caricamento di Spy Hunter. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Per i giochi Tri-Ace: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Evita la ricompilazione costante in alcuni giochi. Influisce sui giochi seguenti: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forza una sincronizzazione VU0 coordinata su ogni istruzione COP2. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Per evitare problemi di sincronizzazione quando si leggono o scrivono i registri VU. + + + + To check for possible float overflows (Superman Returns). + Per controllare se ci sono possibili overflow dei float (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Usa timing accurato per gli XGKick VU (più lento). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Usa metodo alternativo per calcolare gli FPS interni per evitare false letture in alcuni giochi. GameList - + Never Mai - + Today Oggi - + Yesterday Ieri - + {}h {}m {}o {}m - + {}h {}m {}s {}o {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} ore - + {} minutes {} minuti + + + Downloading cover for {0} [{1}]... + Scaricamento copertina per {0} [{1}] in corso... + GameListModel - + Type Tipo - + Code Codice - + Title Titolo - + File Title Titolo del File - + CRC CRC - + Time Played Tempo di gioco - + Last Played Ultimo Avvio - + Size Dimensione - + Region Regione - + Compatibility Compatibilità @@ -8466,74 +8858,100 @@ Puoi regolare il livello di blending in Proprietà di Gioco per migliorare la qu GameListSettingsWidget - + + Game Scanning + Scansione del Gioco + + + Search Directories (will be scanned for games) Cerca nelle cartelle (verranno scansionate per trovare i giochi) - + Add... Aggiungi... - - - + + + Remove Rimuovi - + Search Directory Cerca nella Cartella - + Scan Recursively Scansiona Ricorsivamente - + Excluded Paths (will not be scanned) Percorsi Esclusi (non verranno scansionati) - + Directory... Cartella... - + File... File... - + Scan For New Games Scansione nuovi giochi - + Rescan All Games Riscansiona tutti i giochi - + + Display + Schermo + + + + + Prefer English Titles + Preferisci i titoli in Inglese + + + + Unchecked + Non spuntato + + + + For games with both a title in the game's native language and one in English, prefer the English title. + Per i giochi che hanno un titolo sia nella lingua ' originale sia in inglese, preferire il titolo inglese. + + + Open Directory... Apri cartella... - + Select Search Directory Seleziona Cartella di Ricerca - + Scan Recursively? Scansiona Ricorsivamente? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8542,12 +8960,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sottocartelle. - + Select File Seleziona File - + Select Directory Seleziona Cartella @@ -8555,32 +8973,32 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto GameListWidget - + Game List Lista dei giochi - + Game Grid Griglia dei Giochi - + Show Titles Mostra Titoli - + All Types Tutti i tipi - + All Regions Tutte le regioni - + Search... Cerca... @@ -8606,17 +9024,17 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto <html><head/><body><p><span style=" font-weight:700;">Autore: </span>Autore Patch</p><p>La descrizione andrebbe qui</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Autore: </strong>%1<br>%2 - + Unknown Sconosciuto - + No description provided. Nessuna descrizione fornita. @@ -8634,7 +9052,7 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto Ricarica Patch - + There are no patches available for this game. Non sono disponibili patch per questo gioco. @@ -8653,399 +9071,410 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto - + Restore Ripristina + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Titolo nell'ordinamento: + + + + English Title: + Titolo Inglese: + + + Path: Percorso: - + Serial: Seriale: - + CRC: CRC: - + Type: Tipo: - + PS2 Disc Disco PS2 - + PS1 Disc Disco PS1 - + ELF (PS2 Executable) ELF (Eseguibile PS2) - + Region: Regione: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brasile) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (Cina) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Giappone) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Corea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Altra - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (Sudafrica) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgio) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europa/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (Francia) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finlandia) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germania) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Grecia) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italia) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europa/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Paesi Bassi) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norvegia) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portogallo) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Polonia) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spagna) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Svezia) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Svizzera) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Regno Unito) - + Compatibility: Compatibilità: - + Unknown Sconosciuta - + Not Bootable Non Avviabile - + Reaches Intro Arriva all'introduzione - + Reaches Menu Arriva al menu - + In-Game In gioco - + Playable Giocabile - + Perfect Perfetta - + Input Profile: Profilo di input: - + Shared Refers to the shared settings profile. Condiviso - + Disc Path: Percorso del disco: - + Browse... Sfoglia... - + Clear Svuota - + Verify Verifica - + Search on Redump.org... Cerca su Redump.org... - + Select Disc Path Seleziona Percorso del disco - + Game is not a CD/DVD. Il gioco non è un CD/DVD. - + Track list unavailable while virtual machine is running. La lista delle tracce non è disponibile mentre la macchina virtuale è in esecuzione. - + # # - + Mode Modalità - - + + Start Avvio - - + + Sectors Settori - - + + Size Dimensione - - + + MD5 MD5 - - + + Status Stato - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Errore - + Cannot verify image while a game is running. Impossibile verificare l'immagine mentre un gioco è in esecuzione. - + One or more tracks is missing. Una o più tracce sono mancanti. - + Verified as %1 [%2] (Version %3). Verificato come %1 [%2] (Versione %3). - + Verified as %1 [%2]. Verificato come %1 [%2]. @@ -9053,62 +9482,62 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adattatore: - + Display Schermo - + Fullscreen Mode: Modalità schermo intero: - + Aspect Ratio: Rapporto d'aspetto: - + Fit to Window / Fullscreen Adatta alla finestra / Schermo intero - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Standard Automatico (4:3 Interlacciato / 3:2 Progressivo) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: Rapporto d'aspetto FMV: - - - + + + @@ -9118,12 +9547,12 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto Disattivato (predefinito) - - - - - - + + + + + + @@ -9134,92 +9563,92 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto Automatico (Predefinito) - + None (Interlaced, also used by Progressive) Nessuno (Interlacciato, utilizzato anche dal progressivo) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Trama (Dal campo superiore in giù, a dente di sega) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Trama (Dal campo inferiore in su, a dente di sega) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Ondeggiatura (Dal campo superiore in giù, frame completi) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Ondeggiatura (Dal campo inferiore in su, frame completi) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Dal campo superiore in giù, unisce i due campi) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Dal campo inferiore in su, unisce i due campi) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adattivo (Dal campo superiore in giù, simile a Ondeggiatura + Trama) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adattivo (Dal campo inferiore in su, simile a Ondeggiatura + Trama) - + Bilinear Filtering: Filtraggio bilineare: - - + + None Nessuno - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilineare (Smussato) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilineare (Nitido) - + Vertical Stretch: Allungamento Verticale: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9227,355 +9656,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Ritaglia: - + Left: Warning: short space constraints. Abbreviate if necessary. Sinistra: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Sopra: - + Right: Warning: short space constraints. Abbreviate if necessary. Destra: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Sotto: - + Screen Offsets Offset Schermo - + VSync Sincronizzazione verticale - + Show Overscan Mostra overscan - + Enable Widescreen Patches Abilita patch widescreen - + Enable No-Interlacing Patches Abilita le patch No-Interlacciamento - + Anti-Blur Anti-Sfocatura - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disattiva offset per l'interlacciamento - + Screenshot Size: Dimensione Screenshot: - + Screen Resolution Risoluzione dello Schermo - + Internal Resolution Risoluzione Interna - + Internal Resolution (Aspect Uncorrected) Risoluzione Interna (Aspetto Non Corretto) - + PNG PNG - + JPEG JPEG - + Quality: Qualità: - - + + Rendering Rendering - + Internal Resolution: Risoluzione Interna: - + Mipmapping: Mipmapping: - - + + Off Disattivato - + Basic (Generated Mipmaps) Di base (Mipmaps generate) - + Full (PS2 Mipmaps) Completo (Mipmaps PS2) - - + + Texture Filtering: Filtraggio texture: - - + + Nearest Più vicino - - + + Bilinear (Forced) Bilineare (Forzato) - - + + Bilinear (PS2) Bilineare (PS2) - - + + Bilinear (Forced excluding sprite) Bilineare (forzato eccetto sprite) - + Trilinear Filtering: Filtraggio trilineare: - + Off (None) Disattivato (nessuno) - + Trilinear (PS2) Trilineare (PS2) - + Trilinear (Forced) Trilineare (Forzato) - + Anisotropic Filtering: Filtraggio anisotropico: - + Dithering: Dithering: - + Scaled Ridimensionato - + Unscaled (Default) Non ridimensionato (Predefinito) - + Blending Accuracy: Precisione del blending: - + Minimum Minima - + Basic (Recommended) Di base (consigliata) - + Medium Media - + High Elevata - + Full (Slow) Completa (lenta) - + Maximum (Very Slow) Massima (Molto Lenta) - + Texture Preloading: Precaricamento delle texture: - + Partial Parziale - + Full (Hash Cache) Completa (Cache Hash) - + + Software Rendering Threads: + Thread di rendering software: + + + + Skip Draw Range: + Intervallo di Skipdraw: + + + GPU Palette Conversion Conversione palette GPU - + Manual Hardware Renderer Fixes Correzioni manuali renderer hardware - + Spin GPU During Readbacks Mantieni attiva la GPU durante la lettura - + Spin CPU During Readbacks Mantieni attiva la CPU durante la lettura - - Extra Rendering Threads: - Thread per il rendering aggiuntivi: - - - + threads thread - + Mipmapping Mipmapping - + Auto Flush Cancellazione automatica - + Hardware Fixes Correzioni hardware - + Force Disabled Forza disabilitazione - + Force Enabled Forza abilitazione - + CPU Sprite Render Size: Dimensione render sprite CPU: - - - + + + 0 (Disabled) @@ -9583,79 +10017,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabilitato) - + 1 (64 Max Width) 1 (Larghezza Massima 64) - + 2 (128 Max Width) 2 (Larghezza Massima 128) - + 3 (192 Max Width) 3 (Larghezza Massima 192) - + 4 (256 Max Width) 4 (Larghezza Massima 256) - + 5 (320 Max Width) 5 (Larghezza Massima 320) - + 6 (384 Max Width) 6 (Larghezza Massima 384) - + 7 (448 Max Width) 7 (Larghezza Massima 448) - + 8 (512 Max Width) 8 (Larghezza Massima 512) - + 9 (576 Max Width) 9 (Larghezza Massima 576) - + 10 (640 Max Width) 10 (Larghezza Massima 640) - - Skipdraw Range: - Intervallo di Skipdraw: - - - + Frame Buffer Conversion Conversione del buffer dei frame - + Disable Depth Emulation Disabilita l'emulazione della profondità - + Disable Safe Features Disabilita le funzioni sicure - + Preload Frame Data Precarica Dati Frame @@ -9666,606 +10095,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture dentro RT - + 1 (Normal) 1 (normale) - + 2 (Aggressive) 2 (aggressivo) - + Software CLUT Render: Render CLUT Software: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. CLUT obiettivo GPU: - - - + + + Disabled (Default) Disabilitato (Predefinito) - + Enabled (Exact Match) Abilitato (Corrispondenza Esatta) - + Enabled (Check Inside Target) Abilitato (Verifica dentro Obiettivo) - + Upscaling Fixes Correzioni per l'upscaling - + Half Pixel Offset: Offset di mezzo pixel: - + Normal (Vertex) Normale (Vertice) - + Special (Texture) Speciale (Texture) - + Special (Texture - Aggressive) Speciale (Texture - Aggressivo) - + Round Sprite: Arrotondamento sprite: - + Half Metà - + Full Completo - + Texture Offsets: Offset delle texture: - + X: X: - + Y: Y: - + Merge Sprite Unisci Sprite - + Align Sprite Allinea Sprite - + Deinterlacing: Deinterlacciamento: - + Sprites Only Solo Sprite - + Sprites/Triangles Sprite/Triangoli - + Blended Sprites/Triangles Sprite/Triangoli Miscelati - + Auto Flush: Svuotamento automatico: - + Enabled (Sprites Only) Abilitato (Solo Sprite) - + Enabled (All Primitives) Abilitato (Tutte le Primitive) - + Texture Inside RT: Texture dentro RT: - + Inside Target Target Interno - + Merge Targets Unisci Target - + Disable Partial Source Invalidation Disabilita Invalidazione Parziale della Sorgente - + Read Targets When Closing Leggi Target Alla Chiusura - + Estimate Texture Region Stima Regione delle Texture - + Disable Render Fixes Disabilita Correzioni Render - + Unscaled Palette Texture Draws Draw di Texture Gamma Non Scalate - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Hack per Wild Arms - + Bilinear Dirty Upscale: Upscale Bilineare Sporco: - + Force Bilinear Forza Bilineare - + Force Nearest Forza Più vicino - + Texture Replacement Sostituzione delle texture - + Search Directory Cartella di ricerca - - + + Browse... Sfoglia... - - + + Open... Apri... - - + + Reset Resetta - + PCSX2 will dump and load texture replacements from this directory. PCSX2 scaricherà e caricherà le sostituzioni delle texture da questa cartella. - + Options Opzioni - + Dump Textures Scarica Texture - + Dump Mipmaps Scarica Mipmaps - + Dump FMV Textures Scarica Texture degli FMV - - - Async Texture Loading - Caricamento asincrono delle texture - - - + Load Textures Carica Texture - + Precache Textures Precarica Texture - + Post-Processing Post-elaborazione - + Sharpening/Anti-Aliasing Nitificazione/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Nitificatore a contrasto adattivo (CAS): - - + + None (Default) Nessuno (Predefinito) - + Sharpen Only (Internal Resolution) Solo nitifica (risoluzione interna) - + Sharpen and Resize (Display Resolution) Nitifica e ridimensiona (risoluzione dello schermo) - + Sharpness: Nitidezza: - + FXAA FXAA - + Filters Filtri - + TV Shader: Shader TV: - + Scanline Filter Filtro linee di scansione - + Diagonal Filter Filtro diagonale - + Triangular Filter Filtro Triangolare - + Wave Filter Filtro onda - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. CRT di Lottes - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) Ridimensionamento 4xRGSS (4x SuperSampling a Griglia Rotata) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) Ridimensionamento NxAGSS (Nx SuperSampling a Griglia Automatica) - + Shade Boost Aumento Ombre - + Brightness: Luminosità: - + Contrast: Contrasto: - Saturation Saturazione - + OSD OSD - + On-Screen Display Mostra a schermo - + OSD Scale: Scala OSD: - + Show Indicators Mostra Indicatori - + Show Resolution Mostra risoluzione - + Show Inputs Mostra input - + Show GPU Usage Mostra utilizzo GPU - + Show Settings Mostra impostazioni - + Show FPS Mostra FPS - + + + Disable Dual-Source Blending + Disabilita Blending a Doppia Sorgente + + + Disable Shader Cache Disabilita Cache Shader - + Disable Vertex Shader Expand Disabilita Espansione Shader Vertex - + Show Statistics Mostra Statistiche - + + + Asynchronous Texture Loading + Caricamento Asincrono delle Texture + + + + Saturation: + Saturazione: + + + Show CPU Usage Mostra utilizzo CPU - + Warn About Unsafe Settings Avvisa sulle impostazioni non sicure - + Show Frame Times Mostra frame time - + Recording Registrazione - + Video Dumping Directory Directory Dumping Video - + Capture Setup Impostazione dell'Acquisizione - + Container: Contenitore: - - + + Codec: Codec: - - + + Extra Arguments Argomenti Extra - + Capture Audio Acquisizione Audio - + Resolution: Risoluzione: - + x x - + Auto Auto - + Capture Video Registra Video - + Advanced Advanced here refers to the advanced graphics options. Avanzate - + Advanced Options Opzioni avanzate - + Hardware Download Mode: Modalità Download Hardware: - + Accurate (Recommended) Accurata (consigliata) - + Disable Readbacks (Synchronize GS Thread) Disabilita Readback (Sincronizza thread GS) - + Unsynchronized (Non-Deterministic) Non sincronizzato (Non deterministico) - + Disabled (Ignore Transfers) Disabilitato (Ignora trasferimenti) - + GS Dump Compression: Compressione dump del GS: - + Uncompressed Non compresso - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Salta la presentazione di frame duplicati - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10275,69 +10714,63 @@ Swap chain: see Microsoft's Terminology Portal. Usa catena di scambio blit - + Disable Threaded Presentation Disabilita presentazione threadata - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Consenti Schermo Intero Esclusivo: - + Disallowed Non Consentito - + Allowed Consentito - + Debugging Options Opzioni di Debugging - + Override Texture Barriers: Ignora Barriere delle Texture: - + Use Debug Device Usa Dispositivo di Debug - - - Disable Dual Source Blending - Disabilita Blending a doppia sorgente - - - + Show Speed Percentages Mostra Percentuali di Velocità - + Disable Framebuffer Fetch Disabilita Fetch del Framebuffer @@ -10406,8 +10839,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Usa impostazione globale [%1] @@ -10459,6 +10892,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Non spuntato @@ -10518,11 +10952,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Controlla il livello di precisione dell'emulazione dell'unità di blending del GS.<br> Quanto più alto viene impostato, tanto più accuratamente viene emulato il blending nello shader e tanto più grande sarà la penalizzazione per la velocità.<br> Nota che il blending Direct3D è di capacità ridotta rispetto a OpenGL/Vulkan. + + + Software Rendering Threads + Thread di rendering software + Software CLUT Render Render Software CLUT + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disabilita il supporto del buffer di profondità nella cache delle texture. Questo può aiutare ad aumentare la velocità ma probabilmente causerà vari glitch. + This option disables game-specific render fixes. @@ -10574,6 +11018,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Corregge i problemi con il ridimensionamento (linee verticali) in giochi della Namco come Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Scarica texture sostituibili sul disco. Ridurrà le prestazioni. + + + + Includes mipmaps when dumping textures. + Include le mipmap quando si scaricano le texture. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Consente lo scaricamento delle texture quando gli FMV sono attivi. Non dovresti abilitare quest'opzione. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Carica le texture di sostituzione su un thread di lavoro, riducendo il microstuttering quando sono abilitate le sostituzioni. + + + + Loads replacement textures where available and user-provided. + Carica le texture di sostituzione se disponibili e fornite dall'utente. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Precarica tutte le texture sostituite in memoria. Non necessario con il caricamento asincrono. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Abilita la nitidezza adattiva del contrasto FidelityFX. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determina l'intensità dell'effetto di nitidezza nell'effetto post processing CAS. + + + + Adjusts brightness. 50 is normal. + Regola la luminosità. 50 è quella normale. + + + + Adjusts contrast. 50 is normal. + Regola il contrasto. 50 è quello normale. + + + + Adjusts saturation. 50 is normal. + Regola la saturazione. 50 è quella normale. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10589,11 +11088,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Visualizza varie impostazioni e i valori attuali di quelle impostazioni, utile per debuggare. - - - Shows the current controller state of the system in the bottom left corner of the display. - Mostra lo stato attuale del controller del sistema nell'angolo in basso a sinistra dello schermo. - Displays a graph showing the average frametimes. @@ -10631,7 +11125,7 @@ Swap chain: see Microsoft's Terminology Portal. Abilita quest'opzione per adattare la frequenza di aggiornamento a quella del tuo monitor o del tuo schermo attuale. Il VSync è automaticamente disabilitato quando non è possibile attivarlo (ad es. funzionamento a velocità diversa da 100%). - + Integer Scaling Ridimensionamento per interi @@ -10720,8 +11214,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Schermo intero senza bordi @@ -10863,11 +11357,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Invia carichi inutili alla GPU durante le letture per impedire che essa vada in modalità di risparmio energetico. Potrebbe migliorare le prestazioni ma con un significativo aumento del consumo energetico. - - - Extra Rendering Threads - Thread per il rendering aggiuntivi - 2 threads @@ -10918,11 +11407,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Fine dell'intervallo di Skipdraw - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disabilita il supporto del buffer di profondità nella cache delle texture. Questo può aiutare ad aumentare la velocità ma probabilmente creerà vari glitch. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11040,7 +11524,7 @@ Swap chain: see Microsoft's Terminology Portal. Scala OSD - + Show OSD Messages Mostra messaggi OSD @@ -11080,6 +11564,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Mostra dei contatori dell'utilizzo grafico interno, utili per il debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Mostra lo stato attuale del controller del sistema nell'angolo in basso a sinistra dello schermo. + Displays warnings when settings are enabled which may break games. @@ -11132,30 +11621,40 @@ Swap chain: see Microsoft's Terminology Portal. Presenta i frame sul thread principale del GS invece che su un thread di lavoro. Usato per il debugging di problemi di frametime. Potrebbe ridurre la possibilità di perdere un frame o ridurre il tearing al costo di frame time più irregolari. Si applica solo al renderer Vulkan. - + + Enable Debug Device + Abilita Dispositivo Di Debug + + + + Enables API-level validation of graphics commands. + Abilita la validazione a livello API dei comandi grafici. + + + GS Download Mode Modalità di download del GS - + Accurate Accurata - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Salta la sincronizzazione con il thread GS e la GPU host per i download del GS. Può risultare in un grande aumento della velocità su sistemi più lenti, al costo di molti effetti grafici difettosi. Se i giochi sono rotti e hai abilitato quest'opzione, innanzitutto disabilitala. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Predefinito - - + + (Default) (Predefinito) @@ -11163,405 +11662,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Grafica - + Save Screenshot Cattura Schermata - + Toggle Video Capture Attiva/Disattiva Cattura video - + Save Single Frame GS Dump Salva dump di un singolo frame del GS - + Save Multi Frame GS Dump Salva dump di multipli frame del GS - + Toggle Software Rendering Attiva/Disattiva Rendering Software - + Increase Upscale Multiplier Aumenta Moltiplicatore Upscaling - + Decrease Upscale Multiplier Diminuisci Moltiplicatore Upscaling - + Toggle On-Screen Display Attiva/Disattiva Mostra a Schermo - + Cycle Aspect Ratio Alterna Rapporti d'Aspetto - + Aspect ratio set to '{}'. Rapporto d'aspetto impostato su '{}'. - + Cycle Hardware Mipmapping Mipmapping Hardware del Ciclo - + Hardware mipmapping set to '{}'. Mipmapping hardware impostato su '{}'. - + Cycle Deinterlace Mode Modalità Deinterlacciamento Ciclo - + Deinterlace mode set to '{}'. Modalità deinterlacciamento impostata su '{}'. - + Toggle Texture Dumping Attiva/Disattiva Dumping delle Texture - + Texture dumping is now enabled. Il dumping delle texture è ora abilitato. - + Texture dumping is now disabled. Il dumping delle texture è ora disabilitato. - + Toggle Texture Replacements Attiva/Disattiva le sostituzioni delle texture - + Texture replacements are now enabled. Le sostituzioni delle texture sono ora abilitate. - + Texture replacements are now disabled. Le sostituzioni delle texture sono ora disabilitate. - + Reload Texture Replacements Ricarica le sostituzioni delle texture - + Texture replacements are not enabled. Le sostituzioni delle texture non sono abilitate. - + Reloading texture replacements... Ricarica delle sostituzioni delle texture in corso... - + Target speed set to {:.0f}%. Velocità obiettivo impostata su {:.0f}%. - + Volume: Muted Volume: Muto - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Slot di salvataggio {} selezionato (ultimo salvataggio: {}). + + Save slot {0} selected (last save: {1}). + Slot di salvataggio {0} selezionato (ultimo salvataggio: {1}). - + Save slot {} selected (no save yet). Slot di salvataggio {} selezionato (nessun salvataggio presente). - + No save state found in slot {}. Nessuno stato salvato trovato nello slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System Sistema - + Open Pause Menu Apri Menu di Pausa - + Open Achievements List Apri Lista Obiettivi - + Open Leaderboards List Apri Lista delle Classifiche - + Toggle Pause Attiva/Disattiva Pausa - + Toggle Fullscreen Attiva/Disattiva Schermo Intero - + Toggle Frame Limit Attiva/Disattiva Limitatore di Frame - + Toggle Turbo / Fast Forward Attiva/Disattiva Turbo / Avanzamento Rapido - + Toggle Slow Motion Attiva/Disattiva Rallentatore - + Turbo / Fast Forward (Hold) Turbo / Avanzamento Veloce (Tieni premuto) - + Increase Target Speed Aumenta la Velocità Obiettivo - + Decrease Target Speed Riduci la Velocità Obiettivo - + Increase Volume Aumenta il Volume - + Decrease Volume Riduci il Volume - + Toggle Mute Attiva/Disattiva Modalità Muto - + Frame Advance Avanzamento Fotogrammi - + Shut Down Virtual Machine Spegni Macchina Virtuale - + Reset Virtual Machine Riavvia Macchina Virtuale - + Toggle Input Recording Mode Attiva/Disattiva Modalità Registrazione dell'Input - - - - + + + + Save States Stati Salvati - + Select Previous Save Slot Seleziona Slot di Salvataggio Precedente - + Select Next Save Slot Seleziona Slot di Salvataggio Successivo - + Save State To Selected Slot Salva Stato Nello Slot Selezionato - + Load State From Selected Slot Carica Stato Dallo Slot Selezionato - + Save State To Slot 1 Salva Stato Nello Slot 1 - + Load State From Slot 1 Carica Stato Dallo Slot 1 - + Save State To Slot 2 Salva Stato Nello Slot 2 - + Load State From Slot 2 Carica Stato Dallo Slot 2 - + Save State To Slot 3 Salva Stato Nello Slot 3 - + Load State From Slot 3 Carica Stato Dallo Slot 3 - + Save State To Slot 4 Salva Stato Nello Slot 4 - + Load State From Slot 4 Carica Stato Dallo Slot 4 - + Save State To Slot 5 Salva Stato Nello Slot 5 - + Load State From Slot 5 Carica Stato Dallo Slot 5 - + Save State To Slot 6 Salva Stato Nello Slot 6 - + Load State From Slot 6 Carica Stato Dallo Slot 6 - + Save State To Slot 7 Salva Stato Nello Slot 7 - + Load State From Slot 7 Carica Stato Dallo Slot 7 - + Save State To Slot 8 Salva Stato Nello Slot 8 - + Load State From Slot 8 Carica Stato Dallo Slot 8 - + Save State To Slot 9 Salva Stato Nello Slot 9 - + Load State From Slot 9 Carica Stato Dallo Slot 9 - + Save State To Slot 10 Salva Stato Nello Slot 10 - + Load State From Slot 10 Carica Stato Dallo Slot 10 @@ -11719,6 +12218,96 @@ Clic destro per cancellare l'associazione %1 [%2] %1 [%2] + + + Left Analog + Analogico sinistro + + + + Right Analog + Analogico Destro + + + + Cross + Croce + + + + Square + Quadrato + + + + Triangle + Triangolo + + + + Circle + Cerchio + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + Tasto direzionale Giù + + + + D-Pad Right️ + Tasto direzionale Destra️ + + + + D-Pad Up️ + Tasto direzionale Su️ + + + + D-Pad Left️ + Tasto direzionale Sinistra️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + SELECT + + + + Start + START + Input Recording Files (*.p2m2) @@ -11746,137 +12335,137 @@ Clic destro per cancellare l'associazione InterfaceSettingsWidget - + Behaviour Comportamento - + Pause On Focus Loss Metti in pausa al passaggio in secondo piano - + Inhibit Screensaver Blocca salvaschermo - + Save State On Shutdown Salva stato all'arresto - + Pause On Start Pausa all'avvio - + Confirm Shutdown Conferma arresto - + Create Save State Backups Crea backup degli stati salvati - + Enable Discord Presence Abilita la presenza in Discord - + Enable Per-Game Settings Abilita le impostazioni per singolo gioco - + Game Display Display di gioco - + Start Fullscreen Avvia a schermo intero - + Double-Click Toggles Fullscreen Il doppio clic passa allo schermo intero - + Render To Separate Window Renderizza in una finestra a parte - + Hide Main Window When Running Nascondi la finestra principale durante l'esecuzione - + Disable Window Resizing Disabilita ridimensionamento finestra - + Hide Cursor In Fullscreen Nascondi il cursore a schermo intero - + Preferences Preferenze - + Language: Lingua: - + Theme: Tema: - + Automatic Updater Aggiornamento automatico - + Update Channel: Canale di aggiornamento: - + Current Version: Versione attuale: - + Enable Automatic Update Check Abilita il controllo automatico degli aggiornamenti - + Check for Updates... Verifica la presenza di aggiornamenti... @@ -12069,7 +12658,7 @@ Clic destro per cancellare l'associazione Mostra il gioco a cui stai attualmente giocando come parte del tuo profilo su Discord. - + System Language [Default] Lingua di Sistema [Default] @@ -12126,14 +12715,14 @@ Clic destro per cancellare l'associazione - - + + Change Disc Cambia disco - + Load State Carica stato @@ -12638,13 +13227,13 @@ Clic destro per cancellare l'associazione - + Start Big Picture Mode Avvia Modalità Big Picture - + Big Picture In Toolbar Big Picture @@ -12656,7 +13245,7 @@ Clic destro per cancellare l'associazione - + Show Advanced Settings Mostra le impostazioni avanzate @@ -12667,7 +13256,7 @@ Clic destro per cancellare l'associazione - + Video Capture Acquisizione video @@ -12682,27 +13271,27 @@ Clic destro per cancellare l'associazione Modifica Patch... - + Internal Resolution Risoluzione Interna - + %1x Scale Scala %1x - + Select location to save block dump: Seleziona una posizione per salvare i dump del blocco: - + Do not show again Non mostrare nuovamente - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12715,168 +13304,173 @@ Il team di PCSX2 non fornirà alcun supporto per configurazioni che modificano q Sei sicuro di voler continuare? - + %1 Files (*.%2) File %1 (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: loggato come %1 (%2, %3 softcore). %4 messaggi non letti. + + + Confirm Shutdown Conferma arresto - + Are you sure you want to shut down the virtual machine? Sei sicuro di voler arrestare la macchina virtuale? - + Save State For Resume Salva stato per continuare - - - - - - + + + + + + Error Errore - + You must select a disc to change discs. Devi selezionare un disco per cambiare dischi. - + Properties... Proprietà... - + Open Containing Directory... Refers to the directory where a game is contained. Apri cartella contenente il file... - + Set Cover Image... Imposta immagine di copertina... - + Exclude From List Escludi dalla Lista - + Reset Play Time Reimposta tempo di gioco - + Default Boot Avvio Predefinito - + Fast Boot Avvio veloce - + Full Boot Avvio Completo - + Boot and Debug Avvio e debug - + Add Search Directory... Aggiungi cartella di ricerca... - + Start File Avvia File - + Start Disc Avvia Disco - + Select Disc Image Seleziona immagine del disco - + Updater Error Errore di Aggiornamento - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Spiacente, stai provando ad aggiornare una versione di PCSX2 che non è una release ufficiale di GitHub. Per impedire incompatibilità, l'aggiornamento automatico è abilitato solo su build ufficiali.</p><p>Per ottenere una build ufficiale, per favore scaricala dal link qui sotto:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. L'aggiornamento automatico non è supportato sulla piattaforma attuale. - + Confirm File Creation Conferma Creazione del File - + The pnach file '%1' does not currently exist. Do you want to create it? Il file pnach '%1' non esiste attualmente. Vuoi crearlo? - + Failed to create '%1'. Creazione di '%1' non riuscita. - + Input Recording Files (*.p2m2) File di registrazione dell'input (*.p2m2) - + Paused In pausa - + Load State Failed Caricamento dello stato fallito - + Cannot load a save state without a running VM. Non è possibile caricare uno stato salvato senza una MV in esecuzione. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? Il nuovo ELF non può essere caricato senza resettare la macchina virtuale. Vuoi resettare la macchina virtuale ora? - + Cannot change from game to GS dump without shutting down first. Impossibile cambiare da gioco a dump GS senza uno spegnimento prima. - + Failed to get window info from widget Recupero delle informazioni della finestra dal widget non riuscito @@ -12891,97 +13485,97 @@ Sei sicuro di voler continuare? Tutti i Tipi di File (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Immagini Grezze a Singola Traccia (*.bin *.iso);;Sheet Cue (*.cue);;Media Descriptor File (*.mdf);;Immagini CHD MAME (*.chd);;Immagini CSO (*.cso);;Immagini GZ (*.gz);;Dump del Blocco (*.dump) - + Stop Big Picture Mode Arresta Modalità Big Picture - + Exit Big Picture In Toolbar Esci dalla Modalità Big Picture - + Game Properties Proprietà del Gioco - + Game properties is unavailable for the current game. Le proprietà del gioco non sono disponibili per il gioco attuale. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Non è stato possibile trovare alcun dispositivo CD/DVD-ROM. Per favore, assicurati di avere un'unità collegata e permessi sufficienti per accedervi. - + Select disc drive: Seleziona unità disco: - + This save state does not exist. Questo stato salvato non esiste. - + Select Cover Image Seleziona immagine di copertina - - All Cover Image Types (*.jpg *.jpeg *.png) - Tutti i tipi di immagine di copertina (*.jpg *.jpeg *.png) - - - + Cover Already Exists La copertina già esiste - + A cover image for this game already exists, do you wish to replace it? Un'immagine di copertina per questo gioco già esiste, desideri sostituirla? - - - - + + + + Copy Error Errore di copia - + Failed to remove existing cover '%1' Rimozione della copertina esistente '%1' fallita - + Failed to copy '%1' to '%2' Copia di '%1' a '%2' fallita - + Failed to remove '%1' Rimozione di '%1' non riuscita - - + + Confirm Reset Conferma reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + Tutti i tipi di immagine di copertina (*.jpg *.jpeg *.png) + + + You must select a different file to the current cover image. Devi selezionare un file diverso dalla immagine di copertina attuale. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12990,12 +13584,12 @@ This action cannot be undone. Quest'azione non può essere annullata. - + Load Resume State Carica stato di ripresa - + A resume save state was found for this game, saved at: %1. @@ -13008,70 +13602,70 @@ Do you want to load this state, or start from a fresh boot? Vuoi caricare questo stato, o iniziare da un nuovo avvio? - + Fresh Boot Nuovo avvio - + Delete And Boot Elimina e avvia - + Failed to delete save state file '%1'. Eliminazione del file dello stato salvato '%1' fallita. - + Load State File... Carica file stato... - + Load From File... Carica da file... - - + + Select Save State File Seleziona file dello stato salvato - - + + Save States (*.p2s) Stati salvati (*.p2s) - + Delete Save States... Elimina stati salvati... - + Undo Load State Annulla caricamento dello stato - + Resume (%2) Riprendi (%2) - + Load Slot %1 (%2) Carica Slot %1 (%2) - - + + Delete Save States Elimina stati salvati - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13080,42 +13674,42 @@ The saves will not be recoverable. I salvataggi non saranno recuperabili. - + %1 save states deleted. %1 stati salvati eliminati. - + Save To File... Salva su File... - + Empty Vuoto - + Save Slot %1 (%2) Slot di salvataggio %1 (%2) - + Confirm Disc Change Conferma Cambio Disco - + Do you want to swap discs or boot the new image (via system reset)? Vuoi scambiare i dischi o avviare la nuova immagine (tramite un reset di sistema)? - + Swap Disc Scambia Disco - + Reset Resetta @@ -13123,8 +13717,8 @@ I salvataggi non saranno recuperabili. MemoryCard - - + + Memory Card '{}' was saved to storage. La Memory Card '{}' è stata salvata nell'archiviazione. @@ -13205,6 +13799,7 @@ I salvataggi non saranno recuperabili. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x più grande di una Memory Card standard. Potrebbe avere alcuni problemi di compatibilità. @@ -13255,11 +13850,6 @@ I salvataggi non saranno recuperabili. Cannot Convert Memory Card Impossibile convertire la Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x più grande di una Memory Card standard. Potrebbe avere alcuni problemi di compatibilità. - MemoryCardCreateDialog @@ -13385,103 +13975,104 @@ I salvataggi non saranno recuperabili. MemoryCardSettingsWidget - + Console Ports Porte della Console - + Memory Cards Memory Card - + Folder: Cartella: - + Browse... Sfoglia... - + Open... Apri... - + Reset Resetta - + Name Nome - + Type Tipo - + Formatted Formattata - + Last Modified Ultima modifica - + Refresh Aggiorna - + + Create Crea - + Duplicate Duplica - + Rename Rinomina - + Convert Converti - + Delete Elimina - + Settings Impostazioni - + Automatically manage saves based on running game Gestisci automaticamente i salvataggi in base al gioco in esecuzione - + Auto-eject Memory Cards when loading save states Espelli automaticamente le Memory Card quando si caricano gli stati salvati @@ -13651,58 +14242,58 @@ Quest'azione non può essere annullata, e perderai qualunque salvataggio sulla s Memoria - + Copy Address Copia Indirizzo - + Go to in disassembly Vai a nel disassemblaggio - - + + Go to address Vai a Indirizzo - + Show as 1 byte Mostra come 1 byte - + Show as 2 bytes Mostra come 2 byte - + Show as 4 bytes Mostra come 4 byte - + Show as 8 bytes Mostra come 8 byte - + Copy Byte Copia byte - + Copy Segment Copia Segmento - + Copy Character Copia carattere - + Paste Incolla @@ -13752,10 +14343,15 @@ Quest'azione non può essere annullata, e perderai qualunque salvataggio sulla s Inserisci nome dell'autore - + Input Recording Files (*.p2m2) File di registrazione dell'input (*.p2m2) + + + Select a File + Selezionare un File + Pad @@ -13951,6 +14547,16 @@ Quest'azione non può essere annullata, e perderai qualunque salvataggio sulla s Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Imposta la zona morta della levetta analogica, vale a dire la frazione del movimento della levetta che verrà ignorata. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13967,14 +14573,14 @@ Quest'azione non può essere annullata, e perderai qualunque salvataggio sulla s Imposta la zona morta per l'attivazione di pulsanti/grilletti, vale a dire la frazione del grilletto che verrà ignorata. - - Analog light is now on for port {} / slot {} - La luce dell'analogico è ora accesa per la porta {} / l'ingresso {} + + Analog light is now on for port {0} / slot {1} + La luce dell'analogico è ora accesa per la porta {0} / l'ingresso {1} - - Analog light is now off for port {} / slot {} - La luce dell'analogico è ora spenta per la porta {} / l'ingresso {} + + Analog light is now off for port {0} / slot {1} + La luce dell'analogico è ora spenta per la porta {0} / l'ingresso {1} @@ -14021,13 +14627,6 @@ Quest'azione non può essere annullata, e perderai qualunque salvataggio sulla s DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - La porta del controller {}, l'ingresso {} ha un {} connesso, ma lo stato salvato ha un {}. -Il tipo di controller originale viene lasciato connesso, ma questo potrebbe causare problemi. - Strum Up @@ -14098,40 +14697,63 @@ Il tipo di controller originale viene lasciato connesso, ma questo potrebbe caus Guitar Chitarra + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + La porta del controller {0}, l'ingresso {1} ha un {2} connesso, ma lo stato salvato ha un {3}. +Il tipo di controller originale viene lasciato connesso, ma questo potrebbe causare problemi. + Patch - + Failed to open {}. Built-in game patches are not available. Apertura di {} non riuscita. Le patch di gioco integrate non sono disponibili. - + {} GameDB patches {} patch GameDB - + {}{} game patches {}{} patch di gioco - + {}{} cheat patches {}{} patch dei trucchi - + {} are active. {} sono attive. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. Nessun trucco o patch (widescreen, compatibilità o altre) è stato trovato / abilitato. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 utilizza la vostra web camera per emulare una telecamera EyeToy collegata alla PS2 virtuale + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 utilizza il vostro microfono per emulare un microfono USB collegato alla PS2 virtuale + + QObject @@ -14149,13 +14771,13 @@ The URL was: %1 L'URL era: %1 - + HDD Creator Creatore HDD - + Failed to create HDD image Creazione dell'immagine HDD non riuscita @@ -14360,7 +14982,6 @@ Altrimenti elimina lo stato salvato e avvia da zero. SettingWidgetBinder - @@ -14410,222 +15031,243 @@ Vuoi creare questa cartella? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Usa impostazione globale [Abilitato] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Usa impostazione globale [Disabilitato] + + + + + Use Global Setting [%1] + Usa impostazione globale [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings Impostazioni PCSX2 - + Restore Defaults Ripristina Predefiniti - + Copy Global Settings Copia Impostazioni Globali - + Clear Settings Cancella Impostazioni - + Close Chiudi - - - Summary - Riassunto - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Riepilogo</strong><hr>Questa pagina mostra dettagli sul gioco selezionato. Cambiare il Profilo di Input imposterà lo schema di associazioni del controller per questo gioco su qualunque profilo venga scelto, invece della configurazione predefinita (Condivisa). La lista delle tracce e la verifica dei dump può essere utilizzata per determinare se la tua immagine del disco corrisponde a un dump valido noto. Se non corrisponde, il gioco potrebbe essere corrotto. - + + + Summary + Riepilogo + + + Summary is unavailable for files not present in game list. Il riepilogo non è disponibile per i file non presenti nella lista dei giochi. - + Interface Interfaccia - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Impostazioni dell'interfaccia</strong><hr>Queste opzioni controllano come il software appare e si comporta.<br><br>Muovi il cursore su di un'opzione per ulteriori informazioni. - + Game List Lista dei giochi - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Impostazioni della lista dei giochi</strong><hr>La lista qui sopra mostra le cartelle in cui PCSX2 cercherà per popolare la lista dei giochi. Le cartelle di ricerca possono essere aggiunte, rimosse, e commutate a ricorsive/non ricorsive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>Impostazioni del BIOS</strong><hr>Configura il tuo BIOS qui.<br><br>Muovi il cursore su di un'opzione per ulteriori informazioni. - + Emulation Emulazione - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - <strong>Impostazioni dell'emulazione</strong><hr>Queste opzioni determinano la configurazione del ritmo dei frame e le impostazioni di gioco.<br><br>Muovi il cursore su di un'opzione per ulteriori informazioni. + <strong>Impostazioni dell'emulazione</strong><hr>Queste opzioni determinano la configurazione del frame pacing e le impostazioni di gioco.<br><br>Muovi il cursore su di un'opzione per ulteriori informazioni. - + Patches Patch - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patch</strong><hr>Questa sezione ti permette di selezionare patch opzionali da applicare al gioco, che potrebbero fornire miglioramenti di performance, visivi, o di giocabilità. - + Cheats Trucchi - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Trucchi</strong><hr>Questa sezione ti permette di selezionare quali trucchi desideri abilitare. Non puoi abilitare/disabilitare i trucchi senza etichette per i file pnach vecchio formato, quelli si attiveranno automaticamente se l'opzione principale di abilitazione dei trucchi è spuntata. - + Game Fixes Correzioni di Gioco - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Impostazioni delle Correzioni di Gioco</strong><hr>Le Correzioni di Gioco possono aggirare l'emulazione errata in alcuni titoli.<br>Tuttavia, possono anche causare problemi nei giochi se usate in modo errato.<br>È meglio lasciarle tutte disabilitate a meno di non essere stati consigliati altrimenti. - + Graphics Grafica - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Impostazioni della grafica</strong><hr>Queste opzioni determinano la configurazione dell'output grafico.<br><br>Muovi il cursore su di un'opzione per ulteriori informazioni. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Impostazioni dell'audio</strong><hr>Queste opzioni controllano l'output audio della console.<br><br>Muovi il cursore su di un'opzione per ulteriori informazioni. - + Memory Cards Memory Card - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Impostazioni delle Memory Card</strong><hr>Crea e configura le Memory Cards qui.<br><br>Muovi il cursore su di un'opzione per ulteriori informazioni. - + Network & HDD Rete & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Impostazioni di rete & HDD</strong><hr>Queste opzioni controllano la connettività di rete e l'archiviazione interna su HDD della console.<br><br>Muovi il cursore su di un'opzione per ulteriori informazioni. - + Folders Cartelle - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Impostazioni delle cartelle</strong><hr>Queste opzioni controllano dove PCSX2 salverà i file dati del runtime. - + Achievements Obiettivi - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Impostazioni degli obiettivi</strong><hr>Queste opzioni controllano l'implementazione di RetroAchievements in PCSX2, consentendoti di guadagnare obiettivi nei tuoi giochi. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration è in uso, il supporto integrato a RetroAchievements è disabilitato. - + Advanced Avanzate - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Impostazioni avanzate</strong><hr>Queste sono opzioni avanzate per determinare la configurazione della console simulata.<br><br>Muovi il cursore su di un'opzione per ulteriori informazioni. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Impostazioni di Debug</strong><hr>Queste sono opzioni che possono essere usate per registrare informazioni interne sull'applicazione. <strong>Non modificarle a meno che tu non sappia cosa stai facendo</strong>, causeranno significativi rallentamenti, e possono sprecare grandi quantità di spazio sul disco. - + Confirm Restore Defaults Conferma ripristino dei predefiniti - + Are you sure you want to restore the default settings? Any preferences will be lost. Sei sicuro di voler ripristinare le impostazioni predefinite? Qualunque preferenza andrà persa. - + Reset UI Settings Resetta impostazioni UI - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14638,12 +15280,12 @@ Qualunque valore attuale impostato verrà sovrascritto. Vuoi continuare? - + Per-game configuration copied from global settings. Configurazione per il gioco copiata dalle impostazioni globali. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14656,33 +15298,15 @@ Qualunque valore attuale impostato sarà perduto. Vuoi continuare? - + Per-game configuration cleared. Configurazione per il gioco cancellata. - + Recommended Value Valore Consigliato - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Usa impostazione globale [Abilitato] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Usa impostazione globale [Disabilitato] - - - - - Use Global Setting [%1] - Usa impostazione globale [%1] - SetupWizardDialog @@ -14768,8 +15392,8 @@ Vuoi continuare? - Open in Explorer... - Apri in Esplora risorse... + Open BIOS Folder... + Apri Cartella BIOS... @@ -15037,97 +15661,97 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto TIPO DI ATTESA - + BAD Refers to a Thread State in the Debugger. DIFETTOSO - + RUN Refers to a Thread State in the Debugger. ESEGUI - + READY Refers to a Thread State in the Debugger. PRONTO - + WAIT Refers to a Thread State in the Debugger. ASPETTA - + SUSPEND Refers to a Thread State in the Debugger. SOSPENDI - + WAIT SUSPEND Refers to a Thread State in the Debugger. ATTENDI SOSPENSIONE - + DORMANT Refers to a Thread State in the Debugger. INATTIVO - + NONE Refers to a Thread Wait State in the Debugger. NESSUNO - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. RICHIESTA WAKEUP - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAFORO - + SLEEP Refers to a Thread Wait State in the Debugger. DORMI - + DELAY Refers to a Thread Wait State in the Debugger. RITARDA - + EVENTFLAG Refers to a Thread Wait State in the Debugger. SEGNALEEVENTO - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15333,6 +15957,11 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto Scales the crosshair image set above. Scala l'immagine del mirino impostata qui in alto. + + + %.0f%% + %.0f%% + Cursor Color @@ -15364,6 +15993,12 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto Scales the position to simulate CRT curvature. Scala la posizione per simulare la curvatura di un CRT. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15379,6 +16014,12 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto Sets the horizontal center position of the simulated screen. Imposta la posizione centrale orizzontale dello schermo simulato. + + + + %.0fpx + %.0fpx + Center Y @@ -15399,6 +16040,12 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto Sets the width of the simulated screen. Imposta la larghezza dello schermo simulato. + + + + %dpx + %dpx + Screen Height @@ -15454,6 +16101,15 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto Specifies the latency to the host input device. Specifica la latenza al dispositivo di input dell'host. + + + + + + + %dms + %dms + Output Latency @@ -15654,6 +16310,26 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto Y Y + + + Off + Disattivato + + + + Low + Basso + + + + Medium + Medio + + + + High + Elevato + Steering Smoothing @@ -15664,6 +16340,12 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smussa i cambiamenti nello sterzare alla percentuale specificata per poll. Necessario per usare le tastiere. + + + + %d%% + %d%% + Steering Deadzone @@ -16163,117 +16845,117 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto USBBindingWidget_DrivingForce - + Hints Suggerimenti - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Per associare la sterzata per la maggior parte dei volanti moderni a 900 gradi, gira il volante con una rotazione nella direzione desiderata, e poi giralo di nuovo al centro. - + Force Feedback Force Feedback - + D-Pad Tasti direzionali - + Down Giù - + Left Sinistra - + Up Su - + Right Destra - + L1 L1 - + L2 L2 - + Brake Freno - + Steering Left Sterzata a sinistra - + Steering Right Sterzata a destra - + Select Select - + Start Start - + Face Buttons Pulsanti principali - + Circle Cerchio - + Cross Croce - + Triangle Triangolo - + Square Quadrato - + R1 R1 - + R2 R2 - + Accelerator Acceleratore @@ -16281,67 +16963,67 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto USBBindingWidget_GTForce - + Hints Suggerimenti - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Per associare la sterzata per la maggior parte dei volanti moderni a 900 gradi, gira il volante con una rotazione nella direzione desiderata, e poi giralo di nuovo al centro. - + Force Feedback Force Feedback - + X X - + A A - + Brake Freno - + Steering Left Sterzata a sinistra - + Steering Right Sterzata a destra - + Left Paddle Leva sinistra - + Right Paddle Leva destra - + Y Y - + B B - + Accelerator Acceleratore @@ -16349,71 +17031,71 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto USBBindingWidget_GunCon2 - + Buttons Pulsanti - + A A - + C C - + Start START - + Select SELECT - + B B - + D-Pad Tasti direzionali - - + + Down Giù - - + + Left Sinistra - - + + Up Su - - + + Right Destra - + Pointer Setup Impostazione Puntatore - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16422,29 +17104,29 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto <p>Se vuoi usare un controller, o una pistola ottica che simula un controller invece di un mouse, allora dovresti associarlo alla Mira Relativa. Altrimenti, la Mira Relativa dovrebbe essere <strong>lasciata senza associazioni</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Mira Relativa - - + + Trigger Grilletto - + Shoot Offscreen Spara Fuori Campo - + Calibration Shot Tiro di Calibrazione - + Calibration shot is required to pass the setup screen in some games. Il tiro di calibrazione è richiesto per proseguire oltre la schermata dell'impostazione in alcuni giochi. @@ -16452,27 +17134,27 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto USBDeviceWidget - + Device Type Tipo di dispositivo - + Bindings Associazioni - + Settings Impostazioni - + Automatic Mapping Mappatura Automatica - + Clear Mapping Elimina Mappatura @@ -16510,32 +17192,32 @@ La scansione ricorsiva richiede più tempo, ma identificherà i file nelle sotto VMManager - + Failed to back up old save state {}. Backup dello stato salvato vecchio {} non riuscito. - + Failed to save save state: {}. Salvataggio stato salvato non riuscito: {}. - + PS2 BIOS ({}) BIOS PS2 ({}) - + Unknown Game Gioco Sconosciuto - + Error Errore - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16552,197 +17234,217 @@ Una volta scaricata, quest'immagine del BIOS dovrebbe essere posizionata nella c Per favore, consulta le FAQ e le Guide per ulteriori istruzioni. - + + Resuming state + Ripresa stato + + + State saved to slot {}. Stato salvato nello slot {}. - + Failed to save save state to slot {}. Salvataggio stato salvato nello slot {} non riuscito. - + + + Loading state + Caricamento Stato + + + There is no save state in slot {}. Non c'è alcuno stato salvato nello slot {}. - + Loading state from slot {}... Caricamento dello stato dallo slot {}... - + Saving state to slot {}... Salvataggio dello stato nello slot {}... - + + Frame advancing + Avanzamento Fotogrammi + + + Disc removed. Disco rimosso. - + Disc changed to '{}'. Disco cambiato in '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Apertura della nuova immagine del disco '{}' non riuscita. Ripristino della vecchia immagine. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Apertura della nuova immagine del disco '{}' non riuscita. +Ripristino della vecchia immagine. +Errore: {} - - Failed to switch back to old disc image. Removing disc. - Ritorno alla vecchia immagine del disco non riuscito. Rimozione del disco. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Ritorno alla vecchia immagine del disco non riuscito. Rimozione del disco. Errore: {} - + Cheats have been disabled due to achievements hardcore mode. I trucchi sono stati disabilitati a causa della modalità obiettivi hardcore. - + Fast CDVD is enabled, this may break games. CDVD Veloce è abilitato, questo potrebbe corrompere i giochi. - + Cycle rate/skip is not at default, this may crash or make games run too slow. La frequenza cicli/salti non è quella predefinita, questo potrebbe causare crash o far girare i giochi troppo lentamente. - + Audio is using async mix, expect desynchronization in FMVs. L'audio sta usando il mix asincrono, aspettati desincronizzazioni nei FMV. - + Upscale multiplier is below native, this will break rendering. Il moltiplicatore upscaling è al di sotto della risoluzione nativa, questo corromperà il rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Il mipmapping non è impostato su automatico. Questo potrebbe corrompere il rendering in alcuni giochi. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Il filtraggio delle texture non è impostato su Bilineare (PS2). Questo corromperà il rendering in alcuni giochi. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Il filtraggio trilineare non è impostato su automatico. Questo potrebbe corrompere il rendering in alcuni giochi. - + Blending is below basic, this may break effects in some games. Il blending è al di sotto di basilare, questo potrebbe corrompere gli effetti in alcuni giochi. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. La Modalità Download dell'Hardware non è impostata su Accurata, questo potrebbe corrompere il rendering in alcuni giochi. - + EE FPU Round Mode is not set to default, this may break some games. La Modalità Arrotondamento dell'FPU dell'EE non è impostata su predefinita, questo potrebbe corrompere alcuni giochi. - + EE FPU Clamp Mode is not set to default, this may break some games. La Modalità Clamp dell'FPU dell'EE non è impostata su predefinita, questo potrebbe corrompere alcuni giochi. - + VU Round Mode is not set to default, this may break some games. La Modalità Arrotondamento del VU non è impostata su predefinita, questo potrebbe corrompere alcuni giochi. - + VU Clamp Mode is not set to default, this may break some games. La Modalità Clamp del VU non è impostata su predefinita, questo potrebbe corrompere alcuni giochi. - + Game Fixes are not enabled. Compatibility with some games may be affected. Le Correzioni di Gioco non sono abilitate. La compatibilità con alcuni giochi potrebbe essere compromessa. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Le Patch di Compatibilità non sono abilitate. La compatibilità con alcuni giochi potrebbe essere compromessa. - + Frame rate for NTSC is not default. This may break some games. Il frame rate per NTSC non è quello predefinito. Questo potrebbe corrompere alcuni giochi. - + Frame rate for PAL is not default. This may break some games. Il frame rate per PAL non è quello predefinito. Questo potrebbe corrompere alcuni giochi. - + EE Recompiler is not enabled, this will significantly reduce performance. Il Ricompilatore EE non è abilitato, questo ridurrà significativamente le prestazioni. - + VU0 Recompiler is not enabled, this will significantly reduce performance. Il Ricompilatore VU0 non è abilitato, questo ridurrà significativamente le prestazioni. - + VU1 Recompiler is not enabled, this will significantly reduce performance. Il Ricompilatore VU1 non è abilitato, questo ridurrà significativamente le prestazioni. - + IOP Recompiler is not enabled, this will significantly reduce performance. Il Ricompilatore IOP non è abilitato, questo ridurrà significativamente le prestazioni. - + EE Cache is enabled, this will significantly reduce performance. La Cache EE è abilitata, questo ridurrà significativamente le prestazioni. - + EE Wait Loop Detection is not enabled, this may reduce performance. Il Rilevamento dei Loop Wait dell'EE non è abilitato, questo potrebbe ridurre le prestazioni. - + INTC Spin Detection is not enabled, this may reduce performance. Il Rilevamento degli Spin dell'INTC non è abilitato, questo potrebbe ridurre le prestazioni. - + Instant VU1 is disabled, this may reduce performance. Il VU1 Istantaneo è disabilitato, questo potrebbe ridurre le prestazioni. - + mVU Flag Hack is not enabled, this may reduce performance. L'Hack del Flag dell'mVU non è abilitato, questo potrebbe ridurre le prestazioni. - + GPU Palette Conversion is enabled, this may reduce performance. La Conversione della Gamma della GPU è abilitata, questo potrebbe ridurre le prestazioni. - + Texture Preloading is not Full, this may reduce performance. Il Precaricamento delle Texture non è Pieno, questo potrebbe ridurre le prestazioni. - + Estimate texture region is enabled, this may reduce performance. La stima della regione della texture è abilitata, questo potrebbe ridurre le prestazioni. diff --git a/pcsx2-qt/Translations/pcsx2-qt_ja-JP.ts b/pcsx2-qt/Translations/pcsx2-qt_ja-JP.ts index e41b13066b3d7b..fb60104d37e54a 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_ja-JP.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_ja-JP.ts @@ -22,7 +22,7 @@ <html><head/><body><p>PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment.</p></body></html> - <html><head/><body><p>PlayStation 2 および PS2 は、ソニー・インタラクティブエンタテインメントの登録商標です。このアプリケーションは、ソニーインタラクティブエンタテインメントとは一切関係ありません。.</p></body></html> + <html><head/><body><p>PlayStation 2 および PS2 は、ソニー・インタラクティブエンタテインメントの登録商標です。このアプリケーションは、ソニー・インタラクティブエンタテインメントとは一切関係ありません。</p></body></html> @@ -80,32 +80,38 @@ 準備完了... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>あなたの RetroAchievements のログイントークンが無効になりました。</strong>実績を追跡するには資格情報を再入力する必要があります。パスワードは PCSX2 に保存されず、代わりにアクセストークンが生成され使用されます。 - + &Login ログイン(&L) - + Logging in... ログイン中… - + Login Error ログインエラー - - Login failed. Please check your username and password, and try again. - ログインに失敗しました。ユーザー名とパスワードを確認して、もう一度やり直してください。 + + Login failed. +Error: %1 + +Please check your username and password, and try again. + ログインに失敗しました。 +Error: %1 + +ユーザー名とパスワードを確認して、もう一度やり直してください。 - + Login failed. ログインに失敗しました。 @@ -113,268 +119,498 @@ AchievementSettingsWidget - - Global Settings - グローバル設定 - - - - + + Enable Achievements 実績を有効化 - - - Show Challenge Indicators - チャレンジインジケーターを表示 - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Discord の RA's Rich Presence を有効化 - - - - + + Enable Hardcore Mode ハードコアモードを有効化 - - - Enable Leaderboards - リーダーボードを有効化 - - - + Test Unofficial Achievements 非公式の実績をテスト - - - Enable Test Mode - テストモードを有効化 - - - - + + Enable Sound Effects サウンドエフェクトを有効化 - + Notifications 通知 - - - Show Notifications - 通知を表示 - - - - Duration - 表示時間 - - - - - - + + 5 seconds 5 秒 - + Account アカウント - - + + Login... ログイン... - + View Profile... プロフィール表示... - + + Settings + 設定 + + + + + Enable Spectator Mode + 観戦モードを有効にする + + + + + Enable Encore Mode + アンコールモードを有効にする + + + + + Show Achievement Notifications + 実績の通知を表示 + + + + + Show Leaderboard Notifications + リーダーボードの通知を表示 + + + + + Enable In-Game Overlays + ゲーム内オーバーレイを有効にする + + + + Username: +Login token generated at: + ユーザー名: +ログイントークンは次の場所に生成されました: + + + Game Info ゲーム情報 - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 は、RetroAchievements を実績データベースおよびゲーム進行状況の追跡用に使用しています。<br>実績を利用するには、<a href="https://retroachievements.org/">retroachievements.org</a> でアカウント登録を行ってください。</p><p align="justify">ゲーム中に実績一覧を表示するには、<span style=" font-weight:600;">ポーズメニューを開く</span>ホットキーを押して、メニューから<span style=" font-weight:600;">実績</span>を選択してください。</p></body></html> + - seconds - - - - - + + - - Unchecked チェックを外す - - When enabled and logged in, PCSX2 will scan for achievements on game load. - 有効にしてログインすると、PCSX2 はゲームのロード時に実績をスキャンします。 - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. 有効にすると、PCSX2 はすべての実績がロックされていると仮定し、サーバーにロック解除通知を送信しません。 - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. 有効にすると、PCSX2 は非公式セットからの実績を一覧表示します。これらの実績は RetroAchievements によって追跡されないので、毎回ロックを解除することに注意してください。 - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - 有効にすると、リッチプレゼンス情報が収集され、サポートされているRetroAchievements サーバーに送信されます。 - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. リーダーボードのトラッキングを含む、実績のための"チャレンジモード"です。セーブステート、チート、スローダウン機能が無効化されます。 - - - - + + + + Checked チェックを入れる - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - サポートされているゲームでリーダーボードの追跡と送信を有効にします。リーダーボードが無効になっている場合でも、リーダーボードとスコアを表示できますが、スコアはアップロードされません。 - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - 実績のロック解除やリーダーボードの送信などのイベントに関するポップアップメッセージを表示します。 - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. 実績のロック解除やリーダーボードの提出などのイベントの効果音を再生します。 - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. チャレンジ可能な実績がある場合、画面の右下隅にアイコンを表示します。 - - - - Notification Duration - 通知表示時間 + + When enabled and logged in, PCSX2 will scan for achievements on startup. + 有効にしてログインすると、PCSX2 は起動時に実績をスキャンします。 + + + + Displays popup messages on events such as achievement unlocks and game completion. + 実績のロック解除やゲームの完了などのイベント時にポップアップ メッセージを表示します。 + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + リーダーボード チャレンジを開始、提出、または失敗したときにポップアップメッセージを表示します。 - - - - The duration, in seconds, an achievement popup notification will remain on screen. - 実績解除の通知が表示されてから消えるまでの秒数を決定します。 + + When enabled, each session will behave as if no achievements have been unlocked. + 有効にすると、各セッションはアチーブメントがアンロックされていないように動作します。 - + Reset System システムをリセット - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? システムがリセットされるまで、ハードコアモードは有効になりません。今すぐシステムをリセットしますか? + + + + %n seconds + + %n 秒 + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. ユーザー名: %1 ログイントークンは %2 に生成されました。 - + Logout ログアウト - + Not Logged In. ログインしていません。 - - - %1 seconds - %1 秒 - Achievements - + Hardcore mode will be enabled on system reset. ハードコアモードはシステムリセット時に有効になります。 - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. ハードコアモードがアクティブな間は、{0} を実行できません。ハードコアモードを無効にしますか?「いいえ」を選択すると、{0} はキャンセルされます。 - + Hardcore mode is now enabled. ハードコアモードが有効になりました。 - + + {} (Hardcore Mode) + {} (ハードコアモード) + + + + {} (Unofficial) + {} (非公式) + + + + Mastered {} + 習得済み {} + + + + Leaderboard attempt started. + リーダーボードの試行を開始しました。 + + + + Leaderboard attempt failed. + リーダーボードの試行に失敗しました。 + + + + Your Time: {}{} + あなたのタイム: {}{} + + + + Your Score: {}{} + あなたのスコア: {}{} + + + + Your Value: {}{} + あなたの値: {}{} + + + + (Submitting) + (提出中) + + + + Achievements Disconnected + 実績が切断されました + + + + An unlock request could not be completed. We will keep retrying to submit this request. + ロック解除リクエストを完了できませんでした。このリクエストを再度送信します。 + + + + Achievements Reconnected + 実績の再接続 + + + + All pending unlock requests have completed. + 保留中のロック解除リクエストがすべて完了しました。 + + + Hardcore mode is now disabled. ハードコアモードが無効になりました。 - + + Confirm Hardcore Mode + ハードコアモードの確認 + + + + Active Challenge Achievements + アクティブなチャレンジ実績 + + + (Hardcore Mode) (ハードコアモード) - - You have earned {0} of {1} achievements, and {2} of {3} points. - あなたは {1} の実績のうち {0} を獲得し、 {3} のうち {2} ポイントを獲得しました。 + + You have unlocked all achievements and earned {} points! + すべての実績を解除し、{} ポイントを獲得しました! - - This game has no achievements. - このゲームには実績がありません。 + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + {1} の実績のうち{0} を解除し、{3} ポイントのうち{2} ポイントを獲得しました。 + + + + {0} achievements, {1} points + {0} 実績、{1} ポイント + + + + Your Time: {0} (Best: {1}) + あなたのタイム: {0} (ベスト: {1}) + + + + Your Score: {0} (Best: {1}) + あなたのスコア: {0} (ベスト: {1}) + + + + Your Value: {0} (Best: {1}) + あなたの値: {0} (ベスト: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +リーダーボードポジション: {1} / {2} + + + + Server error in {0}: +{1} + {0} でのサーバーエラー: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + スコア:{0} ({1} ソフトコア) +未読メッセージ:{2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + {1} の実績のうち {0} を解除し、{3} ポイントのうち {2} ポイントを獲得しました。 + + + + Unknown + 不明 + + + + Locked + ロックされています + + + + Unlocked + ロック解除済み + + + + Unsupported + 対応していません + + + + Unofficial + 非公式 + + + + Recently Unlocked + 最近解除された実績 + + + + Active Challenges + 選択できるチャレンジ: + + + + Almost There + もう少しです + + + + {} points + {} ポイント + + + + {} point + {} ポイント + + + + XXX points + XXX ポイント + + + + Unlocked: {} + ロック解除済み: {} + + + + This game has {} leaderboards. + このゲームにはリーダーボードが {} あります。 + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + ハードコアモードがオフのため、スコアの提出は無効です。リーダーボードは読み取り専用です。 + + + + Show Best + ベストを表示 + + + + Show Nearby + 直近の表示 + + + + Rank + ランク + + + + Name + 名前 + + + + Time + 時間 + + + + Score + スコア + + + + Value + + + + + Date Submitted + 提出日 + + + + Downloading leaderboard data, please wait... + リーダーボードのデータをダウンロードしています。お待ちください... + + + + + Loading... + 読み込み中... + + + + + Leaderboard download failed + リーダーボードのダウンロードに失敗しました - - Leaderboard submission is enabled. - リーダーボードへの投稿が可能になりました。 + + This game has no achievements. + このゲームには実績がありません。 - + Failed to read executable from disc. Achievements disabled. ディスクから実行可能ファイルを読み取ることができませんでした。実績を無効にしました。 @@ -578,220 +814,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. これらのオプションを変更するとゲームが機能しなくなることがあります。 PCSX2 チームはこれらの設定が変更された構成についてはサポートを提供しません。 - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. ラウンドモード: - - - + + + Nearest Nearest - - - + + + Negative - Negative + 負数 - - - + + + Positive - Positive + 正数 - - - + + + Chop / Zero (Default) Chop / Zero (既定) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. クランプモード: - - + + None なし - - - + + + Normal (Default) 通常 (既定) - + None ClampMode なし - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preserve Sign - + Full Full - + Wait Loop Detection 待機ループの検知 - - + + Enable Recompiler リコンパイラを有効化 - + Enable Fast Memory Access 高速メモリアクセスを有効化 - + Enable Cache (Slow) キャッシュ有効化 (低速) - + INTC Spin Detection INTC スピン検出 - + Pause On TLB Miss TLB ミス時に一時停止 - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: VU1 ラウンドモード: - + mVU Flag Hack mVU Flag Hack - + Enable VU1 Recompiler VU1 リコンパイラを有効化 - + Enable VU0 Recompiler (Micro Mode) VU0 リコンパイラを有効化 (マイクロモード) - - + + Extra Extra - + VU0 Clamping Mode: VU0 クランプモード: - + VU0 Rounding Mode: VU0 ラウンドモード: - + VU1 Clamping Mode: VU1 クランプモード: - + I/O Processor (IOP, MIPS-I) I/O プロセッサ (IOP, MIPS-I) - + Game Settings ゲーム設定 - + Enable Game Fixes ゲーム修正を有効化 - + Enable Compatibility Patches 互換性パッチを有効化 - + Frame Rate Control フレームレート制御 - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL フレームレート: - + NTSC Frame Rate: NTSC フレームレート: - + PINE Settings PINE 設定 - + Slot: スロット: - + Enable 有効化 @@ -799,182 +1035,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings タイムストレッチ設定 - + Sequence Length: シーケンスの長さ: - + 30 30 - + Seekwindow Size: シークウィンドウサイズ: - + 20 20 - + Overlap: オーバーラップ: - + 10 10 - + Restore Defaults 初期設定に戻す - + Volume 音量 - + 100% 100% - + Mixing Settings ミキシング設定 - + Synchronization: 同期: - + TimeStretch (Recommended) タイムストレッチ (推奨) - + Async Mix (Breaks some games!) 非同期ミックス (一部のゲームが壊れます!) - + None (Audio can skip.) なし (音声をスキップ) - + Expansion: 拡張: - + Stereo (None, Default) ステレオ (拡張なし, 既定) - + Quadraphonic - Quadraphonic + 4ch ステレオ - + Surround 5.1 5.1ch サラウンド - + Surround 7.1 7.1ch サラウンド - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Level: - + None (Default) なし (既定) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Decoding (ベーシック) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II Decoding (gigaherz) - + Target Latency: ターゲットレイテンシ: - + 60 ms 60 ms - + Output Settings 出力設定 - + Output Module: 出力モジュール: - + Output Latency: 出力レイテンシ: - + 20 ms 20 ms - + Minimal 最小 - + Output Backend: 出力バックエンド: - + Maximum Latency: 最大遅延: - + Output Device: 出力デバイス: @@ -1162,17 +1398,22 @@ Login token generated on %2. 最新バージョン: - + + Download Size: + ダウンロードサイズ: + + + Download and Install... ダウンロードとインストール… - + Skip This Update この更新をスキップ - + Remind Me Later 後で再通知 @@ -1182,19 +1423,19 @@ Login token generated on %2. 更新エラー - + <h2>Changes:</h2> <h2>変更点:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>セーブステートに関する警告</h2><p>この更新をインストールすると、現在保存されているセーブステートが<b>ロードできなくなります</b>。更新する前に、ゲームの進捗をメモリーカードにセーブしておくことを推奨します。</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> - <h2>設定に関する警告</h2><p>この更新を適用すると、PCSX2 の設定がリセットされます。更新の後、手動で再設定が必要となります。ご了承ください。</p> + <h2>設定に関する警告</h2><p>この更新をインストールすると、PCSX2 の設定がリセットされます。更新の後、手動で再設定が必要となります。ご了承ください。</p> @@ -1233,6 +1474,11 @@ Login token generated on %2. + Download Size: %1 MB + ダウンロードサイズ: %1 MB + + + Loading... 読み込み中... @@ -1240,63 +1486,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory BIOS ディレクトリ - + PCSX2 will search for BIOS images in this directory. PCSX2 は、このディレクトリの BIOS イメージを検索します。 - + Browse... 参照... - + Reset リセット - + BIOS Selection BIOS 選択 - - Open in Explorer... - エクスプローラーで開く… + + Open BIOS Folder... + BIOS フォルダーを開く... - + Refresh List リストを更新 - + Filename ファイル名 - + Version バージョン - + Options and Patches オプションとパッチ - + Fast Boot 急速起動 - + Fast Forward Boot 早送り起動 @@ -1424,91 +1670,84 @@ Login token generated on %2. BreakpointModel - + Execute 命令 - - No Condition - 条件なし - - - - + + -- -- - - + Enabled 有効 - - + Disabled 無効 - + Read 読み込み - + Write(C) (C) = changes, as in "look for changes". 書き込み(C) - + Write 書き込み - + TYPE Warning: limited space available. Abbreviate if needed. 種類 - + OFFSET Warning: limited space available. Abbreviate if needed. オフセット - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. サイズ / ラベル - + INSTRUCTION Warning: limited space available. Abbreviate if needed. 命令 - + CONDITION Warning: limited space available. Abbreviate if needed. 条件 - + HITS Warning: limited space available. Abbreviate if needed. ヒット - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - 有効 + X @@ -1519,7 +1758,7 @@ Login token generated on %2. ゲームディスクがリムーバブルドライブにある場合、ジッターやフリーズなどのパフォーマンスの問題が発生する可能性があります。 - + Saving CDVD block dump to '{}'. CDVD ブロックダンプを '{}' に保存しています。 @@ -1555,32 +1794,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type 仮想コントローラーの種類 - + Bindings 割り当て - + Settings 設定 - + Macros マクロ - + Automatic Mapping 自動マッピング - + Clear Mapping マッピングをクリア @@ -1614,152 +1853,152 @@ Login token generated on %2. No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - デバイス「%1」に対して汎用バインディングが生成されませんでした。コントローラー/ソースは自動マッピングをサポートしていない可能性があります。 + デバイス「%1」に対して一般的な割り当てが生成されませんでした。このコントローラー/ソースは自動マッピングをサポートしていない可能性があります。 ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 十字キー - - - + + + Down - - - + + + Left - - - + + + Up - - - + + + Right - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 左スティック - + Large Motor 大型モーター - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. スタート - + Select Leave this button name as-is or uppercase it entirely. セレクト - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. △、◯、✕、□ボタン - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 右スティック - + Small Motor 小型モーター - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier 圧力調整 - + Analog アナログ @@ -1767,77 +2006,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - フォーム - - - + Yellow - - - - - - - - - - - + + + + + + + + + + + PushButton プッシュボタン - + Start スタート - + Red - + Green - + Orange - + Select セレクト - + Strum Up ストラム・アップ - + Strum Down ストラム・ダウン - + Blue - + Whammy Bar ワーミーバー - + Tilt チルト @@ -1863,123 +2097,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL 入力ソース - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). SDL 入力ソースは、ほとんどのコントローラーに対応し、Bluetooth モードのDualShock 4 / DualSense パッドに高度な機能を提供します(振動/LED制御)。 - + Enable SDL Input Source SDL 入力ソースを有効化 - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense 拡張モード - + XInput Source XInput ソース - + Enable XInput Input Source XInput 入力ソースを有効化 - + DInput Source DInput ソース - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. DInput ソースは、XInput をサポートしていないレガシーコントローラーに対応しています。これらのコントローラーは SDL 経由でアクセスすることを推奨しますが、SDL と互換性がない場合は DirectInput を使用することができます。 - + Enable DInput Input Source DInput 入力ソースを有効化 - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>サードパーティ製コントローラの中には、アナログスティックのプラス側を反転させ、マイナス側を反転させないという誤ったフラグを立てるものがあります。</p><p>その結果、スティックがニュートラルポジションで静止していても入力が続いてしまいます。</p><p>この設定を有効にすれば、PCSX2 がマッピングを作成する際にスティック反転フラグを無視するようになり、上述したようなコントローラを正常に使用できるようになります。</p></body></html> + + + + Ignore Inversion + 反転を無視する + + + Profile Settings プロファイル設定 - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. このオプションを有効にすると、この入力プロファイルにホットキーを設定でき、グローバルホットキーの代わりに使用されます。既定では、ホットキーは常にすべてのプロファイル間で共有されます。 - + Use Per-Profile Hotkeys ホットキーをプロファイル別に設定する - - + + Controller LED Settings コントローラーの LED 設定 - + Enable SDL Raw Input SDL Raw Input を有効化 - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. XInput ソースは、Xbox 360 / Xbox One / Xbox シリーズコントローラー、および XInput プロトコルを実装するサードパーティーコントローラーに対応しています。 - + Controller Multitap コントローラーのマルチタップ - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. マルチタップは最大 8 台のコントローラーをコンソールに接続できます。各マルチタップは 4 つのポートを提供します。マルチタップはすべてのゲームでサポートされているわけではありません。 - + Multitap on Console Port 1 コンソールポート 1 のマルチタップ - + Multitap on Console Port 2 コンソールポート 2 のマルチタップ - + Mouse/Pointer Source マウス/ポインタ のソース - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 では、マウスを使用してアナログスティックの動きをシミュレートできます。 - + Settings... 設定... - + Enable Mouse Mapping マウスマッピングを有効化 - + Detected Devices 検出されたデバイス @@ -2015,58 +2259,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons バインド / ボタン - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. このマクロで入力されるボタンを選択します。すべてのボタンが同時に有効になります。 - + Pressure 圧力 - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. このスライダーはマクロがアクティブな時に感圧式のボタンをどれだけの力でシミュレートするかを制御します。 - - + + 100% 100% - + Trigger トリガー - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. このマクロの発動条件となるボタンを設定します。単一のボタンだけではなく、複数のボタンを組み合わることもできます。複数のボタンを条件として設定するには、Shift キーを押しながら左クリックします。 - + Deadzone: 遊び幅: - + Frequency 頻度 - + Macro will toggle every N frames. マクロは N フレームごとにオンオフが切り替わります。 - + Set... 設定... @@ -2169,85 +2413,85 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - PCSX2 コントローラー設定 + PCSX2 コントローラ設定 - + Editing Profile: プロファイル編集: - + New Profile - 新規プロファイル作成 + プロファイル新規作成 - + Load Profile プロファイルを読み込む - + Delete Profile プロファイルを削除 - - + + Restore Defaults - 初期設定に戻す + 初期設定を復元 - - + + Create Input Profile 入力プロファイルを作成 - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - カスタム入力プロファイルは、特定のゲームで共有入力プロファイルの上書きに使用されます。 -カスタム入力プロファイルをゲームに適用するには、ゲームプロパティに移動し、概要タブで「入力プロファイル」を変更してください。 + カスタム入力プロファイルは、共有入力プロファイルが好ましくないゲームに独自の入力方法を適用する機能です。 +カスタム入力プロファイルを適用するには、適用したいゲームのゲームプロパティを開き、概要タブから「入力プロファイル」を変更してください。 新規入力プロファイルの名前を入力: - - - - + + + + Error エラー - + A profile with the name '%1' already exists. - 名前が '%1' のプロファイルは既に存在します。 + 名前 %1 は既に他のプロファイルで使用されています。 - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. 現在表示中のプロファイルの割り当てを新規プロファイルにコピーしますか?『いいえ』を選択すると、完全に空のプロファイルが作成されます。 - + Failed to save the new profile to '%1'. - 新規プロファイルを '%1' に保存できませんでした。 + 新規プロファイル '%1' の保存に失敗しました。 - + Load Input Profile 入力プロファイルを読み込む - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,26 +2504,26 @@ You cannot undo this action. この操作は取り消せません。 - + Delete Input Profile 入力プロファイルを削除 - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - '%1' という名前の入力プロファイルを削除してもよろしいですか? + 入力プロファイル '%1' を削除してもよろしいですか? この操作は取り消せません。 - + Failed to delete '%1'. '%1' の削除に失敗しました。 - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2536,13 @@ You cannot undo this action. この操作は取り消せません。 - + Global Settings グローバル設定 - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2550,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2559,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB ポート %1 %2 - + Hotkeys ホットキー - + Shared "Shared" refers here to the shared input profile. 共有 - + The input profile named '%1' cannot be found. 入力プロファイル '%1' が見つかりません。 @@ -2406,204 +2650,242 @@ You cannot undo this action. 関数 - + + Module + モジュール + + + + Version + バージョン + + + + Count + カウント + + + Refresh 更新 - + Filter 絞り込み - + Memory Search メモリ検索 - + End 終了 - + Value - + Start 開始 - + Type 種類 - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float 型 - + Double Double 型 - + String 文字列 - + Array of byte バイト配列 - + Hex 16 進数 - + Search 検索 - + Memory メモリ - + Breakpoints ブレークポイント - + Threads スレッド - + Active Call Stack アクティブコールスタック - + Breakpoint List Context Menu ブレークポイントリストのコンテキストメニュー - + New 新規 - + Edit 編集 - - - + + + Copy コピー - + Delete 削除 - + + + + Copy all as CSV + すべてをCSV形式でコピー + + + + Paste from CSV + CSVから貼り付け + + + Thread List Context Menu スレッドリストのコンテキストメニュー - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ シンボルをデマングル - + + Copy Function Name 関数名をコピー - + + Copy Function Address アドレスをコピー - + + Go to in Disassembly 逆アセンブラ画面で表示 - + + Go to in Memory View メモリビューで表示 - + + + Module Tree + モジュールツリー + + + Stack List Context Menu スタックリストのコンテキストメニュー - - - - - + + + + + Debugger デバッガー - + Invalid start address 無効な開始アドレス - + Invalid end address 無効な終了アドレス - + Start address can't be equal to or greater than the end address 開始アドレスが大きすぎます。終了アドレス未満の値を入力してください - + Invalid search value 無効な検索値 - + Value is larger than type データ型に対して桁数が多すぎます @@ -2659,22 +2941,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet イーサネット - + Ethernet Device: イーサネットデバイス: - + Ethernet Device Type: イーサネットデバイスの種類: - + Intercept DHCP 手動 IP アドレス @@ -2684,135 +2966,130 @@ You cannot undo this action. 有効 - + Enabled InterceptDHCP 有効 - + Subnet Mask: サブネットマスク: - + Gateway Address: ゲートウェイアドレス: - - + + Auto 自動 - + Intercept DHCP: 手動 IP アドレス: - + PS2 Address: PS2 アドレス: - + DNS1 Address: DNS1 アドレス: - + DNS2 Address: DNS2 アドレス: - + Internal DNS 内部 DNS - + Add 追加 - + Delete 削除 - + Export エクスポート - + Import インポート - + Per game ゲーム毎 - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 内部 DNS は DNS1/2 ドロップダウンを使用するか、192.0.2.1 に設定することで選択できます。 - + Enabled InternalDNSTable 有効 - + Hard Disk Drive ハードディスクドライブ - + HDD File: HDD ファイル: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD サイズ (GiB): - + Enabled HDD 有効 - + Browse 参照 - + Create Image イメージを作成 - - - - - PCAP Bridged @@ -2845,7 +3122,7 @@ You cannot undo this action. - + Use Global Setting [%1] グローバル設定を使用 [%1] @@ -2865,78 +3142,78 @@ You cannot undo this action. アドレス - - + + Hosts File ホストファイル - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS ホスト - + Exported Successfully 正常にエクスポートされました - + Failed to open file - ファイルが開けませんでした + ファイルを開けませんでした - + No Hosts in file ファイルにホストがありません - + Imported Successfully 正常にインポートされました - - + + Per Game Host list ゲームごとのホストリスト - + Copy global settings? グローバル設定をコピーしますか? - + Delete per game host list? ゲーム別ホストリストを削除しますか? - + HDD Image File HDD イメージファイル - + HDD (*.raw) HDD (*.raw) - + Overwrite File? ファイルを上書きしますか? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3222,22 @@ Do you want to overwrite? 上書きしますか? - + HDD Creator HDD の作成 - + HDD image created HDD イメージを作成しました - + Use Global グローバル設定を使用 - + Override 上書き @@ -2968,69 +3245,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping ドローダンプ - + Dump GS Draws GS 描画をダンプ - + Save RT RT を保存 - + Save Frame フレームを保存 - + Save Texture テクスチャを保存 - + Save Depth 深度を保存 - + Start Draw Number: スタート・ドロー番号: - + Draw Dump Count: ドローダンプカウント: - + Hardware Dump Directory: ハードウェアダンプディレクトリ: - + Software Dump Directory: ソフトウェアダンプディレクトリ: - - + + Browse... 参照... - - + + Open... 開く... @@ -3043,29 +3320,53 @@ Do you want to overwrite? PCSX2 デバッガー - - - + + Run 実行 - + Step Into ステップイン - + + F11 + F11 + + + Step Over ステップオーバー - + + F10 + F10 + + + Step Out ステップアウト - + + Shift+F11 + Shift + F11 + + + + Always On Top + 常に手前に表示 + + + + Show this window on top + 常に最前面で表示 + + + Pause 一時停止 @@ -3078,149 +3379,174 @@ Do you want to overwrite? 逆アセンブル - + Copy Address アドレスをコピー - + Copy Instruction Hex メモリ値をコピー - + Copy Instruction Text 命令の文字列をコピー - + Assemble new Instruction(s) 新しい命令をアセンブル - + NOP Instruction(s) 命令を削除 - + Run to Cursor カーソルまで実行 - + Jump to Cursor カーソルまでジャンプ - + Toggle Breakpoint ブレークポイントのオンオフ - + Follow Branch 分岐を追跡する - + Go to Address アドレスに移動 - + Go to in Memory View メモリビューで表示 - - + + Add Function 関数を追加 - - + + Rename Function 関数名を変更 - + Remove Function 関数を削除 - - + + Assemble Error アセンブルエラー - + Unable to change assembly while core is running ゲーム実行中に命令を書き換えることはできません - + Assemble Instruction 命令をアセンブル - + Go to address アドレスに移動 - + Go to address error アドレスエラーへ移動 - + Invalid address 無効なアドレス - + Add Function Error 関数追加でエラー - + A function entry point already exists here. Consider renaming instead. 関数のエントリポイントはすでに存在します。別の名前にしてください。 - - + + Function will be (0x%1) instructions long. Enter function name 関数の長さは (0x%1) 命令分になります。 関数名を入力 - + Function name 関数名 - - + + Rename Function Error 関数名変更のエラー - + Function name cannot be nothing. - 関数名を空欄にはできません。 + 関数名は空欄にできません。 - + No function / symbol is currently selected. 機能/シンボルが選択されていません。 - + + Restore Function Error + リストア関数エラー + + + + Unable to stub selected address. + 選択中のアドレスが無効にできません。 + + + + Restore Instruction(s) + 指示をリストア(s) + + + + Restore Function + 関数をリストア + + + + Stub (NOP) Function + スタブ(NOP) 関数 + + + %1 NOT VALID ADDRESS %1 アドレスが無効です @@ -3228,17 +3554,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">サポートされている形式のゲームが見つかりませんでした。</span></p><p>ゲームのあるディレクトリを追加してください。</p><p>以下の形式のゲームダンプがスキャンされ、リストアップされます。:</p></body></html> - + Add Game Directory... ゲームディレクトリを追加... - + Scan For New Games 新しいゲームをスキャン @@ -3246,47 +3572,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + スロット: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + スロット: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - ゲーム ID: %1 -タイトル: %2 -実績: %5 (%6) - + ゲーム: %1 (%2) - - - %n points - - %n ポイント - - - + Rich presence inactive or unsupported. リッチプレゼンスが非アクティブまたはサポートされていません。 - + Game not loaded or no RetroAchievements available. ゲームがロードされていないか、利用可能な RetroAchievements がありません。 @@ -3294,192 +3617,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control 速度制御 - + Normal Speed: 通常速度: - + Enable Speed Limiter 速度制限を有効化 - + System Settings システム設定 - + Enable Instant VU1 インスタント VU1 を有効化 - + Enable Cheats チートを有効化 - + Slow-Motion Speed: スローモーション速度: - + Fast-Forward Speed: 早送り速度: - + Enable Multithreaded VU1 (MTVU) マルチスレッド VU1 (MTVU) を有効化 - + Enable Host Filesystem ホストファイルシステムを有効化 - + Enable Fast CDVD 高速 CDVD を有効化 - + EE Cycle Skipping: EE サイクルスキップ: - - + + Disabled 無効 - + Mild Underclock 低いアンダークロック - + Moderate Underclock 程々のアンダークロック - + Maximum Underclock 最大のアンダークロック - + EE Cycle Rate: EE サイクルレート: - + 50% (Underclock) 50% (アンダークロック) - + 60% (Underclock) 60% (アンダークロック) - + 75% (Underclock) 75% (アンダークロック) - + 100% (Normal Speed) 100% (通常速度) - + 130% (Overclock) 130% (オーバークロック) - + 180% (Overclock) 180% (オーバークロック) - + 300% (Overclock) 300% (オーバークロック) - + Affinity Control: アフィニティ制御: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control フレーム速度 / 遅延の制御 - + frames This string will appear next to the amount of frames selected, in a dropdown box. フレーム - + Maximum Frame Latency: 最大フレーム遅延: - + Optimal Frame Pacing 最適なフレームペーシング - + Scale To Host Refresh Rate ホストのリフレッシュレートに合わせたスケール @@ -3567,12 +3890,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. ゲームや homebrew がホストコンピューター上のファイル/フォルダーに直接アクセスできるようにします。 + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + ゲストのリフレッシュレートがホストと一致するようにエミュレーションを高速化します。これにより、可能な限り滑らかなアニメーションが実現できますが、エミュレーション速度が1%未満で増加する可能性があります。ホストのリフレッシュレートとコンソールのリフレッシュレートが大幅に異なる場合、「ホストのリフレッシュレートに合わせたスケール」オプションは適用されません。可変リフレッシュレートディスプレイを使用しているユーザーは、このオプションを無効にする必要があります。 + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" 早送り速度 + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3636,45 +3969,40 @@ Achievements: %5 (%6) CPU スレッドが続行する前に、GS にキューイングできるフレームの最大数を設定します。値が大きいほど規則なフレームタイムを滑らかにできますが、その分入力遅延が発生します。 - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - 垂直同期とオーディオリサンプリングの両方の設定が有効な場合、コンソールのリフレッシュレートがホストのリフレッシュレートに一致するようにエミュレーション速度を調整します。これにより、エミュレーション速度が 1% 未満増加する可能性がありますが、可能な限りスムーズなアニメーションが得られます。コンソールのリフレッシュレートがホストのリフレッシュレートから離れすぎている場合、Scale To Host Refresh Rate は効果を発揮しません。可変リフレッシュレートのディスプレイを使用する際はチェックを外してください。 - - - + Use Global Setting [%1%] グローバル設定を使用 [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. 無制限 - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. カスタム - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] カスタム [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed カスタム速度 - + Enter Custom Speed 任意の速度を入力 @@ -3682,79 +4010,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory キャッシュ ディレクトリ - - - - - + + + + + Browse... 参照... - - - - - + + + + + Open... 開く... - - - - - + + + + + Reset リセット - + Used for storing shaders, game list, and achievement data. シェーダー、ゲームリスト、実績データの保存に使用されます。 - + Cheats Directory チート ディレクトリ - + Used for storing .pnach files containing game cheats. ゲームのチートを含む .pnach ファイルの保存に使用します。 - + Covers Directory カバー画像 ディレクトリ - + Used for storing covers in the game grid/Big Picture UIs. ゲームグリッド/Big Picture UI のカバー画像の保存に使用します。 - + Snapshots Directory スナップショット ディレクトリ - + Used for screenshots and saving GS dumps. スクリーンショットや GS ダンプの保存に使用します。 - + Save States Directory セーブステート ディレクトリ - + Used for storing save states. セーブステートの保存に使用します。 @@ -3762,4305 +4090,4225 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. CD/DVD-ROM デバイスが見つかりませんでした。ドライブが接続されていて、アクセスするための十分な権限があることを確認してください。 - + Use Global Setting グローバル設定を使用 - + Automatic binding failed, no devices are available. - 自動バインディングに失敗しました。 + 自動割り当てに失敗しました。利用可能なデバイスがありません。 - + Game title copied to clipboard. ゲームタイトルがクリップボードに保存されました。 - + Game serial copied to clipboard. ゲームのシリアルがクリップボードに保存されました。 - + Game CRC copied to clipboard. ゲームCRCがクリップボードに保存されました。 - + Game type copied to clipboard. ゲームの種類がクリップボードに保存されました。 - + Game region copied to clipboard. ゲーム領域がクリップボードに保存されました。 - + Game compatibility copied to clipboard. ゲームの互換性がクリップボードに保存されました。 - + Game path copied to clipboard. ゲームパスがクリップボードに保存されました。 - + Per-game controller configuration initialized with global settings. ゲーム毎のコントローラー設定はグローバル設定で初期化されます。 - + Controller settings reset to default. コントローラーの設定がデフォルトにリセットされました。 - + No input profiles available. 入力プロファイルがありません。 - + Create New... 新規作成... - + Enter the name of the input profile you wish to create. 作成する入力プロファイルの名前を入力します。 - + Are you sure you want to restore the default settings? Any preferences will be lost. 既定の設定を復元してもよろしいですか?すべての設定は失われます。 - + Settings reset to defaults. 設定をデフォルトに戻しました。 - - Quick Save Slot - クイックセーブスロット - - - + No save present in this slot. このスロットにセーブデータはありません - + No save states found. セーブステートが見つかりません - + Failed to delete save state. セーブステートの削除に失敗しました。 - + Failed to copy text to clipboard. テキストをクリップボードにコピーできませんでした。 - + This game has no achievements. このゲームには実績がありません。 - + This game has no leaderboards. このゲームにはリーダーボードがありません。 - + Reset System システムをリセット - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? エミュレータがリセットされるまでハードコアモードは有効になりません。今すぐエミュレータをリセットしますか? - + Launch a game from images scanned from your game directories. ゲームディレクトリからスキャンしたROMからゲームを起動します。 - + Launch a game by selecting a file/disc image. ファイルまたはディスクイメージを選択してゲームを起動します。 - + Start the console without any disc inserted. ディスクを挿入せずにコンソールを起動します。 - + Start a game from a disc in your PC's DVD drive. PCの's DVD ドライブのディスクからゲームを開始します。 - + Change settings for the emulator. エミュレータの設定を変更します - + Exits the program. プログラムを終了します。 - + No Binding 未割り当て - + Setting %s binding %s. %s バインディング %sを設定しました。 - + Push a controller button or axis now. コントローラーボタンまたは入力軸を操作してください。 - + Timing out in %.0f seconds... %.0f 秒でタイムアウトします... - + Unknown 不明 - + OK OK - + Select Device デバイスを選択 - + Details 詳細 - + Options オプション - + Copies the current global settings to this game. 現在のグローバル設定をこのゲームの固有設定にコピーします。 - + Clears all settings set for this game. このゲームのすべての固有設定をクリアします。 - + Behaviour 動作 - + Prevents the screen saver from activating and the host from sleeping while emulation is running. エミュレーションの実行中にスクリーンセーバーの起動やホストがスリープ状態になるのを防ぎます。 - + Shows the game you are currently playing as part of your profile on Discord. Discord上で現在プレイしているゲームを表示します。 - + Pauses the emulator when a game is started. ゲームの開始時にエミュレータを一時停止します。 - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. ウィンドウを最小化したり、他のアプリケーションに切り替えた際にエミュレータをポーズし、元に戻すとポーズを解除します。 - + Pauses the emulator when you open the quick menu, and unpauses when you close it. クイックメニューを開いたときにエミュレータをポーズし、閉じるとポーズを解除します。 - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. ホットキーが押されたときにエミュレータ/ゲームのシャットダウンを確認するプロンプトを表示するかどうかを決定します。 - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. シャットダウン時または終了時にセーブステートを自動保存します。次回起動時に中断した場所から直接再開できます。 - - Enables loading ini overlays from gamesettings, or custom settings per-game. - ゲームセットからのiniオーバーレイの読み込みを有効にするか、ゲームごとのカスタム設定を有効にします。 - - - + Uses a light coloured theme instead of the default dark theme. デフォルトのダークテーマの代わりに明るい色のテーマを使用します。 - + Game Display ゲームの表示 - - Automatically switches to fullscreen mode when the program is started. - ゲーム開始時に自動的にフルスクリーンに切り替えます。 - - - + Switches between full screen and windowed when the window is double-clicked. ウインドウがダブルクリックされたときにフルスクリーンとウインドウを切り替えます。 - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. エミュレータがフルスクリーンモードの際に、マウスポインタ/カーソルを非表示にします。 - + Determines how large the on-screen messages and monitor are. 画面上のメッセージとモニターの大きさを決定します。 - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. ステートセーブ/ロード、スクリーンショットなどのイベントが発生したときに、OSD メッセージを表示します。 - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. ディスプレイの右上隅に現在のエミュレーション速度をパーセンテージで表示します。 - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. システムが毎秒表示するビデオ フレーム (または v-sync) の数をディスプレイの右上に表示します。 - + Shows the CPU usage based on threads in the top-right corner of the display. スレッドごとの CPU 使用率をディスプレイの右上に表示します。 - + Shows the host's GPU usage in the top-right corner of the display. ホスト's GPU の使用状況をディスプレイの右上に表示します。 - - Shows the resolution the game is rendering at in the top-right corner of the display. - ゲームのレンダリング解像度を画面の右上に表示します。 - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. GS(プリミティブ、ドローコール) に関する統計情報をディスプレイの右上に表示します。 - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. 早送り、一時停止、その他の通常でない状態がアクティブな場合にインジケータを表示します。 - + Shows the current configuration in the bottom-right corner of the display. 現在の設定をディスプレイの右下に表示します。 - + Shows the current controller state of the system in the bottom-left corner of the display. ディスプレイの左下にシステムの現在のコントローラーの状態を表示します。 - + Shows a visual history of frame times in the upper-left corner of the display. ディスプレイの左上に、フレームタイムの視覚的な履歴を表示します。 - + Displays warnings when settings are enabled which may break games. ゲームの正常な動作を妨げる可能性のある設定が有効になっている場合に警告を表示します。 - + Resets configuration to defaults (excluding controller settings). 設定をデフォルトにリセットします(コントローラ設定を除く)。 - + Changes the BIOS image used to start future sessions. 次回セッションを開始時に使用するBIOSイメージを変更します。 - + Automatic 自動 - + + {0}/{1}/{2}/{3} + + + + + Default + 既定 + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + 有効にすると、ゲームごとのカスタム設定が適用されます。無効にすると常にグローバル設定が使用されます。 + + + + Automatically switches to fullscreen mode when a game is started. + ゲーム開始時に自動的にフルスクリーンに切り替えます。 + + + On-Screen Display - On-Screen Display + オンスクリーンディスプレイ - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + ディスプレイの右上隅にゲームの解像度を表示します。 + + + BIOS Configuration - BIOS Configuration + BIOS 設定 - + BIOS Selection BIOS 選択 - + Options and Patches - Options and Patches + オプションとパッチ - + Skips the intro screen, and bypasses region checks. イントロ画面をスキップし、リージョンチェックを回避します。 - + Speed Control 速度制御 - + Normal Speed 通常速度 - + Sets the speed when running without fast forwarding. 早送りせずに実行する際のゲームスピードを設定します。 - + Fast Forward Speed 早送り速度 - + Sets the speed when using the fast forward hotkey. 早送りホットキーを使用するときのゲームスピードを設定します。 - + Slow Motion Speed スローモーション速度 - + Sets the speed when using the slow motion hotkey. スローモーションホットキーを使用するときのゲームスピードを設定します。 - + Enable Speed Limiter 速度制限を有効化 - + When disabled, the game will run as fast as possible. 無効にすると、ゲームはできるだけ速いゲームスピードで実行されます。 - + System Settings システム設定 - + EE Cycle Rate EE サイクルレート - + Underclocks or overclocks the emulated Emotion Engine CPU. エミュレートされたEmotion Engine CPUをアンダーロックまたはオーバークロックします。 - + EE Cycle Skipping EE サイクルスキップ - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - VU プログラムを実行するために Emulated Emotion エンジンにペナルティを追加します。 - - - + Affinity Control Mode 優先度コントロールモード - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - Pins emulation threads to CPU cores to potentially improve performance/frame time variance. + エミュレーションスレッドを CPU コアに固定して、パフォーマンス/フレーム時間の差異を改善できる可能性があります。 - + Enable MTVU (Multi-Threaded VU1) MTVU(Multi-Threaded VU1)を有効化 - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 インスタント VU1 を有効化 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats チートを有効化 - + Enables loading cheats from pnach files. pnach ファイルからのチートの読み込みを有効にする。 - + Enable Host Filesystem ホストファイルシステムを有効化 - + Enables access to files from the host: namespace in the virtual machine. - Enables access to files from the host: namespace in the virtual machine. + 仮想マシンのホスト:名前空間からファイルへのアクセスを有効にします。 - + Enable Fast CDVD 高速 CDVD を有効化 - + Fast disc access, less loading times. Not recommended. ディスクへの高速アクセスを行い、読み込み時間を短縮します。推奨されません。 - + Frame Pacing/Latency Control フレーム速度/遅延の制御 - + Maximum Frame Latency 最大フレーム遅延 - + Sets the number of frames which can be queued. キューに追加できるフレーム数を設定。 - + Optimal Frame Pacing 最適なフレームペーシング - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. EEとGSスレッドを各フレーム後に同期させます。入力レイテンシが最も小さくなりますが、システム要件が高くなります。 - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. ゲストのリフレッシュレートがホストと一致するようにエミュレーションをスピードアップします。 - + Renderer レンダラー - + Selects the API used to render the emulated GS. エミュレートされたGSのレンダリングに使用するAPIを選択してください。 - + Sync To Host Refresh (VSync) ホストのリフレッシュレートに同期 (VSync) - + Synchronizes frame presentation with host refresh. - Synchronizes frame presentation with host refresh. + フレームの表示をホストのリフレッシュレートと同期します。 - + Display 画面 - + Aspect Ratio アスペクト比 - + Selects the aspect ratio to display the game content at. ゲーム内容を表示するアスペクト比を選択してください。 - + FMV Aspect Ratio FMV アスペクト比 - + Selects the aspect ratio for display when a FMV is detected as playing. FMVが再生中として検出されたときに表示するアスペクト比を選択してください。 - + Deinterlacing インターレース解除 - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - Selects the algorithm used to convert the PS2's interlaced output to progressive for display. + PS2のインターレース出力をプログレッシブ出力に変換するためのアルゴリズムを選択します。 - + Screenshot Size スクリーンショットのサイズ - + Determines the resolution at which screenshots will be saved. スクリーンショットを保存する解像度を指定してください。 - + Screenshot Format スクリーンショットの形式 - + Selects the format which will be used to save screenshots. - Selects the format which will be used to save screenshots. + スクリーンショットの保存に使用される形式を選択します。 - + Screenshot Quality スクリーンショットの品質 - + Selects the quality at which screenshots will be compressed. スクリーンショットを圧縮する画質を選択してください。 - + Vertical Stretch 垂直方向の拡縮 - + Increases or decreases the virtual picture size vertically. - Increases or decreases the virtual picture size vertically. + 仮想画像サイズを縦方向に増減させます。 - + Crop 切り取り - + Crops the image, while respecting aspect ratio. アスペクト比を尊重しながら画像をトリミングします。 - + + %dpx + %dpx + + + Enable Widescreen Patches ワイドスクリーンパッチを有効化 - + Enables loading widescreen patches from pnach files. pnach ファイルからのワイドスクリーンパッチの読み込みを有効にする。 - + Enable No-Interlacing Patches インターレース解除パッチを有効化 - + Enables loading no-interlacing patches from pnach files. - Enables loading no-interlacing patches from pnach files. + pnach ファイルからのワイドスクリーンパッチの読み込みを有効にします。 - + Bilinear Upscaling バイリニアアップスケーリング - + Smooths out the image when upscaling the console to the screen. - Smooths out the image when upscaling the console to the screen. + コンソールを画面にアップスケーリングする際に、画像を滑らかにします。 - + Integer Upscaling 整数アップスケーリング - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. + ホストピクセルとコンソールピクセルの比率が整数になるように、表示領域にパディングを追加します。 一部の 2D ゲームでは画像が鮮明になる場合があります。 - + Screen Offsets スクリーンオフセット - + Enables PCRTC Offsets which position the screen as the game requests. PCRTC オフセットを有効にしてゲームのリクエストに応じて画面を配置します。 - + Show Overscan オーバースキャンを表示 - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. - Enables the option to show the overscan area on games which draw more than the safe area of the screen. + 画面のセーフエリアを超える描画を行うゲームで、オーバースキャン領域を表示するオプションを有効にします。 - + Anti-Blur アンチブラー - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. 内部のブレ防止ハックを有効にします。実際のPS2のレンダリングに忠実ではなくなりますが、多くのゲームで残像が軽減されます。 - + Rendering レンダリング - + Internal Resolution 内部解像度 - + Multiplies the render resolution by the specified factor (upscaling). - Multiplies the render resolution by the specified factor (upscaling). + 指定した係数でレンダリング解像度を倍増します(アップスケール)。 - + Mipmapping ミップマッピング - + Determines how mipmaps are used when rendering textures. - Determines how mipmaps are used when rendering textures. + テクスチャをレンダリングする際に、ミップマップを使用する方法を決定します。 - + Bilinear Filtering バイリニアフィルタリング - + Selects where bilinear filtering is utilized when rendering textures. テクスチャのレンダリング時にバイリニアフィルタリングを適用する場所を選択してください。 - + Trilinear Filtering トリリニアフィルタリング - + Selects where trilinear filtering is utilized when rendering textures. テクスチャのレンダリング時にトライリアフィルタリングを適用する場所を選択してください。 - + Anisotropic Filtering 異方性フィルタリング - - Selects where anistropic filtering is utilized when rendering textures. - テクスチャのレンダリング時に異方性フィルタリングを適用する場所を選択してください。 - - - + Dithering ディザリング - + Selects the type of dithering applies when the game requests it. ゲームが要求したときに適用するディザリングの種類を選択してください。 - + Blending Accuracy ブレンド精度 - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - Determines the level of accuracy when emulating blend modes not supported by the host graphics API. + ホストグラフィックスAPIでサポートされていないブレンドモードをエミュレートする際の精度レベルを指定します。 - + Texture Preloading テクスチャのプリロード - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. + 使用されている領域に送信するだけでなく、使用中のGPUに完全なテクスチャを送信します。一部のゲームではパフォーマンスが向上する可能性があります。 - + Software Rendering Threads ソフトウェアレンダリングスレッド - + Number of threads to use in addition to the main GS thread for rasterization. メインGSスレッドの他にラスタライズに使用するスレッド数。 - + Auto Flush (Software) - Auto Flush (Software) + オートフラッシュ (ソフトウェア) - + Force a primitive flush when a framebuffer is also an input texture. フレームバッファが入力テクスチャでもある場合に、プリミティブフラッシュを強制的に行います。 - + Edge AA (AA1) エッジ AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). - Enables emulation of the GS's edge anti-aliasing (AA1). + GSのエッジアンチエイリアシング(AA1)のエミュレーションを有効にします。 - + Enables emulation of the GS's texture mipmapping. - Enables emulation of the GS's texture mipmapping. + GSのテクスチャミップマッピングのエミュレーションを有効にします。 - + Hardware Fixes ハードウェア修正 - + Manual Hardware Fixes - Manual Hardware Fixes + ハードウェアの手動修正 - + Disables automatic hardware fixes, allowing you to set fixes manually. - Disables automatic hardware fixes, allowing you to set fixes manually. + ハードウェアの自動修正を無効化して、手動で設定できるようにします。 - + CPU Sprite Render Size CPU スプライトレンダリングサイズ - + Uses software renderer to draw texture decompression-like sprites. - Uses software renderer to draw texture decompression-like sprites. + ソフトウェアレンダラーを使用して、テクスチャの伸張状態のスプライトを描画します。 - + CPU Sprite Render Level - CPU Sprite Render Level + CPU スプライトレンダリングレベル - + Determines filter level for CPU sprite render. - Determines filter level for CPU sprite render. + CPU スプライトレンダリングのフィルタレベルを指定します。 - + Software CLUT Render ソフトウェア CLUT レンダリング - + Uses software renderer to draw texture CLUT points/sprites. - Uses software renderer to draw texture CLUT points/sprites. + ソフトウェアレンダラーを使用して、テクスチャのCLUTポイントやスプライトを描画します。 - + Skip Draw Start - Skip Draw Start + 描画開始をスキップ - + Object range to skip drawing. - Object range to skip drawing. + 描画をスキップするオブジェクトの範囲 - + Skip Draw End - Skip Draw End + 描画終了をスキップ - + Auto Flush (Hardware) - Auto Flush (Hardware) + オートフラッシュ (ハードウェア) - + CPU Framebuffer Conversion - CPU Framebuffer Conversion + CPU フレームバッファ変換 - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - - - Disable Depth Support - Disable Depth Support + 4ビットと8ビットのフレームバッファを、GPUの代わりにCPUで変換する。 - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features - Disable Safe Features + セーフ機能を無効化 - + This option disables multiple safe features. - This option disables multiple safe features. + このオプションは複数のセーフ機能を無効にします。 - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. - This option disables game-specific render fixes. - - - - Preload Frame - Preload Frame + このオプションは、ゲーム固有のレンダリング修正を無効にします。 - + Uploads GS data when rendering a new frame to reproduce some effects accurately. - Uploads GS data when rendering a new frame to reproduce some effects accurately. + 新しいフレームを描画する際に GS データをアップロードし、いくつかのエフェクトを正確に再現します。 - + Disable Partial Invalidation - Disable Partial Invalidation + 部分的な無効化を無効にする - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. - Removes texture cache entries when there is any intersection, rather than only the intersected areas. + 交差部分のみだけでなく、交差が存在する場合はテクスチャキャッシュのエントリを除去します。 - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. + テクスチャキャッシュが以前のフレームバッファの内側部分を入力テクスチャとして再利用できるようにします。 - + Read Targets When Closing 閉じるときにターゲットを読み込む - + Flushes all targets in the texture cache back to local memory when shutting down. - Flushes all targets in the texture cache back to local memory when shutting down. + シャットダウン時にテクスチャキャッシュ内のすべてのターゲットをローカルメモリにフラッシュします。 - + Estimate Texture Region テクスチャ領域を推定 - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). + ゲーム自体がテクスチャサイズを定義しない場合 (Snowblind など) に、テクスチャサイズの縮小を試みます。 - + GPU Palette Conversion GPU パレット変換 - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - ハーフピクセルオフセット + アップスケーリング修正 - + Adjusts vertices relative to upscaling. - Adjusts vertices relative to upscaling. + アップスケーリングに合わせて頂点の位置を調節します。 - + Round Sprite ラウンドスプライト - + Adjusts sprite coordinates. - Adjusts sprite coordinates. + スプライト座標を調整します。 - + Bilinear Upscale バイリニアアップスケール - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - - - TC Offset X - TC Offset X + アップスケーリング時にバイリニアフィルタリングを適用することで、テクスチャの滑らかさを向上させることができます。例えば、まぶしい太陽の光などが該当します。 - + Adjusts target texture offsets. - Adjusts target texture offsets. + ターゲットテクスチャのオフセットを調整します。 - - TC Offset Y - TC Offset Y - - - + Align Sprite スプライトを整列 - + Fixes issues with upscaling (vertical lines) in some games. - Fixes issues with upscaling (vertical lines) in some games. + 一部のゲームにおけるアップスケーリングの問題 (縦線) を修正します。 - + Merge Sprite スプライトを統合 - + Replaces multiple post-processing sprites with a larger single sprite. - Replaces multiple post-processing sprites with a larger single sprite. + 複数のポストプロセッシングスプライトを、より大きな単一のスプライトで置き換えます。 - + Wild Arms Hack - ワイルドアームズのハック + ワイルドアームズ Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. + GS 精度を下げてアップスケール時のピクセル間のギャップを防ぎます。ワイルドアームズのテキストを修正します。 - + Unscaled Palette Texture Draws スケールされていないパレットテクスチャの描画 - + Can fix some broken effects which rely on pixel perfect precision. - Can fix some broken effects which rely on pixel perfect precision. + ピクセルの完璧な精度に依存する一部の壊れたエフェクトを修正できます。 - + Texture Replacement テクスチャ置換 - + Load Textures テクスチャを読み込む - + Loads replacement textures where available and user-provided. - Loads replacement textures where available and user-provided. + ユーザーが提供した利用可能な代替テクスチャを読み込みます。 - + Asynchronous Texture Loading - Asynchronous Texture Loading + 非同期テクスチャを読み込む - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + 置換が有効の際のカクつきを軽減するため、ワーカースレッドで置換テクスチャを読み込みます。 - + Precache Replacements - Precache Replacements + Precacheの置換 - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. - Preloads all replacement textures to memory. Not necessary with asynchronous loading. + すべての置換テクスチャをメモリに先読みします。非同期ロードを使用している場合、これは不要です。 - + Replacements Directory 置換ディレクトリ - + Folders フォルダー - + Texture Dumping - Texture Dumping + テクスチャダンプ - + Dump Textures テクスチャをダンプ - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps ミップマップをダンプ - + Includes mipmaps when dumping textures. - Includes mipmaps when dumping textures. + テクスチャをダンプする際に、ミップマップを含めます。 - + Dump FMV Textures FMV テクスチャをダンプ - + Allows texture dumping when FMVs are active. You should not enable this. - Allows texture dumping when FMVs are active. You should not enable this. + FMVがアクティブな場合にテクスチャダンプを許可します。これを有効にするべきではありません。 - + Post-Processing ポストプロセス - + FXAA FXAA - + Enables FXAA post-processing shader. - Enables FXAA post-processing shader. + FXAA ポストプロセッシングシェーダーを有効にします。 - + Contrast Adaptive Sharpening コントラスト適応型シャープニング - + Enables FidelityFX Contrast Adaptive Sharpening. - Enables FidelityFX Contrast Adaptive Sharpening. + FidelityFX コントラスト適応シャープを有効にします。 - + CAS Sharpness - CAS Sharpness + CAS シャープネス - + Determines the intensity the sharpening effect in CAS post-processing. - Determines the intensity the sharpening effect in CAS post-processing. + CASポストプロセッシングにおけるシャープニング効果の強度を決定します。 - + Filters フィルター - + Shade Boost シェーダーブースト - + Enables brightness/contrast/saturation adjustment. - Enables brightness/contrast/saturation adjustment. + 明るさ/コントラスト/彩度の調整を有効にします。 - + Shade Boost Brightness - Shade Boost Brightness + シェーダーブーストの明るさ - + Adjusts brightness. 50 is normal. - Adjusts brightness. 50 is normal. + 明るさを調整します。50 が普通です。 - + Shade Boost Contrast - Shade Boost Contrast + シェーダーブーストのコントラスト - + Adjusts contrast. 50 is normal. - Adjusts contrast. 50 is normal. + コントラストを調整します。50 が普通です。 - + Shade Boost Saturation - Shade Boost Saturation + シェーダーブーストの彩度 - + Adjusts saturation. 50 is normal. - Adjusts saturation. 50 is normal. + 彩度を調整します。50 が普通です。 - + TV Shaders TV シェーダ - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced 高度 - + Skip Presenting Duplicate Frames 重複したフレームの表示をスキップ - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation スレッドプレゼンテーションを無効化 - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode ハードウェアダウンロードモード - + Changes synchronization behavior for GS downloads. - Changes synchronization behavior for GS downloads. + GS ダウンロードの同期動作を変更します。 - + Allow Exclusive Fullscreen 排他的フルスクリーンを許可 - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. 排他的フルスクリーン、またはダイレクトフリップ/スキャンアウトを有効にするドライバーのヒューリスティックを上書きします。 - + Override Texture Barriers テクスチャバリアをオーバーライド - + Forces texture barrier functionality to the specified value. - Forces texture barrier functionality to the specified value. + テクスチャバリア機能を指定した値に強制します。 - + GS Dump Compression GS ダンプ圧縮形式 - + Sets the compression algorithm for GS dumps. - Sets the compression algorithm for GS dumps. + GS ダンプの圧縮アルゴリズムを設定します。 - + Disable Framebuffer Fetch フレームバッファフェッチを無効化 - + Prevents the usage of framebuffer fetch when supported by host GPU. - Prevents the usage of framebuffer fetch when supported by host GPU. + ホスト GPU でサポートされている場合、フレームバッファフェッチの使用を防ぎます。 - + Disable Dual-Source Blending - Disable Dual-Source Blending + デュアルソースブレンディングを無効化 - + Prevents the usage of dual-source blending when supported by host GPU. - Prevents the usage of dual-source blending when supported by host GPU. + ホスト GPU でサポートされている場合、デュアルソースブレンドの使用を防ぎます。 - + Disable Shader Cache シェーダーキャッシュを無効化 - + Prevents the loading and saving of shaders/pipelines to disk. - Prevents the loading and saving of shaders/pipelines to disk. + シェーダー/パイプラインのディスクへの読み込みと保存を防ぎます。 - + Disable Vertex Shader Expand 頂点シェーダー展開を無効化 - + Falls back to the CPU for expanding sprites/lines. - Falls back to the CPU for expanding sprites/lines. + スプライト/ラインの拡張のためにCPUにフォールバックします。 - + Runtime Settings - Runtime Settings + ランタイム設定 - + Applies a global volume modifier to all sound produced by the game. - Applies a global volume modifier to all sound produced by the game. + ゲームによって生成されるすべてのサウンドにグローバルボリューム修正を適用します。 - + Mixing Settings ミキシング設定 - + Changes when SPU samples are generated relative to system emulation. - Changes when SPU samples are generated relative to system emulation. + SPUサンプルの生成タイミングをシステムエミュレーションに対して変更します。 - + Determines how the stereo output is transformed to greater speaker counts. - Determines how the stereo output is transformed to greater speaker counts. + ステレオ出力をより多くのスピーカー数に変換する方法を決定します。 - + Output Settings 出力設定 - + Determines which API is used to play back audio samples on the host. - Determines which API is used to play back audio samples on the host. + ホスト上でオーディオサンプルの再生に使用するAPIを指定します。 - + Sets the average output latency when using the cubeb backend. - Sets the average output latency when using the cubeb backend. + cubeb バックエンドを使用する場合の平均出力レイテンシーを設定します。 + + + + %d ms (avg) + %d ms (平均) - + Timestretch Settings タイムストレッチ設定 - + Affects how the timestretcher operates when not running at 100% speed. - Affects how the timestretcher operates when not running at 100% speed. + 100%の速度で動作していない場合に、タイムストレッチャーの動作に影響を与えます。 + + + + %d ms + %d ms - + Settings and Operations 設定と操作 - + Creates a new memory card file or folder. 新しいメモリーカードのファイルまたはフォルダーを作成します。 - + Simulates a larger memory card by filtering saves only to the current game. - Simulates a larger memory card by filtering saves only to the current game. + 現在のゲームに保存されるセーブデータのみをフィルタリングして、より大容量のメモリカードをシミュレートします。 - + Automatically ejects Memory Cards when they differ after loading a state. - Automatically ejects Memory Cards when they differ after loading a state. + セーブステートを読み込んだ後、メモリーカードが異なる場合に自動的にメモリーカードを排出します。 - + If not set, this card will be considered unplugged. - If not set, this card will be considered unplugged. + 設定されていない場合、このカードは抜いたものとして扱います。 - + The selected memory card image will be used for this slot. - The selected memory card image will be used for this slot. + 選択したメモリーカードイメージをこのスロットに使用します。 - + Resets the card name for this slot. - Resets the card name for this slot. + このスロットのカード名をリセットします。 - + Create Memory Card メモリーカードを作成 - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. + 作成するメモリーカードの名前を入力し、サイズを選択します。互換性を最大限に高めるために、8MB メモリーカードまたはフォルダー式メモリーカードの使用をお勧めします。 - + Card Name: カード名: - + Configuration - Configuration + 配置 - + Uses game-specific settings for controllers for this game. - Uses game-specific settings for controllers for this game. + このゲームのコントローラーにゲーム固有の設定を使用します。 - + Copies the global controller configuration to this game. - Copies the global controller configuration to this game. + このゲームにグローバルコントローラーの設定をコピーします。 - + Resets all configuration to defaults (including bindings). - Resets all configuration to defaults (including bindings). + すべての設定をデフォルトにリセットします(コントローラーの割り当てを含む)。 - + Replaces these settings with a previously saved input profile. - Replaces these settings with a previously saved input profile. + これらの設定を以前保存した入力プロファイルに置き換えます。 - + Stores the current settings to an input profile. - Stores the current settings to an input profile. + 現在の設定を入力プロファイルに保存します。 - + Input Sources 入力ソース - + The SDL input source supports most controllers. SDL 入力ソースは、ほとんどのコントローラーに対応します。 - + Provides vibration and LED control support over Bluetooth. - Provides vibration and LED control support over Bluetooth. + Bluetooth経由で振動とLED制御をサポートします。 - + Allow SDL to use raw access to input devices. - Allow SDL to use raw access to input devices. + SDLに入力デバイスへのRAWアクセスを許可します。 - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - The XInput source provides support for XBox 360/XBox One/XBox Series controllers. + XInput ソースは、XBox 360/XBox One/XBox シリーズコントローラをサポートします。 - + Multitap - Multitap + マルチタップ - + Enables an additional three controller slots. Not supported in all games. - Enables an additional three controller slots. Not supported in all games. + 追加の 3 つのコントローラースロットを有効にします。すべてのゲームでサポートされていません。 - + Attempts to map the selected port to a chosen controller. - Attempts to map the selected port to a chosen controller. + 選択したポートを選択したコントローラにマッピングしてみます。 - + No Buttons Selected - No Buttons Selected + ボタンが選択されていません - + Determines how much pressure is simulated when macro is active. - Determines how much pressure is simulated when macro is active. + マクロがアクティブなときにどの程度の圧力をシミュレートするかを決定します。 - + Determines the pressure required to activate the macro. - Determines the pressure required to activate the macro. + マクロを有効にするために必要な圧力を指定します。 - + Toggle every %d frames - Toggle every %d frames + %d フレームごとに切り替えます - + Clears all bindings for this USB controller. - Clears all bindings for this USB controller. + このUSBコントローラのすべての割り当てをクリアします。 - + Data Save Locations - Data Save Locations + データの保存場所 - + Show Advanced Settings 高度な設定の表示 - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. + これらのオプションを変更するとゲームが機能しなくなることがあります。 PCSX2 チームはこれらの設定が変更された構成についてはサポートを提供しません。 - + Logging - Logging + ログ - + System Console - System Console + システムコンソール - + Writes log messages to the system console (console window/standard output). - Writes log messages to the system console (console window/standard output). + システムコンソール(コンソールウィンドウ/標準出力) にログメッセージを書き込みます。 - + File Logging - File Logging + ファイルログ - + Writes log messages to emulog.txt. - Writes log messages to emulog.txt. + emulog.txt にログメッセージを書き込みます。 - + Verbose Logging - Verbose Logging + 詳細ログ - + Writes dev log messages to log sinks. - Writes dev log messages to log sinks. + ログシンクに開発ログメッセージを書き込みます。 - + Log Timestamps - Log Timestamps + ログのタイムスタンプ - + Writes timestamps alongside log messages. - Writes timestamps alongside log messages. + ログメッセージと一緒にタイムスタンプを書き込みます。 - + EE Console - EE Console + EE コンソール - + Writes debug messages from the game's EE code to the console. - Writes debug messages from the game's EE code to the console. + Game's EE コードからデバッグメッセージをコンソールに書き込みます。 - + IOP Console - IOP Console + IOP コンソール - + Writes debug messages from the game's IOP code to the console. - Writes debug messages from the game's IOP code to the console. + Game's EE コードからデバッグメッセージをコンソールに書き込みます。 - + CDVD Verbose Reads - CDVD Verbose Reads + CDVDの詳細な読み取り操作 - + Logs disc reads from games. - Logs disc reads from games. + ゲームからのディスク読み取りをログに記録します。 - + Emotion Engine - Emotion Engine + Emotion Engine - + Rounding Mode ラウンドモード - + Determines how the results of floating-point operations are rounded. Some games need specific settings. - Determines how the results of floating-point operations are rounded. Some games need specific settings. + 浮動小数点演算の結果をどのように丸めるかを決定します。一部のゲームは特定の設定が必要です。 - + Clamping Mode クランプモード - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. - Determines how out-of-range floating point numbers are handled. Some games need specific settings. + 範囲外の浮動小数点数の処理方法を決定します。特定の設定が必要なゲームもあります。 - + Enable EE Recompiler - Enable EE Recompiler + EE リコンパイラを有効化 - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. + 64bit MIPS-I 機械語のリアルタイムバイナリ変換を x86 へ行います。 - + Enable EE Cache - Enable EE Cache + EE キャッシュを有効化 - + Enables simulation of the EE's cache. Slow. - Enables simulation of the EE's cache. Slow. + EE's キャッシュのシミュレーションを有効にします。 - + Enable INTC Spin Detection - Enable INTC Spin Detection + INTC スピン検出を有効化 - + Huge speedup for some games, with almost no compatibility side effects. - Huge speedup for some games, with almost no compatibility side effects. + 一部のゲームでは大幅な高速化を実現し、互換性の副作用がほとんどありません。 - + Enable Wait Loop Detection - Enable Wait Loop Detection + 待機ループの検出を有効化 - + Moderate speedup for some games, with no known side effects. - Moderate speedup for some games, with no known side effects. + 一部のゲームではそこそこの高速化を実現し、副作用は確認されていません。 - + Enable Fast Memory Access - Enable Fast Memory Access + 高速メモリアクセスを有効化 - + Uses backpatching to avoid register flushing on every memory access. - Uses backpatching to avoid register flushing on every memory access. + すべてのメモリアクセスでレジスタフラッシュを避けるためにバックパッチングを使用します。 - + Vector Units Vector Units - + VU0 Rounding Mode VU0 ラウンドモード - + VU0 Clamping Mode VU0 クランプモード - + VU1 Rounding Mode VU1 ラウンドモード - + VU1 Clamping Mode VU1 クランプモード - + Enable VU0 Recompiler (Micro Mode) VU0 リコンパイラを有効化 (マイクロモード) - + New Vector Unit recompiler with much improved compatibility. Recommended. - New Vector Unit recompiler with much improved compatibility. Recommended. + 互換性が向上した新しいベクトルユニット再コンパイラ. 推奨. - + Enable VU1 Recompiler VU1 リコンパイラを有効化 - + Enable VU Flag Optimization - Enable VU Flag Optimization + VU フラグ最適化を有効化 - + Good speedup and high compatibility, may cause graphical errors. - Good speedup and high compatibility, may cause graphical errors. + 互換性が高く、高速化もしますが、グラフィックエラーが発生する可能性があります。 - + I/O Processor I/O プロセッサ - + Enable IOP Recompiler - Enable IOP Recompiler + IOP リコンパイラを有効化 - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. + 32bit MIPS-I 機械語のリアルタイムバイナリ変換を x86 へ行います。 - + Graphics グラフィック - + Use Debug Device デバッグデバイスを使用 - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings 設定 - + No cheats are available for this game. - No cheats are available for this game. + このゲームで利用可能なチートはありません。 - + Cheat Codes チートコード - + No patches are available for this game. - No patches are available for this game. + このゲームで利用可能なパッチはありません。 - + Game Patches ゲームパッチ - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. チートを有効にすると、予期せぬ動作、クラッシュ、停止、またはセーブデータの破損が発生する可能性があります。 - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. ゲームパッチを有効にすると、予期せぬ動作、クラッシュ、停止、セーブゲームの破損を引き起こす可能性があります。 - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. ゲームパッチを使用する場合は、自己責任でご利用ください。PCSX2 チームは、ゲームパッチを有効にしたユーザーへのサポートを提供しません。 - + Game Fixes ゲーム修正 - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. + ゲームの修正は、各オプションが何を行いその結果どう影響するのかを認識していない限り、変更されるべきではありません。 - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. テイルズ オブ デスティニー向け。 - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. ガンダムのゲーム向け。 - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. - Needed for some games with complex FMV rendering. + 一部の複雑なFMVレンダリングを持つゲームに必要です。 - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. - Skips videos/FMVs in games to avoid game hanging/freezes. + ゲームのハング/フリーズを回避するために、ゲーム内のビデオ/FMV をスキップします。 - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + 次のゲームに影響を与えることが知られています:Mana Khemia 1、Metal Saga、Pilot Down Behind Enemy Lines - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + SOCOM 2のHUDおよびSpy Hunterのローディングハング対策 - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 同期 - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + すべてのCOP2命令で厳格なVU0同期を強制します。 - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + 可能なフロートオーバーフローを確認する (Superman Returns) - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + VU XGKicksに正確なタイミングを使用する(低速)。 - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + 4ch ステレオ - - VU Add Hack - VU Add Hack + + Load State + ステートロード - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + エミュレートされた Emotion Engine がサイクルをスキップするようにします。「ワンダと巨像」のようなごく一部のゲームにのみ効果的です。ほとんどの場合、パフォーマンスが悪化します。 - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + 一般的に 4 つ以上のコアを持つ CPU で高速化します。ほとんどのゲームでは安全ですが、一部のゲームでは互換性がなく、動作が停止する可能性があります。 - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + VU1 を即座に実行します。ほとんどのゲームで速度を向上させます。ほとんどのゲームでは安全ですが、一部のゲームではグラフィックエラーが発生する場合があります。 - - Full VU0 Synchronization - Full VU0 同期 + + Scale To Host Refresh Rate + ホストのリフレッシュレートに合わせたスケール - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + 深度エミュレーションを無効化 - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + テクスチャキャッシュの深度バッファのサポートを無効にします。 - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + レンダリング修正を無効化 - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + フレームデータをプリロード - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + テクスチャー インサイド RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + 有効な場合、GPU がカラーマップテクスチャを変換します。無効の場合、CPU が行います。GPU と CPU のトレードオフです。 - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + ハーフピクセルオフセット - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + テクスチャオフセット X - - Quadraphonic - Quadraphonic + + Texture Offset Y + テクスチャオフセット Y - - Load State - ステートロード + + Dumps replaceable textures to disk. Will reduce performance. + 置き換え可能なテクスチャをディスクにダンプします。パフォーマンスが低下します。 + + + + Applies a shader which replicates the visual effects of different styles of television set. + さまざまなテレビの視覚効果を再現するシェーダーを適用します。 + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + 25/30fps ゲームで't が変更されるフレームを表示するスキップ。速度を向上させることができますが、入力ラグを増加させる/フレームペースを悪化させます。 + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + ワーカースレッドの代わりにメインの GS スレッドにフレームを表示します。フレームタイムの問題のデバッグに使用します。 + + + + Enables API-level validation of graphics commands. + グラフィックコマンドの API レベルの検証を有効にします。 + + + + Use Software Renderer For FMVs + ソフトウェアレンダラーを FMV に使用する + + + + To avoid TLB miss on Goemon. + ゴエモンのTLBミスを回避 + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + 汎用タイミングハック 次のゲームに影響を与えることが知られています: Digital Devil Saga, SSX + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + キャッシュのエミュレーションの問題に対して有効です。次のゲームに影響を与えることが知られています:Fire Pro Wrestling Z + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + 次のゲームに影響があることが知られています:Bleach Blade Battlers、Growlanser II および III、Wizardry - + + Emulate GIF FIFO + GIF FIFO をエミュレート + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + 正確で低速 次のゲームに影響を与えることが知られています: FIFAストリート2 + + + + DMA Busy Hack + + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + VIF FIFO をエミュレート + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + VIF1 FIFOの先読みをシミュレートします。Test Drive UnlimitedやTransformersなどのゲームに影響を与えることが知られています。 + + + + VU I Bit Hack + + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + 一部のゲームでの連続的な再コンパイルを回避します。次のゲームに影響することが知られています:Scarface The World is Yours、Crash Tag Team Racing。 + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + トライエースのゲーム向け:スターオーシャン3、ラジアータ ストーリーズ、ヴァルキリープロファイル2 + + + + VU Sync + VU 同期 + + + + Run behind. To avoid sync problems when reading or writing VU registers. + 遅延実行 (VUレジスタの読み取り/書き込み時の同期の問題を回避) + + + + VU XGKick Sync + VU XGKick 同期 + + + + Force Blit Internal FPS Detection + 強制的に内部FPSをブレット検出する + + + Save State ステートセーブ - + Load Resume State 中断ステートから再開 - + A resume save state created at %s was found. Do you want to load this save and continue? - A resume save state created at %s was found. - -Do you want to load this save and continue? + %s で作成されたセーブステートが見つかりました。 +このセーブを読み込んで続行しますか? - + Region: リージョン: - + Compatibility: 互換性: - + No Game Selected ゲームが選択されていません - + Search Directories 検索ディレクトリ - + Adds a new directory to the game search list. - Adds a new directory to the game search list. + ゲーム検索リストに新しいディレクトリを追加します。 - + Scanning Subdirectories - Scanning Subdirectories + サブディレクトリをスキャンしています - + Not Scanning Subdirectories - Not Scanning Subdirectories + サブディレクトリをスキャンしていません - + List Settings リストの設定 - + Sets which view the game list will open to. - Sets which view the game list will open to. + ゲームリストを開くビューを設定します。 - + Determines which field the game list will be sorted by. - Determines which field the game list will be sorted by. + ゲームリストをソートするフィールドを指定します。 - + Reverses the game list sort order from the default (usually ascending to descending). - Reverses the game list sort order from the default (usually ascending to descending). + ゲームリストのソート順をデフォルト(通常は降順に昇順) から反転します。 - + Cover Settings - Cover Settings + カバー画像設定 - + Downloads covers from a user-specified URL template. - Downloads covers from a user-specified URL template. + ダウンロードは、ユーザーが指定した URL テンプレートからカバーされます。 - + Operations 操作 - + + Selects where anisotropic filtering is utilized when rendering textures. + テクスチャのレンダリング時に異方性フィルタリングを適用する場所を選択してください。 + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + 一部のゲームで誤った読み取りを避けるために、内部FPSを計算する別の方法を使用します。 - + Identifies any new files added to the game directories. - Identifies any new files added to the game directories. + ゲームディレクトリに追加された新しいファイルを特定します。 - + Forces a full rescan of all games previously identified. - Forces a full rescan of all games previously identified. + 以前に識別されたすべてのゲームの完全な再スキャンを強制します。 - + Download Covers カバー画像のダウンロード - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - ファイル名にシリアル番号を使用する - - - + About PCSX2 PCSX2 について - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. + PCSX2 は無料でオープンソースのプレイステーション2 (PS2) エミュレータです。その目的は、MIPS CPU インタプリタ、リコンパイラ、およびハードウェアの状態と PS2 システムメモリを管理する仮想マシンの組み合わせを使用して、PS2 のハードウェアをエミュレートすることです。多くの利点や追加機能と共に、PC 上で PS2 ゲームをプレイできます。 - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - - - XXX points - XXX ポイント - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + PlayStation 2 および PS2 は、ソニー・インタラクティブエンタテインメントの登録商標です。このアプリケーションは、ソニー・インタラクティブエンタテインメントとは一切関係ありません。 - - Rank - Rank - - - - Name - 名前 - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. - When enabled and logged in, PCSX2 will scan for achievements on startup. + 有効にしてログインすると、PCSX2 は起動時に実績をスキャンします。 - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - - - Enables tracking and submission of leaderboards in supported games. - サポートされているゲームでリーダーボードの追跡と送信を有効にします。 + リーダーボードのトラッキングを含む、実績のための"チャレンジモード"です。セーブステート、チート、スローダウン機能が無効化されます。 - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Displays popup messages on events such as achievement unlocks and leaderboard submissions. + 実績のロック解除やリーダーボードの提出などのイベントに関するポップアップメッセージを表示します。 - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Plays sound effects for events such as achievement unlocks and leaderboard submissions. + 実績のロック解除やリーダーボードの提出などのイベントの効果音を再生します。 - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + チャレンジ可能な実績がある場合、画面の右下隅にアイコンを表示します。 - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. + 有効にすると、PCSX2は非公式セットからの実績を一覧表示します。これらの実績はRetroAchievementsには追跡されません。 - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. + 有効にすると、PCSX2 はすべての実績がロックされていると仮定し、サーバーにロック解除通知を送信しません。 + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + リーダーボード チャレンジを開始、提出、または失敗したときにポップアップメッセージを表示します。 + + + + When enabled, each session will behave as if no achievements have been unlocked. + 有効にすると、各セッションはアチーブメントがアンロックされていないように動作します。 - + Account - Account + アカウント - + Logs out of RetroAchievements. - Logs out of RetroAchievements. + RetroAchievements からログアウトします。 - + Logs in to RetroAchievements. RetroAchievements にログインします。 - + Current Game - Current Game - - - - Achievements Login - Achievements ログイン - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. + 現在のゲーム - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - ユーザー名: - - - - Password: - パスワード: - - - + {} is not a valid disc image. - {} is not a valid disc image. + {} は有効なディスクイメージではありません。 - + Automatic mapping completed for {}. {} の自動マッピングが完了しました。 - + Automatic mapping failed for {}. {} の自動マッピングに失敗しました。 - + Game settings initialized with global settings for '{}'. - Game settings initialized with global settings for '{}'. + ゲーム設定は '{}' のグローバル設定で初期化されます。 - + Game settings have been cleared for '{}'. - Game settings have been cleared for '{}'. + '{}' のゲーム設定をクリアしました。 - + Console Port {} - Console Port {} + コンソールポート {} - + {} (Current) - {} (Current) + {} (現在) - + {} (Folder) {} (フォルダー) - + Memory card name '{}' is not valid. - Memory card name '{}' is not valid. + メモリーカード名 '{}' は無効です。 - + Memory Card '{}' created. メモリーカード '{}' を作成しました。 - + Failed to create memory card '{}'. メモリーカード '{}' の作成に失敗しました。 - + A memory card with the name '{}' already exists. - A memory card with the name '{}' already exists. + 名前が '{}' のメモリーカードは既に存在します。 - + Failed to load '{}'. - Failed to load '{}'. + '{}' の読み込みに失敗しました。 - + Input profile '{}' loaded. - Input profile '{}' loaded. + 入力プロファイル '{}' を読み込みました。 - + Input profile '{}' saved. - Input profile '{}' saved. + 入力プロファイル '{}' を保存しました。 - + Failed to save input profile '{}'. - Failed to save input profile '{}'. + 入力プロファイル '{}' の保存に失敗しました。 - + Port {} Controller Type - Port {} Controller Type + ポート {} コントローラーの種類 - + Select Macro {} Binds - Select Macro {} Binds + マクロを選択 {} バインドする - + + Macro {} Frequency + マクロ {} 頻度 + + + Macro will toggle every {} frames. - Macro will toggle every {} frames. + マクロは {} フレームごとにオンオフが切り替わります。 - + Port {} Device ポート {} デバイス - + Port {} Subtype ポート {} サブタイプ - + {} unlabelled patch codes will automatically activate. - {} unlabelled patch codes will automatically activate. + {} つのラベルの無いパッチコードが自動的に有効になります。 - + {} unlabelled patch codes found but not enabled. - {} unlabelled patch codes found but not enabled. + {} ラベル付けされていないパッチコードが見つかりましたが有効になっていません。 - + This Session: {} このセッション: {} - + All Time: {} すべての時間: {} - + Save Slot {0} - Save Slot {0} + スロット {0} にセーブ - + Saved {} - Saved {} + 保存済み {} - + {} does not exist. - {} does not exist. + {} が存在しません。 - + {} deleted. {} を削除しました。 - + Failed to delete {}. {} の削除に失敗しました。 - + File: {} ファイル: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} プレイ時間: {} - + Last Played: {} 最終プレイ日: {} - + Size: {:.2f} MB サイズ: {:.2f} MB - - {} points - {} ポイント + + Left: + 左: - - {} (Hardcore Mode) - {} (ハードコアモード) + + Top: + 上: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! - - - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + 右: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + 下: - + Summary 概要 - + Interface Settings インターフェース設定 - + BIOS Settings BIOS 設定 - + Emulation Settings エミュレーション設定 - + Graphics Settings グラフィック設定 - + Audio Settings オーディオ設定 - + Memory Card Settings メモリーカード設定 - + Controller Settings コントローラー設定 - + Hotkey Settings ホットキー設定 - + Achievements Settings 実績設定 - + Folder Settings フォルダー設定 - + Advanced Settings 高度な設定 - + Patches パッチ - + Cheats チート - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% 速度 - + 60% Speed 60% 速度 - + 75% Speed 75% 速度 - + 100% Speed (Default) 100% 速度 (既定) - + 130% Speed 130% 速度 - + 180% Speed 180% 速度 - + 300% Speed 300% 速度 - + Normal (Default) 通常 (既定) - + Mild Underclock 低いアンダークロック - + Moderate Underclock 程々のアンダークロック - + Maximum Underclock 最大のアンダークロック - + Disabled 無効 - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 フレーム (ハード同期) - + 1 Frame 1 フレーム - + 2 Frames 2 フレーム - + 3 Frames 3 フレーム - + None なし - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) 自動 (既定) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software ソフトウェア - + Null なし - + Off オフ - + On オン - + Adaptive Adaptive - + Bilinear (Smooth) バイリニア (スムーズ) - + Bilinear (Sharp) バイリニア (シャープ) - + Weave (Top Field First, Sawtooth) Weave (上位フィールド優先、ギザギザ) - + Weave (Bottom Field First, Sawtooth) Weave (下位フィールド優先、ギザギザ) - + Bob (Top Field First) Bob (上位フィールド優先) - + Bob (Bottom Field First) Bob (下位フィールド優先) - + Blend (Top Field First, Half FPS) Blend (上位フィールド優先, 半分 FPS) - + Blend (Bottom Field First, Half FPS) Blend (下位フィールド優先, 半分 FPS) - + Adaptive (Top Field First) Adaptive (上位フィールド優先) - + Adaptive (Bottom Field First) Adaptive (下位フィールド優先) - + Native (PS2) ネイティブ (PS2) - + 1.25x Native 1.25x ネイティブ - + 1.5x Native 1.5x ネイティブ - + 1.75x Native 1.75x ネイティブ - + 2x Native (~720p) 2x ネイティブ (~720p) - + 2.25x Native 2.25x ネイティブ - + 2.5x Native 2.5x ネイティブ - + 2.75x Native 2.75x ネイティブ - + 3x Native (~1080p) 3x ネイティブ (~1080p) - + 3.5x Native 3.5x ネイティブ - + 4x Native (~1440p/2K) 4x ネイティブ (~1440p/2K) - + 5x Native (~1620p) 5x ネイティブ (~1620p) - + 6x Native (~2160p/4K) 6x ネイティブ (~2160p/4K) - + 7x Native (~2520p) 7x ネイティブ (~2520p) - + 8x Native (~2880p) 8x ネイティブ (~2880p) - + Basic (Generated Mipmaps) 基本 (生成ミップマップ) - + Full (PS2 Mipmaps) フル (PS2 ミップマップ) - + Nearest ニアレスト - + Bilinear (Forced) バイリニア (強制) - + Bilinear (PS2) バイリニア (PS2) - + Bilinear (Forced excluding sprite) バイリニア (スプライト以外強制) - + Off (None) オフ (なし) - + Trilinear (PS2) トリリニア (PS2) - + Trilinear (Forced) トリリニア (強制) - + Scaled スケール - + Unscaled (Default) 未スケーリング (既定) - + Minimum 最小 - + Basic (Recommended) 基本 (推奨) - + Medium - + High - + Full (Slow) フル (低速) - + Maximum (Very Slow) 最大 (非常に低速) - + Off (Default) オフ (既定) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial 部分的 - + Full (Hash Cache) フル (ハッシュキャッシュ) - + Force Disabled 強制的に無効 - + Force Enabled 強制的に有効 - + Accurate (Recommended) 正確 (推奨) - + Disable Readbacks (Synchronize GS Thread) リードバック無効化 (GS スレッドを同期) - + Unsynchronized (Non-Deterministic) 非同期 (非決定的) - + Disabled (Ignore Transfers) - Disabled (Ignore Transfers) + 無効 (転送を無視) - + Screen Resolution 画面解像度 - - Internal Resolution (Uncorrected) - 内部解像度 (不正確) + + Internal Resolution (Aspect Uncorrected) + 内部解像度 (不正確なアスペクト) + + + + Cannot show details for games which were not scanned in the game list. + ゲームリストでスキャンされていないゲームの詳細を表示することはできません。 - + + Full Boot + フル起動 + + + + Achievement Notifications + 実績の通知 + + + + Leaderboard Notifications + リーダーボードの通知 + + + + Enable In-Game Overlays + ゲーム内オーバーレイを有効にする + + + + Encore Mode + アンコールモード + + + + Spectator Mode + 観戦モード + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (無効) - + 1 (64 Max Width) 1 (最大幅 64) - + 2 (128 Max Width) 2 (最大幅 128) - + 3 (192 Max Width) 3 (最大幅 192) - + 4 (256 Max Width) 4 (最大幅 256) - + 5 (320 Max Width) 5 (最大幅 320) - + 6 (384 Max Width) 6 (最大幅 384) - + 7 (448 Max Width) 7 (最大幅 448) - + 8 (512 Max Width) 8 (最大幅 512) - + 9 (576 Max Width) 9 (最大幅 576) - + 10 (640 Max Width) 10 (最大幅 640) - + Sprites Only スプライトのみ - + Sprites/Triangles スプライト/トライアングル - + Blended Sprites/Triangles ブレンド済みスプライト/トライアングル - + 1 (Normal) 1 (通常) - + 2 (Aggressive) 2 (アグレッシブ) - + Inside Target 内部ターゲット - + Merge Targets ターゲットを結合 - + Normal (Vertex) 通常 (Vertex) - + Special (Texture) 特殊 (テクスチャ) - + Special (Texture - Aggressive) 特殊 (テクスチャ-アグレッシブ) - + Half ハーフ - + Force Bilinear バイリニアを強制 - + Force Nearest ニアレストを強制 - + Disabled (Default) 無効 (既定) - + Enabled (Sprites Only) 有効 (スプライトのみ) - + Enabled (All Primitives) 有効 (すべてのプリミティブ) - + None (Default) なし (既定) - + Sharpen Only (Internal Resolution) シャープのみ (内部解像度) - + Sharpen and Resize (Display Resolution) シャープとサイズ変更 (ディスプレイ解像度) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed 無圧縮 - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) タイムストレッチ (推奨) - + Async Mix (Breaks some games!) 非同期ミックス (一部のゲームが壊れます!) - + None (Audio can skip.) なし (音声をスキップ) - + Stereo (None, Default) ステレオ (拡張なし, 既定) - + Surround 5.1 5.1ch サラウンド - + Surround 7.1 7.1ch サラウンド - + No Sound (Emulate SPU2 only) 音声なし (SPU2 エミュレートのみ) - + Cubeb (Cross-platform) Cubeb (クロスプラットフォーム) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [最も互換性がある] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] フォルダー [Recommended] - - 128 KB [PS1] - 128 KB [PS1] + + 128 KB [PS1] + 128 KB [PS1] + + + + Negative + 負数 + + + + Positive + 正数 + + + + Chop/Zero (Default) + Chop/Zero (既定) - + Game Grid ゲームグリッド - + Game List ゲームリスト - + Game List Settings ゲームリストの設定 - + Type 種類 - + Serial シリアル番号 - + Title タイトル - + File Title ファイル名 - + CRC CRC - + Time Played プレイ時間 - + Last Played 最終プレイ日 - + Size サイズ - + Select Disc Image ディスクイメージを選択 - + Select Disc Drive ディスクドライブを選択 - + Start File ファイルを起動 - + Start BIOS BIOS を起動 - + Start Disc ディスクを起動 - + Exit 終了 - + Set Input Binding - Set Input Binding + 入力割り当てを設定 - + Region リージョン - + Compatibility Rating - Compatibility Rating + 互換性評価 - + Path パス - + Disc Path ディスクパス - + Select Disc Path ディスクパスを選択 - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings - Copy Settings + 設定をコピー - + Clear Settings - Clear Settings + 設定をクリア - + Inhibit Screensaver スクリーンセーバーを防止 - + + Enable Discord Presence + Discord Presence を有効化 + + + Pause On Start 起動時に一時停止 - + Pause On Focus Loss 非フォーカス時に一時停止 - + Pause On Menu メニューで一時停止 - + Confirm Shutdown シャットダウンの確認 - + Save State On Shutdown シャットダウン時にステートセーブ - + Enable Per-Game Settings ゲームごとの設定を有効化 - + Use Light Theme ライトテーマを使用 - + Start Fullscreen フルスクリーンで開始 - + Double-Click Toggles Fullscreen ダブルクリックでフルスクリーン表示を切替 - + Hide Cursor In Fullscreen フルスクリーン時にカーソルを非表示 - + OSD Scale OSD スケール - + Show Messages メッセージを表示 - + Show Speed 速度を表示 - + Show FPS FPS を表示 - + Show CPU Usage CPU 使用率を表示 - + Show GPU Usage GPU 使用率を表示 - + Show Resolution 解像度を表示 - + Show GS Statistics GS 統計を表示 - + Show Status Indicators - Show Status Indicators + ステータスインジケーターを表示 - + Show Settings 設定を表示 - + Show Inputs 入力を表示 - + Show Frame Times フレームタイムを表示 - + Warn About Unsafe Settings 安全でない設定についての警告 - + Reset Settings 設定をリセット - + Change Search Directory 検索ディレクトリを変更 - + Fast Boot 急速起動 - + Output Volume 出力音量 - + Synchronization Mode 同期モード - + Expansion Mode 拡張モード - + Output Module 出力モジュール - + Latency レイテンシ - + Sequence Length シーケンスの長さ - + Seekwindow Size シークウィンドウサイズ - + Overlap オーバーラップ - + Memory Card Directory メモリーカード ディレクトリ - + Folder Memory Card Filter - Folder Memory Card Filter + フォルダーメモリーカードのフィルター - + Auto Eject When Loading - Auto Eject When Loading + ロード時に自動的に取り出し - + Create 作成 - + Cancel キャンセル - + Load Profile プロファイルを読み込む - + Save Profile プロファイルを保存 - + Per-Game Configuration ゲームごとの設定 - + Copy Global Settings グローバル設定をコピー - + Enable SDL Input Source SDL 入力ソースを有効化 - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense 拡張モード - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source XInput 入力ソースを有効化 - + Enable Console Port 1 Multitap - Enable Console Port 1 Multitap + コンソールポート 1 のマルチタップを有効化 - + Enable Console Port 2 Multitap - Enable Console Port 2 Multitap + コンソールポート 2 のマルチタップを有効化 - + Controller Port {}{} コントローラー端子 {}{} - + Controller Port {} コントローラー端子 {} - + Controller Type コントローラーの種類 - + Automatic Mapping 自動マッピング - + Controller Port {}{} Macros コントローラー端子 {}{} マクロ - + Controller Port {} Macros コントローラー端子 {} マクロ - + Macro Button {} マクロボタン {} - + Buttons ボタン - + Frequency 頻度 - + Pressure 圧力 - + Controller Port {}{} Settings コントローラー端子 {}{} 設定 - + Controller Port {} Settings コントローラー端子 {} 設定 - + USB Port {} USB ポート {} - + Device Type デバイスの種類 - + Device Subtype デバイスのサブタイプ - + {} Bindings {} 割り当て - + Clear Bindings 割り当てをクリア - + {} Settings {} 設定 - + Cache Directory キャッシュ ディレクトリ - + Covers Directory カバー画像 ディレクトリ - + Snapshots Directory スナップショット ディレクトリ - + Save States Directory セーブステート ディレクトリ - + Game Settings Directory ゲーム設定 ディレクトリ - + Input Profile Directory 入力プロファイル ディレクトリ - + Cheats Directory チート ディレクトリ - + Patches Directory パッチ ディレクトリ - + Texture Replacements Directory テクスチャ置換 ディレクトリ - + Video Dumping Directory ビデオダンプ ディレクトリ - + Resume Game ゲームを再開 - + Toggle Frame Limit フレーム制限のオンオフ - + Game Properties ゲームのプロパティ - + Achievements 実績 - + Save Screenshot スクリーンショットを保存 - + Switch To Software Renderer ソフトウェアレンダラーに切替 - + Switch To Hardware Renderer ハードウェアレンダラーに切替 - + Change Disc ディスク変更 - + Close Game ゲームを閉じる - + Exit Without Saving セーブせずに終了 - + Back To Pause Menu 一時停止メニューに戻る - + Exit And Save State ステートセーブして終了 - + Leaderboards リーダーボード - + Delete Save セーブを削除 - + Close Menu メニューを閉じる - - Clean Boot - Clean Boot - - - + Delete State ステートを削除 - + Default Boot 既定の起動 - - Slow Boot - 低速起動 - - - + Reset Play Time プレイ時間をリセット - + Add Search Directory 検索ディレクトリを追加 - + Open in File Browser ファイルブラウザーで開く - + Disable Subdirectory Scanning - Disable Subdirectory Scanning + サブディレクトリのスキャンを無効化 - + Enable Subdirectory Scanning - Enable Subdirectory Scanning + サブディレクトリのスキャンを有効化 - + Remove From List リストから削除 - + Default View デフォルトビュー - + Sort By 並べ替え - + Sort Reversed 逆に並べ替え - + Scan For New Games 新しいゲームをスキャン - + Rescan All Games すべてのゲームを再スキャン - - Start Download - ダウンロード開始 - - - + Website ウェブサイト - + Support Forums サポートフォーラム - + GitHub Repository GitHub リポジトリ - + License ライセンス - + Close 閉じる - + RAIntegration is being used instead of the built-in achievements implementation. - RAIntegration is being used instead of the built-in achievements implementation. + 組み込みの実装の代わりにRAIntegrationが使用されています。 - + Enable Achievements 実績を有効化 - - Rich Presence - リッチプレゼンス - - - + Hardcore Mode ハードコアモード - - Show Notifications - 通知を表示 - - - + Sound Effects サウンドエフェクト - - Show Challenge Indicators - チャレンジインジケーターを表示 - - - + Test Unofficial Achievements 非公式の実績をテスト - - Test Mode - テストモード - - - + Username: {} ユーザー名: {} - + Login token generated on {} - Login token generated on {} + {} で生成されたログイントークン - + Logout ログアウト - + Not Logged In ログインしていません - + Login ログイン - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - ゲーム ID: {} - - - - Game Title: {} - ゲームタイトル: {} - - - - Achievements: {} ({} points) - 実績: {} ({} ポイント) + + Game: {0} ({1}) + ゲーム: {0} ({1}) - + Rich presence inactive or unsupported. リッチプレゼンスが非アクティブまたはサポートされていません。 - + Game not loaded or no RetroAchievements available. ゲームがロードされていないか、利用可能な RetroAchievements がありません。 - + Card Enabled カードを有効 - + Card Name カード名 - + Eject Card カードの取り出し @@ -8073,7 +8321,7 @@ ${serial}: Serial of the game. 再開に失敗しました。古い設定を復元中です。 - + Upscale multiplier set to {}x. アップスケール倍率を {}x に設定しました。 @@ -8090,7 +8338,7 @@ ${serial}: Serial of the game. Failed to save screenshot to '{}'. - スクリーンショットを '{}' に保存できませんでした。 + スクリーンショット '{}' の保存に失敗しました。 @@ -8110,7 +8358,7 @@ ${serial}: Serial of the game. Failed to render/download screenshot. - スクリーンショットの描画 / ダウンロードに失敗しました。 + スクリーンショットの描画/ダウンロードに失敗しました。 @@ -8128,12 +8376,12 @@ ${serial}: Serial of the game. 1 つ以上の圧縮置換テクスチャを使用しているので自動生成ミップマップを無効にしています。テクスチャを圧縮するには、ミップマップを生成してください。 - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. ステンシルバッファーとテクスチャバリアが両方とも利用できないため、一部のグラフィック効果が崩れます。 - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. 「Spin GPU During Readbacks」が有効になっていますが、キャリブレートされたタイムスタンプは利用できません。これは非常に遅い動作になる可能性があります。 @@ -8183,13 +8431,13 @@ ${serial}: Serial of the game. %1 unlabelled patch codes will automatically activate. - %1つのラベルの無いパッチコードが自動的に有効になります。 + %1 つのラベルの無いパッチコードが自動的に有効になります。 GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8199,266 +8447,408 @@ graphical quality, but this will increase system requirements. ゲームプロパティからブレンディング精度を上げると、グラフィック品質が向上しますが、システム負荷が増大する可能性があります。 - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: GS ハードウェアレンダラーの手動修正が有効になっています。自動修正は適用されませんでした。: - + No tracks provided. トラックは提供されていません。 - + Hash {} is not in database. ハッシュ {} はデータベースにありません。 - + Data track number does not match data track in database. データトラック番号がデータベースのデータトラックと一致しません。 - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - ハッシュ {} を持つトラック {} がデータベースに見つかりません。 + ハッシュ {1} を持つトラック {0} がデータベースに見つかりません。 - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - ハッシュ {} を持つトラック {} は別のゲーム ({}) のものです。 + ハッシュ {1} を持つトラック {0} は別のゲーム ({2}) のものです。 - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - ハッシュ {} を持つトラック {} はデータベーストラックと一致しません。 + ハッシュ {1} を持つトラック {0} はデータベーストラックと一致しません。 GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) ゲーム修正 (グローバル変更は推奨されません) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (ガンダムのゲーム向け) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (テイルズ オブ デスティニー向け) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - ソフトウェアレンダラーを FMV に使用する + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Videos/FMVsをスキップ) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (ゴエモン向け) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (汎用タイミングハック) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (キャッシュエミュレーションの問題に有効) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (BLEACH ブレイド・バトラーズ向け) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (正確だが低速) + Emulate GIF FIFO (GIF FIFO をエミュレート) - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (ビジーの時に書き込み拒否) + - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (SOCOM 2 HUD/スパイハンター向け) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - VIF FIFO をシミュレート (正確で低速) + Emulate VIF FIFO (VIF FIFO をエミュレート) - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 同期 (正確で低速) + Full VU0 Synchronization (Full VU0 同期) - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (Scarface The World is Yours / クラッシュ・バンディクー がっちゃんこワールド向け) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (トライエースのゲーム向け) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns向け) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU 同期 (Run Behind, M-Bit ゲーム) + VU Sync (VU 同期) - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (正確だが低速) + VU XGKick Sync (VU XGKick 同期) - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - 強制的に内部 FPS をブレット検出 (自動検出に失敗した場合) + Force Blit Internal FPS Detection (強制的に内部FPSをブレット検出) + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs (FMV にソフトウェアレンダラーを使用) + + + + + + + + + + + + + + + + + + + + + + Unchecked + チェックを外す + + + + For Tales of Destiny. + テイルズ オブ デスティニー向け。 + + + + For Gundam Games. + ガンダムのゲーム向け。 + + + + To avoid TLB miss on Goemon. + ゴエモンのTLBミスを回避 + + + + Needed for some games with complex FMV rendering. + 一部の複雑なFMVレンダリングを持つゲームに必要です。 + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + ゲームのハング/フリーズを回避するために、ゲーム内のビデオ/FMV をスキップします。 + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + 次のゲームに影響があることが知られています:Bleach Blade Battlers、Growlanser II および III、Wizardry + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + 汎用タイミングハック 次のゲームに影響を与えることが知られています: Digital Devil Saga, SSX + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + キャッシュのエミュレーションの問題に対して有効です。次のゲームに影響を与えることが知られています:Fire Pro Wrestling Z + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + 次のゲームに影響を与えることが知られています:Mana Khemia 1、Metal Saga、Pilot Down Behind Enemy Lines + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + 正確で低速 次のゲームに影響を与えることが知られています: FIFAストリート2 + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + VIF1 FIFOの先読みをシミュレートします。Test Drive UnlimitedやTransformersなどのゲームに影響を与えることが知られています。 + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + SOCOM 2のHUDおよびSpy Hunterのローディングハング対策 + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + トライエースのゲーム向け:スターオーシャン3、ラジアータ ストーリーズ、ヴァルキリープロファイル2 + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + 一部のゲームでの連続的な再コンパイルを回避します。次のゲームに影響することが知られています:Scarface The World is Yours、Crash Tag Team Racing。 + + + + Forces tight VU0 sync on every COP2 instruction. + すべてのCOP2命令で厳格なVU0同期を強制します。 + + + + Run behind. To avoid sync problems when reading or writing VU registers. + 遅延実行 (VUレジスタの読み取り/書き込み時の同期の問題を回避) + + + + To check for possible float overflows (Superman Returns). + 可能なフロートオーバーフローを確認する (Superman Returns) + + + + Use accurate timing for VU XGKicks (slower). + VU XGKicksに正確なタイミングを使用する(低速)。 + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + 一部のゲームで誤った読み取りを避けるために、内部FPSを計算する別の方法を使用します。 GameList - + Never なし - + Today 今日 - + Yesterday 昨日 - + {}h {}m {}時間 {}分 - + {}h {}m {}s {}時間 {}分 {}秒 - + {}m {}s {}分 {}秒 - + {}s {}秒 - + {} hours {} 時間 - + {} minutes {} 分 + + + Downloading cover for {0} [{1}]... + {0} [{1}] のカバーをダウンロード中... + GameListModel - + Type 種類 - + Code コー​​ド - + Title タイトル - + File Title ファイル名 - + CRC CRC - + Time Played プレイ時間 - + Last Played 最終プレイ日 - + Size サイズ - + Region リージョン - + Compatibility 互換性 @@ -8466,74 +8856,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + ゲームのスキャン + + + Search Directories (will be scanned for games) 検索ディレクトリ (ゲームがスキャンされます) - + Add... 追加... - - - + + + Remove 削除 - + Search Directory 検索ディレクトリ - + Scan Recursively 再帰スキャン - + Excluded Paths (will not be scanned) 除外するパス (スキャンされません) - + Directory... ディレクトリ... - + File... ファイル... - + Scan For New Games 新しいゲームをスキャン - + Rescan All Games すべてのゲームを再スキャン - + + Display + 画面 + + + + + Prefer English Titles + 英語のゲームタイトルのみ表示 + + + + Unchecked + チェックを外す + + + + For games with both a title in the game's native language and one in English, prefer the English title. + 母国語と英語でタイトル表記が異なるゲームに対して、英語表記の表示を優先させる。 + + + Open Directory... ディレクトリを開く... - + Select Search Directory 検索ディレクトリを選択 - + Scan Recursively? 再帰的にスキャンしますか? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8542,12 +8958,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. 再帰的スキャンを行うと、サブディレクトリ内のファイルも検出可能になりますが、通常よりもスキャン時間が長くなります。 - + Select File ファイルを選択 - + Select Directory ディレクトリを選択 @@ -8555,32 +8971,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List ゲームリスト - + Game Grid ゲームグリッド - + Show Titles タイトルを表示 - + All Types すべての種類 - + All Regions すべての地域 - + Search... 検索... @@ -8606,17 +9022,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">作成者: </span>パッチ作成者</p><p>説明はこちら</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>作成者: </strong>%1<br>%2 - + Unknown 不明 - + No description provided. 説明はありません。 @@ -8634,7 +9050,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. パッチを再読み込み - + There are no patches available for this game. このゲームに利用可能なパッチがありません。 @@ -8653,399 +9069,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore 戻す + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + タイトル順でソート: + + + + English Title: + タイトル (英語表記): + + + Path: パス: - + Serial: シリアル番号: - + CRC: CRC: - + Type: 種類: - + PS2 Disc PS2 ディスク - + PS1 Disc PS1 ディスク - + ELF (PS2 Executable) ELF (PS2 用実行ファイル) - + Region: リージョン: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (ブラジル) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (中国) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (香港) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (日本) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (韓国) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (台湾) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (アメリカ) - + Other その他 - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (オーストラリア) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (南アフリカ) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (オーストリア) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (ベルギー) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (ヨーロッパ/オーストラリア) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (フランス) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (フィンランド) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (ドイツ) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (ギリシャ) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (イタリア) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (インド) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (ヨーロッパ/オーストラリア) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (オランダ) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (ノルウェー) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (ポルトガル) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (ポーランド) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (ロシア) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (スペイン) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (スカンジナビア) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (スウェーデン) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (スイス) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (イギリス) - + Compatibility: 互換性: - + Unknown 不明 - + Not Bootable 起動不可 - + Reaches Intro イントロまで - + Reaches Menu メニューまで - + In-Game ゲームの途中まで - + Playable プレイ可能 - + Perfect 完璧 - + Input Profile: 入力プロファイル: - + Shared Refers to the shared settings profile. 共有 - + Disc Path: ディスクパス: - + Browse... 参照... - + Clear クリア - + Verify 検証 - + Search on Redump.org... Redump.org で検索... - + Select Disc Path ディスクパスを選択 - + Game is not a CD/DVD. ゲームは CD/DVD ではありません。 - + Track list unavailable while virtual machine is running. 仮想マシンの実行中はトラックリストを利用できません。 - + # # - + Mode モード - - + + Start スタート - - + + Sectors セクター - - + + Size サイズ - - + + MD5 MD5 - - + + Status ステータス - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error エラー - + Cannot verify image while a game is running. ゲーム実行中にディスクイメージを検証することはできません。 - + One or more tracks is missing. 1 つ以上のトラックがありません。 - + Verified as %1 [%2] (Version %3). %1 [%2] (バージョン %3) として確認されました。 - + Verified as %1 [%2]. %1 [%2] として確認されました。 @@ -9053,62 +9480,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: レンダラー: - + Adapter: アダプター: - + Display 画面 - + Fullscreen Mode: フルスクリーンモード: - + Aspect Ratio: アスペクト比: - + Fit to Window / Fullscreen ウィンドウ / フルスクリーンに合わせる - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) 自動標準 (4:3 インターレース / 3:2 プログレッシブ) - - + + Standard (4:3) 標準 (4:3) - - + + Widescreen (16:9) ワイドスクリーン (16:9) - + FMV Aspect Ratio: FMV アスペクト比: - - - + + + @@ -9118,12 +9545,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. オフ (既定) - - - - - - + + + + + + @@ -9134,92 +9561,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. 自動 (既定) - + None (Interlaced, also used by Progressive) なし (インターレースのまま表示。プログレッシブでも使用) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (上位フィールド優先、ギザギザ) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (下位フィールド優先、ギザギザ) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (上位フィールド優先, フルフレーム) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (下位フィールド優先, フルフレーム) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (上位フィールド優先, 2 フィールドを合成) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (下位フィールド優先, 2 フィールドを合成) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (上位フィールド優先, Bob+Weave に類似) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (下位フィールド優先, Bob+Weave に類似) - + Bilinear Filtering: バイリニアフィルタリング: - - + + None なし - + Bilinear (Smooth) Smooth: Refers to the texture clarity. バイリニア (スムーズ) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. バイリニア (シャープ) - + Vertical Stretch: 垂直方向の拡縮: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9227,355 +9654,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: 切り取り: - + Left: Warning: short space constraints. Abbreviate if necessary. 左: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. 上: - + Right: Warning: short space constraints. Abbreviate if necessary. 右: - + Bottom: Warning: short space constraints. Abbreviate if necessary. 下: - + Screen Offsets スクリーンオフセット - + VSync 垂直同期 - + Show Overscan オーバースキャンを表示 - + Enable Widescreen Patches ワイドスクリーンパッチを有効化 - + Enable No-Interlacing Patches インターレース解除パッチを有効化 - + Anti-Blur アンチブラー - + Ctrl+S Ctrl+S - + Disable Interlace Offset インターレースオフセットを無効化 - + Screenshot Size: スクリーンショットのサイズ: - + Screen Resolution 画面解像度 - + Internal Resolution 内部解像度 - + Internal Resolution (Aspect Uncorrected) 内部解像度 (不正確なアスペクト) - + PNG PNG - + JPEG JPEG - + Quality: 品質: - - + + Rendering レンダリング - + Internal Resolution: 内部解像度: - + Mipmapping: ミップマッピング: - - + + Off オフ - + Basic (Generated Mipmaps) 基本 (生成ミップマップ) - + Full (PS2 Mipmaps) フル (PS2 ミップマップ) - - + + Texture Filtering: テクスチャフィルタリング: - - + + Nearest ニアレストネイバー - - + + Bilinear (Forced) バイリニア (強制) - - + + Bilinear (PS2) バイリニア (PS2) - - + + Bilinear (Forced excluding sprite) バイリニア (スプライト以外強制) - + Trilinear Filtering: トリリニアフィルタリング: - + Off (None) オフ (なし) - + Trilinear (PS2) トリリニア (PS2) - + Trilinear (Forced) トリリニア (強制) - + Anisotropic Filtering: 異方性フィルタリング: - + Dithering: ディザリング: - + Scaled スケール - + Unscaled (Default) 未スケーリング (既定) - + Blending Accuracy: ブレンド精度: - + Minimum 最小 - + Basic (Recommended) 基本 (推奨) - + Medium - + High - + Full (Slow) フル (低速) - + Maximum (Very Slow) 最大 (非常に低速) - + Texture Preloading: テクスチャのプリロード: - + Partial 部分的 - + Full (Hash Cache) フル (ハッシュキャッシュ) - + + Software Rendering Threads: + ソフトウェアレンダリングスレッド: + + + + Skip Draw Range: + Skipdraw 範囲: + + + GPU Palette Conversion GPU パレット変換 - + Manual Hardware Renderer Fixes ハードウェアレンダラーの手動設定を開く - + Spin GPU During Readbacks リードバック中にGPUを回転させる - + Spin CPU During Readbacks リードバック中にCPUを回転させる - - Extra Rendering Threads: - 追加のレンダリングスレッド: - - - + threads スレッド - + Mipmapping ミップマッピング - + Auto Flush オートフラッシュ - + Hardware Fixes ハードウェア修正 - + Force Disabled 強制的に無効 - + Force Enabled 強制的に有効 - + CPU Sprite Render Size: CPU スプライトレンダリングサイズ: - - - + + + 0 (Disabled) @@ -9583,79 +10015,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (無効) - + 1 (64 Max Width) 1 (最大幅 64) - + 2 (128 Max Width) 2 (最大幅 128) - + 3 (192 Max Width) 3 (最大幅 192) - + 4 (256 Max Width) 4 (最大幅 256) - + 5 (320 Max Width) 5 (最大幅 320) - + 6 (384 Max Width) 6 (最大幅 384) - + 7 (448 Max Width) 7 (最大幅 448) - + 8 (512 Max Width) 8 (最大幅 512) - + 9 (576 Max Width) 9 (最大幅 576) - + 10 (640 Max Width) 10 (最大幅 640) - - Skipdraw Range: - Skipdraw 範囲: - - - + Frame Buffer Conversion フレームバッファ変換 - + Disable Depth Emulation 深度エミュレーションを無効化 - + Disable Safe Features セーフ機能を無効化 - + Preload Frame Data フレームデータをプリロード @@ -9663,609 +10090,619 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - テクスチャー・インサイドRT + テクスチャー インサイド RT - + 1 (Normal) 1 (通常) - + 2 (Aggressive) 2 (アグレッシブ) - + Software CLUT Render: ソフトウェア CLUT レンダリング: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPUターゲットCLUT: - - - + + + Disabled (Default) 無効 (既定) - + Enabled (Exact Match) 有効 (完全一致) - + Enabled (Check Inside Target) 有効 (内部ターゲットの確認) - + Upscaling Fixes アップスケーリング修正 - + Half Pixel Offset: ハーフピクセルオフセット: - + Normal (Vertex) 通常 (Vertex) - + Special (Texture) 特殊 (テクスチャ) - + Special (Texture - Aggressive) 特殊 (テクスチャ-アグレッシブ) - + Round Sprite: ラウンドスプライト: - + Half ハーフ - + Full フル - + Texture Offsets: テクスチャオフセット: - + X: X: - + Y: Y: - + Merge Sprite スプライトを統合 - + Align Sprite スプライトを整列 - + Deinterlacing: インターレース解除: - + Sprites Only スプライトのみ - + Sprites/Triangles スプライト/トライアングル - + Blended Sprites/Triangles ブレンド済みスプライト/トライアングル - + Auto Flush: オートフラッシュ: - + Enabled (Sprites Only) 有効 (スプライトのみ) - + Enabled (All Primitives) 有効 (すべてのプリミティブ) - + Texture Inside RT: - テクスチャー・インサイドRT: + テクスチャー インサイド RT: - + Inside Target 内部ターゲット - + Merge Targets ターゲットを結合 - + Disable Partial Source Invalidation 部分ソース無効化の無効化 - + Read Targets When Closing 閉じるときにターゲットを読み込む - + Estimate Texture Region テクスチャ領域を推定 - + Disable Render Fixes レンダリング修正を無効化 - + Unscaled Palette Texture Draws スケールされていないパレットテクスチャの描画 - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. - ワイルドアームズのハック + ワイルドアームズ Hack - + Bilinear Dirty Upscale: バイリニアダーティーアップスケール: - + Force Bilinear 線形補間を強制 - + Force Nearest 最近傍補間を強制 - + Texture Replacement テクスチャ置換 - + Search Directory 検索ディレクトリ - - + + Browse... 参照... - - + + Open... 開く... - - + + Reset リセット - + PCSX2 will dump and load texture replacements from this directory. PCSX2 は、このディレクトリをテクスチャのダンプと読み込みに使います。 - + Options オプション - + Dump Textures テクスチャをダンプ - + Dump Mipmaps ミップマップをダンプ - + Dump FMV Textures FMV テクスチャをダンプ - - - Async Texture Loading - 非同期テクスチャを読み込む - - - + Load Textures テクスチャを読み込む - + Precache Textures テクスチャを事前にキャッシュ - + Post-Processing ポストプロセス - + Sharpening/Anti-Aliasing シャープニング/アンチエイリアシング - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx コントラスト適応型シャープニング: - - + + None (Default) なし (既定) - + Sharpen Only (Internal Resolution) シャープのみ (内部解像度) - + Sharpen and Resize (Display Resolution) シャープとサイズ変更 (ディスプレイ解像度) - + Sharpness: シャープネス: - + FXAA FXAA - + Filters フィルター - + TV Shader: TV シェーダ: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS ダウンサンプリング (4x Rotated グリッドスーパーサンプリング) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS ダウンサンプリング (Nx Automatic グリッドスーパーサンプリング) - + Shade Boost シェーダーブースト - + Brightness: 明るさ: - + Contrast: コントラスト: - Saturation 彩度 - + OSD OSD - + On-Screen Display オンスクリーンディスプレイ - + OSD Scale: OSD スケール: - + Show Indicators インジケーターを表示 - + Show Resolution 解像度を表示 - + Show Inputs 入力を表示 - + Show GPU Usage GPU 使用率を表示 - + Show Settings 設定を表示 - + Show FPS FPS を表示 - + + + Disable Dual-Source Blending + デュアルソースブレンディングを無効化 + + + Disable Shader Cache シェーダーキャッシュを無効化 - + Disable Vertex Shader Expand 頂点シェーダー展開を無効化 - + Show Statistics 統計情報を表示 - + + + Asynchronous Texture Loading + 非同期テクスチャを読み込む + + + + Saturation: + 彩度: + + + Show CPU Usage CPU 使用率を表示 - + Warn About Unsafe Settings 安全でない設定についての警告 - + Show Frame Times フレームタイムを表示 - + Recording 録画 - + Video Dumping Directory ビデオダンプ ディレクトリ - + Capture Setup キャプチャ設定 - + Container: コンテナ: - - + + Codec: コーデック: - - + + Extra Arguments 追加の引数 - + Capture Audio 音声をキャプチャ - + Resolution: 解像度: - + x x - + Auto 自動 - + Capture Video 動画をキャプチャ - + Advanced Advanced here refers to the advanced graphics options. 高度 - + Advanced Options 高度なオプション - + Hardware Download Mode: ハードウェアダウンロードモード: - + Accurate (Recommended) 正確 (推奨) - + Disable Readbacks (Synchronize GS Thread) リードバック無効化 (GS スレッドを同期) - + Unsynchronized (Non-Deterministic) 非同期 (非決定的) - + Disabled (Ignore Transfers) 無効 (転送を無視) - + GS Dump Compression: GS ダンプ圧縮形式: - + Uncompressed 無圧縮 - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames 重複したフレームの表示をスキップ - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10275,69 +10712,63 @@ Swap chain: see Microsoft's Terminology Portal. Blit Swap Chain を使用 - + Disable Threaded Presentation スレッドプレゼンテーションを無効化 - - + + Bitrate: ビットレート: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: 排他的フルスクリーンを許可: - + Disallowed 許可しない - + Allowed 許可 - + Debugging Options デバッグオプション - + Override Texture Barriers: テクスチャバリアをオーバーライド: - + Use Debug Device デバッグデバイスを使用 - - - Disable Dual Source Blending - デュアルソースブレンディングを無効化 - - - + Show Speed Percentages 実行速度パーセントを表示 - + Disable Framebuffer Fetch フレームバッファフェッチを無効化 @@ -10406,8 +10837,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] グローバル設定を使用 [%1] @@ -10459,6 +10890,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked チェックを外す @@ -10518,11 +10950,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. GS ブレンディングユニットのエミュレーションの精度レベルを変更します。<br>設定が高いほど、シェーダー内でブレンドがより正確にエミュレートされますが、速度ペナルティも高まります。<br>Direct3D のブレンディングは、OpenGL/Vulkan に比べて機能が低下していることに注意してください。 + + + Software Rendering Threads + ソフトウェアレンダリングスレッド + Software CLUT Render ソフトウェア CLUT レンダリング + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + テクスチャキャッシュの深度バッファのサポートを無効にします。これにより速度が向上する可能性がありますが、さまざまな不具合が生じる可能性があります。 + This option disables game-specific render fixes. @@ -10574,6 +11016,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. エースコンバット、鉄拳、ソウルキャリバーなど、ナムコのゲームにおけるアップスケーリングの問題 (縦線) を修正します。 + + + Dumps replaceable textures to disk. Will reduce performance. + 置き換え可能なテクスチャをディスクにダンプします。パフォーマンスが低下します。 + + + + Includes mipmaps when dumping textures. + テクスチャをダンプする際に、ミップマップを含めます。 + + + + Allows texture dumping when FMVs are active. You should not enable this. + FMVがアクティブな場合にテクスチャダンプを許可します。これを有効にするべきではありません。 + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + 置換が有効の際のカクつきを軽減するため、ワーカースレッドで置換テクスチャを読み込みます。 + + + + Loads replacement textures where available and user-provided. + ユーザーが提供した利用可能な代替テクスチャを読み込みます。 + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + すべての置換テクスチャをメモリに先読みします。非同期ロードを使用している場合、これは不要です。 + + + + Enables FidelityFX Contrast Adaptive Sharpening. + FidelityFX コントラスト適応シャープを有効にします。 + + + + Determines the intensity the sharpening effect in CAS post-processing. + CASポストプロセッシングにおけるシャープニング効果の強度を決定します。 + + + + Adjusts brightness. 50 is normal. + 明るさを調整します。50 が普通です。 + + + + Adjusts contrast. 50 is normal. + コントラストを調整します。50 が普通です。 + + + + Adjusts saturation. 50 is normal. + 彩度を調整します。50 が普通です。 + Scales the size of the onscreen OSD from 50% to 500%. @@ -10589,11 +11086,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. さまざまな設定と現在の値を表示します。デバッグに役立ちます。 - - - Shows the current controller state of the system in the bottom left corner of the display. - ディスプレイの左下隅にシステムの現在のコントローラーの状態を表示します。 - Displays a graph showing the average frametimes. @@ -10631,7 +11123,7 @@ Swap chain: see Microsoft's Terminology Portal. PCSX2 のリフレッシュレートを現在のモニタまたは画面に合わせるには、このオプションを有効にしてください。垂直同期が不可能な場合(例えば、100%以外の速度で動作している場合)、垂直同期は自動的に無効になります。 - + Integer Scaling 整数スケーリング @@ -10679,7 +11171,7 @@ Swap chain: see Microsoft's Terminology Portal. Selects the format which will be used to save screenshots. JPEG produces smaller files, but loses detail. - スクリーンショットの保存に使用されるフォーマットを選択します。JPEGはより小さいファイルを生成しますが、詳細は失われます。 + スクリーンショットの保存に使用される形式を選択します。JPEG はより小さいファイルを生成しますが、詳細は失われます。 @@ -10720,8 +11212,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen ボーダーレスフルスクリーン @@ -10863,11 +11355,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. 読み込み中に GPU 上で無駄な処理を行い、省電力モードに入るのを防止します。パフォーマンスの向上に寄与するかもしれませんが、電力消費量が大幅に増加します。 - - - Extra Rendering Threads - 追加のレンダリングスレッド - 2 threads @@ -10918,11 +11405,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw 範囲の終了位置 - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - テクスチャキャッシュの 深度バッファのサポートを無効にします。これにより速度が向上する可能性がありますが、さまざまな不具合が生じる可能性があります。 - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11040,7 +11522,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD スケール - + Show OSD Messages OSD メッセージを表示 @@ -11080,6 +11562,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. 内部のグラフィック使用率のカウンターを表示します。デバッグに役立ちます。 + + + Shows the current controller state of the system in the bottom-left corner of the display. + 現在のコントローラー状態をディスプレイの左下に表示します。 + Displays warnings when settings are enabled which may break games. @@ -11133,29 +11620,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + デバッグデバイスを有効化 + + + + Enables API-level validation of graphics commands. + グラフィックコマンドの API レベルの検証を有効にします。 + + + GS Download Mode GS ダウンロードモード - + Accurate 正確 - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. GS ダウンロードのための GS スレッドとホスト GPU との同期をスキップします。これにより、低速のシステムで大幅な速度向上が見込めますが、多くのグラフィック効果が壊れる可能性があります。ゲームが壊れていてこのオプションを有効にしていた場合は、まずこのオプションを無効にしてください。 - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. 既定 - - + + (Default) (既定) @@ -11163,405 +11660,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics グラフィック - + Save Screenshot スクリーンショットを保存 - + Toggle Video Capture ビデオキャプチャの切替 - + Save Single Frame GS Dump シングルフレーム GS ダンプを保存 - + Save Multi Frame GS Dump マルチフレーム GS ダンプを保存 - + Toggle Software Rendering ソフトウェアレンダリングの切替 - + Increase Upscale Multiplier アップスケール倍率を上げる - + Decrease Upscale Multiplier アップスケール倍率を下げる - + Toggle On-Screen Display オンスクリーンディスプレイの切替 - + Cycle Aspect Ratio アスペクト比の切替 - + Aspect ratio set to '{}'. アスペクト比を '{}' に設定しました。 - + Cycle Hardware Mipmapping ハードウェアミップマッピングの切替 - + Hardware mipmapping set to '{}'. ハードウェアミップマッピングを '{}' に設定しました。 - + Cycle Deinterlace Mode インターレース解除モードの切替 - + Deinterlace mode set to '{}'. インターレース解除モードを '{}' に設定しました。 - + Toggle Texture Dumping テクスチャダンプのオンオフ - + Texture dumping is now enabled. - テクスチャのダンプが有効になりました。 + テクスチャダンプが有効になりました。 - + Texture dumping is now disabled. - テクスチャのダンプが無効になりました。 + テクスチャダンプが無効になりました。 - + Toggle Texture Replacements テクスチャ置換のオンオフ - + Texture replacements are now enabled. テクスチャの置換が有効になりました。 - + Texture replacements are now disabled. テクスチャの置換が無効になりました。 - + Reload Texture Replacements テクスチャ置換を再読み込み - + Texture replacements are not enabled. テクスチャの置換が有効になっていません。 - + Reloading texture replacements... テクスチャの置換を再読み込み中... - + Target speed set to {:.0f}%. 目標速度を {:.0f}% に設定しました。 - + Volume: Muted 音量: ミュート - + Volume: {}% 音量: {}% - - Save slot {} selected (last save: {}). - 選択したスロット {} へセーブします。(直近のセーブ: {})。 + + Save slot {0} selected (last save: {1}). + 選択したスロット {0} にセーブします。(直近のセーブ: {1})。 - + Save slot {} selected (no save yet). - 選択したスロット {} へセーブします。(まだセーブしていません)。 + 選択したスロット {} にセーブします。(まだセーブしていません)。 - + No save state found in slot {}. スロット {} にセーブステートが見つかりません。 - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System システム - + Open Pause Menu 一時停止メニューを開く - + Open Achievements List 実績リストを開く - + Open Leaderboards List リーダーボードリストを開く - + Toggle Pause 一時停止 / 再開 - + Toggle Fullscreen フルスクリーンの切替 - + Toggle Frame Limit フレーム制限のオンオフ - + Toggle Turbo / Fast Forward ターボ / 早送りのオンオフ - + Toggle Slow Motion スローモーションのオンオフ - + Turbo / Fast Forward (Hold) ターボ / 早送りの切替 (ホールド) - + Increase Target Speed 目標速度を上げる - + Decrease Target Speed 目標速度を下げる - + Increase Volume 音量を上げる - + Decrease Volume 音量を下げる - + Toggle Mute ミュートのオンオフ - + Frame Advance コマ送り - + Shut Down Virtual Machine 仮想マシンをシャットダウン - + Reset Virtual Machine 仮想マシンをリセット - + Toggle Input Recording Mode 入力記録モードの切替 - - - - + + + + Save States ステートセーブ - + Select Previous Save Slot 前のセーブスロットを選択 - + Select Next Save Slot 次のセーブスロットを選択 - + Save State To Selected Slot 選択中のスロットにステートセーブ - + Load State From Selected Slot 選択したスロットからステートロード - + Save State To Slot 1 スロット 1 にステートセーブ - + Load State From Slot 1 スロット 1 からステートロード - + Save State To Slot 2 スロット 2 にステートセーブ - + Load State From Slot 2 スロット 2 からステートロード - + Save State To Slot 3 スロット 3 にステートセーブ - + Load State From Slot 3 スロット 3 からステートロード - + Save State To Slot 4 スロット 4 にステートセーブ - + Load State From Slot 4 スロット 4 からステートロード - + Save State To Slot 5 スロット 5 にステートセーブ - + Load State From Slot 5 スロット 5 からステートロード - + Save State To Slot 6 スロット 6 にステートセーブ - + Load State From Slot 6 スロット 6 からステートロード - + Save State To Slot 7 スロット 7 にステートセーブ - + Load State From Slot 7 スロット 7 からステートロード - + Save State To Slot 8 スロット 8 にステートセーブ - + Load State From Slot 8 スロット 8 からステートロード - + Save State To Slot 9 スロット 9 にステートセーブ - + Load State From Slot 9 スロット 9 からステートロード - + Save State To Slot 10 スロット 10 にステートセーブ - + Load State From Slot 10 スロット 10 からステートロード @@ -11718,6 +12215,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + 左スティック + + + + Right Analog + 右スティック + + + + Cross + + + + + Square + + + + + Triangle + + + + + Circle + + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + 十字キー 下 + + + + D-Pad Right️ + 十字キー 右️ + + + + D-Pad Up️ + 十字キー 上️ + + + + D-Pad Left️ + 十字キー 左️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + セレクト + + + + Start + スタート + Input Recording Files (*.p2m2) @@ -11745,137 +12332,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour 動作 - + Pause On Focus Loss 非フォーカス時に一時停止 - + Inhibit Screensaver スクリーンセーバーを防止 - + Save State On Shutdown シャットダウン時にステートセーブ - + Pause On Start 起動時に一時停止 - + Confirm Shutdown シャットダウンを確認 - + Create Save State Backups セーブステートのバックアップを作成 - + Enable Discord Presence Discord Presence を有効化 - + Enable Per-Game Settings ゲームごとの設定を有効化 - + Game Display ゲームの表示 - + Start Fullscreen フルスクリーンで開始 - + Double-Click Toggles Fullscreen ダブルクリックでフルスクリーン表示を切替 - + Render To Separate Window 別のウインドウに描画 - + Hide Main Window When Running 実行時にメインウィンドウを非表示 - + Disable Window Resizing ウィンドウのサイズ変更を無効化 - + Hide Cursor In Fullscreen フルスクリーン時にカーソルを非表示 - + Preferences 環境設定 - + Language: 言語: - + Theme: テーマ: - + Automatic Updater 自動更新 - + Update Channel: 更新チャンネル: - + Current Version: 現在のバージョン: - + Enable Automatic Update Check 自動更新チェックを有効化 - + Check for Updates... 更新を確認... @@ -12068,7 +12655,7 @@ Right click to clear binding Discord のプロフィールにプレイ中のゲームを表示します。 - + System Language [Default] システム言語 [Default] @@ -12125,14 +12712,14 @@ Right click to clear binding - - + + Change Disc ディスク変更 - + Load State ステートロード @@ -12637,13 +13224,13 @@ Right click to clear binding - + Start Big Picture Mode Big Picture モードを開始 - + Big Picture In Toolbar Big Picture @@ -12655,7 +13242,7 @@ Right click to clear binding - + Show Advanced Settings 高度な設定の表示 @@ -12666,7 +13253,7 @@ Right click to clear binding - + Video Capture ビデオキャプチャ @@ -12681,27 +13268,27 @@ Right click to clear binding パッチを編集... - + Internal Resolution 内部解像度 - + %1x Scale %1x 倍 - + Select location to save block dump: ブロックダンプの保存場所を選択: - + Do not show again 再度表示しない - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12714,168 +13301,173 @@ PCSX2 チームは、これらの設定を変更するためのサポートを 続行しますか? - + %1 Files (*.%2) %1 ファイル (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: %1 としてログインしました(%2、%3 ソフトコア)。未読メッセージが %4 件あります。 + + + Confirm Shutdown シャットダウンの確認 - + Are you sure you want to shut down the virtual machine? 仮想マシンをシャットダウンしてもよろしいですか? - + Save State For Resume ステートセーブして中断 - - - - - - + + + + + + Error エラー - + You must select a disc to change discs. ディスクを変更するにはディスクを選択する必要があります。 - + Properties... プロパティ... - + Open Containing Directory... Refers to the directory where a game is contained. ファイルの場所を開く… - + Set Cover Image... カバー画像を選択... - + Exclude From List リストから除外 - + Reset Play Time プレイ時間をリセット - + Default Boot 既定の起動 - + Fast Boot 急速起動 - + Full Boot フル起動 - + Boot and Debug 起動とデバッグ - + Add Search Directory... 検索ディレクトリを追加... - + Start File ファイルを起動 - + Start Disc ディスクを起動 - + Select Disc Image ディスクイメージを選択 - + Updater Error 更新エラー - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>GitHub の公式リリースではない PCSX2 のバージョンを更新しようとしています。申し訳ありませんが、非互換性を防ぐため、自動アップデートは公式ビルドでのみ有効になっています。</p><p>公式ビルドを入手するには、以下のリンクからダウンロードしてください:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. 現在のプラットフォームでは、自動更新はサポートされていません。 - + Confirm File Creation ファイル作成の確認 - + The pnach file '%1' does not currently exist. Do you want to create it? - The pnach file '%1' does not currently exist. Do you want to create it? + pnach ファイル '%1' は現在存在しません。作成しますか? - + Failed to create '%1'. '%1' の作成に失敗しました。 - + Input Recording Files (*.p2m2) 入力記録ファイル (*.p2m2) - + Paused 一時停止中 - + Load State Failed ステートロードに失敗 - + Cannot load a save state without a running VM. 実行中の VM が無いため、ステートロードできません。 - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? + 新しい ELF は仮想マシンをリセットしないとロードできません。今すぐ仮想マシンをリセットしますか? - + Cannot change from game to GS dump without shutting down first. - Cannot change from game to GS dump without shutting down first. + 最初にシャットダウンしないと、ゲームから GS ダンプに変更できません。 - + Failed to get window info from widget ウィジェットからウィンドウ情報を取得できませんでした @@ -12890,97 +13482,97 @@ PCSX2 チームは、これらの設定を変更するためのサポートを すべてのファイル形式 (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Big Picture モードを停止 - + Exit Big Picture In Toolbar Big Picture を終了 - + Game Properties ゲームのプロパティ - + Game properties is unavailable for the current game. 現在のゲームではゲームのプロパティが利用できません。 - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. CD/DVD-ROM デバイスが見つかりませんでした。ドライブが接続されていて、アクセスするための十分な権限があることを確認してください。 - + Select disc drive: ディスクドライブを選択: - + This save state does not exist. このセーブステートは存在しません。 - + Select Cover Image カバー画像を選択 - - All Cover Image Types (*.jpg *.jpeg *.png) - カバー画像 (*.jpg *.jpeg *.png) - - - + Cover Already Exists カバー画像は既に存在します - + A cover image for this game already exists, do you wish to replace it? このゲームのカバー画像は既に存在します。置換しますか? - - - - + + + + Copy Error コピーエラー - + Failed to remove existing cover '%1' カバー画像 '%1' の削除に失敗しました - + Failed to copy '%1' to '%2' '%1' から '%2' へのコピーに失敗しました - + Failed to remove '%1' '%1' の削除に失敗しました - - + + Confirm Reset リセットの確認 - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + すべてのカバー画像形式 (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. - You must select a different file to the current cover image. + 現在のカバー画像とは別のファイルを選択する必要があります。 - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12989,12 +13581,12 @@ This action cannot be undone. この操作は元に戻せません。 - + Load Resume State 中断ステートから再開 - + A resume save state was found for this game, saved at: %1. @@ -13007,70 +13599,70 @@ Do you want to load this state, or start from a fresh boot? これをロードしますか? 使用せずに通常起動しますか? - + Fresh Boot 通常起動 - + Delete And Boot 削除して起動 - + Failed to delete save state file '%1'. セーブステートファイル '%1' の削除に失敗しました。 - + Load State File... ステートファイルを読み込む... - + Load From File... ファイルから読み込む... - - + + Select Save State File セーブステートファイルを選択 - - + + Save States (*.p2s) セーブステート (*.p2s) - + Delete Save States... セーブステートを削除... - + Undo Load State ステートロードを取り消す - + Resume (%2) 再開 (%2) - + Load Slot %1 (%2) スロット %1 (%2) をロード - - + + Delete Save States セーブステートを削除 - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13079,42 +13671,42 @@ The saves will not be recoverable. 一度削除したセーブステートは復元できなくなります。 - + %1 save states deleted. %1 個のセーブステートを削除しました。 - + Save To File... ファイルにセーブ... - + Empty - + Save Slot %1 (%2) スロット %1 (%2) にセーブ - + Confirm Disc Change ディスク交換の確認 - + Do you want to swap discs or boot the new image (via system reset)? ディスクを交換しますか?それとも、新しいディスクを (システムリセットを介して) 起動しますか? - + Swap Disc ディスク交換 - + Reset リセット @@ -13122,8 +13714,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. メモリーカード '{}' をストレージに保存しました。 @@ -13204,6 +13796,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 標準のメモリーカードよりも 2 倍大きいです。互換性の問題がある可能性があります。 @@ -13254,11 +13847,6 @@ The saves will not be recoverable. Cannot Convert Memory Card メモリーカードを変換できません - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 標準のメモリーカードの 2 倍の容量がありますが、互換性の問題が発生する可能性があります。 - MemoryCardCreateDialog @@ -13274,7 +13862,7 @@ The saves will not be recoverable. <html><head/><body><p><span style=" font-weight:700;">Create Memory Card</span><br />Enter the name of the Memory Card you wish to create, and choose a size. We recommend either using 8MB Memory Cards, or folder Memory Cards for best compatibility.</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">メモリーカードの作成</span><br />作成するメモリーカードの名前を入力し、サイズを選択します。互換性を最大限に高めるために、8MB メモリーカードまたはフォルダー式メモリーカードを使用することをお勧めします。</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">メモリーカードの作成</span><br />作成するメモリーカードの名前を入力し、サイズを選択します。互換性を最大限に高めるために、8MB メモリーカードまたはフォルダー式メモリーカードの使用をお勧めします。</p></body></html> @@ -13384,103 +13972,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports コンソールポート - + Memory Cards メモリーカード - + Folder: フォルダー: - + Browse... 参照... - + Open... 開く... - + Reset リセット - + Name 名前 - + Type 種類 - + Formatted フォーマット済み - + Last Modified 最終更新日 - + Refresh 更新 - + + Create 作成 - + Duplicate 複製 - + Rename 名前の変更 - + Convert 変換 - + Delete 削除 - + Settings 設定 - + Automatically manage saves based on running game 実行中のゲームに基づいてセーブを自動管理する - + Auto-eject Memory Cards when loading save states セーブステートをロードするときにメモリーカードを自動的に取り出す @@ -13650,58 +14239,58 @@ This action cannot be reversed, and you will lose any saves on the card.メモリ - + Copy Address アドレスをコピー - + Go to in disassembly 逆アセンブラ画面で表示 - - + + Go to address アドレスに移動 - + Show as 1 byte 1バイトで表示 - + Show as 2 bytes 2バイトで表示 - + Show as 4 bytes 4バイトで表示 - + Show as 8 bytes 8バイトで表示 - + Copy Byte バイトデータをコピー - + Copy Segment セグメントをコピー - + Copy Character 文字をコピー - + Paste 貼り付け @@ -13751,10 +14340,15 @@ This action cannot be reversed, and you will lose any saves on the card.作成者名を入力 - + Input Recording Files (*.p2m2) 入力記録ファイル (*.p2m2) + + + Select a File + ファイルを選択 + Pad @@ -13950,6 +14544,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. アナログスティックの遊び幅、つまり無視されるスティックの動きの割合を設定します。 + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13966,14 +14570,14 @@ This action cannot be reversed, and you will lose any saves on the card.ボタン/トリガーの遊び幅 (閾値) を設定します。遊び幅未満の入力は無視されます。 - - Analog light is now on for port {} / slot {} - ポート {} / スロット {} のアナログライトがオンになりました + + Analog light is now on for port {0} / slot {1} + ポート {0} / スロット {1} のアナログライトがオンになりました - - Analog light is now off for port {} / slot {} - ポート {} / スロット {} のアナログライトがオフになりました + + Analog light is now off for port {0} / slot {1} + ポート {0} / スロット {1} のアナログライトがオフになりました @@ -14020,13 +14624,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - コントローラー端子 {}、スロット {} には {} が接続されていますが、セーブステートには {} が記録されています。 -元のコントローラータイプを接続したままにしますが、問題が発生する可能性があります。 - Strum Up @@ -14097,40 +14694,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar ギター + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + コントローラー端子 {0}、スロット {1} には {2} が接続されていますが、セーブステートには {3} が記録されています。 +元のコントローラータイプを接続したままにしますが、問題が発生する可能性があります。 + Patch - + Failed to open {}. Built-in game patches are not available. {} を開けませんでした。内蔵のゲームパッチが利用できません。 - + {} GameDB patches {} GameDBパッチ - + {}{} game patches {}{} ゲームパッチ - + {}{} cheat patches {}{} チートパッチ - + {} are active. {} はアクティブです。 - + No cheats or patches (widescreen, compatibility or others) are found / enabled. チートまたはパッチ (ワイドスクリーン、互換性など) が見つからないか、有効化されていません。 + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 は、仮想 PS2 に接続された EyeToy カメラをエミュレートするためにカメラを使用します + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 は、仮想 PS2 に接続された USB マイクをエミュレートするためにマイクを使用します + + QObject @@ -14148,13 +14768,13 @@ The URL was: %1 該当 URL: %1 - + HDD Creator HDD の作成 - + Failed to create HDD image HDD イメージの作成に失敗しました @@ -14359,7 +14979,6 @@ pcsx2.net からPCSX2 {} をダウンロードし、メモリーカードにデ SettingWidgetBinder - @@ -14384,11 +15003,11 @@ pcsx2.net からPCSX2 {} をダウンロードし、メモリーカードにデ %1 Do you want to create this directory? - The chosen directory does not currently exist: + 選択したディレクトリは現在存在しません: %1 -Do you want to create this directory? +このディレクトリを作成しますか? @@ -14409,279 +15028,282 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + グローバル設定を使用 [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + グローバル設定を使用 [Disabled] + + + + + Use Global Setting [%1] + グローバル設定を使用 [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 設定 - + Restore Defaults - 初期設定に戻す + 初期設定を復元 - + Copy Global Settings グローバル設定をコピー - + Clear Settings - 設定をクリア + 設定の消去 - + Close 閉じる - - - Summary - 概要 - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>概要</strong><hr>このページは選択されたゲームの詳細を表示します。入力プロファイルを変更すると、このゲームのコントローラーの割り当てがデフォルトの(共有)設定ではなく、選択されたプロファイルに設定されます。トラックリストとダンプの検証は、あなたのディスクイメージが既知の良好なダンプと一致するかどうかを判断するために使用できます。一致しない場合、ゲームが壊れている可能性があります。 - + + + Summary + 概要 + + + Summary is unavailable for files not present in game list. ゲームリストに存在しないファイルの概要は利用できません。 - + Interface インターフェース - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>インターフェース設定</strong><hr>これらのオプションは、ソフトウェアの外観や動作を制御します。<br><br>オプションにマウスカーソルをかざすと、追加情報が表示されます。 - + Game List ゲームリスト - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>ゲームリスト設定</strong><hr>上記のリストは、PCSX2でゲームリストを作成するために検索されるディレクトリです。 検索ディレクトリは、追加、削除、再帰/非再帰に切り替えることができます。 - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS 設定</strong><hr>ここで BIOS 設定を行ってください。<br><br>オプションにマウスカーソルをかざすと、追加情報が表示されます。 - + Emulation エミュレーション - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>エミュレーション設定</strong><hr>これらのオプションは、フレームペーシングとゲーム設定の構成を決定します。<br><br>オプションにマウスカーソルをかざすと、追加情報が表示されます。 - + Patches パッチ - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>パッチ</strong><hr>このセクションでは、ゲームに適用する任意のパッチを選択でき、パフォーマンス、視覚、またはゲームプレイの改善を提供します。 - + Cheats チート - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - <strong>チート</strong><hr>このセクションでは、どのチートを有効にするか選択できます。 ラベルのない古い形式の pnach ファイルはチートの有効/無効を切り替えることはできません。メインチート有効化オプションがチェックされている場合、チートは自動的に有効になります。 + <strong>チート</strong><hr>このセクションでは、どのチートを有効にするか選択できます。ラベルのない古い形式の pnach ファイルではチートの有効/無効を切り替えることはできません。「チートを有効化」にチェックが入っていれば、チートは自動的に有効になります。 - + Game Fixes ゲーム修正 - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>ゲーム修正設定</strong><hr>ゲーム修正は、タイトルによっては不正なエミュレーションを回避することができます。<br>しかし、使い方を誤ると、ゲームに問題を引き起こす可能性もあります。<br>特にアドバイスがない限り、すべて無効にしておくのが無難です。 - + Graphics グラフィック - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>描画設定</strong><hr>描画出力の構成を決定します。<br><br>オプションにマウスカーソルをかざすと、追加情報が表示されます。 - + Audio - 音声 + 音声出力 - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>音声設定</strong><hr>コンソールのオーディオ出力を制御します。<br><br>オプションにマウスカーソルをかざすと、追加情報が表示されます。 - + Memory Cards メモリーカード - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>メモリカード設定</strong><hr>メモリカードの作成と管理を行います。<br><br>オプションにマウスカーソルをかざすと、追加情報が表示されます。 - + Network & HDD ネットワークと HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>ネットワークと HDD 設定</strong><hr>コンソールのネットワーク接続と内蔵 HDD ストレージを制御します。<br><br>オプションにマウスカーソルをかざすと、追加情報が表示されます。 - + Folders フォルダー - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - <strong>フォルダー設定</strong><hr> PCSX2 のランタイムデータファイルの保存場所を設定します。 + <strong>フォルダー設定</strong><hr>PCSX2 のランタイムデータファイルの保存場所を設定します。 - + Achievements 実績 - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>実績の設定</strong><hr>これらのオプションは、PCSX2 に実装されている RetroAchievements を制御し、ゲームで実績を獲得できるようにします。 - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration が使用されているため、組み込みの RetroAchievements サポートは無効になっています。 - + Advanced 高度 - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>高度な設定</strong><hr>仮想 PS2 の構成を決定するための高度なオプションです。<br><br>オプションにマウスカーソルをかざすと、追加情報が表示されます。 - + Debug デバッグ - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>デバッグ設定</strong><hr>アプリケーションの内部情報を記録するためのオプションです。<strong>何をしているのか理解できないのであれば、決して変更しないでください。</strong>大幅な処理速度の低下を引き起こし、大量のディスクスペースを浪費する可能性があります。 - + Confirm Restore Defaults - 初期設定への復元を確認 + 初期設定の復元に対する意思確認 - + Are you sure you want to restore the default settings? Any preferences will be lost. 既定の設定を復元してもよろしいですか?すべての設定は失われます。 - + Reset UI Settings UI の設定をリセット - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. Do you want to continue? - The configuration for this game will be replaced by the current global settings. + このゲームの設定は現在のグローバル設定に置き換えられます。 -Any current setting values will be overwritten. +現在の設定値は上書きされます。 -Do you want to continue? +続行しますか? - + Per-game configuration copied from global settings. - Per-game configuration copied from global settings. + ゲームごとの設定がグローバル設定からコピーされました。 - + The configuration for this game will be cleared. Any current setting values will be lost. Do you want to continue? - The configuration for this game will be cleared. + このゲームプロパティを消去します。 -Any current setting values will be lost. +現在の設定値は失われます。 -Do you want to continue? +続行しますか? - + Per-game configuration cleared. - Per-game configuration cleared. + ゲームプロパティを消去しました。 - + Recommended Value 推奨値 - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - グローバル設定を使用 [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - グローバル設定を使用 [Disabled] - - - - - Use Global Setting [%1] - グローバル設定を使用 [%1] - SetupWizardDialog @@ -14767,8 +15389,8 @@ Do you want to continue? - Open in Explorer... - エクスプローラーで開く... + Open BIOS Folder... + BIOS フォルダーを開く... @@ -15035,97 +15657,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. 待機の種類 - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. 実行 - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. 待機 - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. なし - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. ウェイクアップ要求 - + SEMAPHORE Refers to a Thread Wait State in the Debugger. セマフォ - + SLEEP Refers to a Thread Wait State in the Debugger. スリープ - + DELAY Refers to a Thread Wait State in the Debugger. 遅延 - + EVENTFLAG Refers to a Thread Wait State in the Debugger. イベントフラグ - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15331,6 +15953,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. クロスヘア画像を上に設定します。 + + + %.0f%% + %.0f%% + Cursor Color @@ -15362,6 +15989,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. CRT の曲率をシミュレートするために位置をスケールします。 + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15377,6 +16010,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. シミュレートされた画面の水平方向の中心位置を設定します。 + + + + %.0fpx + %.0fpx + Center Y @@ -15397,6 +16036,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. シミュレートされた画面の幅を設定します。 + + + + %dpx + %dpx + Screen Height @@ -15452,6 +16097,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. ホスト入力デバイスへのレイテンシーを指定します。 + + + + + + + %dms + %dms + Output Latency @@ -15652,6 +16306,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + オフ + + + + Low + + + + + Medium + + + + + High + + Steering Smoothing @@ -15662,6 +16336,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. ステアリングの変化をポーリングごとに指定された割合まで滑らかにします。キーボード使用時に必要です。 + + + + %d%% + %d%% + Steering Deadzone @@ -16161,117 +16841,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints ヒント - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. 最新の 900 度ホイールのステアリングをバインドするには、ホイールを任意の方向に 1 回転させてから、再び中心に戻します。 - + Force Feedback フォースフィードバック - + D-Pad 十字キー - + Down - + Left - + Up - + Right - + L1 L1 - + L2 L2 - + Brake ブレーキ - + Steering Left ステアリング 左 - + Steering Right ステアリング 右 - + Select セレクト - + Start スタート - + Face Buttons △、◯、✕、□ボタン - + Circle - + Cross - + Triangle - + Square - + R1 R1 - + R2 R2 - + Accelerator アクセル @@ -16279,67 +16959,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints ヒント - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. 最新の 900 度ホイールのステアリングをバインドするには、ホイールを任意の方向に 1 回転させてから、再び中心に戻します。 - + Force Feedback フォースフィードバック - + X X - + A A - + Brake ブレーキ - + Steering Left ステアリング 左 - + Steering Right ステアリング 右 - + Left Paddle 左パドル - + Right Paddle 右パドル - + Y Y - + B B - + Accelerator アクセル @@ -16347,71 +17027,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons ボタン - + A A - + C C - + Start スタート - + Select セレクト - + B B - + D-Pad 十字キー - - + + Down - - + + Left - - + + Up - - + + Right - + Pointer Setup ポインタの設定 - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16420,29 +17100,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>コントローラー、またはマウスの代わりにコントローラーをシミュレートするライトガンを使用したい場合は、それを相対照準にバインドする必要があります。 それ以外の場合、相対照準はバインドされないままにしておく必要があります。</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 相対照準 - - + + Trigger トリガー - + Shoot Offscreen オフスクリーンを撮影 - + Calibration Shot キャリブレーションショット - + Calibration shot is required to pass the setup screen in some games. 一部のゲームではセットアップ画面を通過するためにキャリブレーションショットが必要です。 @@ -16450,27 +17130,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type デバイスの種類 - + Bindings 割り当て - + Settings 設定 - + Automatic Mapping 自動マッピング - + Clear Mapping マッピングをクリア @@ -16508,32 +17188,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. セーブステート {} のバックアップに失敗しました。 - + Failed to save save state: {}. {} のステートセーブに失敗しました。 - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game 不明なゲーム - + Error エラー - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16550,197 +17230,217 @@ Please consult the FAQs and Guides for further instructions. 詳しくはFAQとガイドをご覧ください。 - + + Resuming state + ステートから再開中 + + + State saved to slot {}. スロット {} にステートセーブしました。 - + Failed to save save state to slot {}. スロット {} へのステートセーブに失敗しました。 - + + + Loading state + ステートロード中 + + + There is no save state in slot {}. スロット {} にセーブステートがありません。 - + Loading state from slot {}... スロット {} からステートロード中... - + Saving state to slot {}... スロット {} にステートセーブ中… - + + Frame advancing + コマ送り + + + Disc removed. ディスクを取り出しました。 - + Disc changed to '{}'. ディスクを '{}' に変更しました。 - - Failed to open new disc image '{}'. Reverting to old image. - 新しいディスクイメージ'{}' が開けませんでした 。古いイメージに戻します。 + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + 新しいディスクイメージ '{}' が開けませんでした 。古いイメージに戻します。 +エラー: {} - - Failed to switch back to old disc image. Removing disc. - 古いディスクイメージに切り替えることができませんでした。ディスクを取り出します。 + + Failed to switch back to old disc image. Removing disc. +Error was: {} + 古いディスクイメージに切り替えることができませんでした。ディスクを取り出します。 +エラー: {} - + Cheats have been disabled due to achievements hardcore mode. 実績ハードコアモードによりチートが無効になりました。 - + Fast CDVD is enabled, this may break games. 高速 CDVD が有効になっているため、ゲームが壊れる可能性があります。 - + Cycle rate/skip is not at default, this may crash or make games run too slow. サイクルレート/スキップが既定値ではないため、ゲームのクラッシュや、動作が遅くなる可能性があります。 - + Audio is using async mix, expect desynchronization in FMVs. オーディオは非同期ミックスを使用しており、FMV での非同期が予想されます。 - + Upscale multiplier is below native, this will break rendering. アップスケール乗数がネイティブを下回ると、レンダリングが破壊されます。 - + Mipmapping is not set to automatic. This may break rendering in some games. ミップマッピングが自動に設定されていません。一部のゲームでレンダリングが壊れる可能性があります。 - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. テクスチャフィルタリングが Bilinear (PS2) に設定されていません。一部のゲームでレンダリングが壊れます。 - + Trilinear filtering is not set to automatic. This may break rendering in some games. トリリニアフィルタリングが自動に設定されていません。一部のゲームでレンダリングが壊れる可能性があります。 - + Blending is below basic, this may break effects in some games. ブレンドは基本を下回っており、一部のゲームではエフェクトが壊れる可能性があります。 - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. ハードウェアダウンロードモードが「正確」に設定されていません。ゲームによってはレンダリングが壊れる可能性があります。 - + EE FPU Round Mode is not set to default, this may break some games. EE FPU ラウンドモードが既定値に設定されていないため、一部のゲームが壊れる可能性があります。 - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU クランプモードが既定値に設定されていないため、一部のゲームが壊れる可能性があります。 - + VU Round Mode is not set to default, this may break some games. VU ラウンドモードが既定値に設定されていないため、一部のゲームが壊れる可能性があります。 - + VU Clamp Mode is not set to default, this may break some games. VU クランプモードが既定値に設定されていないため、一部のゲームが壊れる可能性があります。 - + Game Fixes are not enabled. Compatibility with some games may be affected. ゲーム修正が有効になっていません。一部のゲームの互換性が影響を受ける可能性があります。 - + Compatibility Patches are not enabled. Compatibility with some games may be affected. 互換性パッチが有効になっていません。一部のゲームの互換性が影響を受ける可能性があります。 - + Frame rate for NTSC is not default. This may break some games. NTSC のフレームレートが既定値ではありません。一部のゲームが壊れる可能性があります。 - + Frame rate for PAL is not default. This may break some games. PAL のフレームレートが既定値ではありません。一部のゲームが壊れる可能性があります。 - + EE Recompiler is not enabled, this will significantly reduce performance. EE リコンパイラが有効になっていないため、パフォーマンスが大幅に低下します。 - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 リコンパイラが有効になっていないため、パフォーマンスが大幅に低下します。 - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 リコンパイラが有効になっていないため、パフォーマンスが大幅に低下します。 - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP リコンパイラが有効になっていないため、パフォーマンスが大幅に低下します。 - + EE Cache is enabled, this will significantly reduce performance. EE キャッシュが有効になっているため、パフォーマンスが大幅に低下します。 - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection が有効になっていないため、パフォーマンスが低下する可能性があります。 - + INTC Spin Detection is not enabled, this may reduce performance. INTC スピン検出が有効になっていません。パフォーマンスが低下する可能性があります。 - + Instant VU1 is disabled, this may reduce performance. インスタント VU1 が無効になっているため、パフォーマンスが低下する可能性があります。 - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack が有効になっていません。これはパフォーマンスを低下させることがあります。 - + GPU Palette Conversion is enabled, this may reduce performance. GPU パレット変換が有効になっています。パフォーマンスが低下を招く可能性があります。 - + Texture Preloading is not Full, this may reduce performance. テクスチャのプリロードが Full ではありません。これによりパフォーマンスが低下する可能性があります。 - + Estimate texture region is enabled, this may reduce performance. テクスチャ領域の推定が有効になっているため、パフォーマンスが低下する可能性があります。 diff --git a/pcsx2-qt/Translations/pcsx2-qt_ko-KR.ts b/pcsx2-qt/Translations/pcsx2-qt_ko-KR.ts index 68883e6309b418..365d35dba6fdfa 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_ko-KR.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_ko-KR.ts @@ -80,32 +80,38 @@ 준비... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>레트로어치브먼트 로그인 토큰이 더 이상 유효하지 않습니다.</strong> 도전 과제 추적하려면 자격 증명을 다시 입력해야 합니다. 비밀번호는 PCSX2에 저장되지 않으며, 대신 접속 토큰이 생성되어 사용됩니다. - + &Login 로그인(&L) - + Logging in... 로그 기록... - + Login Error 로그인 오류 - - Login failed. Please check your username and password, and try again. - 로그인하지 못했습니다. 사용자 이름과 비밀번호를 확인하고 다시 시도하십시오. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + 로그인하지 못했습니다. +오류 : %1 + +사용자 이름과 비밀번호를 확인한 후 다시 시도하세요. - + Login failed. 로그인하지 못했습니다. @@ -113,268 +119,498 @@ AchievementSettingsWidget - - Global Settings - 전체 설정 - - - - + + Enable Achievements 도전 과제 활성화 - - - Show Challenge Indicators - 도전 과제 표시 - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - 레트로어치브먼트 활동 상태 활성화 - - - - + + Enable Hardcore Mode 하드코어 모드 활성화 - - - Enable Leaderboards - 순위표 활성화 - - - + Test Unofficial Achievements 비공식 도전 과제 테스트 - - - Enable Test Mode - 테스트 모드 활성화 - - - - + + Enable Sound Effects 음향 효과 활성화 - + Notifications 공지 - - - Show Notifications - 알림 표시 - - - - Duration - 기간 - - - - - - + + 5 seconds 5초 - + Account 계정 - - + + Login... 로그인... - + View Profile... 프로필 보기... - + + Settings + 설정 + + + + + Enable Spectator Mode + 관전자 모드 활성화 + + + + + Enable Encore Mode + 앙코르 모드 활성화 + + + + + Show Achievement Notifications + 도전 과제 알림 표시 + + + + + Show Leaderboard Notifications + 순위표 알림 표시 + + + + + Enable In-Game Overlays + 인게임 오버레이 활성화 + + + + Username: +Login token generated at: + 사용자 이름 : +생성된 로그인 토큰입니다: + + + Game Info 게임 정보 - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2는 도전 과제 데이터베이스와 진행 상황 추적을 위해 레트로어치브먼트를 사용합니다. 도전 과제를 이용하시고자 하신다면 <a href="https://retroachievements.org/">retroachievements.org</a>에 계정을 등록하십시오.</p><p align="justify">게임 내에서 도전 과제 목록을 보려면 <span style=" font-weight:600;">일시 정지 메뉴 열기</span> 단축키를 누르고 메뉴에서 <span style=" font-weight:600;">도전 과제</span>를 선택하세요.</p></body></html> + - seconds - - - - - + + - - Unchecked 선택 안 함 - - When enabled and logged in, PCSX2 will scan for achievements on game load. - 이 기능을 활성화하고 로그인하면 PCSX2가 게임 로딩 시, 도전 과제를 검색합니다. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. 활성화하면 PCSX2는 모든 도전 과제가 잠긴 것으로 간주하고 잠금 해제 알림을 서버로 보내지 않습니다. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. 이 옵션을 활성화하면 PCSX2는 비공식 세트의 도전 과제를 나열합니다. 이러한 도전 과제는 레트로어치브먼트에서 추적되지 않으므로 매번 잠금 해제됩니다. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - 활성화하면 현재 활동 상태 정보가 수집되어 지원가능한 레트로어치브먼트 서버로 전송됩니다. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. 순위표 추적을 포함한 도전 과제를 위한 "도전" 모드. 상태 저장, 치트, 속도 저하 기능을 비활성화합니다. - - - - + + + + Checked 선택 - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - 지원되는 게임에서 순위표를 추적하고 제출할 수 있습니다. 순위표가 비활성화되어 있어도 순위표와 점수는 계속 볼 수 있지만 점수는 등록되지 않습니다. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - 도전 과제 잠금 해제 및 순위표 제출과 같은 이벤트에 대한 팝업 메시지를 표시합니다. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. 도전 과제 잠금 해제 및 순위표 제출과 같은 이벤트에서 음향 효과를 재생합니다. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. 도전 과제/프라임 도전 과제가 활성화되어 있으면 화면 오른쪽 하단에 아이콘이 표시됩니다. - - - - Notification Duration - 공지 기간 + + When enabled and logged in, PCSX2 will scan for achievements on startup. + 활성화하고 로그인하면 PCSX2가 시작 시, 도전 과제를 검색합니다. + + + + Displays popup messages on events such as achievement unlocks and game completion. + 도전 과제 잠금 해제 및 게임 완료와 같은 이벤트에 대한 팝업 메시지를 표시합니다. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + 순위표 도전을 시작, 제출 또는 실패할 때 팝업 메시지를 표시합니다. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - 도전 과제 팝업 알림이 화면에 표시되는 시간(초)을 설정할 수 있습니다. + + When enabled, each session will behave as if no achievements have been unlocked. + 활성화하면 각 세션은 잠금 해제된 도전 과제가 없는 것처럼 작동합니다. - + Reset System 시스템 초기화 - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? 하드코어 모드는 시스템을 초기화할 때까지 활성화되지 않습니다. 지금 시스템을 초기화하시겠습니까? + + + + %n seconds + + %n초 + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. 사용자 이름 : %1 로그인 토큰이 생성된 %2. - + Logout 로그아웃 - + Not Logged In. 로그인하지 않았습니다. - - - %1 seconds - %1초 - Achievements - + Hardcore mode will be enabled on system reset. 하드코어 모드는 시스템 초기화 시, 활성화됩니다. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. 하드 코어 모드가 활성화되어 있는 동안에는 {0}을(를) 수행할 수 없습니다. 하드코어 모드를 비활성화하시겠습니까? 아니오를 선택하면 {0}이(가) 취소됩니다. - + Hardcore mode is now enabled. 이제 하드코어 모드가 활성화됩니다. - + + {} (Hardcore Mode) + {}(하드코어 모드) + + + + {} (Unofficial) + {}(비공식) + + + + Mastered {} + 마스터리 {} + + + + Leaderboard attempt started. + 순위표 시도가 시작되었습니다. + + + + Leaderboard attempt failed. + 순위표 시도가 실패했습니다. + + + + Your Time: {}{} + 귀하의 시간 : {}{} + + + + Your Score: {}{} + 귀하의 점수 : {}{} + + + + Your Value: {}{} + 귀하의 가치 : {}{} + + + + (Submitting) + (제출) + + + + Achievements Disconnected + 도전 과제 연결 끊김 + + + + An unlock request could not be completed. We will keep retrying to submit this request. + 잠금 해제 요청을 완료하지 못했습니다. 이 요청을 다시 시도해 보겠습니다. + + + + Achievements Reconnected + 도전 과제 다시 연결 + + + + All pending unlock requests have completed. + 보류 중인 모든 잠금 해제 요청이 완료되었습니다. + + + Hardcore mode is now disabled. 이제 하드코어 모드가 비활성화됩니다. - + + Confirm Hardcore Mode + 하드코어 모드 확인 + + + + Active Challenge Achievements + 도전 과제 달성 활성화 + + + (Hardcore Mode) (하드코어 모드) - - You have earned {0} of {1} achievements, and {2} of {3} points. - {1}개의 도전 과제 중 {0}개를 달성했으며, {3} 포인트 중 {2}개를 획득했습니다. + + You have unlocked all achievements and earned {} points! + 모든 도전 과제를 잠금 해제하고 {}점을 획득했습니다! - - This game has no achievements. - 이 게임에는 도전 과제가 없습니다. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + {1} 도전 과제 중 {0}개를 잠금 해제하고 {3}점 중 {2}개를 획득했습니다. + + + + {0} achievements, {1} points + {0} 도전 과제, {1}점 + + + + Your Time: {0} (Best: {1}) + 귀하의 시간 : {0}(최고: {1}) + + + + Your Score: {0} (Best: {1}) + 귀하의 점수 : {0}(최고 : {1}) + + + + Your Value: {0} (Best: {1}) + 귀하의 가치 : {0}(최고 : {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +순위표 위치 : {2}의 {1} + + + + Server error in {0}: +{1} + 서버에 {0} 오류가 발생 : +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + 점수 : {0}({1}소프트코어) +읽지 않은 메시지 : {} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + {1}개의 도전 과제 중 {0}개를 잠금 해제하여 획득 가능한 점수 {3}개 중 {2}개를 획득했습니다. + + + + Unknown + 알 수 없음 + + + + Locked + 잠금 + + + + Unlocked + 잠금 해제됨 + + + + Unsupported + 지원되지 않음 + + + + Unofficial + 비공식 + + + + Recently Unlocked + 최근 잠금 해제 + + + + Active Challenges + 도전 활성화 + + + + Almost There + 거의 완료 + + + + {} points + {}점 + + + + {} point + {}점 + + + + XXX points + XXX점 + + + + Unlocked: {} + 잠금 해제 : {} + + + + This game has {} leaderboards. + 이 게임에는 {}개의 순위표가 있습니다. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + 하드코어 모드가 꺼져 있으므로 점수 제출이 불가능합니다. 순위표는 읽기 전용입니다. + + + + Show Best + 최고점 표시 + + + + Show Nearby + 주변 표시 + + + + Rank + 순위 + + + + Name + 이름 - - Leaderboard submission is enabled. - 순위표 제출이 활성화되었습니다. + + Time + 시간 + + + + Score + 점수 - + + Value + + + + + Date Submitted + 제출일 + + + + Downloading leaderboard data, please wait... + 순위표 데이터를 내려받는 중입니다, 잠시만 기다려주세요... + + + + + Loading... + 불러오는 중… + + + + + Leaderboard download failed + 순위표 내려받기 실패 + + + + This game has no achievements. + 이 게임에는 도전 과제가 없습니다. + + + Failed to read executable from disc. Achievements disabled. 디스크에서 실행 파일을 읽지 못했습니다. 도전 과제가 비활성화 되었습니다. @@ -578,220 +814,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. 이 옵션을 변경하면 게임이 작동하지 않을 수 있습니다. 이러한 설정을 변경한 구성에 대해서는 PCSX2 팀에서 지원을 제공하지 않으므로 사용자 책임 하에 수정하시기 바랍니다. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). 이모션엔진(MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. 라운딩 모드 : - - - + + + Nearest 근린 - - - + + + Negative 부정 - - - + + + Positive 긍정 - - - + + + Chop / Zero (Default) 잘라내기/제로(기본값) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. 클램핑 모드 : - - + + None 없음 - - - + + + Normal (Default) 일반(기본값) - + None ClampMode 없음 - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). 추가 + 보존 기호 - + Full 전체 - + Wait Loop Detection 지연 루프 감지 - - + + Enable Recompiler 리컴파일러 활성화 - + Enable Fast Memory Access 고속 메모리 액세스 활성화 - + Enable Cache (Slow) 캐시 활성화(느림) - + INTC Spin Detection INTC 회전 감지 - + Pause On TLB Miss TLB 실패 시, 일시정지 - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. 벡터 단위(VU) - + VU1 Rounding Mode: VU1 라운딩 모드 : - + mVU Flag Hack mVU 플래그 핵 - + Enable VU1 Recompiler VU1 리컴파일러 활성화 - + Enable VU0 Recompiler (Micro Mode) VU0 리컴파일러 활성화(마이크로 모드) - - + + Extra 기타 - + VU0 Clamping Mode: VU0 클램핑 모드 : - + VU0 Rounding Mode: VU0 라운딩 모드 : - + VU1 Clamping Mode: VU1 클램핑 모드 : - + I/O Processor (IOP, MIPS-I) 입출력 프로세서(IOP, MIPS-I) - + Game Settings 게임 설정 - + Enable Game Fixes 게임 픽스 활성화 - + Enable Compatibility Patches 호환성 패치 활성화 - + Frame Rate Control 프레임 속도 설정 - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. 헤르츠 - + PAL Frame Rate: PAL 프레임 속도 : - + NTSC Frame Rate: NTSC 프레임 속도 : - + PINE Settings PINE 설정 - + Slot: 슬롯 : - + Enable 활성화 @@ -799,182 +1035,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings 시간 연장 설정 - + Sequence Length: 시퀀스 길이 : - + 30 30 - + Seekwindow Size: 탐색 창 크기 : - + 20 20 - + Overlap: 중첩 : - + 10 10 - + Restore Defaults 기본값 복구 - + Volume 음량 - + 100% 100% - + Mixing Settings 혼합 설정 - + Synchronization: 동기화 : - + TimeStretch (Recommended) 시간 연장(권장) - + Async Mix (Breaks some games!) 비동기 혼합(일부 게임 중단!) - + None (Audio can skip.) 없음(음향 건너뛰기 가능) - + Expansion: 확장 : - + Stereo (None, Default) 스테레오(없음, 기본값) - + Quadraphonic - Quadraphonic + 쿼드러포닉 - + Surround 5.1 서라운드 5.1 - + Surround 7.1 서라운드 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. 프로로직 레벨 : - + None (Default) 없음(기본값) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. 프로로직 디코딩(기본) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. 프로로직 II 디코딩(기가헤르츠) - + Target Latency: 목표 대기 시간 : - + 60 ms 0.06초 - + Output Settings 출력 설정 - + Output Module: 출력 모듈 : - + Output Latency: 출력 대기 시간 : - + 20 ms 0.02초 - + Minimal 최소 - + Output Backend: 후단부 출력 : - + Maximum Latency: 최대 대기 시간 : - + Output Device: 출력 장치 : @@ -1162,17 +1398,22 @@ Login token generated on %2. 새 버전 : - + + Download Size: + 내려받기 크기 : + + + Download and Install... 바로 설치... - + Skip This Update 이 업데이트 건너뛰기 - + Remind Me Later 나중에 알림 @@ -1182,17 +1423,17 @@ Login token generated on %2. 업데이트 오류 - + <h2>Changes:</h2> <h2>변경 사항 :</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - <h2>저장 상태 경고</h2><p>이 업데이트를 설치하면 저장 상태가 <b>호환되지 않게</b> 됩니다. 이 업데이트를 설치하기 전에 게임을 메모리 카드에 저장했는지 확인하십시오. 그렇지 않으면 진행 상황이 손실됩니다.</p> + <h2>상태 저장 경고</h2><p>이 업데이트를 설치하면 상태 저장이 <b>호환되지 않게</b> 됩니다. 이 업데이트를 설치하기 전에 게임을 메모리 카드에 저장했는지 확인하십시오. 그렇지 않으면 진행 상황이 손실됩니다.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>설정 경고</h2><p>이 업데이트를 설치하면 프로그램 구성이 초기화됩니다. 이 업데이트 후에는 설정을 다시 구성해야 한다는 점에 유의하세요.</p> @@ -1233,6 +1474,11 @@ Login token generated on %2. + Download Size: %1 MB + 내려받기 크기 : %1MB + + + Loading... 불러오는 중… @@ -1240,63 +1486,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory 바이오스 디렉터리 - + PCSX2 will search for BIOS images in this directory. PCSX2는 이 디렉터리에서 바이오스 이미지를 찾습니다. - + Browse... 찾아보기... - + Reset 초기화 - + BIOS Selection 바이오스 선택 - - Open in Explorer... - 탐색기에서 열기... + + Open BIOS Folder... + 바이오스 폴더 열기... - + Refresh List 목록 새로고침 - + Filename 파일 이름 - + Version 버전 - + Options and Patches 옵션 및 패치 - + Fast Boot 고속 부팅 - + Fast Forward Boot 빨리 감기 부팅 @@ -1424,91 +1670,84 @@ Login token generated on %2. BreakpointModel - + Execute 실행 - - No Condition - 조건 없음 - - - - + + -- -- - - + Enabled 활성화 - - + Disabled 비활성화 - + Read 읽기 - + Write(C) (C) = changes, as in "look for changes". 쓰기(C) - + Write 쓰기 - + TYPE Warning: limited space available. Abbreviate if needed. 유형 - + OFFSET Warning: limited space available. Abbreviate if needed. - 오프셋 + 오프세트 - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. 크기/라벨 - + INSTRUCTION Warning: limited space available. Abbreviate if needed. 지침 - + CONDITION Warning: limited space available. Abbreviate if needed. 조건 - + HITS Warning: limited space available. Abbreviate if needed. 주회수 - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - 활성화 + X @@ -1519,7 +1758,7 @@ Login token generated on %2. 게임 디스크 위치가 이동식 드라이브에 있는 경우 지터링 및 멈춤과 같은 성능 문제가 발생할 수 있습니다. - + Saving CDVD block dump to '{}'. CD/DVD 블록 덤프 저장 위치 '{}'. @@ -1555,32 +1794,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type 가상 컨트롤러 종류 - + Bindings 할당 - + Settings 설정 - + Macros 매크로 - + Automatic Mapping 자동 매핑 - + Clear Mapping 매핑 지우기 @@ -1620,146 +1859,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 십자 버튼 - - - + + + Down - - - + + + Left - - - + + + Up - - - + + + Right - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 좌측 아날로그 - + Large Motor 대형 모터 - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. 시작 - + Select Leave this button name as-is or uppercase it entirely. 선택 - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 페이스 버튼 - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 우측 아날로그 - + Small Motor 소형 모터 - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier 압력 조절기 - + Analog 아날로그 @@ -1767,77 +2006,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - 양식 - - - + Yellow 노랑 - - - - - - - - - - - + + + + + + + + + + + PushButton 푸시버튼 - + Start 시작 - + Red 빨강 - + Green 초록 - + Orange 주황 - + Select 선택 - + Strum Up 스트럼 업 - + Strum Down 스트럼 다운 - + Blue 파랑 - + Whammy Bar 와미바 - + Tilt 기울기 @@ -1863,123 +2097,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL 입력 소스 - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). SDL 입력 소스는 대부분의 컨트롤러를 지원하며 블루투스 모드에서 듀얼쇼크 4/듀얼센스 패드를 위한 고급 기능(진동/LED 제어)을 지원합니다. - + Enable SDL Input Source SDL 입력 소스 활성화 - + DualShock 4 / DualSense Enhanced Mode 듀얼 쇼크 4/듀얼 센스 강화 모드 - + XInput Source XInput 소스 - + Enable XInput Input Source XInput 소스 활성화 - + DInput Source DInput 소스 - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. DInput 소스는 XInput을 지원하지 않는 레거시 컨트롤러에 대한 지원을 제공합니다. 대신 SDL을 통해 이러한 컨트롤러에 액세스하는 것이 좋지만, SDL과 호환되지 않는 경우 DirectInput을 사용할 수 있습니다. - + Enable DInput Input Source DInput 입력 소스 활성화 - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>일부 타사 컨트롤러는 아날로그 스틱을 포지티브 구성 요소에 반전된 것으로 잘못 플래그 지정하지만 네거티브 구성 요소에는 반전되지 않습니다.</p><p>결과적으로 아날로그 스틱은 중립 위치에 있을 때도 &quot;고정&quot;됩니다. </p><p>이 설정을 활성화하면 매핑을 생성할 때, 반전 플래그를 무시하여 해당 컨트롤러가 정상적으로 작동할 수 있도록 PCSX2에 지시합니다.</p></body></html> + + + + Ignore Inversion + 반전 무시 + + + Profile Settings 프로필 설정 - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. 이 옵션을 활성화하면 이 입력 프로필에 단축키를 설정할 수 있으며, 전역 단축키 대신 이 단축키가 사용됩니다. 기본적으로 단축키는 항상 모든 프로필 간에 공유됩니다. - + Use Per-Profile Hotkeys 프로필별 단축키 사용 - - + + Controller LED Settings 컨트롤러 LED 설정 - + Enable SDL Raw Input SDL Raw 입력 활성화 - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. XInput 소스는 Xbox 360/Xbox One/Xbox 시리즈 컨트롤러 및 XInput 프로토콜을 구현하는 타사 컨트롤러를 지원합니다. - + Controller Multitap 컨트롤러 멀티탭 - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. 멀티탭을 사용하면 최대 8대의 컨트롤러를 콘솔에 연결할 수 있습니다. 각 멀티탭은 4개의 포트를 제공합니다. 멀티탭은 일부 게임에서 지원되지 않습니다. - + Multitap on Console Port 1 콘솔 포트 1의 멀티탭 - + Multitap on Console Port 2 콘솔 포트 2의 멀티탭 - + Mouse/Pointer Source 마우스/포인터 소스 - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2를 사용하면 마우스로 아날로그 스틱의 움직임을 시뮬레이션할 수 있습니다. - + Settings... 설정... - + Enable Mouse Mapping 마우스 매핑 활성화 - + Detected Devices 감지된 장치 @@ -2015,58 +2259,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons 연동/버튼 - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. 이 매크로로 트리거할 버튼을 선택합니다. 모든 버튼이 동시에 활성화됩니다. - + Pressure 압력 - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. 압력에 민감한 버튼의 경우 이 슬라이더는 매크로가 활성화될 때 시뮬레이션할 출력을 제어합니다. - - + + 100% 100% - + Trigger 트리거 - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. 이 매크로를 활성화할 트리거를 선택합니다. 단일 버튼 또는 버튼의 조합(코드)일 수 있습니다. 여러 트리거를 사용하려면 Shift 키를 클릭합니다. - + Deadzone: 데드 존 : - + Frequency 주사율 - + Macro will toggle every N frames. 매크로는 N 프레임마다 전환됩니다. - + Set... 설정... @@ -2169,46 +2413,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 컨트롤러 설정 - + Editing Profile: 프로필 편집 : - + New Profile 새 프로필 - + Load Profile 프로필 불러오기 - + Delete Profile 프로필 삭제 - - + + Restore Defaults - 기본값 복구 + 기본값으로 되돌리기 - - + + Create Input Profile - 입력 프로필 생성 + 입력 프로필 만들기 - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,67 +2463,67 @@ Enter the name for the new input profile: 새 입력 프로필의 이름을 입력합니다: - - - - + + + + Error 오류 - + A profile with the name '%1' already exists. - '%1'이라는 이름의 프로필이 이미 존재합니다. + 같은 이름 '%1'의 프로필이 이미 있습니다. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - 현재 선택한 프로필의 모든 할당을 새 프로필로 복사하시겠습니까? 아니요를 선택하면 완전히 빈 프로필이 생성됩니다. + 현재 선택한 프로필의 모든 바인딩을 새 프로필로 복사하시겠습니까? 아니오를 선택하면 완전히 빈 프로필이 생성됩니다. - + Failed to save the new profile to '%1'. 새 프로필을 '%1'에 저장하지 못했습니다. - + Load Input Profile 입력 프로필 불러오기 - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - '%1'(이)라는 입력 프로필을 불러오시겠습니까? + '%1'이라는 입력 프로필을 불러오시겠습니까? -현재 모든 전역 할당이 제거되고 프로필 할당을 불러옵니다. +현재 모든 전역 바인딩이 제거되고 프로필 할당을 불러옵니다. 이 작업은 실행 취소할 수 없습니다. - + Delete Input Profile - 입력 프로필 제거 + 입력 프로필 삭제 - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - '%1'(이)라는 입력 프로필을 삭제하시겠습니까? + '%1'이라는 입력 프로필을 삭제하시겠습니까? 이 작업은 실행 취소할 수 없습니다. - + Failed to delete '%1'. - '%1'.을(를) 삭제하지 못했습니다. + '%1'을(를) 삭제하지 못했습니다. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2287,18 +2531,18 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. 기본 컨트롤러 구성을 복원하시겠습니까? -모든 공유 연동 및 구성은 손실되지만 입력 프로필은 그대로 유지됩니다. +모든 공유 할당 및 구성은 손실되지만 입력 프로필은 그대로 유지됩니다. 이 작업은 실행 취소할 수 없습니다. - + Global Settings 전체 설정 - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2550,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,28 +2559,28 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB 포트 %1 %2 - + Hotkeys 단축키 - + Shared "Shared" refers here to the shared input profile. 공유 - + The input profile named '%1' cannot be found. - '%1'(이)라는 입력 프로필을 찾을 수 없습니다. + '%1'이라는 입력 프로필을 찾을 수 없습니다. @@ -2406,204 +2650,242 @@ You cannot undo this action. 함수 - + + Module + 모듈 + + + + Version + 버전 + + + + Count + 카운트 + + + Refresh 새로 고침 - + Filter 필터 - + Memory Search 메모리 검색 - + End 종료 - + Value - + Start 시작 - + Type 유형 - + 1 Byte (8 bits) 1바이트(8비트) - + 2 Bytes (16 bits) 2바이트(16비트) - + 4 Bytes (32 bits) 4바이트(32비트) - + 8 Bytes (64 bits) 8바이트(64비트) - + Float 부동 소수점 - + Double 더블 - + String 문자열 - + Array of byte 바이트 배열 - + Hex 16진수(Hex) - + Search 찾기 - + Memory 메모리 - + Breakpoints 중단점 - + Threads 스레드 - + Active Call Stack - 활성 통화 스택 + 통화 스택 활성화 - + Breakpoint List Context Menu 중단점 목록 컨텍스트 메뉴 - + New 새로 만들기 - + Edit 편집 - - - + + + Copy 복사 - + Delete 삭제 - + + + + Copy all as CSV + 모두 CSV로 복사 + + + + Paste from CSV + CSV로 모두 복사 + + + Thread List Context Menu 스레드 목록 컨텍스트 메뉴 - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ 분할 해제 기호 - + + Copy Function Name 함수 이름 복사 - + + Copy Function Address 함수 주소 복사 - + + Go to in Disassembly 디스어셈블리로 이동하기 - + + Go to in Memory View 메모리 보기로 이동 - + + + Module Tree + 모듈 트리 + + + Stack List Context Menu 스택 목록 컨텍스트 메뉴 - - - - - + + + + + Debugger 디버거 - + Invalid start address 잘못된 시작 주소 - + Invalid end address 잘못된 종료 주소 - + Start address can't be equal to or greater than the end address 시작 주소는 끝 주소보다 크거나 같을 수 없음 - + Invalid search value 잘못된 검색 값 - + Value is larger than type 값이 유형보다 큰 경우 @@ -2659,22 +2941,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet 이더넷 - + Ethernet Device: 이더넷 장치 : - + Ethernet Device Type: 이더넷 장치 유형 : - + Intercept DHCP DHCP 인터셉트 @@ -2684,135 +2966,130 @@ You cannot undo this action. 활성화 - + Enabled InterceptDHCP 활성화 - + Subnet Mask: 서브넷 마스크 : - + Gateway Address: 게이트웨이 주소 : - - + + Auto 자동 - + Intercept DHCP: DHCP 인터셉트 : - + PS2 Address: PS2 주소 : - + DNS1 Address: DNS1 주소 : - + DNS2 Address: DNS2 주소 : - + Internal DNS 내부 DNS - + Add 추가 - + Delete 삭제 - + Export 내보내기 - + Import 가져오기 - + Per game 게임별 - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 내부 DNS는 DNS1/2 드롭다운을 사용하거나 192.0.2.1로 설정하여 선택할 수 있습니다. - + Enabled InternalDNSTable 활성화 - + Hard Disk Drive 하드 디스크 드라이브 - + HDD File: HDD 파일 : - + 40 40 - + 120 120 - + HDD Size (GiB): HDD 크기(GB) : - + Enabled HDD 활성화 - + Browse 찾아보기 - + Create Image 이미지 생성 - - - - - PCAP Bridged @@ -2845,7 +3122,7 @@ You cannot undo this action. - + Use Global Setting [%1] 전체 설정 사용 [%1] @@ -2865,78 +3142,78 @@ You cannot undo this action. 주소 - - + + Hosts File 호스트 파일 - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS 호스트 - + Exported Successfully 내보내기 완료 - + Failed to open file 파일 열기 실패 - + No Hosts in file 파일에 호스트 없음 - + Imported Successfully 가져오기 성공 - - + + Per Game Host list 게임별 호스트 목록 - + Copy global settings? 전체 설정을 복사하시겠습니까? - + Delete per game host list? 게임별 호스트 목록을 삭제하시겠습니까? - + HDD Image File HDD 이미지 파일 - + HDD (*.raw) HDD (*.raw) - + Overwrite File? 파일을 덮어 쓰시겠습니까? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3222,22 @@ Do you want to overwrite? 덮어쓰시겠습니까? - + HDD Creator HDD 크리에이터 - + HDD image created HDD 이미지 생성됨 - + Use Global 전역 사용 - + Override 오버라이드 @@ -2968,69 +3245,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping 추출하기 - + Dump GS Draws GS 드로우 덤프 - + Save RT RT 저장 - + Save Frame - 프레임 저장하기 + 프레임 저장 - + Save Texture 텍스처 저장 - + Save Depth 깊이 저장 - + Start Draw Number: 추첨 번호 시작 : - + Draw Dump Count: 덤프 횟수 그리기 : - + Hardware Dump Directory: 하드웨어 덤프 디렉터리 : - + Software Dump Directory: 소프트웨어 덤프 디렉터리 : - - + + Browse... 찾아보기... - - + + Open... 열기... @@ -3043,29 +3320,53 @@ Do you want to overwrite? PCSX2 디버거 - - - + + Run 실행 - + Step Into 시작하기 - + + F11 + F11 + + + Step Over 다음 단계로 - + + F10 + F10 + + + Step Out 나가기 - + + Shift+F11 + Shift+F11 + + + + Always On Top + 항상 위에 표시 + + + + Show this window on top + 이 창을 맨 위에 표시 + + + Pause 일시 중지 @@ -3078,149 +3379,174 @@ Do you want to overwrite? 디스어셈블리 - + Copy Address 주소 복사 - + Copy Instruction Hex 16진수(Hex) 명령어 복사 - + Copy Instruction Text 지침문 복사 - + Assemble new Instruction(s) 새 인스트럭션 조립 - + NOP Instruction(s) NOP 명령어 - + Run to Cursor 커서로 실행 - + Jump to Cursor 커서로 이동 - + Toggle Breakpoint 브레이크포인트 적용/해제 - + Follow Branch 분기 팔로우 - + Go to Address 주소로 이동하기 - + Go to in Memory View 메모리 보기로 이동하기 - - + + Add Function 함수 추가 - - + + Rename Function 함수 이름 바꾸기 - + Remove Function 함수 제거 - - + + Assemble Error 어셈블리 오류 - + Unable to change assembly while core is running 코어가 실행 중인 동안 어셈블리를 변경할 수 없음 - + Assemble Instruction 어셈블리 인스트럭션 - + Go to address 주소로 이동하기 - + Go to address error 주소 오류로 이동하기 - + Invalid address 잘못된 주소 - + Add Function Error 함수 오류 추가 - + A function entry point already exists here. Consider renaming instead. 여기에 함수 진입점이 이미 존재합니다. 대신 이름을 바꾸는 것을 고려하세요. - - + + Function will be (0x%1) instructions long. Enter function name 함수는 (0x%1) 명령어 길이입니다. 함수 이름 입력 - + Function name 함수 이름 - - + + Rename Function Error 함수 오류 이름 바꾸기 - + Function name cannot be nothing. 함수 이름은 아무 것도 될 수 없습니다. - + No function / symbol is currently selected. 현재 선택된 함수/기호가 없습니다. - + + Restore Function Error + 복원 기능 오류 + + + + Unable to stub selected address. + 선택한 주소를 스텁할 수 없습니다. + + + + Restore Instruction(s) + 복원 지침 + + + + Restore Function + 복원 기능 + + + + Stub (NOP) Function + 스터브(NOP) 기능 + + + %1 NOT VALID ADDRESS %1 올바르지 않은 주소 @@ -3228,17 +3554,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">지원되는 형식의 게임을 찾지 못했습니다.</span></p><p>시작하려면 게임이 있는 디렉터리를 추가하세요.</p><p>다음 형식의 게임 덤프가 검색되어 나열 :</p></body></html> - + Add Game Directory... 게임 디렉터리 추가... - + Scan For New Games 새로운 게임 찾기 @@ -3246,47 +3572,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + 슬롯 : %1 | %2 | EE : %3% | VU : %4% | GS : %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + 슬롯 : %1 | %2 | EE : %3% | GS : %4% + + + %1x%2 %1x%2 - + Game: %1 FPS 게임 : %1 FPS - + Video: %1 FPS (%2%) 영상 : %1 FPS(%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - 게임 ID : %1 -게임명 : %2 -도전 과제 : %5 (%6) - + 게임 : %1(%2) - - - %n points - - %n 포인트 - - - + Rich presence inactive or unsupported. 활동 상태가 비활성 상태이거나 지원되지 않습니다. - + Game not loaded or no RetroAchievements available. 게임을 불러오지 않아 레트로어테치먼트를 이용할 수 없습니다. @@ -3294,192 +3617,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control 속도 제어 - + Normal Speed: 일반 속도 : - + Enable Speed Limiter 속도 제한 활성화 - + System Settings 시스템 설정 - + Enable Instant VU1 인스턴트 VU1 활성화 - + Enable Cheats 치트 활성화 - + Slow-Motion Speed: 슬로 모션 속도 : - + Fast-Forward Speed: 빨리 감기 속도 : - + Enable Multithreaded VU1 (MTVU) 멀티스레드 VU1(MTVU) 활성화 - + Enable Host Filesystem 호스트 파일시스템 활성화 - + Enable Fast CDVD 고속 CD/DVD 활성화 - + EE Cycle Skipping: EE 사이클 건너뛰기 : - - + + Disabled 비활성화 - + Mild Underclock 가벼운 언더클럭 - + Moderate Underclock 적당한 언더클럭 - + Maximum Underclock 최대 언더클럭 - + EE Cycle Rate: EE 주기율 : - + 50% (Underclock) 50%(언더클럭) - + 60% (Underclock) 60%(언더클럭) - + 75% (Underclock) 75%(언더클럭) - + 100% (Normal Speed) 100%(일반 속도) - + 130% (Overclock) 130%(오버클럭) - + 180% (Overclock) 180%(오버클럭) - + 300% (Overclock) 300%(오버클럭) - + Affinity Control: 선호도 제어 : - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control 프레임 속도/대기 시간 제어 - + frames This string will appear next to the amount of frames selected, in a dropdown box. 프레임 - + Maximum Frame Latency: 최대 프레임 지연 : - + Optimal Frame Pacing 최적의 프레임 속도 - + Scale To Host Refresh Rate 호스트 새로 고침 빈도에 맞게 조정 @@ -3567,12 +3890,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. 게임과 홈브루가 호스트 컴퓨터의 파일/폴더에 직접 액세스할 수 있도록 허용합니다. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + 게스트 새로 고침 빈도가 호스트와 일치하도록 에뮬레이션 속도를 높입니다. 이렇게 하면 에뮬레이션 속도가 1% 미만으로 증가하지만 가능한 한 가장 부드러운 애니메이션을 얻을 수 있습니다. 콘솔의 새로 고침 빈도가 호스트의 새로 고침 빈도와 너무 차이가 나면 호스트 새로 고침 빈도에 맞게 조정이 적용되지 않습니다. 가변 주사율 디스플레이를 사용하는 사용자는 이 옵션을 비활성화해야 합니다. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" 빨리 감기 속도 + + + 100% + 100 % + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3636,45 +3969,40 @@ Achievements: %5 (%6) CPU 스레드가 한 프레임이 완료될 때까지 기다렸다가 계속 진행하기 전에 GS에 대기할 수 있는 최대 프레임 수를 설정합니다. 값이 클수록 불규칙한 프레임 시간을 부드럽게 하는 데 도움이 될 수 있지만 입력 대기가 추가됩니다. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - 수직 동기화 및 오디오 재표본화 설정이 모두 활성화된 경우 콘솔의 재생률이 호스트의 재생률과 일치하도록 에뮬레이션 속도를 조정합니다. 이렇게 하면 에뮬레이션 속도가 1% 미만으로 증가하지만 가능한 한 가장 부드러운 애니메이션을 얻을 수 있습니다. 콘솔의 새로 고침 빈도가 호스트의 새로 고침 빈도와 너무 차이가 나면 호스트 새로 고침 빈도에 맞춰 스케일링이 적용되지 않습니다. 가변 주사율 디스플레이를 사용하는 사용자는 이 옵션을 비활성화해야 합니다. - - - + Use Global Setting [%1%] 전체 설정 사용 [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. 제한 없음 - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. 커스텀 - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] 커스텀 [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed 커스텀 속도 - + Enter Custom Speed 커스텀 속도 입력 @@ -3682,79 +4010,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory 캐시 디렉터리 - - - - - + + + + + Browse... 찾아보기... - - - - - + + + + + Open... 열기... - - - - - + + + + + Reset 초기화 - + Used for storing shaders, game list, and achievement data. 셰이더, 게임 목록, 도전 과제 데이터를 저장하는데 사용됩니다. - + Cheats Directory 치트 디렉터리 - + Used for storing .pnach files containing game cheats. 게임 치트가 포함된 .pnach 파일 저장에 사용됩니다. - + Covers Directory 표지 디렉터리 - + Used for storing covers in the game grid/Big Picture UIs. 게임 그리드/빅픽처 UI에 표지를 저장하는데 사용됩니다. - + Snapshots Directory 스냅샷 디렉터리 - + Used for screenshots and saving GS dumps. 스크린샷 및 GS 덤프 저장에 사용됩니다. - + Save States Directory 상태 디렉터리 저장 - + Used for storing save states. 상태 저장을 저장하는데 사용됩니다. @@ -3762,2082 +4090,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. CD/DVD-ROM 장치를 찾을 수 없습니다. 드라이브가 연결되어 있고 드라이브에 액세스할 수 있는 충분한 권한이 있는지 확인하세요. - + Use Global Setting - 전역 설정 사용 + 전체 설정 사용 - + Automatic binding failed, no devices are available. 자동 할당에 실패했습니다. 사용할 수 있는 장치가 없습니다. - + Game title copied to clipboard. 게임 타이틀을 클립보드에 저장했습니다. - + Game serial copied to clipboard. 게임 시리얼을 클립보드에 저장했습니다. - + Game CRC copied to clipboard. 게임 CRC를 클립보드에 저장했습니다. - + Game type copied to clipboard. 게임 유형을 클립보드에 저장했습니다. - + Game region copied to clipboard. 게임 지역 코드를 클립보드에 저장했습니다. - + Game compatibility copied to clipboard. 게임 호환성을 클립보드에 저장했습니다. - + Game path copied to clipboard. 게임 경로를 클립보드에 저장했습니다. - + Per-game controller configuration initialized with global settings. - 전역 설정으로 초기화된 게임별 컨트롤러 구성입니다. + 전체 설정으로 초기화된 게임별 컨트롤러 구성입니다. - + Controller settings reset to default. 컨트롤러 설정을 기본값으로 초기화합니다. - + No input profiles available. 사용할 수 있는 입력 프로필이 없습니다. - + Create New... 새로 만들기... - + Enter the name of the input profile you wish to create. 만들려는 입력 프로필의 이름을 입력합니다. - + Are you sure you want to restore the default settings? Any preferences will be lost. 기본 설정으로 되돌리시겠습니까? 모든 기본 설정이 손실됩니다. - + Settings reset to defaults. 기본값으로 설정이 초기화됩니다. - - Quick Save Slot - 빠른 저장 슬롯 - - - + No save present in this slot. 이 슬롯에 저장된 것이 없습니다. - + No save states found. 상태 저장을 찾을 수 없습니다. - + Failed to delete save state. 상태 저장을 삭제하지 못했습니다. - + Failed to copy text to clipboard. 텍스트를 클립보드에 저장하지 못했습니다. - + This game has no achievements. 이 게임에는 도전 과제가 없습니다. - + This game has no leaderboards. 이 게임에는 순위표가 없습니다. - + Reset System 시스템 초기화 - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? 하드코어 모드는 시스템을 초기화할 때까지 활성화되지 않습니다. 지금 시스템을 초기화하시겠습니까? - + Launch a game from images scanned from your game directories. 게임 디렉터리에서 스캔한 이미지로 게임을 실행합니다. - + Launch a game by selecting a file/disc image. 파일/디스크 이미지를 선택하여 게임을 실행합니다. - + Start the console without any disc inserted. 디스크를 삽입하지 않은 상태에서 콘솔을 시작합니다. - + Start a game from a disc in your PC's DVD drive. PC의 DVD 드라이브에 있는 디스크에서 게임을 시작하세요. - + Change settings for the emulator. 에뮬레이터 설정을 변경합니다. - + Exits the program. 프로그램을 종료합니다. - + No Binding 할당 없음 - + Setting %s binding %s. 할당 %s을(를) %s(으)로 설정합니다. - + Push a controller button or axis now. 지금 컨트롤러 버튼이나 축을 누릅니다. - + Timing out in %.0f seconds... %.0f초 초과... - + Unknown 알 수 없음 - + OK 확인 - + Select Device 장치 선택 - + Details 세부 정보 - + Options 옵션 - + Copies the current global settings to this game. - 현재 전역 설정을 이 게임에 복사합니다. + 현재 전체 설정을 이 게임에 복사합니다. - + Clears all settings set for this game. 이 게임의 모든 설정을 지웁니다. - + Behaviour 동작 - + Prevents the screen saver from activating and the host from sleeping while emulation is running. 에뮬이 실행되는 동안 화면 보호기와 절전 모드 실행을 방지합니다. - + Shows the game you are currently playing as part of your profile on Discord. 현재 디스코드에서 프로필의 일부로 플레이 중인 게임을 표시합니다. - + Pauses the emulator when a game is started. 게임이 시작되면 에뮬을 일시 중지합니다. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. 창을 최소화하거나 다른 응용 프로그램으로 전환하면 에뮬이 일시 중지되고 다시 전환하면 일시 중지가 해제됩니다. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. 빠른 메뉴를 열면 에뮬이 일시 중지되고 닫으면 일시 중지가 해제됩니다. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. 단축키를 눌렀을 때, 에뮬/게임 종료를 확인하는 메시지를 표시할지 여부를 결정합니다. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. 전원을 끄거나 종료할 때, 에뮬 상태를 자동으로 저장합니다. 그러면 다음 번에 중단한 지점부터 바로 다시 시작할 수 있습니다. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - 게임 설정 또는 게임별 사용자 지정 설정에서 인피니 오버레이를 불러올 수 있습니다. - - - + Uses a light coloured theme instead of the default dark theme. 기본 다크 테마 대신 라이트 테마를 사용합니다. - + Game Display 게임 화면 - - Automatically switches to fullscreen mode when the program is started. - 프로그램이 시작되면 자동으로 전체 화면 모드로 전환됩니다. - - - + Switches between full screen and windowed when the window is double-clicked. 창을 두 번 클릭하면 전체 화면과 창 모드를 전환합니다. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. 에뮬이 전체 화면 모드일 때, 마우스 포인터/커서를 숨깁니다. - + Determines how large the on-screen messages and monitor are. 화면에 표시되는 메시지와 모니터의 크기를 결정합니다. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - 저장 상태 생성/불러오기 중, 스크린샷 촬영 중 등의 이벤트가 발생할 때 화면 표시 메시지를 표시합니다. + 상태 저장 생성/불러오기 중, 스크린샷 촬영 중 등의 이벤트가 발생할 때 화면 표시 메시지를 표시합니다. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. 디스플레이 오른쪽 상단에 시스템의 현재 에뮬레이션 속도를 백분율로 표시합니다. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. 디스플레이 오른쪽 상단에 시스템이 초당 표시하는 비디오 프레임 수(혹은 수직 동기화)를 표시합니다. - + Shows the CPU usage based on threads in the top-right corner of the display. 화면 우측 상단에 스레드를 기준으로 CPU 사용량을 표시합니다. - + Shows the host's GPU usage in the top-right corner of the display. 화면 우측 상단에 호스트의 GPU 사용량을 표시합니다. - - Shows the resolution the game is rendering at in the top-right corner of the display. - 화면 우측 상단에 게임이 렌더링되는 해상도를 표시합니다. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. 화면 우측 상단에 GS(기본값, 그리기 호출)에 대한 통계를 표시합니다. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. 빨리 감기, 일시 정지 및 기타 비정상 상태가 활성화된 경우 표시기를 표시합니다. - + Shows the current configuration in the bottom-right corner of the display. 화면 우 하단에 현재 구성을 표시합니다. - + Shows the current controller state of the system in the bottom-left corner of the display. 화면 좌측 하단에 시스템의 현재 컨트롤러 상태를 표시합니다. - + Shows a visual history of frame times in the upper-left corner of the display. 화면 좌측 상단 모서리에 프레임 시간의 시각적 기록을 표시합니다. - + Displays warnings when settings are enabled which may break games. 게임을 중단시킬 수 있는 설정이 활성화된 경우 경고를 표시합니다. - + Resets configuration to defaults (excluding controller settings). 구성을 기본값으로 초기화합니다.(컨트롤러 설정 제외) - + Changes the BIOS image used to start future sessions. 향후 세션을 시작하는 데 사용되는 바이오스 이미지를 변경합니다. - + Automatic 자동 - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + 기본값 + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + 활성화하면 게임별 사용자 지정 설정이 적용됩니다. 항상 전역 구성을 사용하려면 비활성화합니다. + + + + Automatically switches to fullscreen mode when a game is started. + 게임이 시작되면 자동으로 전체 화면 모드로 전환됩니다. + + + On-Screen Display - On-Screen Display + 화면 표시 + + + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + 디스플레이 오른쪽 상단에 게임의 해상도를 표시합니다. - + BIOS Configuration - BIOS Configuration + 바이오스 설정 - + BIOS Selection 바이오스 선택 - + Options and Patches - Options and Patches + 옵션 및 패치 - + Skips the intro screen, and bypasses region checks. 인트로 화면을 건너뛰고 지역 확인을 건너뜁니다. - + Speed Control 속도 제어 - + Normal Speed 정상 속도 - + Sets the speed when running without fast forwarding. 빨리 감기 없이 실행할 때 속도를 설정합니다. - + Fast Forward Speed 빨리 감기 속도 - + Sets the speed when using the fast forward hotkey. 빨리 감기 단축키를 사용할 때, 속도를 설정합니다. - + Slow Motion Speed 슬로우 모션 속도 - + Sets the speed when using the slow motion hotkey. 슬로우 모션 핫키를 사용할 때 속도를 설정합니다. - + Enable Speed Limiter 속도 제한 활성화 - + When disabled, the game will run as fast as possible. 비활성화하면 게임이 최대한 빠르게 실행됩니다. - + System Settings 시스템 설정 - + EE Cycle Rate EE 주기율 - + Underclocks or overclocks the emulated Emotion Engine CPU. 에뮬레이트된 이모션 엔진 CPU를 언더클럭 또는 오버클럭합니다. - + EE Cycle Skipping EE 주기 건너뛰기 - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - 에뮬레이트된 이모션 엔진에 VU 프로그램 실행에 대한 페널티를 추가합니다. - - - + Affinity Control Mode 선호도 제어 모드 - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. 에뮬레이션 스레드를 CPU 코어에 고정하여 잠재적으로 성능/프레임 시간 편차를 개선합니다. - + Enable MTVU (Multi-Threaded VU1) MTVU(멀티 스레드 VU1) 활성화 - - Uses a second thread for VU1 micro programs. Sizable speed boost. - VU1 마이크로 프로그램에 두 번째 스레드를 사용합니다. 상당한 속도 향상. - - - + Enable Instant VU1 인스턴트 VU1 활성화 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - VU1과 EE 재컴파일러 간의 시간 분할을 줄여 VU1을 무한 클럭 속도로 효과적으로 실행합니다. - - - + Enable Cheats 치트 활성화 - + Enables loading cheats from pnach files. pnach 파일에서 치트 불러오기를 활성화합니다. - + Enable Host Filesystem 호스트 파일 시스템 활성화 - + Enables access to files from the host: namespace in the virtual machine. 가상 머신의 호스트 : 네임스페이스에서 파일에 대한 액세스를 활성화합니다. - + Enable Fast CDVD 고속 CD/DVD 활성화 - + Fast disc access, less loading times. Not recommended. 빠른 디스크 접속, 로딩 시간을 단축합니다. 권장하지 않습니다. - + Frame Pacing/Latency Control 프레임 속도/지연 제어 - + Maximum Frame Latency 최대 프레임 지연 시간 - + Sets the number of frames which can be queued. 대기열에 넣을 수 있는 프레임 수를 설정합니다. - + Optimal Frame Pacing 최적의 프레임 속도 - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. 매 프레임마다 EE 및 GS 스레드를 동기화합니다. 입력 지연 시간이 가장 짧지만 시스템 요구 사항이 증가합니다. - - Adjust To Host Refresh Rate - 호스트 새로 고침 빈도에 맞게 조정 - - - + Speeds up emulation so that the guest refresh rate matches the host. 게스트 새로 고침 빈도가 호스트와 일치하도록 에뮬 속도를 높입니다. - + Renderer 렌더러 - + Selects the API used to render the emulated GS. 에뮬레이트된 GS를 렌더링하는 데 사용되는 API를 선택합니다. - + Sync To Host Refresh (VSync) 호스트 새로 고침으로 동기화(수직 동기화) - + Synchronizes frame presentation with host refresh. 프레임 표시를 호스트 새로 고침과 동기화합니다. - + Display 디스플레이 - + Aspect Ratio 종횡비 - + Selects the aspect ratio to display the game content at. 게임 콘텐츠를 표시할 종횡비를 선택합니다. - + FMV Aspect Ratio FMV 종횡비 - + Selects the aspect ratio for display when a FMV is detected as playing. FMV가 재생 중인 것으로 감지될 때 표시할 종횡비를 선택합니다. - + Deinterlacing 인터레이스 해제 - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. PS2의 인터레이스 출력을 디스플레이용 프로그레시브 출력으로 변환하는 데 사용되는 알고리즘을 선택합니다. - + Screenshot Size 스크린샷 크기 - + Determines the resolution at which screenshots will be saved. 스크린샷을 저장할 해상도를 결정합니다. - + Screenshot Format 스크린샷 형식 - + Selects the format which will be used to save screenshots. 스크린샷을 저장하는 데 사용할 형식을 선택합니다. - + Screenshot Quality 스크린샷 품질 - + Selects the quality at which screenshots will be compressed. 스크린샷 압축 품질을 선택합니다. - + Vertical Stretch 세로 늘이기 - + Increases or decreases the virtual picture size vertically. 가상 사진 크기를 세로로 늘리거나 줄입니다. - + Crop 잘라내기 - + Crops the image, while respecting aspect ratio. 종횡비를 유지하면서 이미지를 잘라냅니다. - + + %dpx + %d픽셀 + + + Enable Widescreen Patches 와이드스크린 패치 활성화 - + Enables loading widescreen patches from pnach files. pnach 파일에서 와이드스크린 패치를 불러올 수 있습니다. - + Enable No-Interlacing Patches 비인터레이스 패치 활성화 - + Enables loading no-interlacing patches from pnach files. pnach 파일에서 비인터레이싱 패치를 불러올 수 있습니다. - + Bilinear Upscaling 쌍선형 업스케일링 - + Smooths out the image when upscaling the console to the screen. 콘솔을 화면으로 확대할 때 이미지를 부드럽게 합니다. - + Integer Upscaling 정수 업스케일링 - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. 호스트의 픽셀과 콘솔의 픽셀 사이의 비율이 정수가 되도록 디스플레이 영역에 패딩을 추가합니다. 일부 2D 게임에서 이미지가 더 선명해질 수 있습니다. - + Screen Offsets - 화면 오프셋 + 화면 오프세트 - + Enables PCRTC Offsets which position the screen as the game requests. - 게임에서 요청하는 대로 화면을 배치하는 PCRTC 오프셋을 활성화합니다. + 게임에서 요청하는 대로 화면을 배치하는 PCRTC 오프세트를 활성화합니다. - + Show Overscan 오버스캔 표시 - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. 화면의 안전 영역보다 더 많이 그리는 게임에서 오버스캔 영역을 표시하는 옵션을 활성화합니다. - + Anti-Blur 흐림 방지 - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. 내부 흐림 방지 핵을 활성화합니다. PS2 렌더링에 비해 정확도는 떨어지지만 많은 게임이 덜 흐릿하게 보입니다. - + Rendering 랜더링 - + Internal Resolution 내부 해상도 - + Multiplies the render resolution by the specified factor (upscaling). 렌더링 해상도에 지정된 계수를 곱합니다.(업스케일링) - + Mipmapping 밉매핑 - + Determines how mipmaps are used when rendering textures. 텍스처 렌더링 시, 밉맵 사용 방식을 결정합니다. - + Bilinear Filtering 쌍선형 필터링 - + Selects where bilinear filtering is utilized when rendering textures. 텍스처 렌더링 시, 쌍선형 필터링이 사용되는 위치를 선택합니다. - + Trilinear Filtering 삼선형 필터링 - + Selects where trilinear filtering is utilized when rendering textures. 텍스처 렌더링 시, 삼선형 필터링이 사용되는 위치를 선택합니다. - + Anisotropic Filtering 이방성 필터링 - - Selects where anistropic filtering is utilized when rendering textures. - 텍스처를 렌더링할 때 이방성 필터링이 활용되는 위치를 선택합니다. - - - + Dithering 디더링 - + Selects the type of dithering applies when the game requests it. 게임에서 디더링을 요청할 때, 적용할 디더링 유형을 선택합니다. - + Blending Accuracy 혼합 정확도 - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. 호스트 그래픽 API에서 지원하지 않는 혼합 모드를 에뮬레이션할 때 정확도 수준을 결정합니다. - + Texture Preloading 텍스처 미리 불러오기 - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. 사용 중인 GPU에 사용 중인 영역만 업로드하는 것이 아니라 전체 텍스처를 업로드합니다. 일부 게임에서 성능을 향상시킬 수 있습니다. - + Software Rendering Threads 소프트웨어 렌더링 스레드 - + Number of threads to use in addition to the main GS thread for rasterization. 래스터화를 위해 기본 GS 스레드 외에 사용할 스레드 수입니다. - + Auto Flush (Software) 자동 플러시(소프트웨어) - + Force a primitive flush when a framebuffer is also an input texture. 프레임 버퍼가 입력 텍스처이기도 한 경우 프리미티브 플러시를 강제합니다. - + Edge AA (AA1) 에지 AA(AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). GS의 에지 앤티 앨리어싱(AA1)을 에뮬레이션할 수 있습니다. - + Enables emulation of the GS's texture mipmapping. GS의 텍스처 밉매핑 에뮬레이션을 활성화합니다. - + Hardware Fixes 하드웨어 수정 - + Manual Hardware Fixes 수동 하드웨어 수정 - + Disables automatic hardware fixes, allowing you to set fixes manually. 자동 하드웨어 수정을 비활성화하여 수동으로 수정을 설정할 수 있습니다. - + CPU Sprite Render Size CPU 스프라이트 렌더 크기 - + Uses software renderer to draw texture decompression-like sprites. 소프트웨어 렌더러를 사용하여 텍스처 압축 해제와 유사한 스프라이트를 그립니다. - + CPU Sprite Render Level CPU 스프라이트 렌더 레벨 - + Determines filter level for CPU sprite render. CPU 스프라이트 렌더링의 필터 레벨을 결정합니다. - + Software CLUT Render 소프트웨어 CLUT 렌더 - + Uses software renderer to draw texture CLUT points/sprites. 소프트웨어 렌더러를 사용하여 텍스처 CLUT 포인트/스프라이트를 그립니다. - + Skip Draw Start 그리기 시작 건너뛰기 - + Object range to skip drawing. 그리기를 건너뛸 개체 범위입니다. - + Skip Draw End 그리기 종료 건너뛰기 - + Auto Flush (Hardware) 자동 플러시(하드웨어) - + CPU Framebuffer Conversion CPU 프레임 버퍼 변환 - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. GPU 대신 CPU에서 4비트 및 8비트 프레임 버퍼를 변환합니다. - - Disable Depth Support - 깊이 지원 비활성화 - - - - Disable the support of depth buffer in the texture cache. - 텍스처 캐시에서 깊이 버퍼 지원을 비활성화합니다. - - - + Disable Safe Features 안전 기능 비활성화 - + This option disables multiple safe features. 이 옵션은 여러 안전 기능을 비활성화합니다. - - Disable Render Features - 렌더링 기능 비활성화 - - - + This option disables game-specific render fixes. 이 옵션은 게임별 렌더링 수정을 비활성화합니다. - - Preload Frame - 프레임 미리 불러오기 - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. 새 프레임을 렌더링할 때, GS 데이터를 업로드하여 일부 효과를 정확하게 재현합니다. - + Disable Partial Invalidation 부분 무효화 비활성화 - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. 교차하는 영역만 제거하지 않고 교차하는 모든 영역이 있을 때 텍스처 캐시 항목을 제거합니다. - - Texture Inside Render Target - 렌더 타겟 내부의 텍스처 - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. 텍스처 캐시가 이전 프레임 버퍼의 내부 부분을 입력 텍스처로 다시 사용할 수 있도록 합니다. - + Read Targets When Closing 닫을 때, 타겟 읽기 - + Flushes all targets in the texture cache back to local memory when shutting down. 종료 시, 텍스처 캐시에 있는 모든 타깃을 로컬 메모리로 플러시합니다. - + Estimate Texture Region 텍스처 영역 예측 - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). 게임에서 텍스처 크기를 직접 설정하지 않은 경우 텍스처 크기를 줄이려고 시도합니다.(예 : 스노우블라인드 게임) - + GPU Palette Conversion GPU 팔레트 변환 - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - CPU가 아닌 GPU의 텍스처에 팔레트를 적용합니다. 일부 게임에서 속도가 향상될 수 있습니다. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - 하프 픽셀 오프셋 + 업스케일링 수정 - + Adjusts vertices relative to upscaling. 업스케일링을 기준으로 정점을 조정합니다. - + Round Sprite 라운드 스프라이트 - + Adjusts sprite coordinates. 스프라이트 좌표를 조정합니다. - + Bilinear Upscale 쌍선형 업스케일 - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. 업스케일링 시 바이리니어 필터링으로 텍스처를 부드럽게 처리할 수 있습니다.(예 : 강렬한 태양의 눈부심) - - TC Offset X - TC 오프셋 X - - - + Adjusts target texture offsets. - 대상 텍스처 오프셋을 조정합니다. - - - - TC Offset Y - TC 오프셋 Y + 대상 텍스처 오프세트를 조정합니다. - + Align Sprite 스프라이트 정렬 - + Fixes issues with upscaling (vertical lines) in some games. 일부 게임의 업스케일링(수직선) 문제를 해결합니다. - + Merge Sprite 스프라이트 병합 - + Replaces multiple post-processing sprites with a larger single sprite. 여러 후처리 스프라이트를 더 큰 단일 스프라이트로 대체합니다. - + Wild Arms Hack 와일드 암즈 핵 - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. 업스케일링 시, 픽셀 간 간격을 피하기 위해 GS 정밀도를 낮춥니다. 와일드 암즈 게임의 텍스트를 수정합니다. - + Unscaled Palette Texture Draws 크기 조정되지 않은 팔레트 텍스처 그리기 - + Can fix some broken effects which rely on pixel perfect precision. 픽셀의 완벽한 정밀도에 의존하는 일부 깨진 이펙트를 수정할 수 있습니다. - + Texture Replacement 텍스처 대체 - + Load Textures 텍스처 불러오기 - + Loads replacement textures where available and user-provided. 사용 가능한 경우, 사용자 제공 대체 텍스처를 불러옵니다. - + Asynchronous Texture Loading 비동기 텍스처 불러오기 - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - 작업자 스레드에 대체 텍스처를 로드하여 대체가 활성화되면 미세 끊김 현상을 줄입니다. + 작업자 스레드에 대체 텍스처를 불러와 대체가 활성화되면 미세 끊김 현상이 감소합니다. - + Precache Replacements 사전 캐시 대체 - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. 모든 대체 텍스처를 메모리에 사전 불러오기합니다. 비동기 불러오기에서는 필요하지 않습니다. - + Replacements Directory 대체 디렉터리 - + Folders 폴더 - + Texture Dumping 텍스처 덤핑 - + Dump Textures 텍스쳐 덤프 - - Dumps replacable textures to disk. Will reduce performance. - 교체 가능한 텍스처를 디스크에 덤프합니다. 퍼포먼스가 저하됩니다. - - - + Dump Mipmaps 밉맵 덤프 - + Includes mipmaps when dumping textures. 텍스처 덤핑 시, 밉맵을 포함합니다. - + Dump FMV Textures FMV 텍스처 덤프 - + Allows texture dumping when FMVs are active. You should not enable this. FMV가 활성화되어 있을 때 텍스처 덤핑을 허용합니다. 이 옵션을 활성화하면 안 됩니다. - + Post-Processing 후처리 - + FXAA FXAA - + Enables FXAA post-processing shader. FXAA 후처리 셰이더를 활성화합니다. - + Contrast Adaptive Sharpening 대비 적응 선명화 - + Enables FidelityFX Contrast Adaptive Sharpening. FidelityFX 대비 적응형 선명화를 활성화합니다. - + CAS Sharpness CAS 선명도 - + Determines the intensity the sharpening effect in CAS post-processing. CAS 후처리에서 선명하게 하는 효과의 강도를 결정합니다. - + Filters 필터 - + Shade Boost 음영 부스트 - + Enables brightness/contrast/saturation adjustment. 밝기/대비/채도를 조정할 수 있습니다. - + Shade Boost Brightness 음영 부스트 밝기 - + Adjusts brightness. 50 is normal. 밝기를 조정합니다. 50이 기본값입니다. - + Shade Boost Contrast 음영 부스트 대비 - + Adjusts contrast. 50 is normal. 대비를 조정합니다. 50이 기본값입니다. - + Shade Boost Saturation 음영 부스트 채도 - + Adjusts saturation. 50 is normal. 채도를 조정합니다. 50이 기본값입니다. - + TV Shaders TV 셰이더 - - Selects post-processing TV shader. - 후처리 TV 셰이더를 선택합니다. - - - + Advanced 고급 - + Skip Presenting Duplicate Frames 중복 프레임 표시 건너뛰기 - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - 25/30fps 게임에서 변경되지 않는 프레임 표시를 건너뜁니다. 속도는 향상되지만 입력 지연이 증가하거나 프레임 속도가 저하될 수 있습니다. - - - + Disable Threaded Presentation 스레드 프레젠테이션 비활성화 - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - GS 스레드가 아닌 워커 스레드에 프레임을 표시합니다. 일부 시스템에서는 프레임 속도가 저하될 수 있지만 프레임 시간을 개선할 수 있습니다. - - - + Hardware Download Mode 하드웨어 내려받기 모드 - + Changes synchronization behavior for GS downloads. GS 내려받기 동기화 동작을 변경합니다. - + Allow Exclusive Fullscreen 전체 화면 전용으로 사용 - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. 전체 화면 전용 또는 직접 플립/스캔아웃을 활성화하기 위해 드라이버의 휴리스틱을 재정의합니다. - + Override Texture Barriers 텍스처 장벽 재정의 - + Forces texture barrier functionality to the specified value. 텍스처 장벽 기능을 지정된 값으로 강제 적용합니다. - + GS Dump Compression GS 덤프 압축 - + Sets the compression algorithm for GS dumps. GS 덤프에 대한 압축 알고리즘을 설정합니다. - + Disable Framebuffer Fetch 프레임버퍼 가져오기 비활성화 - + Prevents the usage of framebuffer fetch when supported by host GPU. 호스트 GPU에서 지원하는 경우, 프레임 버퍼 가져오기 사용을 방지합니다. - + Disable Dual-Source Blending 듀얼 소스 혼합 비활성화 - + Prevents the usage of dual-source blending when supported by host GPU. 호스트 GPU에서 지원하는 경우 듀얼 소스 혼합 사용을 방지합니다. - + Disable Shader Cache 셰이더 캐시 비활성화 - + Prevents the loading and saving of shaders/pipelines to disk. 셰이더/파이프라인을 디스크에 불러오고 저장하는 것을 방지합니다. - + Disable Vertex Shader Expand 버텍스 셰이더 확장 비활성화 - + Falls back to the CPU for expanding sprites/lines. 스프라이트/라인 확장을 위해 CPU로 돌아갑니다. - + Runtime Settings 런타임 설정 - + Applies a global volume modifier to all sound produced by the game. 게임에서 생성되는 모든 음향에 전역 음량 수정을 적용합니다. - + Mixing Settings 혼합 설정 - + Changes when SPU samples are generated relative to system emulation. 시스템 에뮬레이션과 관련하여 SPU 표본화가 생성되는 시점이 변경됩니다. - + Determines how the stereo output is transformed to greater speaker counts. 스테레오 출력을 더 많은 스피커 수로 변환하는 방법을 결정합니다. - + Output Settings 출력 설정 - + Determines which API is used to play back audio samples on the host. 호스트에서 음향 표본을 재생하는 데 사용되는 API를 결정합니다. - + Sets the average output latency when using the cubeb backend. Cubeb 후단부를 사용할 때, 평균 출력 대기 시간을 설정합니다. - + + %d ms (avg) + %d밀리초(평균) + + + Timestretch Settings 타임 스트레치 설정 - + Affects how the timestretcher operates when not running at 100% speed. 타임스트레처가 100% 속도로 실행되지 않을 때, 작동 방식에 영향을 줍니다. - + + %d ms + %d밀리초 + + + Settings and Operations 설정 및 작동 - + Creates a new memory card file or folder. 새 메모리 카드 파일이나 폴더를 만듭니다. - + Simulates a larger memory card by filtering saves only to the current game. 현재 게임에 대한 저장만 필터링하여 더 큰 메모리 카드를 시뮬레이션합니다. - + Automatically ejects Memory Cards when they differ after loading a state. 상태를 불러온 후 메모리 카드가 다른 경우, 자동으로 메모리 카드를 꺼냅니다. - + If not set, this card will be considered unplugged. 설정하지 않으면 이 카드는 연결되지 않은 것으로 간주됩니다. - + The selected memory card image will be used for this slot. 선택한 메모리 카드 이미지가 이 슬롯에 사용됩니다. - + Resets the card name for this slot. 이 슬롯의 카드 이름을 재설정합니다. - + Create Memory Card 메모리 카드 만들기 - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. 만들려는 메모리 카드의 이름을 입력하고 크기를 선택합니다. 최상의 호환성을 위해 8MB 메모리 카드 또는 폴더 메모리 카드를 사용하는 것이 좋습니다. - + Card Name: 카드 이름 : - + Configuration 환경 설정 - + Uses game-specific settings for controllers for this game. 이 게임의 컨트롤러에 게임별 설정을 사용합니다. - + Copies the global controller configuration to this game. 이 게임에 전역 컨트롤러 구성을 복사합니다. - + Resets all configuration to defaults (including bindings). 모든 구성을 기본값(할당 포함)으로 초기화합니다. - + Replaces these settings with a previously saved input profile. 이러한 설정을 이전에 저장한 입력 프로필로 바꿉니다. - + Stores the current settings to an input profile. 입력 프로필에 현재 설정을 저장합니다. - + Input Sources 소스 입력 - + The SDL input source supports most controllers. SDL 입력 소스는 대부분의 컨트롤러를 지원합니다. - + Provides vibration and LED control support over Bluetooth. 블루투스를 통해 진동 및 LED 제어를 지원합니다. - + Allow SDL to use raw access to input devices. SDL이 입력 장치에 대한 원시 액세스를 사용하도록 허용합니다. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. XInput 소스는 XBox 360/XBox One/XBox 시리즈 컨트롤러를 지원합니다. - + Multitap 멀티탭 - + Enables an additional three controller slots. Not supported in all games. 컨트롤러 슬롯을 추가로 3개 사용할 수 있습니다. 모든 게임에서 지원되지는 않습니다. - + Attempts to map the selected port to a chosen controller. 선택한 포트를 선택한 컨트롤러에 매핑하려고 시도합니다. - + No Buttons Selected 선택된 버튼 없음 - + Determines how much pressure is simulated when macro is active. 매크로가 활성화되어 있을 때, 시뮬레이션되는 압력의 양을 결정합니다. - + Determines the pressure required to activate the macro. 매크로를 활성화하는 데 필요한 압력을 결정합니다. - + Toggle every %d frames %d 프레임마다 전환 - + Clears all bindings for this USB controller. 이 USB 컨트롤러에 대한 모든 할당을 지웁니다. - + Data Save Locations 데이터 저장 위치 - + Show Advanced Settings 고급 설정 표시 - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. 이러한 옵션을 변경하면 게임이 작동하지 않을 수 있습니다. 이러한 설정을 변경한 구성에 대해서는 PCSX2 팀에서 지원을 제공하지 않으므로 사용자 책임 하에 수정하시기 바랍니다. - + Logging - Logging + 로그 기록 - + System Console 시스템 콘솔 - + Writes log messages to the system console (console window/standard output). 로그 메시지를 시스템 콘솔(콘솔 창/표준 출력)에 기록합니다. - + File Logging 파일 로그 기록 - + Writes log messages to emulog.txt. 로그 메시지를 emulog.txt에 기록합니다. - + Verbose Logging 상세 로그 기록 - + Writes dev log messages to log sinks. 개발 로그 메시지를 로그 싱크에 기록합니다. - + Log Timestamps 타임스탬프 로그 - + Writes timestamps alongside log messages. 로그 메시지와 함께 타임스탬프를 기록합니다. - + EE Console EE 콘솔 - + Writes debug messages from the game's EE code to the console. 게임의 EE 코드에서 콘솔로 디버그 메시지를 작성합니다. - + IOP Console IOP 콘솔 - + Writes debug messages from the game's IOP code to the console. 게임의 IOP 코드에서 디버그 메시지를 콘솔에 기록합니다. - + CDVD Verbose Reads CD/DVD 세부 정보 읽기 - + Logs disc reads from games. 게임에서 디스크를 읽은 내용을 기록합니다. - + Emotion Engine 이모션 엔진 - + Rounding Mode 라운딩 모드 - + Determines how the results of floating-point operations are rounded. Some games need specific settings. 부동 소수점 연산 결과의 반올림 방식을 결정합니다. 일부 게임에는 특정 설정이 필요합니다. - + Clamping Mode 클램핑 모드 - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. 범위를 벗어난 부동 소수점 숫자를 처리하는 방법을 결정합니다. 일부 게임에는 특정 설정이 필요합니다. - + Enable EE Recompiler EE 리컴파일러 활성화 - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. 64비트 MIPS-IV 기계어 코드를 네이티브 코드로 적시에 바이너리 변환합니다. - + Enable EE Cache EE 캐시 활성화 - + Enables simulation of the EE's cache. Slow. EE의 캐시 시뮬레이션을 활성화합니다. 느림. - + Enable INTC Spin Detection INTC 스핀 감지 활성화 - + Huge speedup for some games, with almost no compatibility side effects. 일부 게임에서는 속도가 크게 향상되었으며 호환성 부작용이 거의 없습니다. - + Enable Wait Loop Detection 대기 루프 감지 활성화 - + Moderate speedup for some games, with no known side effects. 일부 게임의 속도가 약간 빨라지며, 알려진 부작용은 없습니다. - + Enable Fast Memory Access 빠른 메모리 액세스 활성화 - + Uses backpatching to avoid register flushing on every memory access. 백패치를 사용하여 모든 메모리 액세스에서 레지스터 플러싱을 방지합니다. - + Vector Units 벡터 유닛 - + VU0 Rounding Mode VU0 라운딩 모드 - + VU0 Clamping Mode VU0 클램핑 모드 - + VU1 Rounding Mode VU1 라운딩 모드 - + VU1 Clamping Mode VU1 클램핑 모드 - + Enable VU0 Recompiler (Micro Mode) VU0 리컴파일러 활성화(마이크로 모드) - + New Vector Unit recompiler with much improved compatibility. Recommended. 새로운 Vector Unity는 훨씬 향상된 호환성으로 재컴파일됩니다. 추천. - + Enable VU1 Recompiler VU1 리컴파일러 활성화 - + Enable VU Flag Optimization VU 플래그 최적화 활성화 - + Good speedup and high compatibility, may cause graphical errors. 속도 향상 및 호환성이 우수하지만 그래픽 오류가 발생할 수 있습니다. - + I/O Processor 입출력 프로세서 - + Enable IOP Recompiler IOP 리컴파일러 활성화 - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. 32비트 MIPS-I 기계어 코드를 원시 코드로 적시에 바이너리 변환합니다. - + Graphics 그래픽 - + Use Debug Device 디버그 장치 사용 - - Enables API-level validation of graphics commands - 그래픽 명령의 API 수준 검증 활성화 - - - + Settings 설정 - + No cheats are available for this game. 이 게임에서 사용할 수 있는 치트가 없습니다. - + Cheat Codes 치트 코드 - + No patches are available for this game. 이 게임에서 사용할 수 있는 패치가 없습니다. - + Game Patches 게임 패치 - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. 치트를 활성화하면 예측할 수 없는 동작, 충돌, 소프트 잠금 또는 저장된 게임이 손상될 수 있습니다. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. 게임 패치를 활성화하면 예측할 수 없는 동작, 충돌, 소프트 잠금 또는 저장된 게임이 손상될 수 있습니다. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. 패치는 사용자 책임 하에 사용해야 하며, 게임 패치를 활성화한 사용자에 대해서는 PCSX2 팀에서 지원하지 않습니다. - + Game Fixes 게임 수정 - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. 각 옵션의 기능과 그 의미를 숙지하지 않은 상태에서 게임 수정을 수정해서는 안 됩니다. - + FPU Multiply Hack FPU 멀티플라이 핵 - + For Tales of Destiny. 테일즈 오브 데스티니용입니다. - + FPU Negative Div Hack FPU 네거티브 디비 핵 - + For Gundam games. 건담 게임용입니다. - + Preload TLB Hack TLB 핵 미리 불러오기 - - To avoid tlb miss on Goemon. - 고에몬에서 tlb 누락을 방지합니다. - - - - Switch to Software renderer for FMVs. - FMV용 소프트웨어 렌더러로 전환합니다. - - - + Needed for some games with complex FMV rendering. 복잡한 FMV 렌더링을 사용하는 일부 게임에 필요합니다. - + Skip MPEG Hack MPEG 핵 건너뛰기 - + Skips videos/FMVs in games to avoid game hanging/freezes. 게임 중단/정지를 방지하기 위해 게임에서 영상/FMV를 건너뜁니다. - + OPH Flag Hack OPH 플래그 핵 - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - 영향을 미치는 것으로 알려진 게임 : 블리치 블레이드 배틀러, 그로울랜서 2/3, 위저드리. - - - + EE Timing Hack EE 타이밍 핵 - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - 영향을 미치는 것으로 알려진 게임 : 디지털 데빌 사가(FMV 및 크래시 수정), SSX(그래픽 불량 및 크래시 수정). - - - + Instant DMA Hack 인스턴트 DMA 핵 - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - 영향을 미치는 것으로 알려진 게임 : 파이어 프로 레슬링 Z(링 그래픽 불량). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + 영향을 미치는 것으로 알려진 게임 : 마나 케미아 1, 메탈 사가, 에너미 라인스. - - Handle DMAC writes when it is busy. - 사용량이 많은 경우 DMAC 쓰기를 처리합니다. + + For SOCOM 2 HUD and Spy Hunter loading hang. + SOCOM 2 HUD 및 스파이 헌터 로딩이 중단됩니다. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - 영향을 미치는 것으로 알려진 게임 : 마나 케미아 1, 메탈 사가, 에너미 라인스. + + VU Add Hack + VU 추가 핵 - - Force GIF PATH3 transfers through FIFO - FIFO를 통한 강제 GIF PATH3 전송 + + Full VU0 Synchronization + 전체 VU0 동기화 - - (Fifa Street 2). - (피파 스트리트 2). + + Forces tight VU0 sync on every COP2 instruction. + 모든 COP2 명령어에 대해 긴밀한 VU0 동기화를 강제합니다. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - VIF1 FIFO를 미리 읽어 시뮬레이션합니다. 로딩이 느린 게임을 수정합니다. + + VU Overflow Hack + VU 오버플로 핵 - - Known to affect following games: Test Drive Unlimited, Transformers. - 영향을 미치는 것으로 알려진 게임 : 테스트 드라이브 언리미티드, 트랜스포머. + + To check for possible float overflows (Superman Returns). + 플로트 오버플로 가능성을 확인합니다.(슈퍼맨 리턴즈) - - Delay VIF1 Stalls (VIF1 FIFO) - VIF1 스톨 지연(VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + VU XGKicks에 정확한 타이밍을 사용합니다.(느림) - - For SOCOM 2 HUD and Spy Hunter loading hang. - SOCOM 2 HUD 및 스파이 헌터 로딩이 중단됩니다. + + Quadraphonic + 쿼드러포닉 - - VU Add Hack - VU 추가 핵 + + Load State + 상태 불러오기 - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - 부팅 시, 이 핵이 필요한 게임 : 스타 오션 3, 라디아타 스토리, 발키리 프로필 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + 에뮬레이트된 이모션 엔진이 사이클을 건너뛰도록 합니다. SOTC와 같은 일부 게임에 도움이 됩니다. 대부분의 경우 성능에 해롭습니다. - - VU I bit Hack avoid constant recompilation in some games - 일부 게임에서 지속적인 재컴파일을 피하는 VU I 비트 핵 + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + 일반적으로 코어가 4개 이상인 CPU에서 속도가 향상됩니다. 대부분의 게임에서 안전하지만 일부 게임은 호환되지 않아 중단될 수 있습니다. - - Scarface The World Is Yours, Crash Tag Team Racing. - 스카페이스 The World Is Yours, 크래시 태그 팀 레이싱. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + VU1을 즉시 실행합니다. 대부분의 게임에서 약간의 속도 향상을 제공합니다. 대부분의 게임에서 안전하지만 일부 게임에서 그래픽 오류가 발생할 수 있습니다. - - Full VU0 Synchronization - 전체 VU0 동기화 + + Scale To Host Refresh Rate + 호스트 새로 고침 속도에 맞춰 확장 - - Forces tight VU0 sync on every COP2 instruction. - 모든 COP2 명령어에 대해 긴밀한 VU0 동기화를 강제합니다. + + Disable Depth Emulation + 깊이 에뮬레이션 비활성화 - - VU Sync (Run behind) - VU 동기화(뒤에서 실행) + + Disable the support of depth buffers in the texture cache. + 텍스처 캐시에서 깊이 버퍼 지원을 비활성화합니다. - - To avoid sync problems when reading or writing VU registers. - VU 레지스터를 읽거나 쓸 때, 동기화 문제를 방지합니다. + + Disable Render Fixes + 렌더링 수정 비활성화 - - VU Overflow Hack - VU 오버플로 핵 + + Preload Frame Data + 프레임 데이터 미리 불러오기 - - To check for possible float overflows (Superman Returns). - 플로트 오버플로 가능성을 확인합니다.(슈퍼맨 리턴즈) + + Texture Inside RT + 텍스처 내부 RT - - VU XGkick Sync - VU XGkick 동기화 + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + 활성화하면 GPU가 컬러맵 텍스처를 변환하고, 그렇지 않으면 CPU가 변환합니다. 이는 GPU와 CPU 간의 절충안입니다. - - Use accurate timing for VU XGKicks (slower). - VU XGKicks에 정확한 타이밍을 사용합니다.(느림) + + Half Pixel Offset + 하프 픽셀 오프세트 - - Use Blit for internal FPS - 내부 FPS에 Blit 사용 + + Texture Offset X + 텍스처 오프세트 X - - Quadraphonic - Quadraphonic + + Texture Offset Y + 텍스처 오프세트 Y - - Load State - 상태 불러오기 + + Dumps replaceable textures to disk. Will reduce performance. + 교체 가능한 텍스처를 디스크에 덤프합니다. 퍼포먼스가 저하됩니다. + + + + Applies a shader which replicates the visual effects of different styles of television set. + 다양한 스타일의 텔레비전 세트의 시각 효과를 재현하는 셰이더를 적용합니다. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + 25/30fps 게임에서 변경되지 않는 프레임 표시를 건너뜁니다. 속도를 향상시킬 수 있지만 입력 지연을 증가시키거나 프레임 속도를 악화시킬 수 있습니다. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + 작업자 스레드 대신 메인 GS 스레드에 프레임을 표시합니다. 프레임 시간 문제를 디버깅하는 데 사용됩니다. + + + + Enables API-level validation of graphics commands. + 그래픽 명령의 API 수준 유효성 검사를 활성화합니다. + + + + Use Software Renderer For FMVs + FMV에 소프트웨어 렌더러 사용 + + + + To avoid TLB miss on Goemon. + 고에몬의 TLB 미스를 방지합니다. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + 범용 타이밍 핵. 영향을 미치는 것으로 알려진 게임 : 디지털 데빌 사가, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + 캐시 에뮬레이션 문제에 적합합니다. 영향을 미치는 것으로 알려진 게임 : 파이어 프로 레슬링 Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + 영향을 미치는 것으로 알려진 게임 : 블리치 블레이드 배틀러, 그로울랜서 2/3, 위저드리. + + + + Emulate GIF FIFO + GIF FIFO 에뮬레이트 + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + 정확하지만 느립니다. 영향을 미치는 것으로 알려진 게임 : 피파 스트리트 2. - + + DMA Busy Hack + DMA 비지 핵 + + + + Delay VIF1 Stalls + VIF1 스톨 지연 + + + + Emulate VIF FIFO + VIF FIFO 에뮬레이트 + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + VIF1 FIFO를 미리 읽어 시뮬레이션합니다. 영향을 미치는 것으로 알려진 게임 : 테스트 드라이브 언리미티드, 트랜스포머. + + + + VU I Bit Hack + VU I 비트 핵 + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + 일부 게임에서 지속적인 재컴파일을 방지합니다. 영향을 미치는 것으로 알려진 게임 : 스카페이스 더 월드 이즈 유어스, 크래시 태그 팀 레이싱. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + 트라이 에이스 게임용 : 스타 오션 3, 라디아타 스토리, 발키리 프로필 2. + + + + VU Sync + VU 동기화 + + + + Run behind. To avoid sync problems when reading or writing VU registers. + 뒤로 실행합니다. VU 레지스터를 읽거나 쓸 때, 동기화 문제를 방지합니다. + + + + VU XGKick Sync + VU XGKick 동기화 + + + + Force Blit Internal FPS Detection + 블리트 내부 FPS 감지 강제 적용 + + + Save State 상태 저장 - + Load Resume State 상태 재개 불러오기 - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5846,2221 +6194,2122 @@ Do you want to load this save and continue? 이 저장을 불러와서 계속하시겠습니까? - + Region: 지역 코드 : - + Compatibility: 호환성 : - + No Game Selected 선택한 게임 없음 - + Search Directories 디렉터리 검색 - + Adds a new directory to the game search list. 게임 검색 목록에 새 디렉터리를 추가합니다. - + Scanning Subdirectories 하위 디렉터리 검색 - + Not Scanning Subdirectories 하위 디렉터리 검색 안 함 - + List Settings 목록 설정 - + Sets which view the game list will open to. 게임 목록을 어떤 보기로 열 것인지 설정합니다. - + Determines which field the game list will be sorted by. 게임 목록을 정렬할 필드를 결정합니다. - + Reverses the game list sort order from the default (usually ascending to descending). 게임 목록 정렬 순서를 기본값(일반적으로 오름차순에서 내림차순)에서 반대로 바꿉니다. - + Cover Settings 표지 설정 - + Downloads covers from a user-specified URL template. 사용자가 지정한 URL 템플릿에서 표지를 내려받습니다. - + Operations 운영 - + + Selects where anisotropic filtering is utilized when rendering textures. + 텍스처 렌더링 시, 이방성 필터링이 사용되는 위치를 선택합니다. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + 일부 게임에서 잘못된 수치를 피하려면 대체 방법을 사용하여 내부 FPS를 계산하세요. - + Identifies any new files added to the game directories. 게임 디렉터리에 추가된 새 파일을 식별합니다. - + Forces a full rescan of all games previously identified. 이전에 식별된 모든 게임을 강제로 다시 검사합니다. - + Download Covers 표지 내려받기 - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2는 현재 커버 세트가 없는 게임의 커버를 자동으로 다운로드할 수 있습니다. 저희는 어떠한 표지 이미지도 호스팅하지 않으며, 사용자가 직접 이미지 소스를 제공해야 합니다. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - 아래 양식에 표지를 내려받을 URL을 한 줄당 하나의 템플릿 URL로 지정합니다. 다음 변수 사용 가능 : - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title} : 게임 타이틀. -${filetitle} : 파일 이름의 이름 구성 요소. -${serial} : 게임 일련 번호. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - 예 : https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - 시리얼 파일 이름 사용 - - - + About PCSX2 PCSX2 정보 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2는 무료 오픈 소스 플레이스테이션2(PS2) 에뮬레이터입니다. 이 에뮬레이터의 목적은 하드웨어 상태와 PS2 시스템 메모리를 관리하는 MIPS CPU 인터프리터, 리컴파일러 및 가상 머신의 조합을 사용하여 PS2의 하드웨어를 에뮬레이션하는 것입니다. 이를 통해 PC에서 PS2 게임을 플레이할 수 있으며 많은 추가 기능과 이점이 있습니다. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. “PlayStation 2” 및 “PS2”는 Sony Interactive Entertainment Inc.의 상표 또는 등록 상표입니다. 이 응용프로그램은 Sony Interactive Entertainment Inc.와 어떠한 제휴도 맺어진 바가 없습니다. - - XXX points - XXX점 - - - - Unlocked Achievements - 잠금 해제된 도전 과제 - - - - Locked Achievements - 잠겨진 도전 과제 - - - - Active Challenge Achievements - 활성 도전 과제 달성 - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - 하드코어 모드가 꺼져 있으므로 점수 제출이 불가능합니다. 순위표는 읽기 전용입니다. - - - - Rank - 순위 - - - - Name - 이름 - - - - Time - 시간 - - - - Score - 점수 - - - - Downloading leaderboard data, please wait... - 순위표 데이터를 내려받는 중입니다, 잠시만 기다려주세요... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. 활성화하고 로그인하면 PCSX2는 시작 시 도전 과제를 검색합니다. - - When enabled, rich presence information will be collected and sent to the server where supported. - 활성화하면 활성 상태 정보가 수집되어 지원되는 서버로 전송됩니다. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. 순위표 추적을 포함한 도전 과제를 위한 "도전" 모드. 저장 상태, 치트, 속도 저하 기능을 비활성화합니다. - - Enables tracking and submission of leaderboards in supported games. - 지원되는 게임에서 순위표를 추적하고 제출할 수 있습니다. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. 업적 잠금 해제 및 리더보드 제출과 같은 이벤트에 대한 팝업 메시지를 표시합니다. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. 도전 과제 잠금 해제 및 순위표 제출과 같은 이벤트에서 음향 효과를 재생합니다. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. 도전/준비된 도전 과제가 활성화되면 화면 오른쪽 하단에 아이콘이 표시됩니다. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. 이 옵션을 활성화하면 PCSX2는 비공식 세트의 업적을 나열합니다. 이러한 도전 과제는 레트로어치브먼트에서 추적되지 않습니다. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. 활성화하면 PCSX2는 모든 도전 과제가 잠긴 것으로 간주하고 잠금 해제 알림을 서버로 보내지 않습니다. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + 순위표 도전을 시작, 제출 또는 실패할 때 팝업 메시지를 표시합니다. + + + + When enabled, each session will behave as if no achievements have been unlocked. + 활성화하면 각 세션은 잠금 해제된 도전 과제가 없는 것처럼 작동합니다. + + + Account - Account + 계정 - + Logs out of RetroAchievements. 레트로어치브먼트에서 로그아웃합니다. - + Logs in to RetroAchievements. 레트로어치브먼트에 로그인합니다. - + Current Game - Current Game - - - - Achievements Login - 도전 과제 로그인 - - - - Please enter your user name and password for retroachievements.org. - retroachievements.org의 사용자 이름과 비밀번호를 입력하세요. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - 비밀번호는 PCSX2에 저장되지 않으며, 대신 액세스 토큰이 생성되어 사용됩니다. - - - - User Name: - 사용자 이름 : - - - - Password: - 비밀번호 : + 현재 게임 - + {} is not a valid disc image. {}은(는) 유효한 디스크 이미지가 아닙니다. - + Automatic mapping completed for {}. {}에 대한 자동 매핑이 완료되었습니다. - + Automatic mapping failed for {}. {}에 대한 자동 매핑에 실패했습니다. - + Game settings initialized with global settings for '{}'. '{}'에 대한 전역 설정으로 게임 설정이 초기화됩니다. - + Game settings have been cleared for '{}'. '{}'에 대한 게임 설정을 지웠습니다. - + Console Port {} - Console Port {} + 콘솔 포트 {} - + {} (Current) {}(현재) - + {} (Folder) {}(폴더) - + Memory card name '{}' is not valid. 메모리 카드 이름 '{}'이(가) 유효하지 않습니다. - + Memory Card '{}' created. 메모리 카드 '{}'가 생성되었습니다. - + Failed to create memory card '{}'. 메모리 카드를 만들지 못했습니다 '{}'. - + A memory card with the name '{}' already exists. '{}'라는 이름의 메모리 카드가 이미 있습니다. - + Failed to load '{}'. '{}'을(를) 불러오지 못했습니다. - + Input profile '{}' loaded. 입력 프로필 '{}'을(를) 불러왔습니다. - + Input profile '{}' saved. 입력 프로필 '{}'이(가) 저장되었습니다. - + Failed to save input profile '{}'. 입력 프로필 '{}'을(를) 저장하지 못했습니다. - + Port {} Controller Type 포트 {} 컨트롤러 유형 - + Select Macro {} Binds 매크로 {} 할당 선택 - + + Macro {} Frequency + 매크로 {} 빈도 + + + Macro will toggle every {} frames. 매크로는 {}프레임마다 전환됩니다. - + Port {} Device 포트 {} 장치 - + Port {} Subtype 포트 {} 하위 유형 - + {} unlabelled patch codes will automatically activate. {} 레이블이 지정되지 않은 패치 코드는 자동으로 활성화됩니다. - + {} unlabelled patch codes found but not enabled. {} 레이블이 지정되지 않은 패치 코드를 찾았지만 활성화하지 않았습니다. - + This Session: {} 현재 세션 : {} - + All Time: {} 총 시간 : {} - + Save Slot {0} 슬롯 {0}에 저장 - + Saved {} {} 저장됨 - + {} does not exist. {}이(가) 존재하지 않습니다. - + {} deleted. {}이(가) 삭제되었습니다. - + Failed to delete {}. {}을(를) 삭제하지 못했습니다. - + File: {} 파일 : {} - + CRC: {:08X} CRC : {:08X} - + Time Played: {} 플레이 시간 : {} - + Last Played: {} 마지막 플레이 : {} - + Size: {:.2f} MB 크기 : {:.2f}MB - - {} points - {}점 - - - - {} (Hardcore Mode) - {}(하드코어 모드) + + Left: + ← : - - You have unlocked all achievements and earned {} points! - 모든 도전 과제를 잠금 해제하고 {}점을 획득했습니다! + + Top: + ↑ : - - You have unlocked {} of {} achievements, earning {} of {} possible points. - 도전 과제 {}개를 잠금 해제하여 획득 가능한 점수 {}점 중 {}점을 획득했습니다. + + Right: + → : - - This game has {} leaderboards. - 이 게임에는 {}개의 순위표가 있습니다. + + Bottom: + ↓ : - + Summary 요약 - + Interface Settings 인터페이스 설정 - + BIOS Settings 바이오스 설정 - + Emulation Settings 에뮬레이션 설정 - + Graphics Settings 그래픽 설정 - + Audio Settings 음향 설정 - + Memory Card Settings 메모리 카드 설정 - + Controller Settings 컨트롤러 설정 - + Hotkey Settings 단축키 설정 - + Achievements Settings 도전 과제 설정 - + Folder Settings 폴더 설정 - + Advanced Settings 고급 설정 - + Patches 패치 - + Cheats 치트 - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1FPS(NTSC)/1 FPS(PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6FPS(NTSC)/5 FPS(PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15FPS(NTSC)/12FPS(PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30FPS(NTSC)/25FPS(PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45FPS(NTSC)/37FPS(PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54FPS(NTSC)/45FPS(PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60FPS(NTSC)/50FPS(PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66FPS(NTSC)/55FPS(PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72FPS(NTSC)/60FPS(PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90FPS(NTSC)/75FPS(PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105FPS(NTSC)/87FPS(PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120FPS(NTSC)/100FPS(PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180FPS(NTSC)/150FPS(PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240FPS(NTSC)/200FPS(PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300FPS(NTSC)/250FPS(PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600FPS(NTSC)/500FPS(PAL)] - + 50% Speed 50% 속도 - + 60% Speed 60% 속도 - + 75% Speed 75% 속도 - + 100% Speed (Default) 100% 속도(기본값) - + 130% Speed 130% 속도 - + 180% Speed 180% 속도 - + 300% Speed 300% 속도 - + Normal (Default) 보통(기본) - + Mild Underclock 가벼운 언더클럭 - + Moderate Underclock 적당한 언더클럭 - + Maximum Underclock 최대 언더클럭 - + Disabled 비활성화 - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0프레임(물리 동기화) - + 1 Frame 1프레임 - + 2 Frames 2프레임 - + 3 Frames 3프레임 - + None 없음 - + Extra + Preserve Sign 추가+보존 기호 - + Full 전체 - + Extra 추가 - + Automatic (Default) 자동(기본값) - + Direct3D 11 Direct3D11 - + Direct3D 12 Direct3D12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software 소프트웨어 - + Null 없음 - + Off - + On - + Adaptive 적응형 - + Bilinear (Smooth) 쌍선형(부드럽게) - + Bilinear (Sharp) 쌍선형(선명하게) - + Weave (Top Field First, Sawtooth) 직조(상단 필드 우선, 톱니) - + Weave (Bottom Field First, Sawtooth) 직조(하단 필드 우선, 톱니) - + Bob (Top Field First) 밥(상단 필드 우선) - + Bob (Bottom Field First) 밥(하단 필드 우선) - + Blend (Top Field First, Half FPS) 혼합(상단 필드 우선, 절반 FPS) - + Blend (Bottom Field First, Half FPS) 혼합(하단 필드 우선, 절반 FPS) - + Adaptive (Top Field First) 적응형(상단 필드 우선) - + Adaptive (Bottom Field First) 적응형(하단 필드 우선) - + Native (PS2) 원본(PS2) - + 1.25x Native 원본 1.25배 - + 1.5x Native 원본 1.5배 - + 1.75x Native 원본 1.75배 - + 2x Native (~720p) 원본 2배(~720P) - + 2.25x Native 원본 2.25배 - + 2.5x Native 원본 2.5배 - + 2.75x Native 원본 2.75배 - + 3x Native (~1080p) 원본 3배(~1080P) - + 3.5x Native 원본 3.5배 - + 4x Native (~1440p/2K) 원본 4배(~1440P/2K) - + 5x Native (~1620p) 원본 5배(~1620P) - + 6x Native (~2160p/4K) 원본 6배(~2160P/4K) - + 7x Native (~2520p) 원본 7배(~2520P) - + 8x Native (~2880p) 원본 8배(~2880P) - + Basic (Generated Mipmaps) 기본(생성된 밉맵) - + Full (PS2 Mipmaps) 전체(PS2 밉맵) - + Nearest 근린 - + Bilinear (Forced) 쌍선형(강제) - + Bilinear (PS2) 쌍선형(PS2) - + Bilinear (Forced excluding sprite) 쌍선형(스프라이트를 제외하고 강제) - + Off (None) 끔(없음) - + Trilinear (PS2) 삼선형(PS2) - + Trilinear (Forced) 삼선형(강제) - + Scaled 스케일 - + Unscaled (Default) 언스케일(기본값) - + Minimum 최저 - + Basic (Recommended) 기본(권장) - + Medium 중간 - + High 높음 - + Full (Slow) 완전(느림) - + Maximum (Very Slow) 최고(매우 느림) - + Off (Default) 끔(기본값) - + 2x 2배 - + 4x 4배 - + 8x 8배 - + 16x 16배 - + Partial 부분 - + Full (Hash Cache) 전체(해시 캐시) - + Force Disabled 비활성화 강제 적용 - + Force Enabled 활성화 강제 적용 - + Accurate (Recommended) 정확(권장) - + Disable Readbacks (Synchronize GS Thread) 다시 읽기 비활성화(GS 스레드 동기화) - + Unsynchronized (Non-Deterministic) 동기화되지 않음(비결정적) - + Disabled (Ignore Transfers) 비활성화(전송 무시) - + Screen Resolution 화면 해상도 - - Internal Resolution (Uncorrected) - 내부 해상도(무보정) + + Internal Resolution (Aspect Uncorrected) + 내부 해상도(무보정 종횡비) + + + + Cannot show details for games which were not scanned in the game list. + 게임 목록에서 스캔하지 않은 게임에 대한 세부 정보를 표시할 수 없습니다. + + + + Full Boot + 전체 부팅 + + + + Achievement Notifications + 도전 과제 알림 + + + + Leaderboard Notifications + 순위표 알림 + + + + Enable In-Game Overlays + 인게임 오버레이 활성화 + + + + Encore Mode + 앙코르 모드 + + + + Spectator Mode + 관전 모드 - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0(비활성화) - + 1 (64 Max Width) 1(64 최대 너비) - + 2 (128 Max Width) 2(128 최대 너비) - + 3 (192 Max Width) 3(192 최대 너비) - + 4 (256 Max Width) 4(256 최대 너비) - + 5 (320 Max Width) 5(320 최대 너비) - + 6 (384 Max Width) 6(384 최대 너비) - + 7 (448 Max Width) 7(448 최대 너비) - + 8 (512 Max Width) 8(512 최대 너비) - + 9 (576 Max Width) 9(576 최대 너비) - + 10 (640 Max Width) 10(640 최대 너비) - + Sprites Only 스프라이트만 - + Sprites/Triangles 스프라이트/삼각 - + Blended Sprites/Triangles 스프라이트/삼각 혼합 - + 1 (Normal) 1(보통) - + 2 (Aggressive) 2(공격적) - + Inside Target 타겟 내부 - + Merge Targets 타겟 병합 - + Normal (Vertex) 일반(버텍스) - + Special (Texture) 특수(텍스처) - + Special (Texture - Aggressive) 특수(텍스처 - 공격적) - + Half 절반 - + Force Bilinear 쌍선형 강제 적용 - + Force Nearest 근린 강제 적용 - + Disabled (Default) 비활성화(기본값) - + Enabled (Sprites Only) 활성화(스프라이트만) - + Enabled (All Primitives) 활성화됨(모든 기본 요소) - + None (Default) 없음(기본값) - + Sharpen Only (Internal Resolution) 선명도만(내부 해상도) - + Sharpen and Resize (Display Resolution) 선명도 및 크기 조정(디스플레이 해상도) - + Scanline Filter 스캔라인 필터 - + Diagonal Filter 대각선 필터 - + Triangular Filter 삼각 필터 - + Wave Filter 웨이브 필터 - + Lottes CRT Lottes CRT - + 4xRGSS 4배 RGSS - + NxAGSS N배 AGSS - + Uncompressed 압축 해제됨 - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Z표준(zst) - + TimeStretch (Recommended) 타임 스트레치(권장) - + Async Mix (Breaks some games!) 비동기 믹스(일부 게임 중단!) - + None (Audio can skip.) 없음(음향 건너뛸 수 있음) - + Stereo (None, Default) 스테레오(없음, 기본값) - + Surround 5.1 서라운드 5.1 - + Surround 7.1 서라운드 7.1 - + No Sound (Emulate SPU2 only) 음향 없음(에뮬레이트 SPU2만) - + Cubeb (Cross-platform) Cubeb(크로스 플랫폼) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [높은 호환성 보장] - + 16 MB 16MB - + 32 MB 32MB - + 64 MB 64MB - + Folder [Recommended] 폴더 [권장] - + 128 KB [PS1] 128KB [PS1] - + + Negative + 부정 + + + + Positive + 긍정 + + + + Chop/Zero (Default) + 잘라내기/제로(기본값) + + + Game Grid 게임 그리드 - + Game List 게임 목록 - + Game List Settings 게임 목록 설정 - + Type 유형 - + Serial 일련번호 - + Title 타이틀 - + File Title 게임 타이틀 - + CRC CRC - + Time Played 플레이 시간 - + Last Played 마지막 플레이 - + Size 크기 - + Select Disc Image 디스크 이미지 선택 - + Select Disc Drive 디스크 드라이브 선택 - + Start File 파일 실행 - + Start BIOS 바이오스 실행 - + Start Disc 디스크 실행 - + Exit 종료 - + Set Input Binding 입력 할당 설정 - + Region 지역 코드 - + Compatibility Rating 호환성 등급 - + Path 경로 - + Disc Path 디스크 경로 - + Select Disc Path 디스크 경로 선택 - - Details unavailable for game not scanned in game list. - 게임 목록에서 검색되지 않은 게임에 대해서는 세부 정보를 확인할 수 없습니다. - - - + Copy Settings 설정 복사 - + Clear Settings 설정 지우기 - + Inhibit Screensaver 화면 보호기 사용 안 함 - + + Enable Discord Presence + 디스코드 상태 활성화 + + + Pause On Start 시작 시, 일시 중지 - + Pause On Focus Loss 초점 손실 시, 일시 중지 - + Pause On Menu 메뉴에서 일시 중지 - + Confirm Shutdown 시스템 종료 확인 - + Save State On Shutdown 종료 시, 상태 저장 - + Enable Per-Game Settings 게임별 설정 활성화 - + Use Light Theme 라이트 테마 사용 - + Start Fullscreen 전체 화면 시작 - + Double-Click Toggles Fullscreen 두 번 클릭으로 전체 화면 적용/해제 - + Hide Cursor In Fullscreen 전체 화면에서 커서 숨기기 - + OSD Scale 화면 표시 배율 - + Show Messages 메시지 표시 - + Show Speed 속도 표시 - + Show FPS FPS 표시 - + Show CPU Usage CPU 사용량 표시 - + Show GPU Usage GPU 사용량 표시 - + Show Resolution 해상도 표시 - + Show GS Statistics GS 통계 보기 - + Show Status Indicators 상태 표시기 표시 - + Show Settings 설정 표시 - + Show Inputs 입력 표시 - + Show Frame Times 프레임 시간 표시 - + Warn About Unsafe Settings 안전하지 않은 설정에 대한 경고 - + Reset Settings 설정 초기화 - + Change Search Directory 검색 디렉터리 변경 - + Fast Boot 고속 부팅 - + Output Volume 출력 음량 - + Synchronization Mode 동기화 모드 - + Expansion Mode 확장 모드 - + Output Module 출력 모듈 - + Latency 지연 시간 - + Sequence Length 시퀀스 길이 - + Seekwindow Size 검색 창 크기 - + Overlap 중첩 - + Memory Card Directory 메모리 카드 디렉터리 - + Folder Memory Card Filter 폴더 메모리 카드 필터 - + Auto Eject When Loading 볼러오기 시, 자동 꺼내기 - + Create 만들기 - + Cancel 취소 - + Load Profile 프로필 불러오기 - + Save Profile 프로필 저장 - + Per-Game Configuration 게임별 설정 - + Copy Global Settings 전역 설정 복사 - + Enable SDL Input Source SDL 입력 소스 활성화 - + SDL DualShock 4 / DualSense Enhanced Mode SDL 듀얼쇼크 4 / 듀얼센스 강화 모드 - + SDL Raw Input SDL 원시 입력 - + Enable XInput Input Source XInput 입력 소스 활성화 - + Enable Console Port 1 Multitap 콘솔 포트 1 멀티탭 활성화 - + Enable Console Port 2 Multitap 콘솔 포트 2 멀티탭 활성화 - + Controller Port {}{} 컨트롤러 유형 {}{} - + Controller Port {} 컨트롤러 유형 {} - + Controller Type 컨트롤러 유형 - + Automatic Mapping 자동 매핑 - + Controller Port {}{} Macros 컨트롤러 포트 {}{} 매크로 - + Controller Port {} Macros 컨트롤러 포트 {} 매크로 - + Macro Button {} 매크로 버튼 {} - + Buttons 버튼 - + Frequency 주사율 - + Pressure 압력 - + Controller Port {}{} Settings 컨트롤러 포트 {}{} 설정 - + Controller Port {} Settings 컨트롤러 포트 {} 설정 - + USB Port {} USB 포트 {} - + Device Type 장치 유형 - + Device Subtype 장치 하위 유형 - + {} Bindings {} 할당 - + Clear Bindings 할당 지우기 - + {} Settings {} 설정 - + Cache Directory 캐시 디렉터리 - + Covers Directory 표지 디렉터리 - + Snapshots Directory 스냅샷 디렉터리 - + Save States Directory 상태 디렉터리 저장 - + Game Settings Directory 게임 설정 디렉터리 - + Input Profile Directory 입력 프로필 디렉터리 - + Cheats Directory 치트 디렉터리 - + Patches Directory 패치 디렉터리 - + Texture Replacements Directory 대체 텍스처 디렉터리 - + Video Dumping Directory 영상 덤핑 디렉터리 - + Resume Game 게임 재개 - + Toggle Frame Limit 프레임 제한 적용/해제 - + Game Properties 게임 속성 - + Achievements 도전 과제 - + Save Screenshot 스크린샷 저장 - + Switch To Software Renderer 소프트웨어 렌더러로 전환 - + Switch To Hardware Renderer 하드웨어 렌더러로 전환 - + Change Disc 디스크 변경 - + Close Game 게임 닫기 - + Exit Without Saving 저장하지 않고 종료 - + Back To Pause Menu 일시 중지 메뉴로 돌아가기 - + Exit And Save State 종료 및 상태 저장 - + Leaderboards 순위표 - + Delete Save 저장 삭제 - + Close Menu 메뉴 닫기 - - Clean Boot - 클린 부팅 - - - + Delete State 상태 삭제 - + Default Boot 기본 부팅 - - Slow Boot - 저속 부팅 - - - + Reset Play Time 플레이 시간 초기화 - + Add Search Directory 검색 디렉터리 추가 - + Open in File Browser 파일 브라우저에서 열기 - + Disable Subdirectory Scanning 하위 디렉터리 검색 비활성화 - + Enable Subdirectory Scanning 하위 디렉터리 검색 활성화 - + Remove From List 목록에서 제거 - + Default View 기본 보기 - + Sort By 정렬 기준 - + Sort Reversed 역순 정렬 - + Scan For New Games 새로운 게임 찾기 - + Rescan All Games 모든 게임 다시 검색 - - Start Download - 내려받기 시작 - - - + Website 웹사이트 - + Support Forums 포럼 문의 - + GitHub Repository Github 저장소 - + License 라이선스 - + Close 닫기 - + RAIntegration is being used instead of the built-in achievements implementation. 기본 제공 도전 과제 구현 대신 RAIntegration이 사용되고 있습니다. - + Enable Achievements 도전 과제 활성화 - - Rich Presence - 활동 상태 - - - + Hardcore Mode 하드코어 모드 - - Show Notifications - 알림 표시 - - - + Sound Effects 음향 효과 - - Show Challenge Indicators - 과제 지표 표시 - - - + Test Unofficial Achievements 비공식 도전 과제 테스트 - - Test Mode - 테스트 모드 - - - + Username: {} 사용자 이름 : {} - + Login token generated on {} {}에 생성된 로그인 토큰 - + Logout 로그아웃 - - Not Logged In - 로그인 하지 않음 - - - - Login - 로그인 - - - - Achievements are disabled. - 도전 과제가 비활성화됩니다. - - - - Game ID: {} - 게임 ID : {} + + Not Logged In + 로그인 하지 않음 - - Game Title: {} - 게임 타이틀 : {} + + Login + 로그인 - - Achievements: {} ({} points) - 도전 과제 : {} ({}점) + + Game: {0} ({1}) + 게임 : {0}({1}) - + Rich presence inactive or unsupported. 비활성 상태이거나 지원되지 않는 활동 상태입니다. - + Game not loaded or no RetroAchievements available. 게임을 불러오지 않아 레트로어테치먼트를 이용할 수 없습니다. - + Card Enabled 카드 활성화됨 - + Card Name 카드 이름 - + Eject Card 카드 꺼내기 @@ -8073,7 +8322,7 @@ ${serial} : 게임 일련 번호. 다시 열지 못해 이전 구성을 복원했습니다. - + Upscale multiplier set to {}x. 업스케일 배율을 {}배로 설정합니다. @@ -8128,12 +8377,12 @@ ${serial} : 게임 일련 번호. 하나 이상의 압축된 대체 텍스처에서 자동 생성된 밉맵을 비활성화합니다. 텍스처를 압축할 때 밉맵을 생성하세요. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. 스텐실 버퍼와 텍스처 장벽을 모두 사용할 수 없으므로 일부 그래픽 효과가 손상될 수 있습니다. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. 읽기 중 GPU 회전이 활성화되어 있지만 보정된 타임스탬프는 사용할 수 없습니다. 속도가 매우 느려질 수 있습니다. @@ -8189,7 +8438,7 @@ ${serial} : 게임 일련 번호. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8200,263 +8449,407 @@ graphical quality, but this will increase system requirements. 시스템 요구 사항이 증가합니다. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: 수동 GS 하드웨어 렌더러 수정이 활성화되어 자동 수정 미적용 : - + No tracks provided. 제공되는 트랙이 없습니다. - + Hash {} is not in database. 해시 {}가 데이터베이스에 없습니다. - + Data track number does not match data track in database. 데이터 트랙 번호가 데이터베이스의 데이터 트랙과 일치하지 않습니다. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - 해시 {}가 포함된 {} 트랙을 데이터베이스에서 찾을 수 없습니다. + 해시 {1}이(가) 있는 트랙 {0}을(를) 데이터베이스에서 찾을 수 없습니다. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - 해시 {}가 포함된 {} 트랙은 다른 게임({})을 위한 것입니다. + 해시 {1}이 있는 트랙 {0}은 다른 게임({2})을 위한 것입니다. + - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - 해시 {}가 있는 {} 트랙이 데이터베이스 트랙과 일치하지 않습니다. + 해시 {1}이(가) 있는 트랙 {0}이(가) 데이터베이스 트랙과 일치하지 않습니다. + GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) 게임 수정(전역 변경 권장하지 않음) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU 네거티브 분할 핵(건담 게임용) + FPU 네거티브 분할 핵 - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU 멀티플라이 핵(테일즈 오브 데스티니용) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - FMV용 소프트웨어 렌더러 사용 + FPU 멀티플라이 핵 - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - MPEG 핵 건너뛰기(영상/FMV 건너뛰기) + MPEG 핵 건너뛰기 - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - TLB 핵 미리 불러오기(고에몽용) + TLB 핵 미리 불러오기 - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE 타이밍 핵(범용 타이밍 해킹) + EE 타이밍 핵 - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - 인스턴트 DMA 핵(캐시 에뮬레이션 문제에 적합) + 인스턴트 DMA 핵 - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH 플래그 핵(블리치 블레이드 배틀러용) + OPH 플래그 핵 - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - GIF FIFO 에뮬레이트(정확하지만 느림) + GIF FIFO 에뮬레이트 - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA 비지 핵(사용 중일 때 쓰기 거부) + DMA 비지 핵 - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - VIF1 중단 지연(SOCOM 2 HUD/스파이 헌터용) + VIF1 스톨 지연 - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - VIF FIFO 에뮬레이트(정확하지만 느림) + VIF FIFO 에뮬레이트 - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - 전체 VU0 동기화(정확하지만 느림) + 전체 VU0 동기화 - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I 비트 핵(스카페이스/크래쉬 밴디쿳 모여라 월드용) + VU I 비트 핵 - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU 애드 핵(tri-Ace 게임용) + VU 추가 핵 - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU 오버플로 핵(슈퍼맨 리턴즈) + VU 오버플로 핵 - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU 동기화(런 비하인드, M-Bit 게임) + VU 동기화 - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick 동기화(정확하지만 느림) + VU XGKick 동기화 - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - 내부 FPS 강제 블릿 감지(자동 감지에 실패했을 때) + 블리트 내부 FPS 감지 강제 적용 + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + FMV용 소프트웨어 렌더러 사용 + + + + + + + + + + + + + + + + + + + + + + Unchecked + 선택 해제 + + + + For Tales of Destiny. + 테일즈 오브 데스티니용입니다. + + + + For Gundam Games. + 건담 게임용입니다. + + + + To avoid TLB miss on Goemon. + 고에몬의 TLB 미스를 방지합니다. + + + + Needed for some games with complex FMV rendering. + 복잡한 FMV 렌더링을 사용하는 일부 게임에 필요합니다. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + 게임 중단/정지를 방지하기 위해 게임에서 영상/FMV를 건너뜁니다. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + 영향을 미치는 것으로 알려진 게임 : 블리치 블레이드 배틀러, 그로울랜서 2/3, 위저드리. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + 범용 타이밍 핵. 영향을 미치는 것으로 알려진 게임 : 디지털 데빌 사가, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + 캐시 에뮬레이션 문제에 적합합니다. 영향을 미치는 것으로 알려진 게임 : 파이어 프로 레슬링 Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + 영향을 미치는 것으로 알려진 게임 : 마나 케미아 1, 메탈 사가, 에너미 라인스. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + 정확하지만 느립니다. 영향을 미치는 것으로 알려진 게임 : 피파 스트리트 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + VIF1 FIFO를 미리 읽어 시뮬레이션합니다. 영향을 미치는 것으로 알려진 게임 : 테스트 드라이브 언리미티드, 트랜스포머. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + SOCOM 2 HUD 및 스파이 헌터 로딩이 중단됩니다. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + 트라이 에이스 게임용 : 스타 오션 3, 라디아타 스토리, 발키리 프로필 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + 일부 게임에서 지속적인 재컴파일을 방지합니다. 영향을 미치는 것으로 알려진 게임 : 스카페이스 더 월드 이즈 유어스, 크래시 태그 팀 레이싱. + + + + Forces tight VU0 sync on every COP2 instruction. + 모든 COP2 명령어에 대해 긴밀한 VU0 동기화를 강제합니다. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + 뒤로 실행합니다. VU 레지스터를 읽거나 쓸 때, 동기화 문제를 방지합니다. + + + + To check for possible float overflows (Superman Returns). + 플로트 오버플로 가능성을 확인합니다.(슈퍼맨 리턴즈) + + + + Use accurate timing for VU XGKicks (slower). + VU XGKicks에 정확한 타이밍을 사용합니다.(느림) + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + 일부 게임에서 잘못된 수치를 피하려면 대체 방법을 사용하여 내부 FPS를 계산하세요. GameList - + Never 절대 안 함 - + Today 오늘 - + Yesterday 어제 - + {}h {}m {}시 {}분 - + {}h {}m {}s {}시 {}분 {}초 - + {}m {}s {}분 {}초 - + {}s {}초 - + {} hours {}시간 - + {} minutes {}분 + + + Downloading cover for {0} [{1}]... + {0} [{1}] 의 표지를 내려받는 중입니다... + GameListModel - + Type 유형 - + Code 코드 - + Title 제목 - + File Title 파일 제목 - + CRC CRC - + Time Played 플레이 시간 - + Last Played 최근 실행 - + Size 크기 - + Region 지역 - + Compatibility 호환성 @@ -8464,74 +8857,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + 게임 검색 + + + Search Directories (will be scanned for games) 디렉터리 검색(게임 검색) - + Add... 추가... - - - + + + Remove 삭제 - + Search Directory - 디렉터리 검색 + 게임 경로 - + Scan Recursively - 하위 디렉터리까지 검색 + 하위 경로 - + Excluded Paths (will not be scanned) 제외된 경로(스캔하지 않음) - + Directory... 디렉터리... - + File... 파일... - + Scan For New Games 새로운 게임 찾기 - + Rescan All Games 모든 게임 재검색 - + + Display + 디스플레이 + + + + + Prefer English Titles + 영어 타이틀 선호 + + + + Unchecked + 선택 해제 + + + + For games with both a title in the game's native language and one in English, prefer the English title. + 게임 모국어로 된 타이틀과 영어로 된 타이틀이 모두 있는 게임의 경우 영어 타이틀을 선호합니다. + + + Open Directory... 디렉터리 열기... - + Select Search Directory 디렉터리 검색 선택 - + Scan Recursively? 하위 디렉터리까지 검색하시겠습니까? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8540,12 +8959,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. 하위 디렉터리까지 검하면 시간이 더 걸리지만 하위 디렉터리에 있는 파일까지 찾을 수 있습니다. - + Select File 파일 선택 - + Select Directory 디렉터리 선택 @@ -8553,32 +8972,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List 게임 목록 - + Game Grid 게임 그리드 - + Show Titles 타이틀 보기 - + All Types 모든 유형 - + All Regions 모든 지역 - + Search... 찾기... @@ -8604,17 +9023,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">작성자 : </span>패치 작성자</p><p>설명은 여기에 표시</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>작성자 : </strong>%1<br>%2 - + Unknown 알 수 없음 - + No description provided. 제공된 설명이 없습니다. @@ -8632,7 +9051,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. 패치 다시 불러오기 - + There are no patches available for this game. 이 게임에 사용할 수 있는 패치가 없습니다. @@ -8651,399 +9070,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore 복원 + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + 타이틀 정렬 : + + + + English Title: + 영어 타이틀 : + + + Path: 경로 : - + Serial: 일련번호 : - + CRC: CRC : - + Type: 유형 : - + PS2 Disc PS2 디스크 - + PS1 Disc PS1 디스크 - + ELF (PS2 Executable) ELF(PS2 실행 파일) - + Region: 지역 : - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B(브라질) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C(중국) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK(홍콩) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J(한국/일본) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K(한국) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T(대만) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U(미국) - + Other 기타 - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A(호주) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF(남아프리카공화국) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU(오스트리아) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE(벨기에) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E(유럽/호주) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F(프랑스) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI(필란드) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G(독일) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR(그리스) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I(이탈리아) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN(인도) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M(유럽/호주) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL(네덜란드) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO(노르웨이) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P(포르투갈) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL(폴란드) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R(러시아) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S(스페인) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC(스칸디나비아) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW(스웨덴) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI(스위스) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK(영국) - + Compatibility: 호환성 : - + Unknown 알 수 없음 - + Not Bootable 부팅 불가 - + Reaches Intro 인트로에 도달 - + Reaches Menu 메뉴에 도달 - + In-Game 인게임 - + Playable 플레이 가능 - + Perfect 완벽 - + Input Profile: 입력 프로필 : - + Shared Refers to the shared settings profile. 공유 - + Disc Path: 디스크 경로 : - + Browse... 찾아보기... - + Clear 지우기 - + Verify 검증 - + Search on Redump.org... Redump.org에서 검색... - + Select Disc Path 디스크 경로 선택 - + Game is not a CD/DVD. 게임 CD/DVD가 아닙니다. - + Track list unavailable while virtual machine is running. 가상 머신이 실행되는 동안 트랙 목록을 사용할 수 없습니다. - + # # - + Mode 모드 - - + + Start 시작 - - + + Sectors 섹터 - - + + Size 용량 - - + + MD5 MD5 - - + + Status 상태 - - - - - - + + + + + + %1 %1 - - + + <not computed> <미산정> - + Error 오류 - + Cannot verify image while a game is running. 게임이 실행 중인 동안에는 이미지를 확인할 수 없습니다. - + One or more tracks is missing. 하나 이상의 트랙이 누락됐습니다. - + Verified as %1 [%2] (Version %3). %1 [%2](버전 %3)으로 확인되었습니다. - + Verified as %1 [%2]. %1 [%2]로 확인되었습니다. @@ -9051,62 +9481,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: 렌더러 : - + Adapter: 어댑터 : - + Display 디스플레이 - + Fullscreen Mode: 전체 화면 모드 : - + Aspect Ratio: 종횡비 : - + Fit to Window / Fullscreen 창/전체 화면에 맞추기 - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) 자동 표준(4:3 인터레이스 / 3:2 프로그레시브) - - + + Standard (4:3) 표준(4:3) - - + + Widescreen (16:9) 와이드스크린(16:9) - + FMV Aspect Ratio: FMV 종횡비 : - - - + + + @@ -9116,12 +9546,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. 끔(기본값) - - - - - - + + + + + + @@ -9132,92 +9562,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. 자동(기본값) - + None (Interlaced, also used by Progressive) 없음(인터레이스드, 프로그레시브에서도 사용) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. 직조(상단 필드 우선, 톱니) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. 직조(하단 필드 우선, 톱니) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. 밥(상단 필드 우선, 전체 프레임) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. 밥(하단 필드 우선, 전체 프레임) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. 블렌드(상단 필드 우선, 2개 필드 병합) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. 블렌드(하단 필드 우선, 2개 필드 병합) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. 적응형(상단 필드 우선, 밥+직조와 유사) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. 적응형(하단 필드 우선, 밥+직조와 유사) - + Bilinear Filtering: 쌍선형 필터링 : - - + + None 없음 - + Bilinear (Smooth) Smooth: Refers to the texture clarity. 쌍선형(부드럽게) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. 쌍선형(선명하게) - + Vertical Stretch: 수직 스트레치 : - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9225,355 +9655,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: 자르기 : - + Left: Warning: short space constraints. Abbreviate if necessary. 좌 : - - - - + + + + px - px + 픽셀 - + Top: Warning: short space constraints. Abbreviate if necessary. 상 : - + Right: Warning: short space constraints. Abbreviate if necessary. 우 : - + Bottom: Warning: short space constraints. Abbreviate if necessary. 하 : - + Screen Offsets - 화면 오프셋 + 화면 오프세트 - + VSync 수직 동기화 - + Show Overscan 오버스캔 표시 - + Enable Widescreen Patches 와이드스크린 패치 활성화 - + Enable No-Interlacing Patches 비인터레이스 패치 활성화 - + Anti-Blur 흐림 방지 - + Ctrl+S Ctrl+S - + Disable Interlace Offset - 인터레이스 오프셋 사용 안 함 + 인터레이스 오프세트 사용 안 함 - + Screenshot Size: 스크린샷 크기 : - + Screen Resolution 화면 해상도 - + Internal Resolution 내부 해상도 - + Internal Resolution (Aspect Uncorrected) 내부 해상도(무보정 화면비) - + PNG PNG - + JPEG JPEG - + Quality: 품질 : - - + + Rendering 랜더링 - + Internal Resolution: 내부 해상도 : - + Mipmapping: 밉매핑 : - - + + Off - + Basic (Generated Mipmaps) 기본(밉맵 생성) - + Full (PS2 Mipmaps) 전체(PS2 밉맵) - - + + Texture Filtering: 텍스처 필터링 : - - + + Nearest 근린 - - + + Bilinear (Forced) 쌍선형(강제) - - + + Bilinear (PS2) 쌍선형(PS2) - - + + Bilinear (Forced excluding sprite) 쌍선형(스프라이트를 제외하고 강제) - + Trilinear Filtering: 삼선형 필터링 : - + Off (None) 끔(없음) - + Trilinear (PS2) 삼선형(PS2) - + Trilinear (Forced) 삼선형(강제) - + Anisotropic Filtering: 이방성 필터링 : - + Dithering: 디더링 : - + Scaled 스케일 - + Unscaled (Default) 언스케일(기본값) - + Blending Accuracy: 혼합 세밀도 : - + Minimum 매우 낮음 - + Basic (Recommended) 낮음(권장) - + Medium 보통 - + High 높음 - + Full (Slow) 매우 높음(느림) - + Maximum (Very Slow) 최고 높음(매우 느림) - + Texture Preloading: 텍스처 미리 불러오기 : - + Partial 일부 - + Full (Hash Cache) 전체(해시 캐시) - + + Software Rendering Threads: + 소프트웨어 렌더링 스레드 : + + + + Skip Draw Range: + 그리기 범위 건너뛰기 : + + + GPU Palette Conversion GPU 팔레트 변환 - + Manual Hardware Renderer Fixes 수동 하드웨어 렌더러 수정 - + Spin GPU During Readbacks 다시 읽기 중 GPU 회전 - + Spin CPU During Readbacks 다시 읽기 중 CPU 회전 - - Extra Rendering Threads: - 추가 렌더링 스레드 : - - - + threads 스레드 - + Mipmapping 밉매핑 - + Auto Flush 자동 플러시 - + Hardware Fixes 하드웨어 수정 - + Force Disabled 비활성화 강제 적용 - + Force Enabled 활성화 강제 적용 - + CPU Sprite Render Size: CPU 스프라이트 렌더 크기 : - - - + + + 0 (Disabled) @@ -9581,79 +10016,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0(비활성화) - + 1 (64 Max Width) 1(최대 너비 64) - + 2 (128 Max Width) 2(최대 너비 128) - + 3 (192 Max Width) 3(최대 너비 192) - + 4 (256 Max Width) 4(최대 너비 256) - + 5 (320 Max Width) 5(최대 너비 320) - + 6 (384 Max Width) 6(최대 너비 384) - + 7 (448 Max Width) 7(최대 너비 448) - + 8 (512 Max Width) 8(최대 너비 512) - + 9 (576 Max Width) 9(최대 너비 576) - + 10 (640 Max Width) 10(최대 너비 640) - - Skipdraw Range: - 건너뛰기 범위 : - - - + Frame Buffer Conversion 프레임 버퍼 변환 - + Disable Depth Emulation 깊이 에뮬레이션 비활성화 - + Disable Safe Features 안전 기능 비활성화 - + Preload Frame Data 프레임 데이터 미리 불러오기 @@ -9664,606 +10094,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 텍스처 내부 RT - + 1 (Normal) 1(일반) - + 2 (Aggressive) 2(어그레시브) - + Software CLUT Render: 소프트웨어 CLUT 렌더 : - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU 타깃 CLUT : - - - + + + Disabled (Default) 비활성화(기본값) - + Enabled (Exact Match) 활성화(정확히 일치) - + Enabled (Check Inside Target) 활성화(내부 대상 확인) - + Upscaling Fixes 업스케일링 수정 - + Half Pixel Offset: - 하프 픽셀 오프셋 : + 하프 픽셀 오프세트 : - + Normal (Vertex) 일반(버텍스) - + Special (Texture) 특수(텍스처) - + Special (Texture - Aggressive) 특수(텍스처-어그레시브) - + Round Sprite: 라운드 스프라이트 : - + Half 하프 - + Full 전체 - + Texture Offsets: - 텍스쳐 오프셋 : + 텍스쳐 오프세트 : - + X: X : - + Y: Y : - + Merge Sprite 스프라이트 병합 - + Align Sprite 스프라이트 정렬 - + Deinterlacing: 인터레이스 제거 : - + Sprites Only 스프라이트 전용 - + Sprites/Triangles 스프라이트/트라이앵글 - + Blended Sprites/Triangles 혼합 스프라이트/트라이앵글 - + Auto Flush: 자동 플러시 : - + Enabled (Sprites Only) 활성화(스프라이트만) - + Enabled (All Primitives) 활성화(모든 프리미티브) - + Texture Inside RT: 텍스처 내부 RT : - + Inside Target 대상 내부 - + Merge Targets 대상 병합 - + Disable Partial Source Invalidation 부분 소스 무효화 사용 안 함 - + Read Targets When Closing 닫을 때 대상 읽기 - + Estimate Texture Region 텍스처 영역 추정 - + Disable Render Fixes 렌더링 수정 사용 안 함 - + Unscaled Palette Texture Draws 배율 조정되지 않은 팔레트 텍스처 그리기 - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. 와일드 암즈 핵 - + Bilinear Dirty Upscale: 쌍선형 더티 업스케일 : - + Force Bilinear 쌍선형 강제 적용 - + Force Nearest 근린 강제 적용 - + Texture Replacement 텍스처 대체 - + Search Directory 디렉터리 검색 - - + + Browse... 찾아보기... - - + + Open... 열기... - - + + Reset 초기화 - + PCSX2 will dump and load texture replacements from this directory. PCSX2는 이 디렉터리에서 텍스처 대체품을 덤프하고 불러옵니다. - + Options 옵션 - + Dump Textures 텍스처 덤프 - + Dump Mipmaps 밉맵 덤프 - + Dump FMV Textures FMV 텍스처 덤프 - - - Async Texture Loading - 비동기 텍스처 불러오기 - - - + Load Textures 텍스처 불러오기 - + Precache Textures 프리캐시 텍스처 - + Post-Processing 후처리 - + Sharpening/Anti-Aliasing 선명도/앤티 앨리어싱 - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx 대비 적응형 선명도 : - - + + None (Default) 없음(기본값) - + Sharpen Only (Internal Resolution) 선명도만(내부 해상도) - + Sharpen and Resize (Display Resolution) 선명도 및 크기 조정(디스플레이 해상도) - + Sharpness: 선명도 : - + FXAA FXAA - + Filters 필터 - + TV Shader: TV 셰이더 : - + Scanline Filter 스캔라인 필터 - + Diagonal Filter 대각선 필터 - + Triangular Filter 삼각 필터 - + Wave Filter 웨이브 필터 - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS 다운샘플링(4x 회전 그리드 슈퍼샘플링) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS 다운샘플링(Nx 자동 그리드 슈퍼샘플링) - + Shade Boost 셰이드 부스트 - + Brightness: 밝기 : - + Contrast: 대비 : - Saturation 채도 - + OSD 화면 표시 - + On-Screen Display 화면 표시 - + OSD Scale: 화면 표시 배율 : - + Show Indicators 표시기 표시 - + Show Resolution 해상도 표시 - + Show Inputs 입력 표시 - + Show GPU Usage GPU 사용량 표시 - + Show Settings 설정 표시 - + Show FPS FPS 표시 - + + + Disable Dual-Source Blending + 듀얼 소스 혼합 비활성화 + + + Disable Shader Cache 셰이더 캐시 비활성화 - + Disable Vertex Shader Expand 버텍스 셰이더 확장 비활성화 - + Show Statistics 통계 보기 - + + + Asynchronous Texture Loading + 비동기 텍스처 불러오기 + + + + Saturation: + 채도 : + + + Show CPU Usage CPU 사용량 표시 - + Warn About Unsafe Settings 안전하지 않은 설정에 대해 경고 - + Show Frame Times 프레임 시간 표시 - + Recording 녹화 - + Video Dumping Directory 영상 추출 디렉터리 - + Capture Setup 캡쳐 설정 - + Container: 컨테이너 : - - + + Codec: 코덱 : - - + + Extra Arguments 추가 인수 - + Capture Audio 음향 캡쳐 - + Resolution: 해상도 : - + x x - + Auto 자동 - + Capture Video 영상 캡처 - + Advanced Advanced here refers to the advanced graphics options. 고급 - + Advanced Options 고급 옵션 - + Hardware Download Mode: 하드웨어 내려받기 모드 : - + Accurate (Recommended) 정밀(권장) - + Disable Readbacks (Synchronize GS Thread) 다시 읽기 비활성화(GS 스레드 동기화) - + Unsynchronized (Non-Deterministic) 비동기화(비결정적) - + Disabled (Ignore Transfers) 비활성화(전송 무시) - + GS Dump Compression: GS 덤프 압축 : - + Uncompressed 압축되지 않음 - + LZMA (xz) LZMA(xz) - + Zstandard (zst) Z스탠다드(zst) - + Skip Presenting Duplicate Frames 중복 프레임 표시 건너뛰기 - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10273,69 +10713,63 @@ Swap chain: see Microsoft's Terminology Portal. 블릿 스왑 체인 사용 - + Disable Threaded Presentation 스레드 프레젠테이션 비활성화 - - + + Bitrate: 비트레이트 : - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: 전체 화면 전용 허용 : - + Disallowed 불허 - + Allowed 허용 - + Debugging Options 디버깅 옵션 - + Override Texture Barriers: 텍스처 배리어 오버라이드 : - + Use Debug Device 디버그 장치 사용 - - - Disable Dual Source Blending - 듀얼 소스 혼합 비활성화 - - - + Show Speed Percentages 속도 비율 표시 - + Disable Framebuffer Fetch 프레임버퍼 가져오기 비활성화 @@ -10404,8 +10838,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] 전체 설정 사용 [%1] @@ -10457,6 +10891,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked 선택 안 함 @@ -10473,7 +10908,7 @@ Swap chain: see Microsoft's Terminology Portal. Disables interlacing offset which may reduce blurring in some situations. - 일부 상황에서 흐려짐을 줄일 수 있는 인터레이스 오프셋을 비활성화합니다. + 일부 상황에서 흐려짐을 줄일 수 있는 인터레이스 오프세트를 비활성화합니다. @@ -10489,7 +10924,7 @@ Swap chain: see Microsoft's Terminology Portal. Enables PCRTC Offsets which position the screen as the game requests. Useful for some games such as WipEout Fusion for its screen shake effect, but can make the picture blurry. PCRTC: Programmable CRT (Cathode Ray Tube) Controller. - 게임에서 요청하는 대로 화면을 배치하는 PCRTC 오프셋을 활성화합니다. 화면 흔들림 효과로 인해 와이프아웃 퓨전과 같은 일부 게임에서 유용하지만 화면이 흐릿해질 수 있습니다. + 게임에서 요청하는 대로 화면을 배치하는 PCRTC 오프세트를 활성화합니다. 화면 흔들림 효과로 인해 와이프아웃 퓨전과 같은 일부 게임에서 유용하지만 화면이 흐릿해질 수 있습니다. @@ -10516,11 +10951,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. GS 혼합 유닛 에뮬레이션의 정확도 수준을 제어합니다.<br> 설정이 높을수록 셰이더에서 더 많은 블렌딩이 정확하게 에뮬레이션되며 속도 페널티가 높아집니다.<br> Direct3D의 블렌딩은 OpenGL/Vulkan에 비해 기능이 저하된다는 점에 유의하세요. + + + Software Rendering Threads + 소프트웨어 렌더링 스레드 + Software CLUT Render 소프트웨어 CLUT 렌더 + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + 텍스처 캐시에서 깊이 버퍼 지원을 비활성화합니다. 속도를 높이는 데 도움이 될 수 있지만 다양한 결함이 발생할 수 있습니다. + This option disables game-specific render fixes. @@ -10572,6 +11017,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. 에이스 컴뱃, 철권, 소울 칼리버 등의 남코 게임에서 업스케일링(세로줄) 문제를 수정했습니다. + + + Dumps replaceable textures to disk. Will reduce performance. + 교체 가능한 텍스처를 디스크에 덤프합니다. 퍼포먼스가 저하됩니다. + + + + Includes mipmaps when dumping textures. + 텍스처 덤핑 시, 밉맵을 포함합니다. + + + + Allows texture dumping when FMVs are active. You should not enable this. + FMV가 활성화되어 있을 때 텍스처 덤핑을 허용합니다. 이 옵션을 활성화하면 안 됩니다. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + 작업자 스레드에 대체 텍스처를 불러와 대체가 활성화되면 미세 끊김 현상이 감소합니다. + + + + Loads replacement textures where available and user-provided. + 사용 가능한 경우, 사용자 제공 대체 텍스처를 불러옵니다. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + 모든 대체 텍스처를 메모리에 사전 불러오기합니다. 비동기 불러오기에서는 필요하지 않습니다. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + FidelityFX 대비 적응형 선명화를 활성화합니다. + + + + Determines the intensity the sharpening effect in CAS post-processing. + CAS 후처리에서 선명하게 하는 효과의 강도를 결정합니다. + + + + Adjusts brightness. 50 is normal. + 밝기를 조정합니다. 50이 기본값입니다. + + + + Adjusts contrast. 50 is normal. + 대비를 조정합니다. 50이 기본값입니다. + + + + Adjusts saturation. 50 is normal. + 채도를 조정합니다. 50이 기본값입니다. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10587,11 +11087,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. 디버깅에 유용한 다양한 설정과 해당 설정의 현재 값을 표시합니다. - - - Shows the current controller state of the system in the bottom left corner of the display. - 디스플레이 왼쪽 하단에 시스템의 현재 컨트롤러 상태를 표시합니다. - Displays a graph showing the average frametimes. @@ -10629,7 +11124,7 @@ Swap chain: see Microsoft's Terminology Portal. 이 옵션을 활성화하면 현재 모니터 또는 화면과 PCSX2의 재생률을 일치시킬 수 있습니다. 수직 동기화가 불가능한 경우(100%가 아닌 속도로 실행되는 경우) 자동으로 비활성화됩니다. - + Integer Scaling 정수 스케일링 @@ -10718,8 +11213,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen 전체 창 화면 @@ -10739,7 +11234,7 @@ Swap chain: see Microsoft's Terminology Portal. 0px - 0px + 0픽셀 @@ -10861,11 +11356,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. 절전 모드로 전환되는 것을 방지하기 위해 다시 읽기 중에 불필요한 작업을 GPU에 제출합니다. 성능을 향상시킬 수 있지만 전력 사용량이 크게 증가합니다. - - - Extra Rendering Threads - 추가 렌더링 스레드 - 2 threads @@ -10916,11 +11406,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End 범위 끝 건너뛰기 - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - 텍스처 캐시에서 깊이 버퍼 지원을 비활성화합니다. 속도를 높이는 데 도움이 될 수 있지만 다양한 결함이 발생할 수 있습니다. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -10929,7 +11414,7 @@ Swap chain: see Microsoft's Terminology Portal. Half Pixel Offset - 하프 픽셀 오프셋 + 하프 픽셀 오프세트 @@ -10949,19 +11434,19 @@ Swap chain: see Microsoft's Terminology Portal. Texture Offsets X - 텍스처 오프셋 X + 텍스처 오프세트 X Offset for the ST/UV texture coordinates. Fixes some odd texture issues and might fix some post processing alignment too. ST and UV are different types of texture coordinates, like XY would be spatial coordinates. - ST/UV 텍스처 좌표에 대한 오프셋. 일부 이상한 텍스처 문제를 수정하고 일부 포스트 프로세싱 정렬도 수정할 수 있습니다. + ST/UV 텍스처 좌표에 대한 오프세트입니다. 일부 이상한 텍스처 문제를 수정하고 일부 포스트 프로세싱 정렬도 수정할 수 있습니다. Texture Offsets Y - 텍스처 오프셋 Y + 텍스처 오프세트 Y @@ -11038,7 +11523,7 @@ Swap chain: see Microsoft's Terminology Portal. 화면 표시 배율 - + Show OSD Messages 화면 표시 메시지 보기 @@ -11078,6 +11563,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. 디버깅에 유용한 내부 그래픽 사용량에 대한 카운터를 표시합니다. + + + Shows the current controller state of the system in the bottom-left corner of the display. + 화면 좌측 하단에 시스템의 현재 컨트롤러 상태를 표시합니다. + Displays warnings when settings are enabled which may break games. @@ -11131,29 +11621,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + 디버그 장치 활성화 + + + + Enables API-level validation of graphics commands. + 그래픽 명령의 API 수준 유효성 검사를 활성화합니다. + + + GS Download Mode GS 내려받기 모드 - + Accurate 정확성 - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. GS 내려받기 시, GS 스레드 및 호스트 GPU와의 동기화를 건너뜁니다. 느린 시스템에서는 속도가 크게 향상될 수 있지만 그래픽 효과가 많이 손상될 수 있습니다. 게임이 깨지는데 이 옵션이 활성화되어 있다면 먼저 비활성화하세요. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. 기본값 - - + + (Default) (기본값) @@ -11161,405 +11661,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics 그래픽 - + Save Screenshot 스크린샷 저장 - + Toggle Video Capture 영상 캡처 적용/해제 - + Save Single Frame GS Dump 단일 프레임 GS 덤프 저장 - + Save Multi Frame GS Dump 멀티 프레임 GS 덤프 저장 - + Toggle Software Rendering 소프트웨어 렌더링 적용/해제 - + Increase Upscale Multiplier 업스케일 배율 확대 - + Decrease Upscale Multiplier 업스케일 배율 축소 - + Toggle On-Screen Display 화면 표시 적용/해제 - + Cycle Aspect Ratio 주기 종횡비 - + Aspect ratio set to '{}'. 종횡비를 '{}'로 설정합니다. - + Cycle Hardware Mipmapping 사이클 하드웨어 밉매핑 - + Hardware mipmapping set to '{}'. 하드웨어 밉매핑을 '{}'로 설정합니다. - + Cycle Deinterlace Mode 사이클 인터레이스 제거 모드 - + Deinterlace mode set to '{}'. 인터레이스 제거 모드를 '{}'로 설정합니다. - + Toggle Texture Dumping 텍스처 추출 적용/해제 - + Texture dumping is now enabled. 이제 텍스처 추출이 활성화됐습니다. - + Texture dumping is now disabled. 이제 텍스처 추출이 비활성화됐습니다. - + Toggle Texture Replacements 텍스처 대체 적용/해제 - + Texture replacements are now enabled. 이제 텍스처 대체가 활성화됐습니다. - + Texture replacements are now disabled. 이제 텍스처 대체가 비활성화됐습니다. - + Reload Texture Replacements 텍스처 대체 다시 불러오기 - + Texture replacements are not enabled. 텍스처 대체가 활성화되지 않았습니다. - + Reloading texture replacements... 텍스처 대체 다시 불러오기... - + Target speed set to {:.0f}%. 목표 속도를 {:.0f}%로 설정합니다. - + Volume: Muted 음량 : 음 소거 - + Volume: {}% 음량 : {}% - - Save slot {} selected (last save: {}). - 슬롯 {} 선택(마지막 저장: {})을(를) 저장했습니다. + + Save slot {0} selected (last save: {1}). + 슬롯 {0}을(를) 선택했습니다.(최종 저장 : {1}) - + Save slot {} selected (no save yet). 슬롯 {} 저장 선택됨(아직 저장 않함). - + No save state found in slot {}. 슬롯 {}에서 저장 상태를 찾을 수 없습니다. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System 시스템 - + Open Pause Menu 일시 중지 메뉴 열기 - + Open Achievements List 도전 과제 목록 열기 - + Open Leaderboards List 순위표 목록 열기 - + Toggle Pause 일시 중지 적용/해제 - + Toggle Fullscreen 전체 화면 적용/해제 - + Toggle Frame Limit 프레임 제한 적용/해제 - + Toggle Turbo / Fast Forward 터보/빨리 감기 적용/해제 - + Toggle Slow Motion 슬로 모션 적용/해제 - + Turbo / Fast Forward (Hold) 터보/빨리 감기(보류) - + Increase Target Speed 목표 속도 증가 - + Decrease Target Speed 목표 속도 감소 - + Increase Volume 음량 높이기 - + Decrease Volume 음량 낮추기 - + Toggle Mute 음 소거 적용/해제 - + Frame Advance 프레임 어드밴스 - + Shut Down Virtual Machine 가상 머신 종료 - + Reset Virtual Machine 가상 머신 초기화 - + Toggle Input Recording Mode 입력 레코딩 모드 적용/해제 - - - - + + + + Save States 상태 저장 - + Select Previous Save Slot 이전 저장 슬롯 선택 - + Select Next Save Slot 다음 저장 슬롯 선택 - + Save State To Selected Slot - 선택한 슬롯에 상태 저장하기 + 선택한 슬롯에 상태 저장 - + Load State From Selected Slot 선택한 슬롯에 상태 불러오기 - + Save State To Slot 1 - 슬롯1에 상태 저장하기 + 슬롯 1에 상태 저장 - + Load State From Slot 1 슬롯1에서 상태 불러오기 - + Save State To Slot 2 - 슬롯2에 상태 저장하기 + 슬롯 2에 상태 저장 - + Load State From Slot 2 슬롯2에서 상태 불러오기 - + Save State To Slot 3 - 슬롯3에 상태 저장하기 + 슬롯 3에 상태 저장 - + Load State From Slot 3 슬롯3에서 상태 불러오기 - + Save State To Slot 4 - 슬롯4에 상태 저장하기 + 슬롯 4에 상태 저장 - + Load State From Slot 4 슬롯4에서 상태 불러오기 - + Save State To Slot 5 - 슬롯5에 상태 저장하기 + 슬롯 5에 상태 저장 - + Load State From Slot 5 슬롯5에서 상태 불러오기 - + Save State To Slot 6 - 슬롯6에 상태 저장하기 + 슬롯 6에 상태 저장 - + Load State From Slot 6 슬롯6에서 상태 불러오기 - + Save State To Slot 7 - 슬롯7에 상태 저장하기 + 슬롯 7에 상태 저장 - + Load State From Slot 7 슬롯7에서 상태 불러오기 - + Save State To Slot 8 - 슬롯8에 상태 저장하기 + 슬롯 8에 상태 저장 - + Load State From Slot 8 슬롯8에서 상태 불러오기 - + Save State To Slot 9 - 슬롯9에 상태 저장하기 + 슬롯 9에 상태 저장 - + Load State From Slot 9 슬롯9에서 상태 불러오기 - + Save State To Slot 10 - 슬롯10에 상태 저장하기 + 슬롯 10에 상태 저장 - + Load State From Slot 10 슬롯10에서 상태 불러오기 @@ -11716,6 +12216,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + 좌 아날로그 + + + + Right Analog + 우 아날로그 + + + + Cross + + + + + Square + + + + + Triangle + + + + + Circle + + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + 십자 버튼 ↓ + + + + D-Pad Right️ + 십자 버튼 → + + + + D-Pad Up️ + 십자 버튼 ↑ + + + + D-Pad Left️ + 십자 버튼 ← + + + + L3 + L3 + + + + R3 + R3 + + + + Select + 선택 + + + + Start + 시작 + Input Recording Files (*.p2m2) @@ -11743,137 +12333,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour 동작 - + Pause On Focus Loss 초점 손실 시, 일시 중지 - + Inhibit Screensaver 화면 보호기 사용 안 함 - + Save State On Shutdown 종료 시, 상태 저장 - + Pause On Start 시작 시, 일시 중지 - + Confirm Shutdown 시스템 종료 확인 - + Create Save State Backups 상태 저장 백업 생성 - + Enable Discord Presence 디스코드 상태 활성화 - + Enable Per-Game Settings 게임별 설정 활성화 - + Game Display 게임 디스플레이 - + Start Fullscreen 전체 화면 시작 - + Double-Click Toggles Fullscreen 두 번 클릭으로 전체 화면 적용/해제 - + Render To Separate Window 별도 창에 렌더링 - + Hide Main Window When Running 실행 중인 메인 창 숨기기 - + Disable Window Resizing 창 크기 조정 비활성화 - + Hide Cursor In Fullscreen 전체 화면에서 커서 숨기기 - + Preferences 환경 설정 - + Language: 언어 : - + Theme: 테마 : - + Automatic Updater 자동 업데이터 - + Update Channel: 업데이트 채널 : - + Current Version: 현재 버전 : - + Enable Automatic Update Check 자동 업데이트 확인 활성화 - + Check for Updates... 업데이트 확인... @@ -12066,7 +12656,7 @@ Right click to clear binding 현재 디스코드에서 프로필의 일부로 플레이 중인 게임을 표시합니다. - + System Language [Default] 시스템 언어 [기본값] @@ -12123,21 +12713,21 @@ Right click to clear binding - - + + Change Disc 디스크 교체 - + Load State 상태 불러오기 Save State - 상태 저장하기 + 상태 저장 @@ -12635,13 +13225,13 @@ Right click to clear binding - + Start Big Picture Mode 빅픽처 모드 시작 - + Big Picture In Toolbar 빅피처 @@ -12653,7 +13243,7 @@ Right click to clear binding - + Show Advanced Settings 고급 설정 표시 @@ -12664,7 +13254,7 @@ Right click to clear binding - + Video Capture 영상 캡처 @@ -12679,27 +13269,27 @@ Right click to clear binding 패치 편집... - + Internal Resolution 내부 해상도 - + %1x Scale %1배율 - + Select location to save block dump: 블록 덤프를 저장할 위치 선택 : - + Do not show again 다시 표시하지 않음 - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12712,168 +13302,173 @@ Are you sure you want to continue? 계속 진행하시겠습니까? - + %1 Files (*.%2) %1 파일(*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA : %1(%2, %3소프트코어)로 로그인했습니다. 읽지 않은 메시지가 %4개 있습니다. + + + Confirm Shutdown 시스템 종료 확인 - + Are you sure you want to shut down the virtual machine? 가상 머신을 종료하시겠습니까? - + Save State For Resume 다시 시작을 위해 상태 저장 - - - - - - + + + + + + Error 오류 - + You must select a disc to change discs. 디스크를 교체하려면 디스크를 선택해야 합니다. - + Properties... 속성... - + Open Containing Directory... Refers to the directory where a game is contained. 포함된 디렉터리 열기... - + Set Cover Image... 표지 이미지 설정... - + Exclude From List 목록에서 제외 - + Reset Play Time 플레이 시간 초기화 - + Default Boot 기본 부팅 - + Fast Boot 고속 부팅 - + Full Boot 풀 부팅 - + Boot and Debug 부팅 및 디버그 - + Add Search Directory... 검색 디렉터리 추가... - + Start File 파일 실행 - + Start Disc 디스크 실행 - + Select Disc Image 디스크 경로 선택 - + Updater Error 업데이터 오류 - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>죄송합니다, 공식 GitHub 릴리스가 아닌 PCSX2 버전을 업데이트하려고 합니다. 호환성 문제를 방지하기 위해 자동 업데이터는 공식 빌드에서만 활성화됩니다.</p><p>공식 빌드를 받으려면 아래 링크에서 내려받기 :</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. 현재 플랫폼에서는 자동 업데이트가 지원되지 않습니다. - + Confirm File Creation 파일 생성 확인 - + The pnach file '%1' does not currently exist. Do you want to create it? pnach 파일 '%1'이(가) 현재 존재하지 않습니다. 생성하시겠습니까? - + Failed to create '%1'. '%1' 을(를) 생성하지 못했습니다. - + Input Recording Files (*.p2m2) 입력 레코딩 파일(*.p2m2) - + Paused 일시 중지 - + Load State Failed 상태 불러오기 실패 - + Cannot load a save state without a running VM. 실행 중인 VM이 없으면 저장 상태를 불러올 수 없습니다. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? 새 ELF를 불러오려면 가상 머신 초기화가 필요합니다. 지금 초기화하시겠습니까? - + Cannot change from game to GS dump without shutting down first. 게임으로부터 GS 덤프를 변경하려면 종료해야 합니다. - + Failed to get window info from widget 위젯에서 창 정보를 가져오는 데 실패했습니다. @@ -12888,97 +13483,97 @@ Are you sure you want to continue? 모든 파일 유형 (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;싱글 트랙 원시 이미지 (*.bin *.iso);;큐 시트 (*.cue);;미디어 디스크립터 파일 (*.mdf);;MAME CHD 이미지 (*.chd);;CSO 이미지 (*.cso);;GZ 이미지 (*.gz);;블록 덤프 (*.dump) - + Stop Big Picture Mode 빅픽처 모드 중지 - + Exit Big Picture In Toolbar 빅픽처 종료 - + Game Properties 게임 등록 정보 - + Game properties is unavailable for the current game. 현재 게임에서는 게임 등록 정보를 사용할 수 없습니다. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. ODD 장치를 찾을 수 없습니다. 드라이브가 연결되어 있는지 혹은 드라이브에 액세스할 수 있는 충분한 권한이 있는지 확인하십시오. - + Select disc drive: 디스크 드라이브 선택 : - + This save state does not exist. 이 상태 저장이 존재하지 않습니다. - + Select Cover Image 표지 이미지 선택 - - All Cover Image Types (*.jpg *.jpeg *.png) - 모든 표지 이미지 유형(*.jpg *.jpeg *.png) - - - + Cover Already Exists 이미 존재하는 표지 - + A cover image for this game already exists, do you wish to replace it? 이 게임의 표지 이미지가 이미 존재하는데 교체하시겠습니까? - - - - + + + + Copy Error 복사 오류 - + Failed to remove existing cover '%1' 기존 표지 제거 실패 '%1' - + Failed to copy '%1' to '%2' '%1'을(를) '%2'에 복사하지 못했습니다; - + Failed to remove '%1' '%1' 제거 실패 - - + + Confirm Reset 재설정 확인 - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + 모든 표지 이미지 유형(*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. 현재 표지 이미지와 다른 파일을 선택해야 합니다. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12987,12 +13582,12 @@ This action cannot be undone. 이 작업은 취소할 수 없습니다. - + Load Resume State 상태 이력 불러오기 - + A resume save state was found for this game, saved at: %1. @@ -13005,70 +13600,70 @@ Do you want to load this state, or start from a fresh boot? 이 상태를 불러오시겠습니까, 아니면 새로 시작하시겠습니까? - + Fresh Boot 새로 시작 - + Delete And Boot 삭제 및 부트 - + Failed to delete save state file '%1'. 상태 저장 파일 '%1'을(를) 삭제하지 못했습니다. - + Load State File... 상태 파일 불러오기... - + Load From File... 파일로부터 불러오기... - - + + Select Save State File 상태 저장 파일 선택 - - + + Save States (*.p2s) 상태 저장(*.p2s) - + Delete Save States... 상태 저장 삭제... - + Undo Load State 상태 불러오기 취소 - + Resume (%2) 재개(%2) - + Load Slot %1 (%2) 슬롯 불러오기 %1(%2) - - + + Delete Save States 상태 저장 삭제 - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13077,42 +13672,42 @@ The saves will not be recoverable. 저장된 내용은 복구할 수 없습니다. - + %1 save states deleted. %1 상태 저장이 삭제되었습니다. - + Save To File... 파일에 저장... - + Empty 비어 있음 - + Save Slot %1 (%2) - 슬롯 저장하기 %1(%2) + 슬롯 저장 %1(%2) - + Confirm Disc Change 디스크 교체 확인 - + Do you want to swap discs or boot the new image (via system reset)? 디스크를 교체하거나 시스템 재설정을 통해 새 이미지로 다시 시작하시겠습니까? - + Swap Disc 디스크 교체 - + Reset 초기화 @@ -13120,8 +13715,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. 메모리 카드 '{}'가 저장소에 저장되었습니다. @@ -13202,6 +13797,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 표준 메모리 카드보다 2배 더 큽니다. 호환성 문제가 다소 있을 수 있습니다. @@ -13252,11 +13848,6 @@ The saves will not be recoverable. Cannot Convert Memory Card 메모리 카드 변환 불가 - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 표준 메모리 카드보다 2배 더 큽니다. 호환성 문제가 다소 있을 수 있습니다. - MemoryCardCreateDialog @@ -13382,103 +13973,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports 콘솔 포트 - + Memory Cards 메모리 카드 - + Folder: 폴더 : - + Browse... 찾아보기... - + Open... 열기... - + Reset 초기화 - + Name 이름 - + Type 유형 - + Formatted 서식 - + Last Modified 최종 수정 - + Refresh 새로 고침 - + + Create 생성 - + Duplicate 복제 - + Rename 이름 바꾸기 - + Convert 변환 - + Delete 삭제 - + Settings 설정 - + Automatically manage saves based on running game 실행 중인 게임을 기반으로 자동으로 저장 관리 - + Auto-eject Memory Cards when loading save states 저장 상태를 불러올 때 메모리 카드 자동 꺼내기 @@ -13646,58 +14238,58 @@ This action cannot be reversed, and you will lose any saves on the card.메모리 - + Copy Address 주소 복사 - + Go to in disassembly 디스어셈블리로 이동하기 - - + + Go to address 주소로 이동하기 - + Show as 1 byte 1바이트로 표기 - + Show as 2 bytes 2바이트로 표기 - + Show as 4 bytes 4바이트로 표기 - + Show as 8 bytes 8바이트로 표기 - + Copy Byte 바이트 복사 - + Copy Segment 세그먼트 복사 - + Copy Character 챕터 복사 - + Paste 붙여넣기 @@ -13724,7 +14316,7 @@ This action cannot be reversed, and you will lose any saves on the card. Save State Indicates that the input recording that is about to be started will be recorded when an accompanying save state is saved. - 상태 저장하기 + 상태 저장 @@ -13747,10 +14339,15 @@ This action cannot be reversed, and you will lose any saves on the card.작성자 이름 입력 - + Input Recording Files (*.p2m2) 입력 레코딩 파일(*.p2m2) + + + Select a File + 파일 선택하기 + Pad @@ -13946,6 +14543,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. 아날로그 스틱 데드 존, 즉 무시할 스틱 움직임의 비율을 설정합니다. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13962,14 +14569,14 @@ This action cannot be reversed, and you will lose any saves on the card.버튼/트리거 활성화 데드 존, 즉 무시할 트리거의 비율을 설정합니다. - - Analog light is now on for port {} / slot {} - 포트{}/슬롯{}에 아날로그 표시등 켜짐 + + Analog light is now on for port {0} / slot {1} + 포트 {0} / 슬롯 {1}에 아날로그 표시등 켬 - - Analog light is now off for port {} / slot {} - 포트{}/슬롯{}에 아날로그 표시등 꺼짐 + + Analog light is now off for port {0} / slot {1} + 포트 {0} / 슬롯 {1}에 아날로그 표시등 끔 @@ -14016,13 +14623,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 듀얼쇼크2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - 컨트롤러 포트 {}, 슬롯 {}에 {}가 연결되어 있지만 저장 상태에 {}가 있습니다. -원래 컨트롤러 유형을 연결한 상태로 두면 문제가 발생할 수 있습니다. - Strum Up @@ -14093,40 +14693,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar 기타 + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + 컨트롤러 포트 {0}, 슬롯 {1}에 {2}가 연결되어 있지만 저장 상태에 {3}이(가) 있습니다. +원래 컨트롤러 유형을 연결한 상태로 두면 문제가 발생할 수 있습니다. + Patch - + Failed to open {}. Built-in game patches are not available. {}을(를) 열지 못했습니다. 기본 제공 게임 패치를 사용할 수 없습니다. - + {} GameDB patches {} 게임DB 패치 - + {}{} game patches {}{} 게임 패치 - + {}{} cheat patches {}{} 치트 패치 - + {} are active. {}이(가) 활성화되어 있습니다. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. 치트나 패치(와이드스크린, 호환성 또는 기타)가 발견되거나 활성화되지 않았습니다. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2는 카메라를 사용하여 가상 PS2에 연결된 EyeToy 카메라를 에뮬레이트함 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2는 마이크를 사용하여 가상 PS2에 연결된 USB 마이크를 에뮬레이트함 + + QObject @@ -14144,13 +14767,13 @@ The URL was: %1 URL : %1 - + HDD Creator HDD 크리에이터 - + Failed to create HDD image HDD 이미지 생성에 실패했습니다. @@ -14355,7 +14978,6 @@ pcsx2.net에서 PCSX2 {}를 내려받고 일반 메모리 카드를 저장할 SettingWidgetBinder - @@ -14405,240 +15027,261 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + 전체 설정 사용 [활성화] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + 전체 설정 사용 [비활성] + + + + + Use Global Setting [%1] + 전체 설정 사용 [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 설정 - + Restore Defaults - 기본값 복구 + 기본값으로 되돌리기 - + Copy Global Settings - 전역 설정 복사 + 전체 설정 복사 - + Clear Settings 설정 지우기 - + Close 닫기 - - - Summary - 요약 + + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. + <strong>요약</strong><hr>이 페이지에는 선택한 게임에 대한 세부 정보가 표시됩니다. 입력 프로필을 변경하면 이 게임의 컨트롤러 할당 체계가 기본(공유) 구성 대신 선택한 프로필로 설정됩니다. 트랙 목록 및 덤프 확인을 사용하여 디스크 이미지가 알려진 양호한 덤프와 일치하는지 확인할 수 있습니다. 일치하지 않으면 게임이 중단될 수 있습니다. - - <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - <strong>개요</strong><hr>이 페이지에는 선택한 게임에 대한 세부 정보가 표시됩니다. 입력 프로필을 변경하면 이 게임의 컨트롤러 할당 체계가 기본(공유) 구성 대신 선택한 프로필로 설정됩니다. 트랙 목록 및 덤프 확인을 사용하여 디스크 이미지가 알려진 양호한 덤프와 일치하는지 확인할 수 있습니다. 일치하지 않으면 게임이 중단될 수 있습니다. + + + Summary + 요약 - + Summary is unavailable for files not present in game list. 게임 목록에 없는 파일은 요약을 사용할 수 없습니다. - + Interface 인터페이스 - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>인터페이스 설정</strong><hr>이 옵션은 소프트웨어의 모양과 동작 방식을 제어합니다.<br><br>추가 정보를 보려면 옵션 위에 마우스를 올려놓으세요. - + Game List 게임 목록 - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>게임 목록 설정</strong><hr>위 목록은 PCSX2가 게임 목록을 채우기 위해 검색할 디렉터리를 보여줍니다. 검색 디렉토리는 추가, 삭제 및 하위 디렉터리 검색 여부를 전환할 수 있습니다. - + BIOS 바이오스 - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>바이오스 설정</strong><hr>여기에서 바이오스를 구성하세요.<br><br>추가 정보를 보려면 옵션 위에 마우스를 올려놓으세요. - + Emulation 에뮬레이션 - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>에뮬레이션 설정</strong><hr>프레임 속도 및 게임 설정의 구성을 결정하는 옵션입니다.<br><br>추가 정보를 보려면 옵션 위에 마우스를 올려놓으세요. - + Patches 패치 - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>패치</strong><hr>이 섹션에서는 성능, 시각적 또는 게임플레이를 개선할 수 있는 선택적 패치를 선택하여 게임에 적용할 수 있습니다. - + Cheats 치트 - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>치트</strong><hr>이 섹션에서는 활성화할 치트를 선택할 수 있습니다. 이전 형식의 pnach 파일에 대한 레이블이 없는 치트는 활성화/비활성화할 수 없으며, 기본 치트 활성화 옵션이 선택되어 있으면 자동으로 활성화됩니다. - + Game Fixes 게임 수정 - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - <strong>게임 픽스 설정</strong><hr>게임 수정은 일부 타이틀의 잘못된 에뮬레이션을 해결할 수 있습니다.<br>그러나 잘못 사용하면 게임에서 문제를 일으킬 수도 있습니다.<br>별도의 지침이 없는 한 모두 비활성화 상태로 두는 것이 가장 좋습니다. + <strong>게임 수정 설정</strong><hr>게임 수정은 일부 타이틀에서 잘못된 에뮬레이션을 해결할 수 있습니다.<br>그러나 잘못 사용하면 게임에서 문제를 일으킬 수도 있습니다.<br>별도의 지침이 없는 한 모두 비활성화한 상태로 두는 것이 가장 좋습니다. - + Graphics 그래픽 - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - <strong>그래픽 설정</strong><hr>이 옵션은 그래픽 출력의 구성을 결정합니다.<br><br>추가 정보를 보려면 옵션 위에 마우스를 올려놓습니다. + <strong>그래픽 설정</strong><hr>이러한 옵션은 그래픽 출력의 구성을 결정합니다.<br><br>추가 정보를 보려면 옵션 위로 마우스를 가져갑니다. - + Audio 음향 - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - <strong>오디오 설정</strong><hr>이 옵션은 콘솔의 오디오 출력을 제어합니다.<br><br>추가 정보를 보려면 옵션 위로 마우스를 가져갑니다. + <strong>오디오 설정</strong><hr>이 옵션은 콘솔의 오디오 출력을 제어합니다.<br><br>추가 정보를 보려면 옵션 위에 마우스를 올려놓으세요. - + Memory Cards 메모리 카드 - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - <strong>메모리 카드 설정</strong><hr>메모리 카드를 여기에서 생성하고 구성합니다.<br><br>추가 정보를 보려면 옵션 위에 마우스를 올려 놓으십시오. + <strong>메모리 카드 설정</strong><hr>여기에서 메모리 카드를 생성하고 구성합니다.<br><br>추가 정보를 보려면 옵션 위에 마우스를 올려놓으세요. - + Network & HDD 네트워크 & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - <strong>네트워크 및 HDD 설정</strong><hr>이 옵션은 콘솔의 네트워크 연결과 내부 HDD 스토리지를 제어합니다.<br><br>추가 정보를 보려면 옵션 위에 마우스를 올려놓으십시오. + <strong>네트워크 및 HDD 설정</strong><hr>이 옵션은 콘솔의 네트워크 연결과 내부 HDD 스토리지를 제어합니다.<br><br>추가 정보를 보려면 옵션 위로 마우스를 가져갑니다. - + Folders 폴더 - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>폴더 설정</strong><hr>이 옵션은 PCSX2가 런타임 데이터 파일을 저장할 위치를 제어합니다. - + Achievements 도전 과제 - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>도전 과제 설정</strong><hr>이 옵션은 게임에서 업적을 달성할 수 있도록 PCSX2의 레트로어테치먼트 구현을 제어합니다. - + RAIntegration is being used, built-in RetroAchievements support is disabled. - RAIntegration이 사용 중이며, 기본 제공 레트로어테치먼트 지원이 비활성화되어 있습니다. + RAIntegration이 사용 중이며, 기본 제공 레트로어치브먼트 지원이 비활성화되어 있습니다. - + Advanced 고급 - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>고급 설정</strong><hr>시뮬레이션된 콘솔의 구성을 결정하는 고급 옵션입니다.<br><br>추가 정보를 보려면 옵션 위에 마우스를 올려놓으세요. - + Debug 디버그 - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>디버그 설정</strong><hr>응용프로그램에 대한 내부 정보를 기록하는 데 사용할 수 있는 옵션입니다. 이 옵션을 수정하면 속도가 크게 느려지고 디스크 공간을 많이 낭비할 수 있으므로 <strong>잘 모르는 경우 수정하지 마세요</strong>. - + Confirm Restore Defaults - 기본값 복원 확인 + 기본값으로 되돌리기 확인 - + Are you sure you want to restore the default settings? Any preferences will be lost. - 기본 설정으로 복원하시겠습니까? 모든 기본 설정이 손실됩니다. + 기본 설정으로 되돌리시겠습니까? 모든 기본 설정이 손실됩니다. - + Reset UI Settings UI 설정 초기화 - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. Do you want to continue? - 이 게임의 구성이 현재 전역 설정으로 대체됩니다. + 이 게임의 구성이 현재 전체 설정으로 대체됩니다. 현재 설정 값은 모두 덮어쓰게 됩니다. 계속하시겠습니까? - + Per-game configuration copied from global settings. - 전역 설정에서 복사한 게임별 구성입니다. + 전체 설정에서 복사한 게임별 구성입니다. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14651,33 +15294,15 @@ Do you want to continue? 계속하시겠습니까? - + Per-game configuration cleared. 게임별 설정을 지웠습니다. - + Recommended Value 권장 사항 - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - 전체 설정 사용 [활성화] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - 전체 설정 사용 [비활성] - - - - - Use Global Setting [%1] - 전체 설정 사용 [%1] - SetupWizardDialog @@ -14763,8 +15388,8 @@ Do you want to continue? - Open in Explorer... - 탐색기에서 열기... + Open BIOS Folder... + 바이오스 폴더 열기... @@ -15031,97 +15656,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. 대기 유형 - + BAD Refers to a Thread State in the Debugger. 배드 - + RUN Refers to a Thread State in the Debugger. 실행 - + READY Refers to a Thread State in the Debugger. 준비 - + WAIT Refers to a Thread State in the Debugger. 대기 - + SUSPEND Refers to a Thread State in the Debugger. 일시 중단 - + WAIT SUSPEND Refers to a Thread State in the Debugger. 대기 일시 중단 - + DORMANT Refers to a Thread State in the Debugger. 휴면 - + NONE Refers to a Thread Wait State in the Debugger. 없음 - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. 기상 요청 - + SEMAPHORE Refers to a Thread Wait State in the Debugger. 세마포어 - + SLEEP Refers to a Thread Wait State in the Debugger. 슬립 - + DELAY Refers to a Thread Wait State in the Debugger. 지연 - + EVENTFLAG Refers to a Thread Wait State in the Debugger. 이벤트플래그 - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15327,6 +15952,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. 위에 설정된 십자선 이미지 크기를 조정합니다. + + + %.0f%% + %.0f%% + Cursor Color @@ -15358,6 +15988,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. CRT 곡률을 시뮬레이션하기 위해 위치를 조정합니다. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15373,6 +16009,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. 시뮬레이션된 화면의 가로 중심 위치를 설정합니다. + + + + %.0fpx + %.0f픽셀 + Center Y @@ -15393,6 +16035,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. 시뮬레이션 화면의 너비를 설정합니다. + + + + %dpx + %d픽셀 + Screen Height @@ -15448,6 +16096,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. 호스트 입력 장치에 대한 대기 시간을 지정합니다. + + + + + + + %dms + %d밀리초 + Output Latency @@ -15648,6 +16305,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + + + + + Low + 낮음 + + + + Medium + 중간 + + + + High + 높음 + Steering Smoothing @@ -15658,6 +16335,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. 투표당 지정된 비율로 스티어링 변경을 부드럽게 처리합니다. 키보드를 사용할 때 필요합니다. + + + + %d%% + %d%% + Steering Deadzone @@ -16157,117 +16840,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints 힌트 - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. 대부분의 최신 900도 휠에 스티어링을 할당하려면 휠을 원하는 방향으로 한 바퀴 돌린 다음 다시 중앙으로 돌립니다. - + Force Feedback 피드백 강제 적용 - + D-Pad 십자 버튼 - + Down - + Left - + Up - + Right - + L1 L1 - + L2 L2 - + Brake 제동 - + Steering Left 좌측 스티어링 - + Steering Right 우측 스티어링 - + Select 선택 - + Start 시작 - + Face Buttons 페이스 버튼 - + Circle - + Cross - + Triangle - + Square - + R1 R1 - + R2 R2 - + Accelerator 가속기 @@ -16275,67 +16958,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints 힌트 - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. 대부분의 최신 900도 휠에 스티어링을 할당하려면 휠을 원하는 방향으로 한 바퀴 돌린 다음 다시 중앙으로 돌립니다. - + Force Feedback 피드백 강제 적용 - + X X - + A A - + Brake 제동 - + Steering Left 좌측 스티어링 - + Steering Right 우측 스티어링 - + Left Paddle 좌측 패들 - + Right Paddle 우측 패들 - + Y Y - + B B - + Accelerator 가속기 @@ -16343,71 +17026,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons 버튼 - + A A - + C C - + Start 시작 - + Select 선택 - + B B - + D-Pad 십자 버튼 - - + + Down - - + + Left - - + + Up - - + + Right - + Pointer Setup 포인터 설정 - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16416,29 +17099,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>컨트롤러 또는 마우스 대신 컨트롤러를 시뮬레이트하는 라이트건을 사용하려면 상대 조준에 할당해야 합니다. 그렇지 않으면 상대 조준을 <strong>할당하지 않은 상태</strong>로 두어야 합니다.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 상대 조준 - - + + Trigger 트리거 - + Shoot Offscreen 오프스크린 샷 - + Calibration Shot 보정 샷 - + Calibration shot is required to pass the setup screen in some games. 일부 게임에서 설정 화면을 통과하려면 보정 샷이 필요합니다. @@ -16446,27 +17129,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type 장치 유형 - + Bindings 할당 - + Settings 설정 - + Automatic Mapping 자동 매핑 - + Clear Mapping 매핑 지우기 @@ -16504,32 +17187,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. 이전 저장 상태 {}을(를) 백업하지 못했습니다. - + Failed to save save state: {}. 저장 상태 저장 실패 : {}. - + PS2 BIOS ({}) PS2 바이오스({}) - + Unknown Game 알 수 없는 게임 - + Error 오류 - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16546,197 +17229,217 @@ Please consult the FAQs and Guides for further instructions. 자세한 지침은 FAQ 및 가이드를 참조하세요. - + + Resuming state + 상태 재개 + + + State saved to slot {}. 슬롯 {}에 상태가 저장되었습니다. - + Failed to save save state to slot {}. 슬롯 {}에 저장 상태를 저장하지 못했습니다. - + + + Loading state + 상태 불러오기 + + + There is no save state in slot {}. 슬롯 {}에 상태 저장이 없습니다. - + Loading state from slot {}... 슬롯 {}에서 상태 볼러오기... - + Saving state to slot {}... - 슬롯 {}에 상태 저장하기... + 슬롯 {}에 상태 저장... - + + Frame advancing + 프레임 앞으로 + + + Disc removed. 디스크가 제거되었습니다. - + Disc changed to '{}'. 디스크가 '{}'로 교체되었습니다. - - Failed to open new disc image '{}'. Reverting to old image. - 새 디스크 이미지 '{}'을 열지 못했습니다. 이전 이미지로 되돌립니다. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + 새 디스크 이미지를 열지 못했습니다 '{}'. 이전 이미지로 되돌립니다. +오류 발생 : {} - - Failed to switch back to old disc image. Removing disc. - 이전 디스크 이미지로 다시 전환하지 못했습니다. 디스크 제거 중입니다. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + 이전 디스크 이미지로 다시 전환하지 못했습니다. 디스크 제거 중입니다. +오류 발생 : {} - + Cheats have been disabled due to achievements hardcore mode. 도전 과제 하드코어 모드로 인해 치트가 비활성화되었습니다. - + Fast CDVD is enabled, this may break games. 고속 CD/DVD를 활성화하면 게임이 중단될 수 있습니다. - + Cycle rate/skip is not at default, this may crash or make games run too slow. 주기율/스킵을 기본값으로 설정하지 않으면 게임이 충돌하거나 너무 느리게 실행될 수 있습니다. - + Audio is using async mix, expect desynchronization in FMVs. 음향이 비동기 혼합을 사용 중이므로 FMV에서 동기화가 해제될 수 있습니다. - + Upscale multiplier is below native, this will break rendering. 업스케일 배수가 원본보다 낮으면 렌더링이 중단됩니다. - + Mipmapping is not set to automatic. This may break rendering in some games. 밉매핑이 자동으로 설정되어 있지 않습니다. 일부 게임에서 렌더링이 중단될 수 있습니다. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. 텍스처 필터링이 쌍선형(PS2)으로 설정되어 있지 않습니다. 일부 게임에서 렌더링이 중단될 수 있습니다. - + Trilinear filtering is not set to automatic. This may break rendering in some games. 삼선형 필터링이 자동으로 설정되어 있지 않습니다. 일부 게임에서 렌더링이 중단될 수 있습니다. - + Blending is below basic, this may break effects in some games. 혼합이 기본값보다 낮으면 일부 게임에서 이펙트가 손상될 수 있습니다. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. 하드웨어 내려받기 모드가 정확으로 설정되어 있지 않으면 일부 게임에서 렌더링이 중단될 수 있습니다. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU 라운드 모드가 기본값으로 설정되어 있지 않으면 일부 게임이 중단될 수 있습니다. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU 클램프 모드가 기본값으로 설정되어 있지 않으면 일부 게임이 중단될 수 있습니다. - + VU Round Mode is not set to default, this may break some games. VU 라운드 모드가 기본값으로 설정되어 있지 않으면 일부 게임이 중단될 수 있습니다. - + VU Clamp Mode is not set to default, this may break some games. VU 클램프 모드가 기본값으로 설정되어 있지 않으면 일부 게임이 중단될 수 있습니다. - + Game Fixes are not enabled. Compatibility with some games may be affected. 게임 수정이 활성화되지 않았습니다. 일부 게임과의 호환성이 영향을 받을 수 있습니다. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. 호환성 패치가 활성화되지 않았습니다. 일부 게임과의 호환성이 영향을 받을 수 있습니다. - + Frame rate for NTSC is not default. This may break some games. NTSC의 프레임 속도는 기본값이 아닙니다. 이로 인해 일부 게임이 중단될 수 있습니다. - + Frame rate for PAL is not default. This may break some games. PAL의 프레임 속도는 기본값이 아닙니다. 이로 인해 일부 게임이 중단될 수 있습니다. - + EE Recompiler is not enabled, this will significantly reduce performance. EE 리컴파일러가 활성화되어 있지 않으면 성능이 크게 저하됩니다. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 리컴파일러를 활성화하지 않으면 성능이 크게 저하됩니다. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 리컴파일러를 활성화하지 않으면 성능이 크게 저하됩니다. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP 리컴파일러가 활성화되어 있지 않으면 성능이 크게 저하됩니다. - + EE Cache is enabled, this will significantly reduce performance. EE 캐시를 활성화하면 성능이 크게 저하됩니다. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE 대기 루프 감지가 활성화되어 있지 않으면 성능이 저하될 수 있습니다. - + INTC Spin Detection is not enabled, this may reduce performance. INTC 회전 감지가 활성화되어 있지 않으면 성능이 저하될 수 있습니다. - + Instant VU1 is disabled, this may reduce performance. 인스턴트 VU1을 비활성화하면 성능이 저하될 수 있습니다. - + mVU Flag Hack is not enabled, this may reduce performance. mVU 플래그 핵이 활성화되어 있지 않으면 성능이 저하될 수 있습니다. - + GPU Palette Conversion is enabled, this may reduce performance. GPU 팔레트 변환이 활성화되어 있으면 성능이 저하될 수 있습니다. - + Texture Preloading is not Full, this may reduce performance. 미리 불러온 텍스처가 전체가 아니므로 성능이 저하될 수 있습니다. - + Estimate texture region is enabled, this may reduce performance. 텍스처 영역 예상이 활성화되어 있으면 성능이 저하될 수 있습니다. diff --git a/pcsx2-qt/Translations/pcsx2-qt_lt-LT.ts b/pcsx2-qt/Translations/pcsx2-qt_lt-LT.ts index c504bc36314d95..35938d5676a477 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_lt-LT.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_lt-LT.ts @@ -80,32 +80,38 @@ Paruošta... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Jūsų "RetroAchievements" prisijungimas nebegalioja.</strong> Jums būtinai reikia prisijungti iš naujo, jeigu norite, kad jūsų pasiekimai būtų toliau sekami. Jūsų slaptažodis nebus išsaugotas PCSX2 programoje, vietoj to, bus sukurtas ir panaudotas prisijungimo raktas. - + &Login &Prisijungti - + Logging in... Prisijungiama... - + Login Error Prisijungimo klaida - - Login failed. Please check your username and password, and try again. - Prisijungimas nepavyko. Prašau patikrinkite savo vartotojo vardą ir slaptažodį, tada pabandykite iš naujo. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Prisijungti nepavyko. +Klaida: %1 + +Patikrinkite savo vartotojo vardą ir slaptažodį ir bandykite dar kartą. - + Login failed. Nepavyko prisijungti. @@ -113,270 +119,503 @@ AchievementSettingsWidget - - Global Settings - Bendrieji nustatymai - - - - + + Enable Achievements Įjungti pasiekimus - - - Show Challenge Indicators - Show Challenge Indicators - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Įjungti "RA's Rich Presence" - - - - + + Enable Hardcore Mode - Enable Hardcore Mode + Įjungti sunkųjį režimą - - - Enable Leaderboards - Enable Leaderboards - - - + Test Unofficial Achievements Išbandyti neoficialius pasiekimus - - - Enable Test Mode - Įjungti testavimo režimą - - - - + + Enable Sound Effects Įjunkti garso efektus - + Notifications Pranešimai - - - Show Notifications - Rodyti pranešimus - - - - Duration - Trukmė - - - - - - + + 5 seconds 5 sekundės - + Account Paskyra - - + + Login... Prisijungti... - + View Profile... Peržiūrėti profilį... - - Game Info - Žaidimo info + + Settings + Nustatymai - - <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> - <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + + + Enable Spectator Mode + Įjungti žiūrovo režimą - - seconds - sekundės + + + Enable Encore Mode + Įjungti Encore režimą + + + + + Show Achievement Notifications + Rodyti pasiekimų pranešimus + + Show Leaderboard Notifications + Rodyti lyderių lentos pranešimus + + + - - - - Unchecked - Nepažymėta + Enable In-Game Overlays + Įjungti žaidimo perdangas - - When enabled and logged in, PCSX2 will scan for achievements on game load. - When enabled and logged in, PCSX2 will scan for achievements on game load. + + Username: +Login token generated at: + Vartotojo vardas: +Prisijungimo simbolis, sugeneruotas adresu: + + + + Game Info + Žaidimo info + + + + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + <html><head/><body><p align="justify">PCSX2 naudoja "RetroAchievements" kaip pasiekimų duomenų bazę ir pažangai sekti. Norėdami naudotis pasiekimais, užsiregistruokite <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Norėdami peržiūrėti pasiekimų sąrašą žaidime, paspauskite spartųjį klavišą <span style=" font-weight:600;">Atidaryti pauzės meniu</span> ir pasirinkite <span style=" font-weight:600;">Pasiekimai</span> iš meniu.</p></body></html> + + + + + Unchecked + Nepažymėta + + + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Kai įjungta, PCSX2 manys, kad visi pasiekimai yra užrakinti ir nesiųs jokių atrakinimo pranešimų serveriui. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. - When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. + Kai ši funkcija įjungta, PCSX2 pateiks neoficialių pasiekimų sąrašą. Atkreipkite dėmesį, kad šių pasiekimų "RetroAchievements" neseka, todėl jie atrakinami kiekvieną kartą. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. + "Iššūkių" režimas pasiekimams, įskaitant lyderių lentelės stebėjimą. Išjungia išsaugotas būsenas, cheatus ir sulėtėjimo funkcijas. - - - - + + + + Checked Pažymėta - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. + + Plays sound effects for events such as achievement unlocks and leaderboard submissions. + Groja garso efektus, susijusius su tokiais įvykiais kaip pasiekimų atrakinimais ir lyderių lentelės pateikimais. - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Displays popup messages on events such as achievement unlocks and leaderboard submissions. + + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + Rodo ikonus ekrano apatiniame dešiniajame kampe, kai yra aktyvus iššūkis/įvykdytas pasiekimas. - - Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Plays sound effects for events such as achievement unlocks and leaderboard submissions. + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Įjungus ir prisijungus, PCSX2 paleidimo metu nuskaitys pasiekimus. - - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. - - - - Notification Duration - Pranešimo trukmė + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - The duration, in seconds, an achievement popup notification will remain on screen. + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - + Reset System Atkurti sistemą - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? + Sunkusis režimas nebus įjungtas, kol sistema nebus iš naujo paleista. Ar norite iš naujo paleisti sistemą dabar? + + + + + %n seconds + + %n sekundė + %n sekundės + %n sekundžių + %n sekundės + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. - Username: %1 -Login token generated on %2. + Vartotojo vardas: %1 +Prisijungimo kodas sugeneruotas %2. - + Logout Atsijungti - + Not Logged In. Nesate prisijungęs. - - - %1 seconds - %1 sekundžių - Achievements - + Hardcore mode will be enabled on system reset. - Hardcore mode will be enabled on system reset. + Sunkusis režimas bus įjungtas perkrovus sistemą. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. + {0} negalima atlikti, kol veikia sunkusis režimas. Ar norite išjungti sunkųjį režimą? {0} Bus atšauktas jei pasirinksite Ne. - + Hardcore mode is now enabled. - Hardcore mode is now enabled. + Sunkusis režimas yra įjungtas. + + + + {} (Hardcore Mode) + {} (Sunkusis režimas) + + + + {} (Unofficial) + {} (Neoficialus) + + + + Mastered {} + Įvaldyti {} + + + + Leaderboard attempt started. + Pradėtas bandymas sudaryti lyderių lentelę. + + + + Leaderboard attempt failed. + Bandymas sudaryti lyderių lentelę nepavyko. + + + + Your Time: {}{} + Jūsų laikas: {}{} + + + + Your Score: {}{} + Jūsų taškai: {}{} + + + + Your Value: {}{} + Jūsų vertė: {}{} + + + + (Submitting) + (Pateikiama) + + + + Achievements Disconnected + Pasiekimai atjungti + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Atrakinimo užklausos nepavyko įvykdyti. Šią užklausą bandysime pateikti dar kartą. + + + + Achievements Reconnected + Pasiekimai vėl prijungti + + + + All pending unlock requests have completed. + Visos neišspręstos atrakinimo užklausos įvykdytos. - + Hardcore mode is now disabled. - Hardcore mode is now disabled. + Sunkusis režimas yra išjungtas. + + + + Confirm Hardcore Mode + Patvirtinkite sunkųjį režimą + + + + Active Challenge Achievements + Aktyvūs iššūkio pasiekimai - + (Hardcore Mode) - (Hardcore Mode) + (Sunkusis režimas) - - You have earned {0} of {1} achievements, and {2} of {3} points. - You have earned {0} of {1} achievements, and {2} of {3} points. + + You have unlocked all achievements and earned {} points! + Jūs atrakinote visus pasiekimus ir pelnėte {} taškų! - - This game has no achievements. - Šis žaidimas neturi pasiekimų. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Jūs atrakinote {0} iš {1} pasiekimų ir surinkote {2} iš {3} taškų. + + + + {0} achievements, {1} points + {0} pasiekimai, {1} taškai + + + + Your Time: {0} (Best: {1}) + Jūsų laikas: {0} (geriausias: {1}) + + + + Your Score: {0} (Best: {1}) + Jūsų rezultatas: {0} (geriausias: {1}) + + + + Your Value: {0} (Best: {1}) + Jūsų vertė: {0} (geriausias: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Lyderių lentelės pozicija: {1} iš {2} + + + + Server error in {0}: +{1} + Serverio klaida {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Rezultatas: {0} ({1} softcore) +Neperskaityti pranešimai: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Jūs atrakinote {0} iš {1} pasiekimų ir surinkote {2} iš {3} galimų taškų. + + + + Unknown + Nežinoma + + + + Locked + Užrakinta + + + + Unlocked + Atrakinta + + + + Unsupported + Nepalaikomi + + + + Unofficial + Neoficialus + + + + Recently Unlocked + Neseniai atrakinti + + + + Active Challenges + Aktyvūs iššūkiai + + + + Almost There + Beveik ten + + + + {} points + {} taškai + + + + {} point + {} taškas + + + + XXX points + XXX taškai + + + + Unlocked: {} + Atrakinta: {} + + + + This game has {} leaderboards. + Šis žaidimas turi {} lyderių lenteles. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Rezultatų pateikimas yra išjungtas, nes sunkusis režimas yra išjungtas. Lyderių lentelės yra tik skaitomos. + + + + Show Best + Parodyti geriausius + + + + Show Nearby + Rodyti netoliese + + + + Rank + Vieta + + + + Name + Pavadinimas + + + + Time + Laikas + + + + Score + Taškai + + + + Value + Vertė + + + + Date Submitted + Pateikta data - - Leaderboard submission is enabled. - Leaderboard submission is enabled. + + Downloading leaderboard data, please wait... + Atsisiunčiami lyderių lentelės duomenys, palaukite... + + + + + Loading... + Kraunasi... + + + + + Leaderboard download failed + Lyderių lentelės atsisiuntimas nepavyko + + + + This game has no achievements. + Šis žaidimas neturi pasiekimų. - + Failed to read executable from disc. Achievements disabled. - Failed to read executable from disc. Achievements disabled. + Nepavyko nuskaityti vykdomosios programos iš disko. Pasiekimai išjungti. @@ -386,24 +625,24 @@ Login token generated on %2. Use Global Setting [%1] - Naudoti visuotinį nustatymą [%1] + Naudoti bendra nustatymą [%1] Rounding Mode - Rounding Mode + Apvalinimo režimas Chop / Zero (Default) - Chop / Zero (Default) + Pjovimas / Nulis (Numatytasis) Clamping Mode - Clamping Mode + Suspaudimo režimas @@ -416,7 +655,7 @@ Login token generated on %2. Enable Recompiler - Enable Recompiler + Įjungti rekompilatorių @@ -441,12 +680,12 @@ Login token generated on %2. Wait Loop Detection Wait loop: When the game makes the CPU do nothing (loop/spin) while it waits for something to happen (usually an interrupt). - Wait Loop Detection + Laukimo kilpos aptikimas Moderate speedup for some games, with no known side effects. - Moderate speedup for some games, with no known side effects. + Vidutinis pagreitėjimas kai kuriuose žaidimuose, be jokio žinomo šalutinio poveikio. @@ -462,7 +701,7 @@ Login token generated on %2. Interpreter only, provided for diagnostic. - Interpreter only, provided for diagnostic. + Tik interpreteratorius, skirtas diagnostikai. @@ -473,12 +712,12 @@ Login token generated on %2. Huge speedup for some games, with almost no compatibility side effects. - Huge speedup for some games, with almost no compatibility side effects. + Milžiniškas kai kurių žaidimų pagreitinimas ir beveik jokio suderinamumo poveikio. Enable Fast Memory Access - Enable Fast Memory Access + Įjungti greita prieiga prie atminties @@ -489,7 +728,7 @@ Login token generated on %2. Pause On TLB Miss - Pause On TLB Miss + Pauzė dėl TLB praleidimo @@ -520,29 +759,29 @@ Login token generated on %2. Enable VU0 Recompiler (Micro Mode) VU0 = Vector Unit 0. One of the PS2's processors. - Enable VU0 Recompiler (Micro Mode) + Įjungti VU0 rekompilatorių (mikro režimas) Enables VU0 Recompiler. - Enables VU0 Recompiler. + Įjungia VU0 rekompilatorių. Enable VU1 Recompiler VU1 = Vector Unit 1. One of the PS2's processors. - Enable VU1 Recompiler + Įjungti VU1 rekompilatorių Enables VU1 Recompiler. - Enables VU1 Recompiler. + Įjungia VU1 rekompilatorių. mVU Flag Hack mVU = PCSX2's recompiler for VU (Vector Unit) code (full name: microVU) - mVU Flag Hack + mVU vėliavos hackas @@ -572,226 +811,226 @@ Login token generated on %2. Automatically loads and applies compatibility patches to known problematic games. - Automatically loads and applies compatibility patches to known problematic games. + Automatiškai įkelia ir pritaiko suderinamumo pataisymus žinomiems probleminiams žaidimams. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Pakeitus šios nustatymūs žaidimai gali nebeveikti. Keiskite savo pačių rizika, PCSX2 komanda nepalaikys konfigūracijų, kai šie parametrai buvo pakeisti. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). - EmotionEngine (MIPS-IV) + EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. - Rounding Mode: + Apvalinimo režimas: - - - + + + Nearest Arčiausias - - - + + + Negative Neigiama - - - + + + Positive Teigiamas - - - + + + Chop / Zero (Default) - Chop / Zero (Default) + Pjovimas / Nulis (Numatytasis) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. - Clamping Mode: + Suspaudimo režimas: - - + + None Jokio - - - + + + Normal (Default) - Normal (Default) + Normalus (Numatytas) - + None ClampMode Jokio - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preserve Sign - + Full Pilnas - + Wait Loop Detection Wait Loop Detection - - + + Enable Recompiler - Enable Recompiler + Įjungti rekompilatorių - + Enable Fast Memory Access - Enable Fast Memory Access + Įjungti greita prieiga prie atminties - + Enable Cache (Slow) Enable Cache (Slow) - + INTC Spin Detection INTC Spin Detection - + Pause On TLB Miss - Pause On TLB Miss + Pauzė dėl TLB praleidimo - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. - Vector Units (VU) + Vektoriniai vienetai (VU) - + VU1 Rounding Mode: - VU1 Rounding Mode: + VU1 Apvalinimo režimas: - + mVU Flag Hack - mVU Flag Hack + mVU vėliavos hackas - + Enable VU1 Recompiler - Enable VU1 Recompiler + Įjungti VU1 rekompilatorių - + Enable VU0 Recompiler (Micro Mode) - Enable VU0 Recompiler (Micro Mode) + Įjungti VU0 rekompilatorių (mikro režimas) - - + + Extra Papildoma - + VU0 Clamping Mode: VU0 Suspaudimo režimas: - + VU0 Rounding Mode: VU0 Apvalinimo režimas: - + VU1 Clamping Mode: VU1 Suspaudimo režimas: - + I/O Processor (IOP, MIPS-I) - I/O Processor (IOP, MIPS-I) + I/O procesorius (IOP, MIPS-I) - + Game Settings Žaidimų nustatymai - + Enable Game Fixes Įjungti žaidimų pataisymus - + Enable Compatibility Patches - Enable Compatibility Patches + Įjunkti suderinamumo pataisymus - + Frame Rate Control - Frame Rate Control + Kadrų greičio valdymas - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: - PAL kadrų dažnis: + PAL kadrų greitis: - + NTSC Frame Rate: - NTSC kadrų dažnis: + NTSC kadrų greitis: - + PINE Settings - PINE Settings + PINE nustatymai - + Slot: Slotas: - + Enable Įjungti @@ -799,189 +1038,189 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings - Timestretch Settings + Timestretch nustatymai - + Sequence Length: - Sequence Length: + Sekos ilgis: - + 30 30 - + Seekwindow Size: Seekwindow Size: - + 20 20 - + Overlap: Overlap: - + 10 10 - + Restore Defaults Atkurti numatytuosius nustatymus - + Volume Garsumas - + 100% 100% - + Mixing Settings Mixing Settings - + Synchronization: - Synchronization: + Sinchronizacija: - + TimeStretch (Recommended) - TimeStretch (Recommended) + TimeStretch (rekomenduojama) - + Async Mix (Breaks some games!) - Async Mix (Breaks some games!) + Async Mix (sulaužo kai kuriuos žaidimus!) - + None (Audio can skip.) - None (Audio can skip.) + Nėra (Garsas gali trūkti.) - + Expansion: - Expansion: + Papildymas: - + Stereo (None, Default) - Stereo (None, Default) + Stereo (nėra, numatytasis) - + Quadraphonic - Quadraphonic + Quadraphoniškas - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. - ProLogic Level: + ProLogic lygis: - + None (Default) - None (Default) + Nėra (numatytasis) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. - ProLogic Decoding (basic) + ProLogic dekodavimas (paprastas) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. - ProLogic II Decoding (gigaherz) + ProLogic II dekodavimas (gigaherz) - + Target Latency: - Target Latency: + Tikslinis vėlavimas: - + 60 ms 60 ms - + Output Settings - Output Settings + Išvesties nustatymai - + Output Module: - Output Module: + Išvesties modulis: - + Output Latency: - Output Latency: + Išvesties vėlavimas: - + 20 ms 20 ms - + Minimal Minimalus - + Output Backend: - Output Backend: + Išvesties Backend: - + Maximum Latency: - Maximum Latency: + Didžiausias vėlavimas: - + Output Device: - Output Device: + Išvesties įrenginys: Cubeb (Cross-platform) - Cubeb (Cross-platform) + Cubeb (tarp-platforminė) @@ -996,17 +1235,17 @@ Login token generated on %2. Synchronization - Synchronization + Sinchronizacija When running outside of 100% speed, adjusts the tempo on audio instead of dropping frames. Produces much nicer fast-forward/slowdown audio. - When running outside of 100% speed, adjusts the tempo on audio instead of dropping frames. Produces much nicer fast-forward/slowdown audio. + Kai veikia ne 100% greičiu, reguliuoja garso ritmą vietoj kadrų išmetimo. Suteikia kur kas geresnį garso pagreitinimą/lėtėjimą. Expansion - Expansion + Papildymas @@ -1017,17 +1256,17 @@ Login token generated on %2. Output Module Cubeb is an audio engine name. Leave as-is. - Output Module + Išvesties modulis Selects the library to be used for audio output. - Selects the library to be used for audio output. + Pasirenka biblioteką, kuri bus naudojama garso išėjimui. Output Backend - Output Backend + Išvesties Backend @@ -1041,22 +1280,22 @@ Login token generated on %2. When the sound output module supports multiple audio backends, determines the API to be used for audio output to the system. - When the sound output module supports multiple audio backends, determines the API to be used for audio output to the system. + Kai garso išvesties modulis palaiko kelias garso duomenų bazes, nustatomas API, kuris bus naudojamas garso išvedimui į sistemą. Output Device - Output Device + Išvesties įrenginys Determines which audio device to output the sound to. - Determines which audio device to output the sound to. + Nustato, į kurį garso įrenginį išvesti garsą. Target Latency - Target Latency + Tikslinis vėlavimas @@ -1066,7 +1305,7 @@ Login token generated on %2. Output Latency - Output Latency + Išvesties vėlavimas @@ -1076,7 +1315,7 @@ Login token generated on %2. Sequence Length - Sequence Length + Sekos ilgis @@ -1102,12 +1341,12 @@ Login token generated on %2. Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. - Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. + Iš anksto pritaiko garso stiprumo modifikatorių prieš persiųsdamas žaidimo garso išvestį į kompiuterį. Use Global Setting [%1] - Naudoti visuotinį nustatymą [%1] + Naudoti bendra nustatymą [%1] @@ -1162,17 +1401,22 @@ Login token generated on %2. Nauja versija: - + + Download Size: + Atsisiuntimo dydis: + + + Download and Install... Atsisiųsti ir įdiegti... - + Skip This Update Praleisti šį naujinimą - + Remind Me Later Priminti man vėliau @@ -1182,17 +1426,17 @@ Login token generated on %2. Atnaujinimo klaida - + <h2>Changes:</h2> - <h2>Changes:</h2> + <h2>Pakeitimai:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> @@ -1219,7 +1463,7 @@ Login token generated on %2. No updates are currently available. Please try again later. - No updates are currently available. Please try again later. + Šiuo metu nėra jokių atnaujinimų. Pabandykite dar kartą vėliau. @@ -1233,6 +1477,11 @@ Login token generated on %2. + Download Size: %1 MB + Atsisiuntimo dydis: %1 MB + + + Loading... Kraunasi... @@ -1240,66 +1489,66 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory - BIOS Directory + BIOS adresynas - + PCSX2 will search for BIOS images in this directory. - PCSX2 ieškos BIOS šiame kataloge. + PCSX2 ieškos BIOS šiame adresyne. - + Browse... Naršyti... - + Reset Nustatyti iš naujo - + BIOS Selection BIOS pasirinkimas - - Open in Explorer... - Atverti failų naršyklėje... + + Open BIOS Folder... + Atidarykite BIOS aplanką... - + Refresh List Atnaujinti sąrašą - + Filename Failo pavadinimas - + Version Versija - + Options and Patches - Options and Patches + Nustatymai ir pataisymai - + Fast Boot Greitas paleidimas - + Fast Forward Boot - Fast Forward Boot + Greitas paleidimas @@ -1309,7 +1558,7 @@ Login token generated on %2. Patches the BIOS to skip the console's boot animation. - Patches the BIOS to skip the console's boot animation. + Pataiso BIOS, kad būtų praleista konsolės įkrovos animacija. @@ -1319,7 +1568,7 @@ Login token generated on %2. Removes emulation speed throttle until the game starts to reduce startup time. - Removes emulation speed throttle until the game starts to reduce startup time. + Pašalina emuliacijos greičio ribotuvą, kol prasideda žaidimas, kad sutrumpėtų paleidimo laikas. @@ -1338,13 +1587,13 @@ Login token generated on %2. Execute - Execute + Vykdyti Memory - Memory + Atmintis @@ -1384,7 +1633,7 @@ Login token generated on %2. Condition - Condition + Būklė @@ -1408,107 +1657,100 @@ Login token generated on %2. Invalid address "%1" - Invalid address "%1" + Netinkamas adresas "%1" Invalid condition "%1" - Invalid condition "%1" + Netinkama sąlyga "%1" Invalid size "%1" - Invalid size "%1" + Netinkamas dydis "%1" BreakpointModel - + Execute - Execute - - - - No Condition - No Condition + Vykdyti - - + + -- -- - - + Enabled Įjungtas - - + Disabled - Disabled + Išjungta - + Read Skaityti - + Write(C) (C) = changes, as in "look for changes". - Write(C) + Rašyti(C) - + Write Rašyti - + TYPE Warning: limited space available. Abbreviate if needed. - TYPE + TIPAS - + OFFSET Warning: limited space available. Abbreviate if needed. - OFFSET + POSLINKIS - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. - SIZE / LABEL + DYDIS / ETIKETĖ - + INSTRUCTION Warning: limited space available. Abbreviate if needed. - INSTRUCTION + INSTRUKCIJA - + CONDITION Warning: limited space available. Abbreviate if needed. - CONDITION + SĄLYGOS - + HITS Warning: limited space available. Abbreviate if needed. - HITS + PATAIKYMAI - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ĮJUNGTAS + X @@ -1519,7 +1761,7 @@ Login token generated on %2. Žaidimo disko vieta yra išimamame diske, todėl gali kilti našumo problemų, tokių kaip šokinėjimas ir užšalimas. - + Saving CDVD block dump to '{}'. Saving CDVD block dump to '{}'. @@ -1531,12 +1773,12 @@ Login token generated on %2. Mode 1 - Mode 1 + Režimas 1 Mode 2 - Mode 2 + Režimas 2 @@ -1549,45 +1791,45 @@ Login token generated on %2. Select LED Color - Select LED Color + Pasirinkite LED spalvą ControllerBindingWidget - + Virtual Controller Type - Virtual Controller Type + Virtualus kontrolerio tipas - + Bindings Susiejimai - + Settings Nustatymai - + Macros Makrokomandos - + Automatic Mapping - Automatic Mapping + Automatinis suplanavimas - + Clear Mapping - Clear Mapping + Ištrinti susiejimus Controller Port %1 - Controller Port %1 + Kontrolerio jungtis %1 @@ -1604,7 +1846,7 @@ Login token generated on %2. Are you sure you want to clear all bindings for this controller? This action cannot be undone. Binding: A pair of (host button, target button); Mapping: A list of bindings covering an entire controller. These are two different things (which might be the same in your language, please make sure to verify this). - Ar tikrai norite išvalyti visus šio pultelio susiejimus? Šio veiksmo anuliuoti negalima. + Ar tikrai norite išvalyti visus šio kontrolerio susiejimus? Šio veiksmo anuliuoti negalima. @@ -1614,152 +1856,152 @@ Login token generated on %2. No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. + Įrenginiui '%1' nebuvo sukurta bendrųjų susiejimų. Kontroleris/šaltinis gali nepalaikyti automatinio suplanavimo. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - D-Pad + Kryptis - - - + + + Down Žemyn - - - + + + Left Kairė - - - + + + Up Aukštyn - - - + + + Right Dešinė - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Left Analog + Kairysis analogas - + Large Motor - Large Motor + Didelis variklis - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Pradėti - + Select Leave this button name as-is or uppercase it entirely. Pasirinkti - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Veido mygtukai - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kryžius - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kvadratas - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Trikampis - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Apskritimas - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Right Analog + Dešinysis analogas - + Small Motor - Small Motor + Mažas variklis - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier - Pressure Modifier + Spaudimo modifikatorius - + Analog Analoginis @@ -1767,79 +2009,74 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - Forma - - - + Yellow Geltona - - - - - - - - - - - + + + + + + + + + + + PushButton - PushButton + Paspaudimo mygtukas - + Start Pradėti - + Red Raudona - + Green Žalias - + Orange Oranžinė - + Select Pasirinkti - + Strum Up - Strum Up + Strum aukštyn - + Strum Down - Strum Down + Strum žemyn - + Blue Mėlyna - + Whammy Bar - Whammy Bar + Whammy Bar - + Tilt - Tilt + Palenkti @@ -1863,125 +2100,135 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL įvesties šaltinis - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). + SDL įvesties šaltinis palaiko daugumą kontrolerių ir suteikia išplėstines funkcijas DualShock 4 / DualSense pultams Bluetooth režimu (vibracija / LED valdymas). - + Enable SDL Input Source Įjunkti SDL įvesties šaltinį - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense Patobulintas režimas - + XInput Source XInput šaltinis - + Enable XInput Input Source Įjunkti XInput įvesties šaltinį - + DInput Source DInput šaltinis - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - DInput šaltinis palaiko senus pultelius, kurie nepalaiko XInput. Prieiga prie šių pultelių rekomenduojama per SDL, tačiau galima naudoti DirectInput, jei jie nesuderinami su SDL. + DInput šaltinis palaiko senus kontrolerius, kurie nepalaiko XInput. Prieiga prie šių kontrolių rekomenduojama per SDL, tačiau galima naudoti DirectInput, jei jie nesuderinami su SDL. - + Enable DInput Input Source - Enable DInput Input Source + Įjungti DInput įvesties šaltinį + + + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Kai kurie trečiųjų šalių kontroleriai neteisingai pažymi, kad jų analoginės lazdelės yra apverstos į teigiamą pusę, bet ne į neigiamą.</p><p>Dėl to analoginė lazdelė bus &quot;užstrigusi,&quot; net kai ji yra neutralioje padėtyje. </p><p>Įjungus šį nustatymą, PCSX2 nurodys, kad kuriant žemėlapius būtų ignoruojamos inversijos vėliavos, todėl tokie kontroleriai veiks normaliai.</p></body></html> + + + + Ignore Inversion + Ignoruoti inversiją - + Profile Settings Profilio nustatymai - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - Kai ši parinktis įjungta, sparčiuosius klavišus galima nustatyti šiame įvesties profilyje ir jie bus naudojami vietoj visuotinių sparčiųjų klavišų. Pagal numatytuosius nustatymus spartieji klavišai visada bendrinami visiems profiliams. + Kai ši parinktis įjungta, sparčiuosius klavišus galima nustatyti šiame įvesties profilyje ir jie bus naudojami vietoj visuotinių sparčiųjų klavišų. Pagal bendrus nustatymus spartieji klavišai visada bendrinami visiems profiliams. - + Use Per-Profile Hotkeys Naudokite pagal profilio sparčiuosius klavišus - - + + Controller LED Settings - Controller LED Settings + Kontrolerio LED nustatymai - + Enable SDL Raw Input - Enable SDL Raw Input + Įjungti SDL neapdorotą įvestį - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. + XInput šaltinis palaiko Xbox 360 / Xbox One / Xbox serijos pultelius ir trečiųjų šalių pultelius, kuriuose įdiegtas XInput protokolas. - + Controller Multitap Controller Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - + Multitap on Console Port 1 Multitap on Console Port 1 - + Multitap on Console Port 2 Multitap on Console Port 2 - + Mouse/Pointer Source - Mouse/Pointer Source + Pelės/žymeklio šaltinis - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 leidžia naudoti pelę, kad imituotų analoginės lazdelės judėjimą. - + Settings... Nustatymai... - + Enable Mouse Mapping - Enable Mouse Mapping + Įjungti pelės suplanavima - + Detected Devices - Detected Devices + Aptikti įrenginiai @@ -1989,7 +2236,7 @@ Login token generated on %2. Controller LED Settings - Controller LED Settings + Kontrolerio LED nustatymai @@ -2015,58 +2262,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons - Binds/Buttons + Susiejimai/mygtukai - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. + Pasirinkite mygtukus, kuriuos norite įjungti su šiuo makro. Visi mygtukai suaktyvinami vienu metu. - + Pressure - Pressure + Spaudimas - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. + Mygtukams, kurie yra jautrūs spaudimui, šis slankiklis reguliuoja, kokia jėga bus imituojama, kai makrokomandas bus aktyvios. - - + + 100% 100% - + Trigger - Trigger + Gaidukas - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: - Deadzone: + Neveiksnioji zona: - + Frequency - Frequency + Dažnis - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Nustatyti... @@ -2084,17 +2331,17 @@ Login token generated on %2. Set Frequency - Set Frequency + Nustatyti dažnį Frequency: - Frequency: + Dažnis: Macro will not repeat. - Macro will not repeat. + Makro nepasikartos. @@ -2117,7 +2364,7 @@ Login token generated on %2. Macro 1 Not Configured/Buttons configured - Macro %1 + Makro %1 %2 @@ -2126,7 +2373,7 @@ Not Configured/Buttons configured Mouse Mapping Settings - Mouse Mapping Settings + Pelės suplanavimo nustatymai @@ -2155,60 +2402,60 @@ Not Configured/Buttons configured Inertia - Inertia + Inercija X Dead Zone - X Dead Zone + X Negyvoji Zona Y Dead Zone - Y Dead Zone + Y Negyvoji Zona - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - PCSX2 pultelio nustatymai + PCSX2 kontroleriu nustatymai - + Editing Profile: - Editing Profile: + Redaguoti Profilį: - + New Profile Naujas profilis - + Load Profile Krauti profilį - + Delete Profile Ištrinti profilį - - + + Restore Defaults - Restore Defaults + Atkurti numatytuosius nustatymus - - + + Create Input Profile - Create Input Profile + Kurti įvesties profilį - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,53 +2466,53 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Klaida - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. + Ar norite nukopijuoti visus susiejimus iš šiuo metu pasirinkto profilio į naująjį profilį? Pasirinkus Ne, bus sukurtas visiškai tuščias profilis. - + Failed to save the new profile to '%1'. - Failed to save the new profile to '%1'. + Nepavyko išsaugoti naujo profilio į '%1'. - + Load Input Profile - Load Input Profile + Krauti įvesties profilį - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - Are you sure you want to load the input profile named '%1'? + Ar tikrai norite įkelti įvesties profilį pavadinimu '%1'? -All current global bindings will be removed, and the profile bindings loaded. +Visi dabartiniai globalūs susiejimai bus pašalinti, o profilio susiejimai įkelti. -You cannot undo this action. +Šio veiksmo atšaukti negalima. - + Delete Input Profile - Delete Input Profile + Ištrinti įvesties profilį - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,69 +2521,69 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. - Failed to delete '%1'. + Nepavyko ištrinti '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - Are you sure you want to restore the default controller configuration? + Ar tikrai norite atkurti numatytąją kontrolieriaus konfigūraciją? -All shared bindings and configuration will be lost, but your input profiles will remain. +Visi bendri susiejimai ir konfigūracija bus prarasti, bet jūsų įvesties profiliai išliks. -You cannot undo this action. +Šio veiksmo atšaukti negalima. - + Global Settings Bendrieji nustatymai - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Controller Port %1%2 + Kontrolerio jungtis %1%2 %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Controller Port %1 + Kontrolerio jungtis %1 %2 - - + + USB Port %1 %2 - USB Port %1 + USB jungtis %1 %2 - + Hotkeys Spartieji klavišai - + Shared "Shared" refers here to the shared input profile. - Bendra + Bendri - + The input profile named '%1' cannot be found. - The input profile named '%1' cannot be found. + Įvesties profilio, pavadinto '%1', negalima rasti. @@ -2349,7 +2596,7 @@ You cannot undo this action. PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. + PCSX2 gali automatiškai atsisiųsti žaidimų viršelius, kurie šiuo metu neturi viršelių rinkinio. Mes nehostiname jokių viršelio vaizdų, vartotojas turi pateikti savo vaizdų šaltinį. @@ -2359,12 +2606,12 @@ You cannot undo this action. By default, the downloaded covers will be saved with the game's title. If this is not desired, you can check the "Use Serial File Names" box below. Using serials instead of game titles will prevent conflicts when multiple regions of the same game are used. - By default, the downloaded covers will be saved with the game's title. If this is not desired, you can check the "Use Serial File Names" box below. Using serials instead of game titles will prevent conflicts when multiple regions of the same game are used. + Pagal numatytuosius nustatymus atsisiųsti viršeliai bus išsaugoti su žaidimo pavadinimu. Jei to nepageidaujate, galite pažymėti toliau esantį "Naudoti serijinių failų pavadinimus" langelį. Naudojant serijinius pavadinimus vietoj žaidimo pavadinimų bus išvengta konfliktų, kai naudojami keli to paties žaidimo regionai. Use Serial File Names - Use Serial File Names + Naudoti serijinių failų pavadinimus @@ -2403,209 +2650,247 @@ You cannot undo this action. Functions - Functions + Funkcijos - - Refresh - Atnaujinti + + Module + Module - - Filter - Filtras + + Version + Versija + Count + Count + + + + Refresh + Atnaujinti + + + + Filter + Filtras + + + Memory Search - Memory Search + Atminties paieška - + End Pabaiga - + Value - Value + Vertė - + Start Pradėti - + Type Tipas - + 1 Byte (8 bits) 1 baitas (8 bitai) - + 2 Bytes (16 bits) 2 baitai (16 bitai) - + 4 Bytes (32 bits) 4 baitai (32 bitai) - + 8 Bytes (64 bits) 8 baitai (64 bitai) - + Float Float - + Double Dvigubas - + String - String + Eilutė - + Array of byte Array of byte - + Hex Hex - + Search - Search + Paieška - + Memory - Memory + Atmintis - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New Naujas - + Edit Redaguoti - - - + + + Copy Kopijuoti - + Delete Ištrinti - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View - Go to in Memory View + Eiti į atminties vaizdą + + + + + Module Tree + Module Tree - + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger - Debugger + Profilavimo įrankis - + Invalid start address - Invalid start address + Neteisingas pradžios adresas - + Invalid end address - Invalid end address + Neteisingas pabaigos adresas - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type - Value is larger than type + Vertė yra didesnė už tipą @@ -2659,22 +2944,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet - Ethernet + Eternetas - + Ethernet Device: - Ethernet Device: + Ethernet įrenginys: - + Ethernet Device Type: - Ethernet Device Type: + Ethernet įrenginio tipas: - + Intercept DHCP Intercept DHCP @@ -2684,134 +2969,129 @@ You cannot undo this action. Įjungtas - + Enabled InterceptDHCP Įjungtas - + Subnet Mask: Subnet Mask: - + Gateway Address: Gateway Address: - - + + Auto Auto - + Intercept DHCP: Intercept DHCP: - + PS2 Address: PS2 Adresas: - + DNS1 Address: DNS1Adresas: - + DNS2 Address: DNS2 Adresas: - + Internal DNS Internal DNS - + Add Pridėti - + Delete Ištrinti - + Export Eksportuoti - + Import Importuoti - + Per game Pagal žaidima - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Įjungtas - + Hard Disk Drive - Hard Disk Drive + Kietasis diskas - + HDD File: - HDD File: + HDD failas: - + 40 40 - + 120 120 - + HDD Size (GiB): - HDD Size (GiB): + HDD dydis (GiB): - + Enabled HDD Įjungtas - + Browse - Browse + Naršyti - + Create Image - Create Image - - - - - + Sukurti atvaizdą @@ -2831,23 +3111,23 @@ You cannot undo this action. Sockets - Sockets + Lizdai Manual - Manual + Rankinis Internal - Internal + Vidinis - + Use Global Setting [%1] - Naudoti visuotinį nustatymą [%1] + Naudoti bendra nustatymą [%1] @@ -2865,172 +3145,172 @@ You cannot undo this action. Adresas - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully - Exported Successfully + Sėkmingai eksportuota - + Failed to open file Nepavyko atidaryti failo - + No Hosts in file No Hosts in file - + Imported Successfully - Imported Successfully + Importavimas sėkmingas - - + + Per Game Host list Per Game Host list - + Copy global settings? - Copy global settings? + Kopijuoti bendruosius nustatymus? - + Delete per game host list? Delete per game host list? - + HDD Image File - HDD Image File + HDD atvaizdo failas - + HDD (*.raw) HDD (*.raw) - + Overwrite File? - Overwrite File? + Perrašyti failą? - + HDD image "%1" already exists? Do you want to overwrite? - HDD image "%1" already exists? + HDD atvaizdas "%1" jau egzistuoja. -Do you want to overwrite? +Ar norite perrašyti? - + HDD Creator HDD Kurėjas - + HDD image created - HDD image created + Sukurtas kietojo disko atvaizdas - + Use Global - Use Global + Naudoti bendrus - + Override - Override + Perrašyti DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT - Save RT + Išsaugoti RT - + Save Frame - Save Frame + Išsaugoti kadrą - + Save Texture - Save Texture + Išsaugoti tekstūrą - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Naršyti... - - + + Open... Atidaryti... @@ -3040,32 +3320,56 @@ Do you want to overwrite? PCSX2 Debugger - PCSX2 Debugger + PCSX2 Debuggeris - - - + + Run Vykdyti - + Step Into - Step Into + Žingsnis į - + + F11 + F11 + + + Step Over - Step Over + Žingsnis per + + + + F10 + F10 - + Step Out - Step Out + Žingsnis iš - + + Shift+F11 + Shift+F11 + + + + Always On Top + Visada ant viršaus + + + + Show this window on top + Rodyti šį langą ant viršaus + + + Pause Pauzė @@ -3078,167 +3382,192 @@ Do you want to overwrite? Disassembly - + Copy Address - Copy Address + Kopijuoti adresą - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text - Copy Instruction Text + Nukopijuoti instrukcijų tekstą - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor - Run to Cursor + Vykdyti iki žymeklio - + Jump to Cursor - Jump to Cursor + Peršokti prie žymeklio - + Toggle Breakpoint - Toggle Breakpoint + Įjungti arba išjungti stabdos tašką - + Follow Branch Follow Branch - + Go to Address - Go to Address + Eiti į adresa - + Go to in Memory View - Go to in Memory View + Eiti į atminties vaizdą - - + + Add Function - Add Function + Pridėti funkciją - - + + Rename Function - Rename Function + Pervadinimo funkcija - + Remove Function - Remove Function + Pašalinti funkciją - - + + Assemble Error Assemble klaida - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address - Go to address + Eiti į adresa - + Go to address error Eikite į adreso klaidą - + Invalid address - Invalid address + Neteisingas adresas - + Add Function Error Pridėjimo funkcijos klaida - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name - Function name + Funkcijų vardai - - + + Rename Function Error Pervadinimo funkcijos klaida - + Function name cannot be nothing. - Function name cannot be nothing. + Funkcijos pavadinimas negali būti niekas. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS - %1 NOT VALID ADDRESS + %1 NETINKAMAS ADRESAS EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... - Add Game Directory... + Pridėti žaidimų adresyną... - + Scan For New Games Ieškoti naujų žaidimų @@ -3246,243 +3575,237 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slotas: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slotas: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Žaidimas: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Žaidimas: %1 (%2) - - - %n points - - %n points - %n points - %n points - %n points - - - + Rich presence inactive or unsupported. - Rich presence inactive or unsupported. + Išsamus buvimas neaktyvus arba nepalaikomas. - + Game not loaded or no RetroAchievements available. - Game not loaded or no RetroAchievements available. + Žaidimas neįkeltas arba nėra RetroAchievements. EmulationSettingsWidget - + Speed Control - Speed Control + Greičio kontrolė - + Normal Speed: - Normal Speed: + Normalus greitis: - + Enable Speed Limiter - Enable Speed Limiter + Įjungti greičio ribotuvą - + System Settings Sistemos nustatymai - + Enable Instant VU1 - Enable Instant VU1 + Įjungti akimirksni VU1 - + Enable Cheats Įjungti cheatus - + Slow-Motion Speed: - Slow-Motion Speed: + Sulėtintas greitis: - + Fast-Forward Speed: - Fast-Forward Speed: + Spartinimas: - + Enable Multithreaded VU1 (MTVU) - Enable Multithreaded VU1 (MTVU) + Įjunti Multithreaded VU1 (MTVU) - + Enable Host Filesystem - Enable Host Filesystem + Įjungti pagrindinio kompiuterio failų sistemą - + Enable Fast CDVD - Enable Fast CDVD + Įjungti greitą CDVD - + EE Cycle Skipping: - EE Cycle Skipping: + EE ciklo praleidimas: - - + + Disabled Išjungta - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: - EE Cycle Rate: + EE ciklo greitis: - + 50% (Underclock) - 50% (Underclock) + 50% (Underclock) - + 60% (Underclock) - 60% (Underclock) + 60% (Underclock) - + 75% (Underclock) - 75% (Underclock) + 75% (Underclock) - + 100% (Normal Speed) 100% (normalus greitis) - + 130% (Overclock) - 130% (Overclock) + 130% (Overclock) - + 180% (Overclock) - 180% (Overclock) + 180% (Overclock) - + 300% (Overclock) - 300% (Overclock) + 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. kadrai - + Maximum Frame Latency: - Maximum Frame Latency: + Didžiausias kadro vėlavimas: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3490,7 +3813,7 @@ Achievements: %5 (%6) Use Global Setting [%1] - Use Global Setting [%1] + Naudoti bendra nustatymą [%1] @@ -3506,7 +3829,7 @@ Achievements: %5 (%6) User Preference - User Preference + Vartotojo pasirinkimai @@ -3523,7 +3846,7 @@ Achievements: %5 (%6) Limits the emulation to the appropriate framerate for the currently running game. - Limits the emulation to the appropriate framerate for the currently running game. + Apriboja emuliaciją iki tinkamo šiuo metu veikiančio žaidimo kadrų dažnio. @@ -3534,7 +3857,7 @@ Achievements: %5 (%6) Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. SOTC = Shadow of the Colossus. A game's title, should not be translated unless an official translation exists. - Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Verčia emuliuotą "Emotion Engine" praleisti ciklus. Padeda nedaug žaidimams, tokiems kaip SOTC. Dažniausiai tai kenkia našumui. @@ -3544,7 +3867,7 @@ Achievements: %5 (%6) Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Iš karto paleidžia VU1. Daugumoje žaidimų greitis šiek tiek padidėja. Saugus daugumoje žaidimų, tačiau kai kuriuose žaidimuose gali atsirasti grafinių klaidų. @@ -3558,49 +3881,59 @@ Achievements: %5 (%6) Fast disc access, less loading times. Check HDLoader compatibility lists for known games that have issues with this. - Fast disc access, less loading times. Check HDLoader compatibility lists for known games that have issues with this. + Greita disko prieiga, trumpesnis krovimo laikas. Patikrinkite HDLoader suderinamumo sąrašus dėl žinomų žaidimų, su kuriais kyla problemų. Automatically loads and applies cheats on game start. - Automatically loads and applies cheats on game start. + Automatiškai įkelia ir pritaiko cheatus pradėjus žaidimą. Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Pagreitina emuliaciją, kad svečio atnaujinimo dažnis atitiktų pagrindinio kompiuterio dažnį. Taip pasiekiama kuo sklandesnė animacija, nors emuliacijos greitis gali padidėti mažiau nei 1%. Mastelis pagal pagrindinio kompiuterio atnaujinimo dažnį nebus taikomas, jei konsolės atnaujinimo dažnis yra per daug nutolęs nuo pagrindinio kompiuterio atnaujinimo dažnio. Vartotojai, kurių ekranai turi kintamą atnaujinimo dažnį, turėtų išjungti šią parinktį. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" - Fast-Forward Speed + Spartinimas + + + + 100% + 100% Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. - Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. + Nustato spartumo greitį. Šis greitis bus naudojamas, kai spartinimo klavišas yra paspaudžiamas/įjungiamas. Slow-Motion Speed The "User Preference" string will appear after the text "Recommended Value:" - Slow-Motion Speed + Sulėtintas greitis Sets the slow-motion speed. This speed will be used when the slow-motion hotkey is pressed/toggled. - Sets the slow-motion speed. This speed will be used when the slow-motion hotkey is pressed/toggled. + Nustato sulėtinimo greitį. Šis greitis bus naudojamas, kai bus paspaustas/perjungtas sulėtinto judesio spartusis klavišas. EE Cycle Rate - EE Cycle Rate + EE ciklo greitis EE Cycle Skip - EE Cycle Skip + EE ciklo praleidimas @@ -3611,7 +3944,7 @@ Achievements: %5 (%6) Enable Multithreaded VU1 (MTVU1) - Enable Multithreaded VU1 (MTVU1) + Įjungti multithreaded VU1 (MTVU1) @@ -3626,7 +3959,7 @@ Achievements: %5 (%6) Maximum Frame Latency - Maximum Frame Latency + Didžiausias kadro vėlavimas @@ -3636,48 +3969,43 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. + Nustato didžiausią kadrų, kurie gali būti įrašyti į GS eilę, skaičių, kol procesoriaus thread'as lauks, kol vienas iš jų bus baigtas, ir tik tada tęs darbą. Didesnės vertės gali padėti išlyginti netolygų kadrų laiką, tačiau prideda papildomą įvesties vėlavimą. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] - Use Global Setting [%1%] + Naudoti bendra nustatymą [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Neribotos - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Savarankiškas - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Savarankiškas [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Savarankiškas greitis - + Enter Custom Speed Įvesti savarankiška greiti @@ -3685,2162 +4013,2182 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory - Cache Directory + Cache adresynas - - - - - + + + + + Browse... Naršyti... - - - - - + + + + + Open... Atidaryti... - - - - - + + + + + Reset Nustatyti iš naujo - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory - Cheats Directory + Cheatu adresynas - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory - Covers Directory + Viršelių adresynas - + Used for storing covers in the game grid/Big Picture UIs. - Used for storing covers in the game grid/Big Picture UIs. + Naudojamas viršeliams saugoti žaidimo gride/Dideliame vaizde. - + Snapshots Directory - Snapshots Directory + Snapshots adresynas - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory - Save States Directory + Išsaugoti būsenų adresyną - + Used for storing save states. - Used for storing save states. + Naudojamas išsaugoti būsenas. FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. + Nepavyko rasti jokių CD/DVD-ROM įrenginių. Įsitikinkite, kad yra prijungta ir turite pakankamas teises jos pasiekti. - + Use Global Setting - Use Global Setting + Naudoti bendra nustatymą - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. - Game title copied to clipboard. + Žaidimo pavadinimas nukopijuotas į iškarpinę. - + Game serial copied to clipboard. - Game serial copied to clipboard. + Žaidimo serijinis nukopijuotas į iškarpinę. - + Game CRC copied to clipboard. - Game CRC copied to clipboard. + Žaidimo CRC nukopijuotas į iškarpinę. - + Game type copied to clipboard. - Game type copied to clipboard. + Žaidimo tipas nukopijuotas į iškarpinę. - + Game region copied to clipboard. - Game region copied to clipboard. + Žaidimo regionas nukopijuotas į iškarpinę. - + Game compatibility copied to clipboard. - Game compatibility copied to clipboard. + Žaidimo suderinamumas nukopijuotas į iškarpinę. - + Game path copied to clipboard. - Game path copied to clipboard. + Žaidimo kelias nukopijuotas į iškarpinę. - + Per-game controller configuration initialized with global settings. - Per-game controller configuration initialized with global settings. + Žaidimo valdiklio konfigūracija inicializuota su visuotiniais nustatymais. - + Controller settings reset to default. - Controller settings reset to default. + Kontrolerio nustatymai iš naujo nustatomi pagal numatytuosius nustatymus. - + No input profiles available. - No input profiles available. + Įvesties profilių nėra. - + Create New... Sukurti naują... - + Enter the name of the input profile you wish to create. - Enter the name of the input profile you wish to create. + Įveskite norimo sukurti įvesties profilio pavadinimą. - + Are you sure you want to restore the default settings? Any preferences will be lost. Ar tikrai norite atkurti numatytuosius nustatymus? Bet kokios nuostatos bus prarastos. - + Settings reset to defaults. Atstatyti nustatymus į numatytus nustatymus. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. - No save present in this slot. + Šiame slot nėra jokių išsaugojimų. - + No save states found. Išsaugomų būsenų nerasta. - + Failed to delete save state. - Failed to delete save state. + Nepavyko ištrinti išsaugotos būsenos. - + Failed to copy text to clipboard. - Failed to copy text to clipboard. + Nepavyko nukopijuoti teksto į iškarpinę. - + This game has no achievements. Šis žaidimas neturi pasiekimų. - + This game has no leaderboards. - This game has no leaderboards. + Šis žaidimas neturi lyderių lentelių. - + Reset System Atkurti sistemą - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? + Sunkusis režimas nebus įjungtas, kol sistema nebus iš naujo paleista. Ar norite iš naujo paleisti sistemą dabar? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. - Launch a game by selecting a file/disc image. + Paleiskite žaidimą pasirinkdami failą/disko atvaizdą. - + Start the console without any disc inserted. - Start the console without any disc inserted. + Paleiskite konsolę be įdėto disko. - + Start a game from a disc in your PC's DVD drive. - Start a game from a disc in your PC's DVD drive. + Pradėkite žaidimą iš disko, esančio kompiuterio DVD įrenginyje. - + Change settings for the emulator. - Change settings for the emulator. + Pakeiskite emuliatoriaus nustatymus. - + Exits the program. Išeina iš programos. - + No Binding Jokių pririšimų - + Setting %s binding %s. - Setting %s binding %s. + Nustatymas %s susiejimas %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... - Timing out in %.0f seconds... + Pasibaigia per kelias %.0f sekundes... - + Unknown Nežinoma - + OK Gerai - + Select Device Pasirinkite įrenginį - + Details Išsamiau - + Options Nustatymai - + Copies the current global settings to this game. - Copies the current global settings to this game. + Nukopijuoja esamus visuotinius nustatymus į šį žaidimą. - + Clears all settings set for this game. - Clears all settings set for this game. + Ištrina visus šiam žaidimui nustatytus nustatymus. - + Behaviour Elgesys - + Prevents the screen saver from activating and the host from sleeping while emulation is running. - Prevents the screen saver from activating and the host from sleeping while emulation is running. + Neleidžia įjungti ekrano užsklandos ir užmigdyti kompiuterio, kai veikia emuliacija. - + Shows the game you are currently playing as part of your profile on Discord. Rodo žaidimą, kurį šiuo metu žaidžiate kaip jūsų „Discord“ profilio dalį. - + Pauses the emulator when a game is started. - Pauses the emulator when a game is started. + Sustabdo emuliatorių, kai paleidžiamas žaidimas. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. + Sustabdo emuliatorių, kai sumažinate langą arba pereinate prie kitos programos, ir nutraukia, kai vėl įjungiate. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. + Automatiškai išsaugo emuliatoriaus būseną, kai išjungiama arba išeinama iš sistemos. Kitą kartą galėsite tęsti darbą nuo tos vietos, kurioje baigėte. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. - Uses a light coloured theme instead of the default dark theme. + Naudokite šviesią temą vietoj numatytosios tamsios temos. - + Game Display Žaidimo vaizdas - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. - Switches between full screen and windowed when the window is double-clicked. + Perjungia tarp viso ekrano ir langinio, kai langas paspaudžiamas du kartus. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - Hides the mouse pointer/cursor when the emulator is in fullscreen mode. + Paslepia pelės žymeklį / kursorių, kai emuliatorius veikia viso ekrano režimu. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. - Shows the CPU usage based on threads in the top-right corner of the display. + Viršutiniame dešiniajame ekrano kampe rodomas CPU naudojimas pagal threadus. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Rodo statistika apie GS (primityvūs, piešimo skambučiai) viršutiniame dešiniajame ekrano kampe. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. - Changes the BIOS image used to start future sessions. + Pakeičia BIOS atvaizdą, naudojamą būsimoms sesijoms paleisti. - + Automatic Automatiškai - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Numatytasis + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display - On-Screen Display + Ekrano rodinys + + + + %d%% + %d%% - + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration - BIOS Configuration + BIOS konfiguracija - + BIOS Selection BIOS pasirinkimas - + Options and Patches - Options and Patches + Nustatymai ir pataisymai - + Skips the intro screen, and bypasses region checks. - Skips the intro screen, and bypasses region checks. + Praleidžiamas pradžios ekranas ir apeinami regiono patikrinimai. - + Speed Control Greičio kontrolė - + Normal Speed Normalus greitis - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed - Fast Forward Speed + Spartinimo greitis - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed - Slow Motion Speed + Sulėtintas greitis - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter - Enable Speed Limiter + Įjungti greičio ribotuvą - + When disabled, the game will run as fast as possible. - When disabled, the game will run as fast as possible. + Kai išjungtas, žaidimas veiks kuo greičiau. - + System Settings Sistemos nustatymai - + EE Cycle Rate - EE Cycle Rate + EE ciklo greitis - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping - EE Cycle Skipping + EE ciklo praleidimas - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) - Enable MTVU (Multi-Threaded VU1) - - - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. + Įjungti MTVU (Multi-Threaded VU1) - + Enable Instant VU1 - Enable Instant VU1 + Įjungti akimirksni VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Įjungti cheatus - + Enables loading cheats from pnach files. - Enables loading cheats from pnach files. + Leidžia įkelti cheatus iš pnach failų. - + Enable Host Filesystem - Enable Host Filesystem + Įjungti pagrindinio kompiuterio failų sistemą - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD - Enable Fast CDVD + Įjungti greitą CDVD - + Fast disc access, less loading times. Not recommended. - Fast disc access, less loading times. Not recommended. + Greita disko prieiga, trumpesnis krovimo laikas. Nerekomenduojama. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency - Maximum Frame Latency + Didžiausias kadro vėlavimas - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer - Renderer + Atvaizduotojas - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Rodymas - + Aspect Ratio - Aspect Ratio + Vaizdo santykis - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio - FMV Aspect Ratio + FMV Vaizdo santykis - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing - Deinterlacing + Perėjimo šalinimas - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size - Screenshot Size + Ekrano nuotraukos dydis - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format - Screenshot Format + Ekrano nuotraukų formatas - + Selects the format which will be used to save screenshots. - Selects the format which will be used to save screenshots. + Pasirenka formatą, kuris bus naudojamas ekrano nuotraukoms išsaugoti. - + Screenshot Quality - Screenshot Quality + Ekrano nuotraukos kokybė - + Selects the quality at which screenshots will be compressed. - Selects the quality at which screenshots will be compressed. + Pasirenka ekrano nuotraukų suspaudimo kokybę. - + Vertical Stretch - Vertical Stretch + Vertikalus tempimas - + Increases or decreases the virtual picture size vertically. - Increases or decreases the virtual picture size vertically. + Padidina arba sumažina virtualaus vaizdo dydį vertikaliai. - + Crop - Crop + Apkarpyti - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches - Enable Widescreen Patches + Įjungti Widescreen pataisymus - + Enables loading widescreen patches from pnach files. - Enables loading widescreen patches from pnach files. + Leidžia krauti widescreen pataisymus iš pnach failų. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. - Smooths out the image when upscaling the console to the screen. + Išlygina vaizdą didinant konsolės mastelį ekrane. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets - Screen Offsets + Ekrano poslinkiai - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur - Anti-Blur + Prieš neryškumą - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. + Įjungia vidinius prieš neryškumą hackus. Mažiau atitinka PS2 atvaizdavimą, tačiau daug žaidimų atrodys mažiau neryškūs. - + Rendering - Rendering + Atvaizdavimas - + Internal Resolution - Internal Resolution + Vidinė raiška - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping - Mipmapping + Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering - Bilinear Filtering + Bilinear filtravimas - + Selects where bilinear filtering is utilized when rendering textures. - Selects where bilinear filtering is utilized when rendering textures. + Pasirenka, kur bus naudojamas bilinearinis filtravimas perteikiant tekstūras. - + Trilinear Filtering - Trilinear Filtering + Trilinear filtravimas - + Selects where trilinear filtering is utilized when rendering textures. - Selects where trilinear filtering is utilized when rendering textures. + Pasirenka, kur bus naudojamas trilinear filtravimas atvaizduojant tekstūras. - + Anisotropic Filtering - Anisotropic Filtering - - - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. + Anizotropinis filtravimas - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) - Auto Flush (Software) + Automatinis praplovimas (programinė įranga) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Aparatūros taisymai - + Manual Hardware Fixes Rankiniai aparatūros pataisymai - + Disables automatic hardware fixes, allowing you to set fixes manually. - Disables automatic hardware fixes, allowing you to set fixes manually. + Išjungiami automatiniai aparatinės įrangos pataisymai, todėl pataisymus galite nustatyti rankiniu būdu. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) - Auto Flush (Hardware) + Automatinis praplovimas (aparatinė įranga) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features - Disable Safe Features + Išjungti saugias funkcijas - + This option disables multiple safe features. - This option disables multiple safe features. - - - - Disable Render Features - Disable Render Features + Šia parinktimi išjungiamos kelios saugios funkcijos. - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation - Disable Partial Invalidation + Išjungti dalinį galiojimo panaikinimą - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion - GPU Palette Conversion - - - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. + GPU paletės konvertavimas - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Half-Pixel Offset + Padidinimo pataisymai - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite - Round Sprite + Apvalinti Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - - - TC Offset X - TC Offset X + Gali išlyginti tekstūras dėl to, kai didinant mastelį jos filtruojamos dvinariu būdu. Pvz., "Brave" saulės atspindžiai. - + Adjusts target texture offsets. - Adjusts target texture offsets. + Sureguliuoja tikslinės tekstūros poslinkius. - - TC Offset Y - TC Offset Y - - - + Align Sprite - Align Sprite + Sulygiuoti Sprite - + Fixes issues with upscaling (vertical lines) in some games. - Fixes issues with upscaling (vertical lines) in some games. + Ištaiso kai kuriuose žaidimuose didinimo (vertikalių linijų) problemas. - + Merge Sprite - Merge Sprite + Sujungti sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hackas - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. - Can fix some broken effects which rely on pixel perfect precision. + Gali ištaisyti kai kuriuos neveikiančius efektus, kurie priklauso nuo tobulo pikselių tikslumo. - + Texture Replacement Tekstūros pakeitimas - + Load Textures Krauti tekstūras - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading - Asynchronous Texture Loading + Asinchroninis tekstūrų krovimas - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory - Replacements Directory + Pakeitimų adresynas - + Folders Aplankai - + Texture Dumping - Texture Dumping + Tekstūrų išmetimas - + Dump Textures - Dump Textures - - - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. + Išmesti tekstūras - + Dump Mipmaps - Dump Mipmaps + Išmesti mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Išmesti FMV tekstūras - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Įjungia FXAA papildomo apdorojimo shaderi. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness - CAS Sharpness + CAS ryškumas - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filtrai - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. - Enables brightness/contrast/saturation adjustment. + Įjungiamas šviesumo / kontrasto / saturacijos reguliavimas. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Reguliuoja ryškumą. 50 yra normalus. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. - Adjusts contrast. 50 is normal. + Reguliuoja kontrastą. 50 yra normalus. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. - Adjusts saturation. 50 is normal. + Reguliuoja sodrumą. 50 yra normalus. - + TV Shaders - TV Shaders + TV shaderiai - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Papildomi - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. - Forces texture barrier functionality to the specified value. + Įtvirtina tekstūros barjero funkcionalumą į nurodytą reikšmę. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. - Applies a global volume modifier to all sound produced by the game. + Visiems žaidimo skleidžiamiems garsams taiko visuotinį garsumo modifikatorių. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. - Determines how the stereo output is transformed to greater speaker counts. + Nustato, kaip stereo išvestis transformuojama į didesnį garsiakalbių skaičių. - + Output Settings - Output Settings + Išvesties nustatymai - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (vid.) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. - Simulates a larger memory card by filtering saves only to the current game. + Imituoja didesnę atminties kortelę, filtruodamas išsaugojimus tik į dabartinį žaidimą. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. - The selected memory card image will be used for this slot. + Pasirinktas atminties kortelės vaizdas bus naudojamas šiame lizde. - + Resets the card name for this slot. - Resets the card name for this slot. + Atstato šio lizdo kortelės pavadinimą. - + Create Memory Card - Create Memory Card + Sukurti atminties kortelę - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. + Įveskite norimos sukurti atminties kortelės pavadinimą ir pasirinkite dydį. Rekomenduojame naudoti 8MB atminties korteles arba aplanko atminties korteles, kad būtų geriausias suderinamumas. - + Card Name: Kortelės pavadinimas: - + Configuration Konfiguracija - + Uses game-specific settings for controllers for this game. - Uses game-specific settings for controllers for this game. + Naudojami šiam žaidimui būdingi kontrolerių nustatymai. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources - Input Sources + Įvesties šaltiniai - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap - Multitap + Multitap - + Enables an additional three controller slots. Not supported in all games. - Enables an additional three controller slots. Not supported in all games. + Įjungia papildomus tris kontrolerio lizdus. Palaikoma ne visuose žaidimuose. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected Nepasirinkta jokių mygtukų - + Determines how much pressure is simulated when macro is active. - Determines how much pressure is simulated when macro is active. + Nustato, kokio dydžio spaudimas imituojamas, kai makrokomanda yra aktyvi. - + Determines the pressure required to activate the macro. - Determines the pressure required to activate the macro. + Nustato spaudimą, reikalingą makrokomandai įjungti. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations - Data Save Locations + Duomenų išsaugojimo vietos - + Show Advanced Settings - Show Advanced Settings + Rodyti išplėstinius nustatymus - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging - Logging + Registravimas - + System Console - System Console + Sistemos konsolė - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging - File Logging + Failų registravimas - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE konsolė - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console - IOP Console + IOP konsolė - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. - Logs disc reads from games. + Registruoja diskų skaitymus iš žaidimų. - + Emotion Engine Emotion Engine - + Rounding Mode - Rounding Mode + Apvalinimo režimas - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode - Clamping Mode + Suspaudimo režimas - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. - Enables simulation of the EE's cache. Slow. + Leidžia imituoti EE talpyklą. Lėtas. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. - Huge speedup for some games, with almost no compatibility side effects. + Milžiniškas kai kurių žaidimų pagreitinimas ir beveik jokio suderinamumo poveikio. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. - Moderate speedup for some games, with no known side effects. + Vidutinis pagreitėjimas kai kuriuose žaidimuose, be jokio žinomo šalutinio poveikio. - + Enable Fast Memory Access - Enable Fast Memory Access + Įjungti greita prieiga prie atminties - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units - Vector Units + Vektoriniai vienetai - + VU0 Rounding Mode VU0 Apvalinimo režimas - + VU0 Clamping Mode VU0 Suspaudimo režimas - + VU1 Rounding Mode - VU1 Rounding Mode + VU1 Apvalinimo režimas - + VU1 Clamping Mode - VU1 Clamping Mode + VU1 Suspaudimo režimas - + Enable VU0 Recompiler (Micro Mode) - Enable VU0 Recompiler (Micro Mode) + Įjungti VU0 rekompilatorių (mikro režimas) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler - Enable VU1 Recompiler + Įjungti VU1 rekompilatorių - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. - Good speedup and high compatibility, may cause graphical errors. + Geras spartinimas ir didelis suderinamumas, gali sukelti grafinių klaidų. - + I/O Processor - I/O Processor + I/O procesorius - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Grafika - + Use Debug Device - Use Debug Device - - - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands + Naudoti Debug įrenginį - + Settings Nustatymai - + No cheats are available for this game. Šiam žaidimui nėra jokių cheatu. - + Cheat Codes Cheat kodai - + No patches are available for this game. - No patches are available for this game. + Šiam žaidimui nėra jokių pataisymų. - + Game Patches - Game Patches + Žaidimų pataisymai - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. + Suaktyvinus cheatus gali atsirasti nenuspėjamas elgesys, trikdžiai, soft-lock'ai arba sugesti išsaugoti žaidimai. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. + Suaktyvinus žaidimo pataisymus gali atsirasti nenuspėjamas elgesys, trikdžiai, soft-lock'ai arba sugesti išsaugoti žaidimai. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. + Pataisymus naudokite savo rizika, PCSX2 komanda neteiks jokios pagalbos naudotojams, įjungusiems žaidimo pataisymus. - + Game Fixes Žaidimų pataisymai - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. + Žaidimo pataisymai neturėtų būti keičiami, jei nežinote, ką daro kiekviena parinktis ir kokios to pasekmės. - + FPU Multiply Hack - FPU Multiply Hack + FPU dauginimo hackas - + For Tales of Destiny. - For Tales of Destiny. + Tales of Destiny žaidimui. - + FPU Negative Div Hack - FPU Negative Div Hack + FPU neigiamo dalijimo hackas - + For Gundam games. - For Gundam games. + Gundam žaidimams. - + Preload TLB Hack - Preload TLB Hack - - - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. + Išankstinis TLB hackas - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. - Needed for some games with complex FMV rendering. + Reikalingas kai kuriems žaidimams su sudėtingu FMV atvaizdavimu. - + Skip MPEG Hack - Skip MPEG Hack + Praleisti MPEG hackas - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack - OPH Flag Hack + OPH vėliavos hackas - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. + + EE Timing Hack + EE Timing hackas - - EE Timing Hack - EE Timing Hack + + Instant DMA Hack + Akimirksnis DMA hackas - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Instant DMA Hack - Instant DMA Hack + + For SOCOM 2 HUD and Spy Hunter loading hang. + Dėl SOCOM 2 HUD ir Spy Hunter pakrovimo pakibimo. + + + + VU Add Hack + VU pridėjimo hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Full VU0 Synchronization + Visiškas VU0 sinchronizavimas - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + Forces tight VU0 sync on every COP2 instruction. + Priverčia VU0 griežtai sinchronizuoti kiekvieną COP2 instrukciją. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Overflow Hack + VU perpildymo hackas - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - (Fifa Street 2). - (Fifa Street 2). + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + Quadraphonic + Quadraphoniškas - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + Load State + Krauti būseną - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - VU Add Hack - VU Add Hack + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Disable Depth Emulation + Išjungti gylio imitavimą - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - Full VU0 Synchronization - Full VU0 Synchronization + + Disable Render Fixes + Išjungti vaizdavimo pataisymus - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Preload Frame Data + Išanksto krauti kadro duomenis - - VU Sync (Run behind) - VU Sync (Run behind) + + Texture Inside RT + Tekstūros RT viduje - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - VU Overflow Hack - VU Overflow Hack + + Half Pixel Offset + Pusės pikselio poslinkis - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Offset X + Tekstūros poslinkis X - - VU XGkick Sync - VU XGkick Sync + + Texture Offset Y + Tekstūros poslinkis Y - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Dumps replaceable textures to disk. Will reduce performance. + Išstumia pakeičiamas tekstūras į diską. Sumažės našumas. - - Use Blit for internal FPS - Use Blit for internal FPS + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. - - Quadraphonic - Quadraphonic + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. - - Load State - Krauti būseną + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Įjungiamas API lygmens grafikos komandų patvirtinimas. + + + + Use Software Renderer For FMVs + Naudokite programinės įrangos rendererį FMV + + + + To avoid TLB miss on Goemon. + Norėdami išvengti TLB praleidima Goemon žaidime. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Bendrosios paskirties timing hackas. Žinoma, kad turi įtakos šiems žaidimams: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. - + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Žinoma, kad turi įtakos šiems žaidimams: Bleach Blade Battlers, Growlanser II ir III, Wizardry. + + + + Emulate GIF FIFO + Emuliuoti GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Teisingai, bet lėčiau. Žinomas poveikis šiems žaidimams: Fifa Street 2. + + + + DMA Busy Hack + DMA užimtas hackas + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emuliuoti VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit hackas + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Skirta Tri-Ace žaidimams: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Išsaugoti būseną - + Load Resume State - Load Resume State + Pakrauti tęsimo būseną - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5849,2221 +6197,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Regionas: - + Compatibility: Suderinamumas: - + No Game Selected Nepasirinktas žaidimas - + Search Directories - Search Directories + Ieškoti adresyno - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings Sąrašų nustatymai - + Sets which view the game list will open to. - Sets which view the game list will open to. + Nustato, kuriame rodinyje bus atveriamas žaidimų sąrašas. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Viršelio nustatymai - + Downloads covers from a user-specified URL template. - Downloads covers from a user-specified URL template. + Atsisiųsti viršelius iš naudotojo nurodyto URL šablono. - + Operations Operacija - + + Selects where anisotropic filtering is utilized when rendering textures. + Pasirenka, kur bus naudojamas anizotropinis filtravimas perteikiant tekstūras. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + Taikyti alternatyvų metodą vidiniam FPS apskaičiuoti, kad kai kuriuose žaidimuose būtų išvengta klaidingų rodmenų. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Priverčia iš naujo nuskaityti visus anksčiau nustatytus žaidimus. - + Download Covers Atsisiųsti viršelius - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 gali automatiškai atsisiųsti žaidimų viršelius, kurie šiuo metu neturi viršelių rinkinio. Mes nehostiname jokių viršelio vaizdų, vartotojas turi pateikti savo vaizdų šaltinį. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 Apie PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 yra nemokamas atvirojo kodo PlayStation 2 (PS2) emuliatorius. Jo tikslas yra mėgdžioti PS2 aparatinę įrangą, naudojant MIPS procesoriaus interpretatorių, perkompiliatorių ir virtualios mašinos, valdančios aparatūros būsenas ir PS2 sistemos atmintį. Tai leidžia žaisti PS2 žaidimus kompiuteryje su daugybe papildomų funkcijų ir privalumų. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 ir PS2 yra registruoti Sony Interactive Entertainment prekių ženklai. Ši programa niekaip nesusijusi su „Sony Interactive Entertainment“. - - XXX points - XXX taškai - - - - Unlocked Achievements - Atrakinti pasiekimai - - - - Locked Achievements - Užrakinti pasiekimai - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Vieta - - - - Name - Pavadinimas - - - - Time - Laikas - - - - Score - Taškai - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. - When enabled and logged in, PCSX2 will scan for achievements on startup. - - - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. + Įjungus ir prisijungus, PCSX2 paleidimo metu nuskaitys pasiekimus. - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. + "Iššūkių" režimas pasiekimams, įskaitant lyderių lentelės stebėjimą. Išjungia išsaugotas būsenas, cheatus ir sulėtėjimo funkcijas. - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Plays sound effects for events such as achievement unlocks and leaderboard submissions. + Groja garso efektus, susijusius su tokiais įvykiais kaip pasiekimų atrakinimais ir lyderių lentelės pateikimais. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + Rodo ikonus ekrano apatiniame dešiniajame kampe, kai yra aktyvus iššūkis/įvykdytas pasiekimas. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. + Kai ši funkcija įjungta, PCSX2 pateiks pasiekimų sąrašą iš neoficialių rinkinių. Šių pasiekimų RetroAchievements neseka. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Kai įjungta, PCSX2 manys, kad visi pasiekimai yra užrakinti ir nesiųs jokių atrakinimo pranešimų serveriui. - - Account - Account + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - Logs out of RetroAchievements. - Logs out of RetroAchievements. + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - - Logs in to RetroAchievements. - Logs in to RetroAchievements. - - - - Current Game - Current Game - - - - Achievements Login - Pasiekimų prisijungimas - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. + + Account + Paskyra - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. + + Logs out of RetroAchievements. + Atsijungia iš RetroAchievements. - - User Name: - Naudotojo vardas: + + Logs in to RetroAchievements. + Prisijungia prie RetroAchievements. - - Password: - Slaptažodis: + + Current Game + Dabartinis žaidimas - + {} is not a valid disc image. - {} is not a valid disc image. + {} nėra galiojantis disko atvaizdas. - + Automatic mapping completed for {}. - Automatic mapping completed for {}. + Automatinis susiejimas užbaigtas skirtui {}. - + Automatic mapping failed for {}. - Automatic mapping failed for {}. + Automatinis susiejimas nepavyko skirtui {}. - + Game settings initialized with global settings for '{}'. - Game settings initialized with global settings for '{}'. + Žaidimo nustatymai inicializuoti visuotiniais '{}' nustatymais. - + Game settings have been cleared for '{}'. - Game settings have been cleared for '{}'. + Žaidimo nustatymai buvo išvalyti '{}'. - + Console Port {} - Console Port {} + Konsolės jungtys {} - + {} (Current) - {} (Current) + {} (Dabartinis) - + {} (Folder) - {} (Folder) + {} (Aplankas) - + Memory card name '{}' is not valid. - Memory card name '{}' is not valid. + Atminties kortelės pavadinimas '{}' negalioja. - + Memory Card '{}' created. - Memory Card '{}' created. + Atminties kortelė '{}' sukurta. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. - A memory card with the name '{}' already exists. + Atminties kortelė su pavadinimu '{}' jau egzistuoja. - + Failed to load '{}'. - Failed to load '{}'. + Nepavyko užkrauti '{}'. - + Input profile '{}' loaded. - Input profile '{}' loaded. + Įvesties profilis '{}' įkeltas. - + Input profile '{}' saved. - Input profile '{}' saved. + Įvesties profilis '{}' išsaugotas. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds - Select Macro {} Binds + Pasirinkti makro {} susiejima - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} - This Session: {} + Ši sesija: {} - + All Time: {} - All Time: {} + Visas laikas: {} - + Save Slot {0} - Save Slot {0} + Išsaugotas Slotas {0} - + Saved {} - Saved {} + Išsaugota {} - + {} does not exist. - {} does not exist. + {} neegzistuoja. - + {} deleted. {} ištrinta. - + Failed to delete {}. - Failed to delete {}. + Nepavyko panaikinti {}. - + File: {} Failas: {} - + CRC: {:08X} - CRC: {:08X} + CRC: {:08X} - + Time Played: {} - Time Played: {} + Žaista laiko: {} - + Last Played: {} - Last Played: {} + Paskutinį kartą žaista: {} - + Size: {:.2f} MB - Size: {:.2f} MB + Dydis: {:.2f} MB - - {} points - {} taškai - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Kairė: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Viršus: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Dešinė: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Apačia: - + Summary Santrauka - + Interface Settings - Interface Settings + Interfeiso nustatymai - + BIOS Settings - BIOS Settings + BIOS nustatymai - + Emulation Settings - Emulation Settings + Emuliavimo nustatymai - + Graphics Settings - Graphics Settings + Grafikos nustatymai - + Audio Settings - Audio Settings + Garso nustatymai - + Memory Card Settings - Memory Card Settings + Atminties kortelės nustatymai - + Controller Settings - Controller Settings + Kontrolerio nustatymai - + Hotkey Settings Sparčiujų klavišų nustatymai - + Achievements Settings - Achievements Settings + Pasiekimų nustatymai - + Folder Settings - Folder Settings + Aplanko nustatymai - + Advanced Settings - Advanced Settings + Išplėstiniai nustatymai - + Patches - Patches + Pataisymai - + Cheats Cheatai - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Greitis - + 60% Speed 60% Greitis - + 75% Speed 75% Greitis - + 100% Speed (Default) 100% Greitis (Numatytas) - + 130% Speed 130% Greitis - + 180% Speed 180% Greitis - + 300% Speed 300% Greitis - + Normal (Default) Normalus (Numatytas) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Išjungta - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) - 0 Frames (Hard Sync) + 0 kadrų (kietasis sinch.) - + 1 Frame 1 Kadras - + 2 Frames 2 Kadrai - + 3 Frames 3 Kadrai - + None Jokio - + Extra + Preserve Sign Extra + Preserve Sign - + Full Pilnas - + Extra Papildoma - + Automatic (Default) Automatinė (Numatytas) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Programa - + Null Nieko - + Off Išjungta - + On Įjungta - + Adaptive Prisitaikantis - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) - Orginalus (PS2) + Gimtasis (PS2) - + 1.25x Native - 1.25x Native + 1.25x Gimtojo - + 1.5x Native - 1.5x Native + 1.5x Gimtojo - + 1.75x Native - 1.75x Native + 1.75x Gimtojo - + 2x Native (~720p) - 2x Native (~720p) + 2x Gimtojo (~720p) - + 2.25x Native - 2.25x Native + 2.25x Gimtojo - + 2.5x Native - 2.5x Native + 2.5x Gimtojo - + 2.75x Native - 2.75x Native + 2.75x Gimtojo - + 3x Native (~1080p) - 3x Native (~1080p) + 3x Gimtojo (~1080p) - + 3.5x Native - 3.5x Native + 3.5x Gimtojo - + 4x Native (~1440p/2K) - 4x Native (~1440p/2K) + 4x Gimtojo (~1440p/2K) - + 5x Native (~1620p) - 5x Native (~1620p) + 5x Gimtojo (~1620p) - + 6x Native (~2160p/4K) - 6x Native (~2160p/4K) + 6x Gimtojo (~2160p/4K) - + 7x Native (~2520p) - 7x Native (~2520p) + 7x Gimtojo (~2520p) - + 8x Native (~2880p) - 8x Native (~2880p) + 8x Gimtojo (~2880p) - + Basic (Generated Mipmaps) - Basic (Generated Mipmaps) + Paprastas (sugeneruoti mipmaps) - + Full (PS2 Mipmaps) - Full (PS2 Mipmaps) + Visas (PS2 Mipmaps) - + Nearest Arčiausias - + Bilinear (Forced) - Bilinear (Forced) + Bilinear (priverstinis) - + Bilinear (PS2) - Bilinear (PS2) + Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Išjungta (nėra) - + Trilinear (PS2) - Trilinear (PS2) + Trilinear (PS2) - + Trilinear (Forced) - Trilinear (Forced) + Trilinear (priverstinis) - + Scaled - Scaled + Pagal mastelį - + Unscaled (Default) - Unscaled (Default) + Nesumažinta (numatytasis) - + Minimum Mažiausias - + Basic (Recommended) - Pagrindinis (rekomenduojama) + Paprastas (rekomenduojama) - + Medium Vidutinis - + High Aukštas - + Full (Slow) - Full (Slow) + Visas (lėtas) - + Maximum (Very Slow) - Maximum (Very Slow) + Maksimalus (labai lėtas) - + Off (Default) Išjungta (numatytasis) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Dalinis - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled - Force Disabled + Priversti išjungti - + Force Enabled - Force Enabled + Priversti įjungti - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Ekrano raiška - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Pilnas paleidimas + + + + Achievement Notifications + Pranešimai apie pasiekimus + + + + Leaderboard Notifications + Pranešimai apie lyderių lentą - + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Žiūrovo režimas + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Išjungta) - + 1 (64 Max Width) - 1 (64 Max Width) + 1 (64 maksimalus plotis) - + 2 (128 Max Width) - 2 (128 Max Width) + 2 (128 maksimalus plotis) - + 3 (192 Max Width) - 3 (192 Max Width) + 3 (192 maksimalus plotis) - + 4 (256 Max Width) - 4 (256 Max Width) + 4 (256 maksimalus plotis) - + 5 (320 Max Width) - 5 (320 Max Width) + 5 (320 maksimalus plotis) - + 6 (384 Max Width) - 6 (384 Max Width) + 6 (384 maksimalus plotis) - + 7 (448 Max Width) - 7 (448 Max Width) + 7 (448 maksimalus plotis) - + 8 (512 Max Width) - 8 (512 Max Width) + 8 (512 maksimalus plotis) - + 9 (576 Max Width) - 9 (576 Max Width) + 9 (576 maksimalus plotis) - + 10 (640 Max Width) - 10 (640 Max Width) + 10 (640 maksimalus plotis) - + Sprites Only - Sprites Only + Tik spritai - + Sprites/Triangles - Sprites/Triangles + Spritai / trikampiai - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) - 1 (Normal) + 1 (Normalus) - + 2 (Aggressive) - 2 (Aggressive) + 2 (agresyvus) - + Inside Target Inside Target - + Merge Targets - Merge Targets + Sujungti taikinius - + Normal (Vertex) - Normal (Vertex) + Normalus (Vertex) - + Special (Texture) - Special (Texture) + Specialusis (tekstūra) - + Special (Texture - Aggressive) - Special (Texture - Aggressive) + Specialusis (tekstūra - agresyvus) - + Half Pusė - + Force Bilinear Force Bilinear - + Force Nearest Priverstas arčiausias - + Disabled (Default) - Disabled (Default) + Išjungtas (numatytasis) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) - None (Default) + Nėra (numatytasis) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter - Scanline Filter + Skenavimo linijų filtras - + Diagonal Filter - Diagonal Filter + Įstrižinis filtras - + Triangular Filter - Triangular Filter + Trikampinis filtras - + Wave Filter - Wave Filter + Bangų filtras - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed - Uncompressed + Nesuspaustas - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) - None (Audio can skip.) + Nėra (Garsas gali trūkti.) - + Stereo (None, Default) - Stereo (None, Default) + Stereo (nėra, numatytasis) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) - No Sound (Emulate SPU2 only) + Nėra garso (emuliuoti tik SPU2) - + Cubeb (Cross-platform) - Cubeb (Cross-platform) + Cubeb (tarp-platforminė) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] - 8 MB [Most Compatible] + 8 MB [Labiausiai suderinama] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] - Folder [Recommended] + Aplankas [rekomenduojama] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Neigiama + + + + Positive + Teigiamas + + + + Chop/Zero (Default) + Pjovimas / Nulis (Numatytasis) + + + Game Grid - Žaidimų grotos + Žaidimų gridas - + Game List Žaidimų sarašas - + Game List Settings - Game List Settings + Žaidimų sąrašo nustatymai - + Type Tipas - + Serial Serijinis numeris - + Title Pavadinimas - + File Title - File Title + Failo pavadinimas - + CRC CRC - + Time Played Žaista laiko - + Last Played Paskutinį kartą žaista - + Size Dydis - + Select Disc Image - Select Disc Image + Pasirinkite disko atvaizdą - + Select Disc Drive - Select Disc Drive + Pasirinkite disko įrenginį - + Start File Pradėti failą - + Start BIOS Pradėti BIOS - + Start Disc Pradėti diską - + Exit Išeiti - + Set Input Binding Set Input Binding - + Region Regionas - + Compatibility Rating Suderinamumo įvertinimas - + Path Vieta - + Disc Path - Disc Path + Disko kelias - + Select Disc Path - Select Disc Path + Pasirinkti disko kelia - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Kopijuoti nustatymus - + Clear Settings Išvalyti nustatymus - + Inhibit Screensaver - Inhibit Screensaver + Uždrausti ekrano užsklandą + + + + Enable Discord Presence + Įjungti Discord Presence - + Pause On Start - Pause On Start + Pauzė paleidimo metu - + Pause On Focus Loss - Pause On Focus Loss + Pauzė praradus dėmesį - + Pause On Menu - Pause On Menu + Pauzė, kai Meniu - + Confirm Shutdown - Confirm Shutdown + Patvirtinkite išjungimą - + Save State On Shutdown - Save State On Shutdown + Išsaugoti būseną per išjungimą - + Enable Per-Game Settings - Enable Per-Game Settings + Įjungti nustatymus pagal žaidimą - + Use Light Theme Naudoti šviesia temą - + Start Fullscreen - Start Fullscreen + Pradėti per visą ekraną - + Double-Click Toggles Fullscreen - Double-Click Toggles Fullscreen + Dukart spustelėjus perjungiamas visas ekranas - + Hide Cursor In Fullscreen - Hide Cursor In Fullscreen + Slėpti rodykle viso ekrano režime - + OSD Scale - OSD Scale + OSD skalė - + Show Messages - Show Messages + Rodyti pranešimus - + Show Speed - Show Speed + Rodyti greiti - + Show FPS - Show FPS + Rodyti FPS - + Show CPU Usage - Show CPU Usage + Rodyti CPU naudojimą - + Show GPU Usage - Show GPU Usage + Rodyti GPU naudojimą - + Show Resolution - Show Resolution + Rodyti raiška - + Show GS Statistics - Show GS Statistics + Rodyti GS statistikas - + Show Status Indicators - Show Status Indicators + Rodyti statuso indikatorius - + Show Settings - Show Settings + Rodyti nustatymus - + Show Inputs - Show Inputs + Rodyti įvestis - + Show Frame Times - Show Frame Times + Rodyti kadrų laiką - + Warn About Unsafe Settings Įspėti apie nesaugius nustatymus - + Reset Settings Atstatyti nustatymus - + Change Search Directory - Change Search Directory + Pakeiskite paieškos adresą - + Fast Boot Greitas paleidimas - + Output Volume - Output Volume + Išvesties garsumas - + Synchronization Mode - Synchronization Mode + Sinchronizavimo režimas - + Expansion Mode Expansion Mode - + Output Module - Output Module + Išvesties modulis - + Latency Vėlavimas - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory - Memory Card Directory + Atminties kortelių adresynas - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading - Auto Eject When Loading + Automatinis išstūmimas kraunant - + Create Sukurti - + Cancel Atšaukti - + Load Profile Krauti profilį - + Save Profile Išsaugoti profilį - + Per-Game Configuration - Per-Game Configuration + Konfigūracija pagal žaidimą - + Copy Global Settings - Copy Global Settings + Kopijuoti bendruosius nustatymus - + Enable SDL Input Source - Enable SDL Input Source + Įjunkti SDL įvesties šaltinį - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Patobulintas režimas - + SDL Raw Input - SDL Raw Input + SDL neapdorotas įvestis - + Enable XInput Input Source - Enable XInput Input Source + Įjunkti XInput įvesties šaltinį - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} - Controller Port {}{} + Kontrolerio jungtis {}{} - + Controller Port {} - Controller Port {} + Kontrolerio jungtis {} - + Controller Type - Controller Type + Kontrolerio tipas - + Automatic Mapping - Automatic Mapping + Automatinis susiejimas - + Controller Port {}{} Macros - Controller Port {}{} Macros + Kontrolerio jungties {}{} macros - + Controller Port {} Macros - Controller Port {} Macros + Kontrolerio jungties {} macros - + Macro Button {} - Macro Button {} + Makro mygtukas {} - + Buttons Mygtukai - + Frequency - Frequency + Dažnis - + Pressure - Pressure + Spaudimas - + Controller Port {}{} Settings - Controller Port {}{} Settings + Kontrolerio jungties {}{} nustatymai - + Controller Port {} Settings - Controller Port {} Settings + Kontrolerio jungties {} nustatymai - + USB Port {} - USB Port {} + USB jungtis {} - + Device Type - Device Type + Įrenginio tipas - + Device Subtype - Device Subtype + Įrenginio Subtype - + {} Bindings {} Susiejimai - + Clear Bindings Išvalyti susiejimus - + {} Settings {} Nustatymai - + Cache Directory - Cache Directory + Cache adresynas - + Covers Directory - Covers Directory + Viršelių adresynas - + Snapshots Directory - Snapshots Directory + Snapshots adresynas - + Save States Directory - Save States Directory + Išsaugotų būsenų adresynas - + Game Settings Directory - Game Settings Directory + Žaidimo nustatymų adresynas - + Input Profile Directory - Input Profile Directory + Įvesties profilio adresynas - + Cheats Directory - Cheats Directory + Cheatu adresynas - + Patches Directory - Patches Directory + Pataisymų adresynas - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Tęsti žaidimą - + Toggle Frame Limit - Toggle Frame Limit + Perjungti kadrų ribą - + Game Properties - Game Properties + Žaidimo ypatybės - + Achievements Pasiekimai - + Save Screenshot - Save Screenshot + Išsaugoti Ekrano Kopiją - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Pakeisti diską - + Close Game Uždaryti žaidimą - + Exit Without Saving Išeiti neišsaugojus - + Back To Pause Menu - Back To Pause Menu + Grįžti į pauzės meniu - + Exit And Save State - Exit And Save State + Išeiti ir išsaugoti būseną - + Leaderboards Lyderių lenta - + Delete Save Trinti save - + Close Menu Uždaryti meniu - - Clean Boot - Švarus paleidimas - - - + Delete State - Delete State + Ištrinti būseną - + Default Boot Numatytasis paleidimas - - Slow Boot - Lėtas paleidimas - - - + Reset Play Time - Reset Play Time + Iš naujo nustatyti žaidimo laika - + Add Search Directory - Add Search Directory + Pridėti paieškos adresyną - + Open in File Browser - Open in File Browser + Atidaryti failų naršyklėje - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Pašalinti iš sąrašo - + Default View Numatytasis vaizdas - + Sort By Rūšiuoti pagal - + Sort Reversed Rūšiuoti atvirkščiai - + Scan For New Games Ieškoti naujų žaidimų - + Rescan All Games Nuskaityti visus žaidimus iš naujo - - Start Download - Pradedamas atsiuntimas - - - + Website Svetainė - + Support Forums Pagalbos forumai - + GitHub Repository GitHub saugykla - + License Licencija - + Close Uždaryti - + RAIntegration is being used instead of the built-in achievements implementation. - RAIntegration is being used instead of the built-in achievements implementation. + RAIntegration yra naudojama vietoj integruotos pasiekimų implementacijos. - + Enable Achievements Įjungti pasiekimus - - Rich Presence - Rich Presence - - - + Hardcore Mode - Hardcore Mode + Sunkusis režimas - - Show Notifications - Show Notifications - - - + Sound Effects Garso efektai - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements - Test Unofficial Achievements - - - - Test Mode - Testavimo rėžimas + Išbandyti neoficialius pasiekimus - + Username: {} - Username: {} + Vartotojo vardas: {} - + Login token generated on {} Login token generated on {} - + Logout Atsijungti - + Not Logged In Nesate prisijungęs - + Login Prisijungti - - Achievements are disabled. - Achievements are disabled. + + Game: {0} ({1}) + Žaidimas: {0} ({1}) - - Game ID: {} - Žaidimo ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) - - - + Rich presence inactive or unsupported. - Rich presence inactive or unsupported. + Išsamus buvimas neaktyvus arba nepalaikomas. - + Game not loaded or no RetroAchievements available. - Game not loaded or no RetroAchievements available. + Žaidimas neįkeltas arba nėra RetroAchievements. - + Card Enabled Kortelė įjungta - + Card Name Kortelės pavadinimas - + Eject Card Išstumti kortelę @@ -8076,7 +8325,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8088,7 +8337,7 @@ ${serial}: Serial of the game. Saved screenshot to '{}'. - Saved screenshot to '{}'. + Išsaugota ekrano nuotrauka į '{}'. @@ -8131,12 +8380,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8146,7 +8395,7 @@ ${serial}: Serial of the game. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Use cheats at your own risk, the PCSX2 team will provide no support for users who have enabled cheats. - Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Use cheats at your own risk, the PCSX2 team will provide no support for users who have enabled cheats. + Įjungus cheatus, gali atsirasti nenuspėjamas elgesys, gedimai, soft-lock'ai arba sugesti išsaugoti žaidimai. Naudokite cheatus savo rizika, PCSX2 komanda neteiks jokios pagalbos naudotojams, įjungusiems cheatus. @@ -8192,7 +8441,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8203,266 +8452,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - - No tracks provided. - Nėra jokių takelių. + + No tracks provided. + Nėra jokių takelių. + + + + Hash {} is not in database. + Hash {} is not in database. + + + + Data track number does not match data track in database. + Data track number does not match data track in database. + + + + Track {0} with hash {1} is not found in database. + + Track {0} with hash {1} is not found in database. + + + + + Track {0} with hash {1} is for a different game ({2}). + + Track {0} with hash {1} is for a different game ({2}). + + + + + Track {0} with hash {1} does not match database track. + + Track {0} with hash {1} does not match database track. + + + + + GameFixSettingsWidget + + + Game Fixes (NOT recommended to change globally) + Žaidimo pataisymai (Nerekomenduojama keisti bendrai) + + + + + FPU Negative Divide Hack + FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. + FPU neigiamo dalijimo hackas + + + + + FPU Multiply Hack + FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. + FPU dauginimo hackas + + + + + Skip MPEG Hack + MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. + Praleisti MPEG hackas + + + + + Preload TLB Hack + TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. + Išankstinis TLB hackas + + + + + EE Timing Hack + EE: Emotion Engine. Leave as-is. + EE Timing hackas + + + + + Instant DMA Hack + DMA: Direct Memory Access. Leave as-is. + Akimirksnis DMA hackas + + + + + OPH Flag Hack + OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. + OPH vėliavos hackas + + + + + Emulate GIF FIFO + GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. + Emulate GIF FIFO + + + + + DMA Busy Hack + DMA: Direct Memory Access. Leave as-is. + DMA užimtas hackas + + + + + Delay VIF1 Stalls + VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. + Delay VIF1 Stalls - - Hash {} is not in database. - Hash {} is not in database. + + + Emulate VIF FIFO + VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. + Emuliuoti VIF FIFO - - Data track number does not match data track in database. - Data track number does not match data track in database. + + + Full VU0 Synchronization + VU0 = VU (Vector Unit) 0. Leave as-is. + Visiškas VU0 sinchronizavimas - - Track {} with hash {} is not found in database. - - Track {} with hash {} is not found in database. - + + + VU I Bit Hack + VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. + VU I Bit hackas - - Track {} with hash {} is for a different game ({}). - - Track {} with hash {} is for a different game ({}). - + + + VU Add Hack + VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. + VU pridėjimo hack - - Track {} with hash {} does not match database track. - - Track {} with hash {} does not match database track. - + + + VU Overflow Hack + VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. + VU perpildymo hack - - - GameFixSettingsWidget - - Game Fixes (NOT recommended to change globally) - Game Fixes (NOT recommended to change globally) + + + VU Sync + VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). + VU Sync - - FPU Negative Divide Hack (For Gundam Games) - FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + + + VU XGKick Sync + VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. + VU XGKick Sync - - FPU Multiply Hack (For Tales of Destiny) - FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) + + + Force Blit Internal FPS Detection + Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. + Priversti Blit Internal FPS aptikimą - + + Use Software Renderer For FMVs FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + Naudokite programinės įrangos rendererį FMV + + + + + + + + + + + + + + + + + + + + + + Unchecked + Nepažymėta - - Skip MPEG Hack (Skips Videos/FMVs) - MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + + For Tales of Destiny. + Tales of Destiny žaidimui. - - Preload TLB Hack (For Goemon) - TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + + For Gundam Games. + Gundam žaidimams. - - EE Timing Hack (General Purpose Timing Hack) - EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + + To avoid TLB miss on Goemon. + Norėdami išvengti TLB praleidima Goemon žaidime. - - Instant DMA Hack (Good for cache emulation problems) - DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + + Needed for some games with complex FMV rendering. + Reikalingas kai kuriems žaidimams su sudėtingu FMV atvaizdavimu. - - OPH Flag Hack (For Bleach Blade Battlers) - OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + + Skips videos/FMVs in games to avoid game hanging/freezes. + Praleidžia žaidimuose vaizdo įrašus/FMV, kad išvengtumėte žaidimo pakibimo/sustojimo. - - Emulate GIF FIFO (Correct But Slower) - GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Žinoma, kad turi įtakos šiems žaidimams: Bleach Blade Battlers, Growlanser II ir III, Wizardry. - - DMA Busy Hack (Deny Writes When Busy) - DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Bendrosios paskirties timing hackas. Žinoma, kad turi įtakos šiems žaidimams: Digital Devil Saga, SSX. - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) - VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. - - Emulate VIF FIFO (Correct But Slower) - VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Nustatyta, kad turi įtakos šiems žaidimams: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Full VU0 Synchronization (Correct But Slower) - VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) - VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. - - VU Add Hack (For Tri-Ace Games) - VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + + For SOCOM 2 HUD and Spy Hunter loading hang. + Dėl SOCOM 2 HUD ir Spy Hunter pakrovimo pakibimo. - - VU Overflow Hack (Superman Returns) - VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Skirta Tri-Ace žaidimams: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - - VU Sync (Run Behind, M-Bit games) - VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. - - VU XGKick Sync (Correct But Slower) - VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Force Blit Internal FPS Detection (When auto-detection fails) - Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Niekada - + Today Šiandien - + Yesterday Vakar - + {}h {}m {}v {}m - + {}h {}m {}s {}v {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} valandos - + {} minutes {} minutės + + + Downloading cover for {0} [{1}]... + Atsisiunčiamas viršelis {0} [{1}]... + GameListModel - + Type Tipas - + Code Kodas - + Title Pavadinimas - + File Title Failo pavadinimas - + CRC CRC - + Time Played Žaista laiko - + Last Played Paskutinį kartą žaista - + Size Dydis - + Region Regionas - + Compatibility Suderinamumas @@ -8470,121 +8861,147 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Žaidimų nuskaitymas + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Pridėti... - - - + + + Remove Pašalinti - + Search Directory - Ieškoti kataloge + Ieškoti adresyno - + Scan Recursively - Scan Recursively + Skenuoti pasikartojančiai - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... - Directory... + Adresynas... - + File... Failas... - + Scan For New Games Ieškoti naujų žaidimų - + Rescan All Games Nuskaityti visus žaidimus iš naujo - + + Display + Rodymas + + + + + Prefer English Titles + Pirmenybė teikti angliškiems pavadinimams + + + + Unchecked + Nepažymėta + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... - Open Directory... + Atidaryti adresyna... - + Select Search Directory - Select Search Directory + Pasirinkite paieškos adresą - + Scan Recursively? - Scan Recursively? + Skenuoti pasikartojančiai? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. - Would you like to scan the directory "%1" recursively? + Ar norite, kad adresynas "%1" būtų nuskaitytas pakartotinai? -Scanning recursively takes more time, but will identify files in subdirectories. +Skenavimas pakartotinai užima daugiau laiko, tačiau bus nustatyti papildomai kataloguose esantys failai. - + Select File Pasirinkti failą - + Select Directory - Select Directory + Rinktis adresyna GameListWidget - + Game List Žaidimų sarašas - + Game Grid - Žaidimų grotos + Žaidimų gridas - + Show Titles Rodyti pavadinimus - + All Types - All Types + Visi tipai - + All Regions Visi regionai - + Search... Paieška... @@ -8595,7 +9012,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Patch Title - Patch Title + Pataisymo pavadinimas @@ -8607,22 +9024,22 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Autorius: </span>Pataisymo autorius</p><p>Aprašymas būtų čia</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Nežinoma - + No description provided. - No description provided. + Aprašymas nepateiktas. @@ -8630,17 +9047,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. + Suaktyvinus žaidimo pataisymus gali atsirasti nenuspėjamas elgesys, trikdžiai, soft-lock'ai arba sugesti išsaugoti žaidimai. Pataisymus naudokite savo rizika, PCSX2 komanda neteiks jokios pagalbos naudotojams, įjungusiems žaidimo pataisymus. Reload Patches - Reload Patches + Perkrauti pataisymus - + There are no patches available for this game. - There are no patches available for this game. + Šiam žaidimui nėra jokių pataisymų. @@ -8657,399 +9074,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Atkurti + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Rūšiavimo pavadinimas: + + + + English Title: + Angliškas pavadinimas: + + + Path: Vieta: - + Serial: Serijinis numeris: - + CRC: CRC: - + Type: Tipas: - + PS2 Disc PS2 Diskas - + PS1 Disc PS1 Diskas - + ELF (PS2 Executable) - ELF (PS2 Executable) + ELF (PS2 Executable) - + Region: Regionas: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. - NTSC-B (Brazil) + NTSC-B (Brazilija) - + NTSC-C (China) Leave the code as-is, translate the country's name. - NTSC-C (China) + NTSC-C (Kinija) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. - NTSC-HK (Hong Kong) + NTSC-HK (Honkongas) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. - NTSC-J (Japan) + NTSC-J (Japonija) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. - NTSC-K (Korea) + NTSC-K (Korėja) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. - NTSC-T (Taiwan) + NTSC-T (Taivanas) - + NTSC-U (US) Leave the code as-is, translate the country's name. - NTSC-U (US) + NTSC-U (JAV) - + Other Kita - + PAL-A (Australia) Leave the code as-is, translate the country's name. - PAL-A (Australia) + PAL-A (Australija) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. - PAL-AF (South Africa) + PAL-AF (Pietų Afrika) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. - PAL-AU (Austria) + PAL-AU (Austrija) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. - PAL-BE (Belgium) + PAL-BE (Belgija) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. - PAL-E (Europe/Australia) + PAL-E (Europa/Australija) - + PAL-F (France) Leave the code as-is, translate the country's name. - PAL-F (France) + PAL-F (Prancūzija) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. - PAL-FI (Finland) + PAL-FI (Suomija) - + PAL-G (Germany) Leave the code as-is, translate the country's name. - PAL-G (Germany) + PAL-G (Vokietija) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. - PAL-GR (Greece) + PAL-GR (Graikija) - + PAL-I (Italy) Leave the code as-is, translate the country's name. - PAL-I (Italy) + PAL-I (Italija) - + PAL-IN (India) Leave the code as-is, translate the country's name. - PAL-IN (India) + PAL-IN (Indija) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. - PAL-M (Europe/Australia) + PAL-M (Europa/Australija) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. - PAL-NL (Netherlands) + PAL-NL (Nyderlandai) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. - PAL-NO (Norway) + PAL-NO (Norvegija) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. - PAL-P (Portugal) + PAL-P (Portugalija) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. - PAL-PL (Poland) + PAL-PL (Lenkija) - + PAL-R (Russia) Leave the code as-is, translate the country's name. - PAL-R (Russia) + PAL-R (Rusija) - + PAL-S (Spain) Leave the code as-is, translate the country's name. - PAL-S (Spain) + PAL-S (Ispanija) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. - PAL-SC (Scandinavia) + PAL-SC (Skandinavija) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. - PAL-SW (Sweden) + PAL-SW (Švedija) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. - PAL-SWI (Switzerland) + PAL-SWI (Šveicarija) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. - PAL-UK (United Kingdom) + PAL-UK (Jungtinė Karalystė) - + Compatibility: Suderinamumas: - + Unknown Nežinoma - + Not Bootable Nepaleidžiamas - + Reaches Intro Pasiekia pradžia - + Reaches Menu Pasiekia meniu - + In-Game Žaidime - + Playable Žaidžiama - + Perfect Tobula - + Input Profile: - Input Profile: + Įvesties profilis: - + Shared Refers to the shared settings profile. - Bendra + Bendri - + Disc Path: - Disc Path: + Disko kelias: - + Browse... Naršyti... - + Clear Išvalyti - + Verify Patikrinti - + Search on Redump.org... - Search on Redump.org... + Ieškoti Redump.org... - + Select Disc Path - Select Disc Path + Pasirinkti disko kelia - + Game is not a CD/DVD. - Game is not a CD/DVD. + Žaidimas nėra CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Režimas - - + + Start Pradėti - - + + Sectors Sektoriai - - + + Size Dydis - - + + MD5 MD5 - - + + Status Statusas - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Klaida - + Cannot verify image while a game is running. - Cannot verify image while a game is running. + Negalima patvirtinti atvaizdo, kol žaidimas paleistas. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9057,62 +9485,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: - Renderer: + Atvaizduotojas: - + Adapter: - Adapter: + Adapteris: - + Display Rodymas - + Fullscreen Mode: - Fullscreen Mode: + Pilno ekrano režimas: - + Aspect Ratio: Vaizdo santykis: - + Fit to Window / Fullscreen - Fit to Window / Fullscreen + Pritaikyti langui / per visą ekraną - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) - Standard (4:3) + Standartinis (4:3) - - + + Widescreen (16:9) - Widescreen (16:9) + Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9122,12 +9550,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Išjungta (numatytasis) - - - - - - + + + + + + @@ -9135,95 +9563,95 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - Automatic (Default) + Automatinė (Numatytas) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: - Bilinear Filtering: + Bilinear filtravimas: - - + + None Jokio - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: - Vertical Stretch: + Vertikalus tempimas: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9231,1045 +9659,1055 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: - Crop: + Apkarpyti: - + Left: Warning: short space constraints. Abbreviate if necessary. Kairė: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Viršus: - + Right: Warning: short space constraints. Abbreviate if necessary. Dešinė: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Apačia: - + Screen Offsets - Screen Offsets + Ekrano poslinkiai - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches - Enable Widescreen Patches + Įjungti Widescreen pataisymus - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur - Anti-Blur + Prieš neryškumą - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: - Screenshot Size: + Ekrano nuotraukos dydis: - + Screen Resolution - Screen Resolution + Ekrano raiška - + Internal Resolution - Internal Resolution + Vidinė raiška - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Kokybė: - - + + Rendering - Rendering + Atvaizdavimas - + Internal Resolution: - Internal Resolution: + Vidinė raiška: - + Mipmapping: - Mipmapping: + Mipmapping: - - + + Off Išjungta - + Basic (Generated Mipmaps) - Basic (Generated Mipmaps) + Paprastas (sugeneruoti mipmaps) - + Full (PS2 Mipmaps) - Full (PS2 Mipmaps) + Visas (PS2 Mipmaps) - - + + Texture Filtering: - Texture Filtering: + Tekstūrų filtravimas: - - + + Nearest Arčiausias - - + + Bilinear (Forced) - Bilinear (Forced) + Bilinear (priverstinis) - - + + Bilinear (PS2) - Bilinear (PS2) + Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: - Trilinear Filtering: + Trilinear filtravimas: - + Off (None) Išjungta (nėra) - + Trilinear (PS2) - Trilinear (PS2) + Trilinear (PS2) - + Trilinear (Forced) - Trilinear (Forced) + Trilinear (priverstinis) - + Anisotropic Filtering: - Anisotropic Filtering: + Anizotropinis filtravimas: - + Dithering: Dithering: - + Scaled Pagal mastelį - + Unscaled (Default) - Unscaled (Default) + Nesumažinta (numatytasis) - + Blending Accuracy: Blending Accuracy: - + Minimum Mažiausias - + Basic (Recommended) - Basic (Recommended) + Paprastas (rekomenduojama) - + Medium Vidutinis - + High Aukštas - + Full (Slow) Visas (lėtas) - + Maximum (Very Slow) Maksimalus (labai lėtas) - + Texture Preloading: Texture Preloading: - + Partial Dalinis - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Praleisti Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes - Manual Hardware Renderer Fixes + Rankiniai aparatūros pataisymai - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping - Mipmapping + Mipmapping - + Auto Flush - Auto Flush + Automatinis praplovimas - + Hardware Fixes - Hardware Fixes + Aparatūros taisymai - + Force Disabled - Force Disabled + Priversti išjungti - + Force Enabled - Force Enabled + Priversti įjungti - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) 0 (Disabled) - 0 (Disabled) + 0 (Išjungta) - + 1 (64 Max Width) - 1 (64 Max Width) + 1 (64 maksimalus plotis) - + 2 (128 Max Width) - 2 (128 Max Width) + 2 (128 maksimalus plotis) - + 3 (192 Max Width) - 3 (192 Max Width) + 3 (192 maksimalus plotis) - + 4 (256 Max Width) - 4 (256 Max Width) + 4 (256 maksimalus plotis) - + 5 (320 Max Width) - 5 (320 Max Width) + 5 (320 maksimalus plotis) - + 6 (384 Max Width) - 6 (384 Max Width) + 6 (384 maksimalus plotis) - + 7 (448 Max Width) - 7 (448 Max Width) + 7 (448 maksimalus plotis) - + 8 (512 Max Width) - 8 (512 Max Width) + 8 (512 maksimalus plotis) - + 9 (576 Max Width) - 9 (576 Max Width) + 9 (576 maksimalus plotis) - + 10 (640 Max Width) - 10 (640 Max Width) - - - - Skipdraw Range: - Skipdraw Range: + 10 (640 maksimalus plotis) - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features - Disable Safe Features + Išjungti saugias funkcijas - + Preload Frame Data - Preload Frame Data + Išanksto krauti kadro duomenis Texture Inside RT - Texture Inside RT + Tekstūros RT viduje - + 1 (Normal) - 1 (Normal) + 1 (Normalus) - + 2 (Aggressive) - 2 (Aggressive) + 2 (agresyvus) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. - GPU Target CLUT: + GPU taikinys CLUT: - - - + + + Disabled (Default) - Disabled (Default) + Išjungtas (numatytasis) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Padidinimo pataisymai - + Half Pixel Offset: - Half Pixel Offset: + Pusės pikselio poslinkis: - + Normal (Vertex) - Normal (Vertex) + Normalus (Vertex) - + Special (Texture) - Special (Texture) + Specialusis (tekstūra) - + Special (Texture - Aggressive) - Special (Texture - Aggressive) + Specialusis (tekstūra - agresyvus) - + Round Sprite: Round Sprite: - + Half Pusė - + Full Pilnas - + Texture Offsets: - Texture Offsets: + Tekstūros poslinkiai: - + X: X: - + Y: Y: - + Merge Sprite - Merge Sprite + Sujungti sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: - Auto Flush: + Automatinis praplovimas: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: - Texture Inside RT: + Tekstūros RT viduje: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes - Disable Render Fixes + Išjungti vaizdavimo pataisymus - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. - Wild Arms Hack + Wild Arms Hackas - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear - Force Bilinear + Priverstinis bilinear - + Force Nearest Priverstas arčiausias - + Texture Replacement - Texture Replacement + Tekstūros pakeitimas - + Search Directory - Search Directory + Ieškoti adresyno - - + + Browse... Naršyti... - - + + Open... Atidaryti... - - + + Reset Nustatyti iš naujo - + PCSX2 will dump and load texture replacements from this directory. - PCSX2 will dump and load texture replacements from this directory. + PCSX2 iškels ir pakraus tekstūros pakeitimus iš šio adresyno. - + Options Nustatymai - + Dump Textures Išmesti tekstūras - + Dump Mipmaps Išmesti mipmaps - + Dump FMV Textures Išmesti FMV tekstūras - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Krauti tekstūras - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) - None (Default) + Nėra (numatytasis) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: - Raiškumas: + Ryškumas: - + FXAA FXAA - + Filters Filtrai - + TV Shader: - TV Shader: + TV shaderis: - + Scanline Filter - Scanline Filter + Skenavimo linijų filtras - + Diagonal Filter - Diagonal Filter + Įstrižinis filtras - + Triangular Filter - Triangular Filter + Trikampinis filtras - + Wave Filter - Wave Filter + Bangų filtras - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Ryškumas: - + Contrast: Kontrastas: - Saturation - Saturation + Sodrumas - + OSD OSD - + On-Screen Display - On-Screen Display + Ekrano rodinys - + OSD Scale: - OSD Scale: + OSD skalė: - + Show Indicators - Show Indicators + Rodyti indikatorius - + Show Resolution - Show Resolution + Rodyti raiška - + Show Inputs - Show Inputs + Rodyti įvestis - + Show GPU Usage - Show GPU Usage + Rodyti GPU naudojimą - + Show Settings - Show Settings + Rodyti nustatymus - + Show FPS Rodyti FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics - Show Statistics + Rodyti statistiką - + + + Asynchronous Texture Loading + Asinchroninis tekstūrų krovimas + + + + Saturation: + Sodrumas: + + + Show CPU Usage - Show CPU Usage + Rodyti CPU naudojimą - + Warn About Unsafe Settings Įspėti apie nesaugius nustatymus - + Show Frame Times Show Frame Times - + Recording Įrašoma - + Video Dumping Directory Video Dumping Directory - + Capture Setup - Capture Setup + Įrašymo nustatymai - + Container: - Container: + Talpykla: - - + + Codec: - Codec: + Kodekas: - - + + Extra Arguments Extra Arguments - + Capture Audio - Capture Audio + Įrašyti garsą - + Resolution: Raiška: - + x x - + Auto Auto - + Capture Video Įrašyti video - + Advanced Advanced here refers to the advanced graphics options. Papildomi - + Advanced Options Papildomi nustatymai - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) - Accurate (Recommended) + Tikslus (rekomenduojama) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Nesuspaustas - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10279,69 +10717,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: - Bitrate: + Bitų sparta: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Neleidžiama - + Allowed Leidžiama - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10380,7 +10812,7 @@ Swap chain: see Microsoft's Terminology Portal. Software Graphics backend/engine type (refers to emulating the GS in software, on the CPU). Translate accordingly. - Software + Programa @@ -10410,10 +10842,10 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] - Use Global Setting [%1] + Naudoti bendra nustatymą [%1] @@ -10463,18 +10895,19 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Nepažymėta Automatically loads and applies widescreen patches on game start. Can cause issues. - Automatically loads and applies widescreen patches on game start. Can cause issues. + Automatiškai įkrauna ir pritaiko widescreen pataisymus paleidus žaidimą. Gali sukelti problemų. Automatically loads and applies no-interlacing patches on game start. Can cause issues. - Automatically loads and applies no-interlacing patches on game start. Can cause issues. + Automatiškai įkelia ir pritaiko pataisymus be pynimo paleidus žaidimą. Gali sukelti problemų. @@ -10484,7 +10917,7 @@ Swap chain: see Microsoft's Terminology Portal. Bilinear Filtering - Bilinear Filtering + Bilinear filtravimas @@ -10505,7 +10938,7 @@ Swap chain: see Microsoft's Terminology Portal. FMV Aspect Ratio - FMV Aspect Ratio + FMV Vaizdo santykis @@ -10522,20 +10955,30 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. - This option disables game-specific render fixes. + Šis nustatymas išjungia konkretaus žaidimo vaizdavimo pataisymus. By default, the texture cache handles partial invalidations. Unfortunately it is very costly to compute CPU wise. This hack replaces the partial invalidation with a complete deletion of the texture to reduce the CPU load. It helps with the Snowblind engine games. - By default, the texture cache handles partial invalidations. Unfortunately it is very costly to compute CPU wise. This hack replaces the partial invalidation with a complete deletion of the texture to reduce the CPU load. It helps with the Snowblind engine games. + Pagal numatytuosius nustatymus tekstūros talpykla tvarko dalinius panaikinimus. Deja, tai labai brangiai kainuoja procesoriui. Šis pakeitimas pakeičia dalinį panaikinimą visišku tekstūros ištrynimu, kad sumažėtų procesoriaus apkrova. Tai padeda Snowblind variklio žaidimuose. @@ -10578,6 +11021,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Įjungia FidelityFX kontrasto adaptacinį aštrinimą. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Nustato aštrinimo efekto intensyvumą apdorojant CAS. + + + + Adjusts brightness. 50 is normal. + Reguliuoja ryškumą. 50 yra normalus. + + + + Adjusts contrast. 50 is normal. + Reguliuoja kontrastą. 50 yra normalus. + + + + Adjusts saturation. 50 is normal. + Reguliuoja sodrumą. 50 yra normalus. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10593,11 +11091,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10627,7 +11120,7 @@ Swap chain: see Microsoft's Terminology Portal. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. + Įjungia vidinius prieš neryškumą hackus. Mažiau atitinka PS2 atvaizdavimą, tačiau daug žaidimų atrodys mažiau neryškūs. @@ -10635,7 +11128,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10648,7 +11141,7 @@ Swap chain: see Microsoft's Terminology Portal. Aspect Ratio - Aspect Ratio + Vaizdo santykis @@ -10668,7 +11161,7 @@ Swap chain: see Microsoft's Terminology Portal. Screenshot Size - Screenshot Size + Ekrano nuotraukos dydis @@ -10678,7 +11171,7 @@ Swap chain: see Microsoft's Terminology Portal. Screenshot Format - Screenshot Format + Ekrano nuotraukų formatas @@ -10688,7 +11181,7 @@ Swap chain: see Microsoft's Terminology Portal. Screenshot Quality - Screenshot Quality + Ekrano nuotraukos kokybė @@ -10699,7 +11192,7 @@ Swap chain: see Microsoft's Terminology Portal. Selects the quality at which screenshots will be compressed. Higher values preserve more detail for JPEG, and reduce file size for PNG. - Selects the quality at which screenshots will be compressed. Higher values preserve more detail for JPEG, and reduce file size for PNG. + Nustato ekrano kopijų suspaudimo kokybę. Didesni išsaugo daugiau detalių JPEG formatui ir sumažina PNG formato failo dydį. @@ -10710,7 +11203,7 @@ Swap chain: see Microsoft's Terminology Portal. Vertical Stretch - Vertical Stretch + Vertikalus tempimas @@ -10720,19 +11213,19 @@ Swap chain: see Microsoft's Terminology Portal. Fullscreen Mode - Fullscreen Mode + Pilno ekrano režimas - - + + Borderless Fullscreen - Borderless Fullscreen + Be sienų per visą ekraną Chooses the fullscreen resolution and frequency. - Chooses the fullscreen resolution and frequency. + Pasirenka viso ekrano raišką ir dažnį. @@ -10785,7 +11278,7 @@ Swap chain: see Microsoft's Terminology Portal. Native (PS2) (Default) - Orginalus (PS2) (Numatytas) + Gimtasis (PS2) (Numatytas) @@ -10800,7 +11293,7 @@ Swap chain: see Microsoft's Terminology Portal. Texture Filtering - Texture Filtering + Tekstūrų filtravimas @@ -10810,12 +11303,12 @@ Swap chain: see Microsoft's Terminology Portal. Trilinear Filtering - Trilinear Filtering + Trilinear filtravimas Anisotropic Filtering - Anisotropic Filtering + Anizotropinis filtravimas @@ -10835,7 +11328,7 @@ Swap chain: see Microsoft's Terminology Portal. Blending Accuracy - Blending Accuracy + Maišymo tikslumas @@ -10867,15 +11360,10 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads - 2 threads + 2 threads @@ -10922,11 +11410,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -10935,7 +11418,7 @@ Swap chain: see Microsoft's Terminology Portal. Half Pixel Offset - Half Pixel Offset + Pusės pikselio poslinkis @@ -10955,7 +11438,7 @@ Swap chain: see Microsoft's Terminology Portal. Texture Offsets X - Texture Offsets X + Tekstūros poslinkiai X @@ -10967,7 +11450,7 @@ Swap chain: see Microsoft's Terminology Portal. Texture Offsets Y - Texture Offsets Y + Tekstūros poslinkiai Y @@ -10999,7 +11482,7 @@ Swap chain: see Microsoft's Terminology Portal. Sharpness - Sharpness + Ryškumas @@ -11031,7 +11514,7 @@ Swap chain: see Microsoft's Terminology Portal. TV Shader - TV Shader + TV shaderis @@ -11044,7 +11527,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD skalė - + Show OSD Messages Show OSD Messages @@ -11084,6 +11567,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Ekrano apatiniame kairiajame kampe rodoma dabartinė sistemos valdiklio būsena. + Displays warnings when settings are enabled which may break games. @@ -11097,7 +11585,7 @@ Swap chain: see Microsoft's Terminology Portal. Leave It Blank - Leave It Blank + Palikite tuščią @@ -11128,7 +11616,7 @@ Swap chain: see Microsoft's Terminology Portal. Detects when idle frames are being presented in 25/30fps games, and skips presenting those frames. The frame is still rendered, it just means the GPU has more time to complete it (this is NOT frame skipping). Can smooth our frame time fluctuations when the CPU/GPU are near maximum utilization, but makes frame pacing more inconsistent and can increase input lag. - Detects when idle frames are being presented in 25/30fps games, and skips presenting those frames. The frame is still rendered, it just means the GPU has more time to complete it (this is NOT frame skipping). Can smooth our frame time fluctuations when the CPU/GPU are near maximum utilization, but makes frame pacing more inconsistent and can increase input lag. + Nustato, kada 25/30 kadrų per sekundę žaidimuose rodomi neveikiantys kadrai, ir juos praleidžia. Kadras vis tiek atvaizduojamas, tiesiog GPU turi daugiau laiko jam užbaigti (tai NĖRA kadrų praleidimas). Gali išlyginti kadrų trukmės svyravimus, kai CPU ir GPU yra beveik maksimaliai išnaudoti, tačiau kadrų ritmas tampa nenuoseklus ir gali padidėti įvesties vėlavimas. @@ -11137,29 +11625,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Įjungti Debug įrenginį + + + + Enables API-level validation of graphics commands. + Įjungiamas API lygmens grafikos komandų patvirtinimas. + + + GS Download Mode GS Download Mode - + Accurate - Accurate + Tikslus - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Numatytasis - - + + (Default) (Numatytasis) @@ -11167,405 +11665,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Grafika - + Save Screenshot Išsaugoti Ekrano Kopiją - + Toggle Video Capture Jungti vaizdo fiksavima - + Save Single Frame GS Dump Išsaugoti vieno kadro GS išmetimą - + Save Multi Frame GS Dump Išsaugoti kelių kadrų GS išmetimą - + Toggle Software Rendering Perjungti programinės įrangos atvaizdavimą - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. - Texture dumping is now disabled. + Tekstūrų išmetimas išjungtas. - + Toggle Texture Replacements - Toggle Texture Replacements + Perjungti tekstūrų pakeitimus - + Texture replacements are now enabled. - Texture replacements are now enabled. + Tekstūrų pakeitimai dabar yra įjungti. - + Texture replacements are now disabled. Tekstūrų pakeitimai dabar išjungti. - + Reload Texture Replacements Iš naujo įkelti tekstūros pakeitimus - + Texture replacements are not enabled. - Texture replacements are not enabled. + Tekstūrų pakeitimai yra neįjungti. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Garsumas: nutildyta - + Volume: {}% Garsas: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System Sistema - + Open Pause Menu Atidaryti pristabdymo meniu - + Open Achievements List - Open Achievements List + Atidaryti pasiekimų sąrašą - + Open Leaderboards List - Open Leaderboards List + Atidaryti lyderių lentelės sąrašą - + Toggle Pause Pristabdyti arba tęsti - + Toggle Fullscreen Perjungti į viso ekrano būseną - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Pagreitinti (Laikyti) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Padidinti garsą - + Decrease Volume Sumažinti garsą - + Toggle Mute Įjungti / Išjungti garsą - + Frame Advance - Frame Advance + Kadro greitėjimas į priekį - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Iš naujo nustatykite virtualią mašiną - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Išsaugoti būseną - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Pasirinkti kitą saugojimo Slota - + Save State To Selected Slot Saugoti būsena į pasirinkta Slota - + Load State From Selected Slot Pakrauti būsena iš pasirinkto Sloto - + Save State To Slot 1 Išsaugoti būseną į Slotą 1 - + Load State From Slot 1 Krauti būseną iš Sloto 1 - + Save State To Slot 2 Išsaugoti būseną į Slotą 2 - + Load State From Slot 2 Krauti būseną iš Sloto 2 - + Save State To Slot 3 Išsaugoti būseną į Slotą 3 - + Load State From Slot 3 Krauti būseną iš Sloto 3 - + Save State To Slot 4 Išsaugoti būseną į Slotą 4 - + Load State From Slot 4 Krauti būseną iš Sloto 4 - + Save State To Slot 5 Išsaugoti būseną į Slotą 5 - + Load State From Slot 5 Krauti būseną iš Sloto 5 - + Save State To Slot 6 Išsaugoti būseną į Slotą 6 - + Load State From Slot 6 Krauti būseną iš Sloto 6 - + Save State To Slot 7 Išsaugoti būseną į Slotą 7 - + Load State From Slot 7 Krauti būseną iš Sloto 7 - + Save State To Slot 8 Išsaugoti būseną į Slotą 8 - + Load State From Slot 8 Krauti būseną iš Sloto 8 - + Save State To Slot 9 Išsaugoti būseną į Slotą 9 - + Load State From Slot 9 Krauti būseną iš Sloto 9 - + Save State To Slot 10 Išsaugoti būseną į Slotą 10 - + Load State From Slot 10 Krauti būseną iš Sloto 10 @@ -11575,7 +12073,7 @@ Swap chain: see Microsoft's Terminology Portal. Edit Bindings - Edit Bindings + Redaguoti susiejimus @@ -11601,22 +12099,22 @@ Swap chain: see Microsoft's Terminology Portal. Add Binding - Add Binding + Pridėti susiejimą Remove Binding - Remove Binding + Pašalinti susiejimą Clear Bindings - Clear Bindings + Išvalyti susiejimus Bindings for %1 %2 - Bindings for %1 %2 + Susiejimai su %1 %2 @@ -11664,11 +12162,11 @@ Right click to clear binding %n bindings - - %n bindings - %n bindings - %n bindings - %n bindings + + %n susiejimas + %n susiejimai + %n susiejimų + %n susiejimai @@ -11725,6 +12223,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Kairysis analogas + + + + Right Analog + Dešinysis analogas + + + + Cross + Kryžius + + + + Square + Kvadratas + + + + Triangle + Trikampis + + + + Circle + Apskritimas + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Pasirinkti + + + + Start + Pradėti + Input Recording Files (*.p2m2) @@ -11741,155 +12329,155 @@ Right click to clear binding No devices with vibration motors were detected. - No devices with vibration motors were detected. + Įrenginių su vibraciniais motorais neaptikta. Select vibration motor for %1. - Select vibration motor for %1. + Pasirinkite vibracinį variklį %1. InterfaceSettingsWidget - + Behaviour Elgesys - + Pause On Focus Loss - Pause On Focus Loss + Pauzė praradus dėmesį - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start - Pause On Start + Pauzė paleidimo metu - + Confirm Shutdown - Confirm Shutdown + Patvirtinkite išjungimą - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Įjungti "Discord Presence" - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Žaidimo vaizdas - + Start Fullscreen - Start Fullscreen + Pradėti per visą ekraną - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Slėpti rodykle viso ekrano režime - + Preferences - Preferences + Parinktys - + Language: Kalba: - + Theme: - Theme: + Tema: - + Automatic Updater Automatiniai naujinimai - + Update Channel: - Update Channel: + Atnaujinimo kanalas: - + Current Version: - Current Version: + Dabartinė versija: - + Enable Automatic Update Check - Enable Automatic Update Check + Įjungti automatinius atnaujinimus - + Check for Updates... Ieškoti atnaujinimų... Native - Orginalus + Gimtasis @@ -11961,7 +12549,7 @@ Right click to clear binding Custom.qss [Drop in PCSX2 Folder] "Custom.qss" must be kept as-is. - Custom.qss [Drop in PCSX2 Folder] + Custom.qss [Įdėkite į PCSX2 aplanką] @@ -11976,13 +12564,13 @@ Right click to clear binding Automatically checks for updates to the program on startup. Updates can be deferred until later or skipped entirely. - Automatically checks for updates to the program on startup. Updates can be deferred until later or skipped entirely. + Automatiškai tikrina, ar paleidžiant programą nėra jos atnaujinimų. Atnaujinimus galima atidėti vėlesniam laikui arba visiškai praleisti. %1 (%2) Variable %1 shows the version number and variable %2 shows a timestamp. - %1 (%2) + %1 (%2) @@ -11997,7 +12585,7 @@ Right click to clear binding Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. + Automatiškai išsaugo emuliatoriaus būseną, kai išjungiama arba išeinama iš sistemos. Kitą kartą galėsite tęsti darbą nuo tos vietos, kurioje baigėte. @@ -12036,12 +12624,12 @@ Right click to clear binding Pauses the emulator when a game is started. - Pauses the emulator when a game is started. + Sustabdo emuliatorių, kai paleidžiamas žaidimas. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. + Sustabdo emuliatorių, kai sumažinate langą arba pereinate prie kitos programos, ir nutraukia, kai vėl įjungiate. @@ -12075,7 +12663,7 @@ Right click to clear binding Rodo žaidimą, kurį šiuo metu žaidžiate kaip jūsų „Discord“ profilio dalį. - + System Language [Default] Sistemos kalba [numatytoji] @@ -12090,7 +12678,7 @@ Right click to clear binding Hide %1 - Hide %1 + Paslėpti %1 @@ -12100,17 +12688,17 @@ Right click to clear binding Show All - Show All + Rodyti visus Preferences... - Preferences... + Parinktys... Quit %1 - Quit %1 + Baigti %1 @@ -12128,30 +12716,30 @@ Right click to clear binding &System - &System + &Sistema - - + + Change Disc Pakeisti diską - + Load State - Load State + Krauti būseną Save State - Save State + Išsaugoti būseną S&ettings - S&ettings + Nustatymai @@ -12161,12 +12749,12 @@ Right click to clear binding &Debug - &Debug + Profilavimas Switch Renderer - Switch Renderer + Perjungti atvaizduotoja @@ -12176,17 +12764,17 @@ Right click to clear binding &Window Size - &Window Size + &Lango dydis &Tools - &Tools + Įrankiai Input Recording - Input Recording + Įvesties įrašymas @@ -12196,12 +12784,12 @@ Right click to clear binding Start &File... - Start &File... + Pradėti failą... Start &Disc... - Start &Disc... + Pradėti diską... @@ -12211,27 +12799,27 @@ Right click to clear binding &Scan For New Games - &Scan For New Games + &Ieškoti naujų žaidimų &Rescan All Games - &Rescan All Games + &Nuskaityti visus žaidimus iš naujo Shut &Down - Shut &Down + Išsijungti Shut Down &Without Saving - Shut Down &Without Saving + Išjungti be išsaugojimo &Reset - &Reset + &Perkrauti @@ -12241,7 +12829,7 @@ Right click to clear binding E&xit - E&xit + Išeiti @@ -12256,7 +12844,7 @@ Right click to clear binding &Controllers - &Controllers + &Kontroleriai @@ -12271,7 +12859,7 @@ Right click to clear binding A&chievements - A&chievements + P&asiekimai @@ -12291,12 +12879,12 @@ Right click to clear binding &GitHub Repository... - &GitHub Repository... + &GitHub saugykla... Support &Forums... - Support &Forums... + Pagalbos forumai... @@ -12306,7 +12894,7 @@ Right click to clear binding Check for &Updates... - Check for &Updates... + Ieškoti &atnaujinimų... @@ -12348,7 +12936,7 @@ Right click to clear binding Add Game Directory... - Add Game Directory... + Pridėti žaidimų adresyną... @@ -12378,7 +12966,7 @@ Right click to clear binding Global State - Global State + Bendra būsena @@ -12389,13 +12977,13 @@ Right click to clear binding Start File In Toolbar - Start File + Pradėti failą Start Disc In Toolbar - Start Disc + Pradėti diską @@ -12413,7 +13001,7 @@ Right click to clear binding Reset In Toolbar - Nustatyti iš naujo + Perkrauti @@ -12425,13 +13013,13 @@ Right click to clear binding Load State In Toolbar - Load State + Krauti būseną Save State In Toolbar - Save State + Išsaugoti būseną @@ -12459,32 +13047,32 @@ Right click to clear binding &Network && HDD - &Network && HDD + &Tinklas && HDD &Folders - &Folders + &Aplankai &Toolbar - &Toolbar + &Įrankių juosta Lock Toolbar - Lock Toolbar + Užrakinti įrankių juostą &Status Bar - &Status Bar + &Statuso juosta Verbose Status - Daugiakalbis statusas + Verbose statusas @@ -12495,17 +13083,17 @@ Right click to clear binding System &Display This grayed-out at first option will become available while there is a game emulated and the game list is displayed over the actual emulation, to let users display the system emulation once more. - System &Display + Sistemos &rodymas Game &Properties - Game &Properties + Žaidimo ypatybės Game &Grid - Game &Grid + Žaidimų gridas @@ -12535,17 +13123,17 @@ Right click to clear binding Refresh &Covers (Grid View) - Refresh &Covers (Grid View) + Atnaujinti &viršeliai (Tinklelio vaizdas) Open Memory Card Directory... - Open Memory Card Directory... + Atidaryti atminties kortelės adresyną... Open Data Directory... - Open Data Directory... + Atidaryti duomenų adresyna... @@ -12565,7 +13153,7 @@ Right click to clear binding Enable System Console - Enable System Console + Įjungti sistemos konsolę @@ -12585,7 +13173,7 @@ Right click to clear binding Save Single Frame GS Dump - Save Single Frame GS Dump + Išsaugoti vienetinį kadrą GS išmetime @@ -12597,7 +13185,7 @@ Right click to clear binding Play This section refers to the Input Recording submenu. - Žaisti + Groti @@ -12620,7 +13208,7 @@ Right click to clear binding Controller Logs - Controller Logs + Kontrolerio žurnalai @@ -12644,16 +13232,16 @@ Right click to clear binding - + Start Big Picture Mode - Start Big Picture Mode + Įjunti didelio vaizdo režimą - + Big Picture In Toolbar - Televizijos režimas + Didelis vaizdas @@ -12662,7 +13250,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12673,7 +13261,7 @@ Right click to clear binding - + Video Capture Vaizdo įrašymas @@ -12688,306 +13276,311 @@ Right click to clear binding Redaguoti pataisymus... - + Internal Resolution Internal Resolution - + %1x Scale - %1x Scale + %1x skalė - + Select location to save block dump: Select location to save block dump: - + Do not show again Daugiau nerodyti - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. Are you sure you want to continue? - Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. + Išplėstinių nustatymų keitimas gali turėti nenuspėjamą poveikį žaidimams, įskaitant grafikos trikdžius, blokavimą ir net sugadintus išsaugotus failus. Nerekomenduojame keisti išplėstinių nustatymų, jei nežinote, ką darote, ir kiekvieno nustatymo keitimo pasekmių. -The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. +PCSX2 komanda neteiks jokios paramos konfigūracijoms, kuriomis keičiami šie nustatymai. -Are you sure you want to continue? +Ar tikrai norite tęsti? - + %1 Files (*.%2) - %1 Files (*.%2) + %1 failai (*.%2) + + + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. - + Confirm Shutdown - Patvirtinti Išjungimą + Patvirtinkite išjungimą - + Are you sure you want to shut down the virtual machine? Ar tikrai norite išjungti virtualią mašiną? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Klaida - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Savybės... - + Open Containing Directory... Refers to the directory where a game is contained. - Open Containing Directory... + Atidaryti adresyną, kuriame yra... - + Set Cover Image... Nustatyti viršelio vaizdą... - + Exclude From List Išskirti iš sąrašo - + Reset Play Time Iš naujo nustatyti grojimo laiką - + Default Boot Numatytasis paleidimas - + Fast Boot Greitas paleidimas - + Full Boot Pilnas paleidimas - + Boot and Debug - Boot and Debug + Paleidimas ir Profilavimas - + Add Search Directory... - Add Search Directory... + Pridėti paieškos adresyną... - + Start File Pradėti failą - + Start Disc Pradėti diską - + Select Disc Image - Select Disc Image + Pasirinkite disko atvaizdą - + Updater Error Atnaujinimo klaida - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> + <p>Atsiprašome, bandote atnaujinti PCSX2 versiją, kuri nėra oficiali GitHub versija. Kad būtų išvengta nesuderinamumo, automatinis atnaujinimas įjungtas tik oficialiose išleidimuose.</p><p>Norėdami gauti oficialią kompiliaciją, atsisiųskite ją iš toliau pateiktos nuorodos:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation - Confirm File Creation + Patvirtinkite failo sukūrimą - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. - Failed to create '%1'. + Nepavyko sukurti '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Pristabdyta - + Load State Failed - Load State Failed + Pakrauti būseną nepavyko - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? + Naujojo ELF negalima įkelti nenustačius virtualios mašinos iš naujo. Ar norite iš naujo nustatyti virtualią mašiną dabar? - + Cannot change from game to GS dump without shutting down first. - Cannot change from game to GS dump without shutting down first. + Negalima pereiti iš žaidimo į GS dump, prieš tai neišjungus. - + Failed to get window info from widget Failed to get window info from widget All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.elf *.irx *.gs *.gs.xz *.gs.zst *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;ELF Executables (*.elf);;IRX Executables (*.irx);;GS Dumps (*.gs *.gs.xz *.gs.zst);;Block Dumps (*.dump) - All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.elf *.irx *.gs *.gs.xz *.gs.zst *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;ELF Executables (*.elf);;IRX Executables (*.irx);;GS Dumps (*.gs *.gs.xz *.gs.zst);;Block Dumps (*.dump) + Visi failų tipai (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.elf *.irx *.gs *.gs.xz *.gs.zst *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;ELF Executables (*.elf);;IRX Executables (*.irx);;GS Dumps (*.gs *.gs.xz *.gs.zst);;Block Dumps (*.dump) All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) + Visi failų tipai (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode - Stop Big Picture Mode + Išjungti didelio vaizdo režimą - + Exit Big Picture In Toolbar - Exit Big Picture + Išeiti iš didelio vaizdo - + Game Properties Žaidimo ypatybės - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: - Select disc drive: + Pasirinkite disko įrenginį: - + This save state does not exist. This save state does not exist. - + Select Cover Image Pasirinkite viršelio vaizdą - - All Cover Image Types (*.jpg *.jpeg *.png) - Visi viršelio vaizdų tipai (*.jpg *.jpeg *.png) - - - + Cover Already Exists Viršelis jau egzistuoja - + A cover image for this game already exists, do you wish to replace it? Šio žaidimo viršelio vaizdas jau yra, ar norite jį pakeisti? - - - - + + + + Copy Error Kopijavimo klaida - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Patvirtinti atstatymą - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. - You must select a different file to the current cover image. + Turite pasirinkti kitą failą nei dabartinis viršelio paveikslėlis. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12996,12 +13589,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State - Load Resume State + Pakrauti tęsimo būseną - + A resume save state was found for this game, saved at: %1. @@ -13014,70 +13607,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Švarus paleidimas - + Delete And Boot Ištrinti ir paleisti - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... - Load State File... + Pakrauti būsenos failą... - + Load From File... - Load From File... + Pakrauti iš failo... - - + + Select Save State File - Select Save State File + Pasirinkite išsaugotos būsenos failą - - + + Save States (*.p2s) - Save States (*.p2s) + Išsaugoti būsenas (*.p2s) - + Delete Save States... - Delete Save States... + Ištrinti Išsaugotas būsenas... - + Undo Load State Undo Load State - + Resume (%2) - Resume (%2) + Tęsti (%2) - + Load Slot %1 (%2) - Load Slot %1 (%2) + Išsaugotas Slotas %1 (%2) - - + + Delete Save States - Delete Save States + Ištrinti Išsaugotas būsenas - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13086,58 +13679,58 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. - %1 save states deleted. + %1 išsaugotos būsenos ištrintos. - + Save To File... - Save To File... + Išsaugoti į failą... - + Empty Tuščia - + Save Slot %1 (%2) - Save Slot %1 (%2) + Išsaugotas Slotas %1 (%2) - + Confirm Disc Change Patvirtinti disko keitimą - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Keisti diską - + Reset - Nustatyti iš naujo + Perkrauti MemoryCard - - + + Memory Card '{}' was saved to storage. - Memory Card '{}' was saved to storage. + Atminties kortelė '{}' buvo įrašyta į saugyklą. Memory Cards reinserted. - Memory Cards reinserted. + Atminties kortelės vėl įdėtos. @@ -13150,12 +13743,12 @@ The saves will not be recoverable. Convert Memory Card - Convert Memory Card + Konvertuoti atminties kortelę Conversion Type - Conversion Type + Konversijos tipas @@ -13201,30 +13794,31 @@ The saves will not be recoverable. Uses a folder on your PC filesystem, instead of a file. Infinite capacity, while keeping the same compatibility as an 8 MB Memory Card. - Uses a folder on your PC filesystem, instead of a file. Infinite capacity, while keeping the same compatibility as an 8 MB Memory Card. + Naudojamas ne failas, o aplankas kompiuterio failų sistemoje. Begalinė talpa, bet toks pat suderinamumas kaip 8 MB atminties kortelės. A standard, 8 MB Memory Card. Most compatible, but smallest capacity. - A standard, 8 MB Memory Card. Most compatible, but smallest capacity. + Standartinė 8 MB atminties kortelė. Labiausiai suderinama, bet mažiausios talpos. + 2x larger than a standard Memory Card. May have some compatibility issues. - 2x larger than a standard Memory Card. May have some compatibility issues. + 2 kartus didesnė nei standartinė atminties kortelė. Gali kilti tam tikrų suderinamumo problemų. 4x larger than a standard Memory Card. Likely to have compatibility issues. - 4x larger than a standard Memory Card. Likely to have compatibility issues. + 4 kartus didesnė nei standartinė atminties kortelė. Tikėtina, kad kils suderinamumo problemų. 8x larger than a standard Memory Card. Likely to have compatibility issues. - 8x larger than a standard Memory Card. Likely to have compatibility issues. + 8 kartus didesnė nei standartinė atminties kortelė. Tikėtina, kad kils suderinamumo problemų. @@ -13232,19 +13826,19 @@ The saves will not be recoverable. Convert Memory Card Failed MemoryCardType should be left as-is. - Convert Memory Card Failed + Konvertuoti atminties kortelę nepavyko Invalid MemoryCardType - Invalid MemoryCardType + Netinkamas atminties kortelės tipas Conversion Complete - Conversion Complete + Konversija baigta @@ -13254,17 +13848,12 @@ The saves will not be recoverable. Your folder Memory Card has too much data inside it to be converted to a file Memory Card. The largest supported file Memory Card has a capacity of 64 MB. To convert your folder Memory Card, you must remove game folders until its size is 64 MB or less. - Your folder Memory Card has too much data inside it to be converted to a file Memory Card. The largest supported file Memory Card has a capacity of 64 MB. To convert your folder Memory Card, you must remove game folders until its size is 64 MB or less. + Jūsų atminties kortelės aplanke yra per daug duomenų, kad juos būtų galima konvertuoti į atminties kortelės failą. Didžiausios palaikomos failo atminties kortelės talpa yra 64 MB. Norėdami konvertuoti atminties kortelės aplanką, turite pašalinti žaidimų aplankus, kol jų dydis taps 64 MB arba mažesnis. Cannot Convert Memory Card - Cannot Convert Memory Card - - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. + Negalima konvertuoti atminties kortelės @@ -13276,7 +13865,7 @@ The saves will not be recoverable. Create Memory Card - Create Memory Card + Sukurti atminties kortelę @@ -13286,7 +13875,7 @@ The saves will not be recoverable. Memory Card Name: - Memory Card Name: + Atminties kortelės pavadinimas: @@ -13307,7 +13896,7 @@ The saves will not be recoverable. A typical size for third-party Memory Cards which should work with most games. - A typical size for third-party Memory Cards which should work with most games. + Tipiškas trečiųjų šalių atminties kortelių dydis, kuris turėtų veikti su dauguma žaidimų. @@ -13347,12 +13936,12 @@ The saves will not be recoverable. Use NTFS Compression - Use NTFS Compression + Naudoti NTFS suspaudimą NTFS compression is built-in, fast, and completely reliable. Typically compresses Memory Cards (highly recommended). - NTFS compression is built-in, fast, and completely reliable. Typically compresses Memory Cards (highly recommended). + NTFS suspaudimas yra integruotas, greitas ir visiškai patikimas. Paprastai suspaudžia atminties korteles (labai rekomenduojama). @@ -13372,7 +13961,7 @@ The saves will not be recoverable. Memory Card '%1' created. - Memory Card '%1' created. + Atminties kortelė '%1' sukurta. @@ -13391,103 +13980,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports - Console Ports + Konsolės jungtys - + Memory Cards Atminties kortelės - + Folder: Aplankas: - + Browse... Naršyti... - + Open... Atidaryti... - + Reset Nustatyti iš naujo - + Name Pavadinimas - + Type Tipas - + Formatted Suformatuotas - + Last Modified Paskutinį kartą pakeista - + Refresh Atnaujinti - + + Create Sukurti - + Duplicate Dublikuoti - + Rename Pervadinti - + Convert Konvertuoti - + Delete Ištrinti - + Settings Nustatymai - + Automatically manage saves based on running game - Automatically manage saves based on running game + Automatiškai tvarkykite išsaugojimus pagal paleistą žaidimą - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13511,7 +14101,7 @@ The saves will not be recoverable. Port %1 - Port %1 + Lizdas %1 @@ -13534,7 +14124,7 @@ The saves will not be recoverable. Delete Memory Card - Delete Memory Card + Ištrinti atminties kortelę @@ -13542,12 +14132,12 @@ The saves will not be recoverable. Rename Memory Card - Rename Memory Card + Pervardyti atminties kortelę New Card Name - New Card Name + Naujos kortelės pavadinimas @@ -13591,7 +14181,7 @@ This action cannot be reversed, and you will lose any saves on the card. Use for Port %1 - Use for Port %1 + Naudoti lizdui %1 @@ -13657,58 +14247,58 @@ This action cannot be reversed, and you will lose any saves on the card.Atmintis - + Copy Address Kopijuoti adresą - + Go to in disassembly Go to in disassembly - - + + Go to address Eiti į adresa - + Show as 1 byte - Show as 1 byte + Rodyti kaip 1 baitą - + Show as 2 bytes - Show as 2 bytes + Rodyti kaip 2 baitus - + Show as 4 bytes - Show as 4 bytes + Rodyti kaip 4 baitus - + Show as 8 bytes - Show as 8 bytes + Rodyti kaip 8 baitus - + Copy Byte - Copy Byte + Kopijuoti baitą - + Copy Segment - Copy Segment + Kopijuoti segmentą - + Copy Character - Copy Character + Kopijuoti simbolį - + Paste Įklijuoti @@ -13745,7 +14335,7 @@ This action cannot be reversed, and you will lose any saves on the card. Select File Path - Select File Path + Pasirinkite failo kelią @@ -13755,35 +14345,40 @@ This action cannot be reversed, and you will lose any saves on the card. Enter Author Name - Enter Author Name + Įveskite autoriaus vardą - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Pasirinkite failą + Pad D-Pad Up - D-Pad Up + Aukštyn D-Pad Right - D-Pad Right + Dešinė D-Pad Down - D-Pad Down + Žemyn D-Pad Left - D-Pad Left + Kairė @@ -13820,22 +14415,22 @@ This action cannot be reversed, and you will lose any saves on the card. L1 (Left Bumper) - L1 (Left Bumper) + L1 (kairysis bamperis) L2 (Left Trigger) - L2 (Left Trigger) + L2 (kairysis trigeris) R1 (Right Bumper) - R1 (Right Bumper) + R1 (dešinysis bamperis) R2 (Right Trigger) - R2 (Right Trigger) + R2 (dešinysis trigeris) @@ -13850,62 +14445,62 @@ This action cannot be reversed, and you will lose any saves on the card. Analog Toggle - Analog Toggle + Analoginis perjungimas Apply Pressure - Apply Pressure + Taikyti spaudimą Left Stick Up - Left Stick Up + Kairė lazdelė į viršų Left Stick Right - Left Stick Right + Kairė lazdelė į dešinę Left Stick Down - Left Stick Down + Kairė lazdelė į apačią Left Stick Left - Left Stick Left + Kairė lazdelė į kairę Right Stick Up - Right Stick Up + Dešinė lazdelė į viršų Right Stick Right - Right Stick Right + Dešinė lazdelė į dešinę Right Stick Down - Right Stick Down + Dešinė lazdelė į apačią Right Stick Left - Right Stick Left + Dešinė lazdelė į kairę Large (Low Frequency) Motor - Large (Low Frequency) Motor + Didelis (žemo dažnio) variklis Small (High Frequency) Motor - Small (High Frequency) Motor + Mažas (aukšto dažnio) variklis @@ -13915,48 +14510,58 @@ This action cannot be reversed, and you will lose any saves on the card. Invert Left/Right - Invert Left/Right + Apversti į kairę/dešinę Invert Up/Down - Invert Up/Down + Apversti aukštyn/žemyn Invert Left/Right + Up/Down - Invert Left/Right + Up/Down + Apversti kairę/dešinę + aukštyn/žemyn Invert Left Stick - Invert Left Stick + Apversti kairiąją lazdelę Inverts the direction of the left analog stick. - Inverts the direction of the left analog stick. + Pakeičia kairės analoginės lazdelės kryptį. Invert Right Stick - Invert Right Stick + Apversti dešinę lazdelę Inverts the direction of the right analog stick. - Inverts the direction of the right analog stick. + Pakeičia dešinės analoginės lazdelės kryptį. Analog Deadzone - Analog Deadzone + Analoginė mirties zona Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Nustato analoginę lazdelės negyvąją zoną, t. y. lazdelės judesio dalį, kuri bus nepaisoma. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13973,14 +14578,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analoginė lemputė dabar veikia prievadui {0} / lizdui {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analoginė lemputė prievadui {0} / lizdui {1} dabar yra išjungta @@ -13990,7 +14595,7 @@ This action cannot be reversed, and you will lose any saves on the card. Large Motor Vibration Scale - Large Motor Vibration Scale + Didelio variklio vibracijos skalė @@ -14000,7 +14605,7 @@ This action cannot be reversed, and you will lose any saves on the card. Small Motor Vibration Scale - Small Motor Vibration Scale + Mažo variklio vibracijos skalė @@ -14010,39 +14615,32 @@ This action cannot be reversed, and you will lose any saves on the card. Modifier Pressure - Modifier Pressure + Modifikatoriaus spaudimas Sets the pressure when the modifier button is held. - Sets the pressure when the modifier button is held. + Nustato spaudimą, kai laikomas modifikatoriaus mygtukas. Not Connected - Not Connected + Neprijungta DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up - Strum Up + Strum aukštyn Strum Down - Strum Down + Strum žemyn @@ -14052,7 +14650,7 @@ Leaving the original controller type connected, but this may cause issues. Red Fret - Red Fret + Red Fret @@ -14062,7 +14660,7 @@ Leaving the original controller type connected, but this may cause issues. Blue Fret - Blue Fret + Blue Fret @@ -14072,7 +14670,7 @@ Leaving the original controller type connected, but this may cause issues. Whammy Bar - Whammy Bar + Whammy Bar @@ -14104,38 +14702,61 @@ Leaving the original controller type connected, but this may cause issues.Guitar Gitara + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Kontrolerio jungties {0}, lizdas {1} turi {2} prijungtą, bet išsaugojimo būsenoje yra {3}. +Paliekamas prijungtas originalus kontrolerio tipas, tačiau dėl to gali kilti problemų. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches - {} GameDB patches + {} GameDB pataisymai - + {}{} game patches - {}{} game patches + {}{} žaidimų pataisymai - + {}{} cheat patches - {}{} cheat patches + {}{} žaidimų pataisymai - + {} are active. - {} are active. + {} yra aktyvūs. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. - No cheats or patches (widescreen, compatibility or others) are found / enabled. + Jokių cheatu ar pataisymų (widescreen, suderinamumo ar kt.) nerasta / neįjungta. + + + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 @@ -14143,7 +14764,7 @@ Leaving the original controller type connected, but this may cause issues. Failed to open URL - Failed to open URL + Nepavyko atidaryti URL @@ -14155,23 +14776,23 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Kurėjas - + Failed to create HDD image - Failed to create HDD image + Nepavyko sukurti HDD atvaizdo Creating HDD file %1 / %2 MiB - Creating HDD file + HDD failo kūrimas %1 / %2 MiB @@ -14258,12 +14879,12 @@ The URL was: %1 Copy Segment - Copy Segment + Kopijuoti segmentą Copy Value - Copy Value + Kopijuoti vertę @@ -14278,12 +14899,12 @@ The URL was: %1 Change Segment - Change Segment + Pakeisti segmentą Change Value - Change Value + Pakeisti vertę @@ -14293,13 +14914,13 @@ The URL was: %1 Go to in Memory - Go to in Memory + Eiti į Atmintis Change %1 Changing the value in a CPU register (e.g. "Change t0") - Change %1 + Keisti %1 @@ -14334,7 +14955,7 @@ The URL was: %1 Cubeb (Cross-platform) Cubeb is an audio engine name. Leave as-is. - Cubeb (Cross-platform) + Cubeb (tarp-platforminė) @@ -14366,7 +14987,6 @@ Priešingu atveju ištrinkite išsaugojimo būseną ir paleiskite naujai.SettingWidgetBinder - @@ -14391,11 +15011,11 @@ Priešingu atveju ištrinkite išsaugojimo būseną ir paleiskite naujai. - The chosen directory does not currently exist: + Pasirinktas adresynas šiuo metu neegzistuoja: %1 -Do you want to create this directory? +Ar norite sukurti šį adresyną? @@ -14410,228 +15030,249 @@ Do you want to create this directory? Select folder for %1 - Select folder for %1 + Pasirinkite aplanką %1 SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Naudoti visuotinį nustatymą [Įjungtą] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Naudoti visuotinį nustatymą [Išjungtą] + + + + + Use Global Setting [%1] + Naudoti bendra nustatymą [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 nustatymai - + Restore Defaults Atkurti numatytuosius nustatymus - + Copy Global Settings - Copy Global Settings + Kopijuoti bendruosius nustatymus - + Clear Settings Išvalyti nustatymus - + Close Uždaryti - - - Summary - Santrauka - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Santrauka + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interfeisas - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Žaidimų sarašas - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emuliacija - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Pataisymai - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheatai - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Žaidimų pataisymai - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Grafika - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Garsas - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Atminties kortelės - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Tinklas ir HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Aplankai - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Pasiekimai - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Papildomi - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14644,12 +15285,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14662,33 +15303,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Naudoti visuotinį nustatymą [Įjungtą] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Naudoti visuotinį nustatymą [Išjungtą] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14710,12 +15333,12 @@ Do you want to continue? Game Directories - Game Directories + Žaidimų adresynai Controller Setup - Controller Setup + Kontrolerio nustatymai @@ -14750,7 +15373,7 @@ Do you want to continue? BIOS Directory: - BIOS Directory: + BIOS adresynas: @@ -14774,8 +15397,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Atidarykite BIOS aplanką... @@ -14785,7 +15408,7 @@ Do you want to continue? <html><head/><body><p>PCSX2 will automatically scan and identify games from the selected directories below, and populate the game list.<br>These games should be dumped from discs you own. Guides for dumping discs can be found at <a href="https://pcsx2.net/docs/usage/setup/#dumping-ps2-discs-via-imgburn">pcsx2.net</a>.</p><p>Supported formats for dumps include:</p><p><ul><li>.bin/.iso (ISO Disc Images)</li><li>.mdf (Media Descriptor File)</li><li>.chd (Compressed Hunks of Data)</li><li>.cso (Compressed ISO)</li><li>.gz (Gzip Compressed ISO)</li></ul></p></p></body></html> - <html><head/><body><p>PCSX2 will automatically scan and identify games from the selected directories below, and populate the game list.<br>These games should be dumped from discs you own. Guides for dumping discs can be found at <a href="https://pcsx2.net/docs/usage/setup/#dumping-ps2-discs-via-imgburn">pcsx2.net</a>.</p><p>Supported formats for dumps include:</p><p><ul><li>.bin/.iso (ISO Disc Images)</li><li>.mdf (Media Descriptor File)</li><li>.chd (Compressed Hunks of Data)</li><li>.cso (Compressed ISO)</li><li>.gz (Gzip Compressed ISO)</li></ul></p></p></body></html> + <html><head/><body><p>PCSX2 automatiškai nuskaitys ir atpažins žaidimus iš toliau nurodytų adresynų ir papildys žaidimų sąrašą.<br>Šie žaidimai turėtų būti išimti iš jūsų turimų diskų. Diskų išėmimo vadovus rasite adresu <a href="https://pcsx2.net/docs/usage/setup/#dumping-ps2-discs-via-imgburn">pcsx2.net</a>.</p><p>Palaikomi šie išėmimo formatai:</p><p><ul><li>.bin/.iso (ISO disko atvaizdai)</li><li>.mdf (Media Descriptor failas)</li><li>.chd (Compressed Hunks of Data)</li><li>.cso (Compressed ISO)</li><li>.gz (Gzip suspaustas ISO)</li></ul></p></p></body></html> @@ -14806,12 +15429,12 @@ Do you want to continue? Search Directory - Search Directory + Ieškoti adresyno Scan Recursively - Scan Recursively + Pakartotinis nuskaitymas @@ -14833,7 +15456,7 @@ Do you want to continue? Controller Type: - Controller Type: + Kontrolerio tipas: @@ -14846,7 +15469,7 @@ Do you want to continue? Automatic Mapping - Automatic Mapping + Automatinis suplanavimas @@ -14883,7 +15506,7 @@ Do you want to continue? A BIOS image has not been selected. PCSX2 <strong>will not</strong> be able to run games without a BIOS image.<br><br>Are you sure you wish to continue without selecting a BIOS image? - A BIOS image has not been selected. PCSX2 <strong>will not</strong> be able to run games without a BIOS image.<br><br>Are you sure you wish to continue without selecting a BIOS image? + BIOS atvaizdas nebuvo pasirinktas. PCSX2 <strong>negalės</strong> paleisti žaidimų be BIOS atvaizdo.<br><br>Ar tikrai norite tęsti nepasirinkę BIOS atvaizdo? @@ -14897,65 +15520,65 @@ Are you sure you want to continue? &Finish - &Finish + Baigta Cancel Setup - Cancel Setup + Atšaukti įrašyma Are you sure you want to cancel PCSX2 setup? Any changes have been saved, and the wizard will run again next time you start PCSX2. - Are you sure you want to cancel PCSX2 setup? + Ar tikrai norite atšaukti PCSX2 įdiegimą? -Any changes have been saved, and the wizard will run again next time you start PCSX2. +Visi pakeitimai buvo išsaugoti, ir vedlys bus paleistas iš naujo, kai paleisite PCSX2. Open Directory... - Open Directory... + Atidaryti adresyna... Select Search Directory - Select Search Directory + Pasirinkite paieškos adresą Scan Recursively? - Scan Recursively? + Skenuoti pasikartojančiai? Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. - Would you like to scan the directory "%1" recursively? + Ar norite, kad adresynas "%1" būtų nuskaitytas pakartotinai? -Scanning recursively takes more time, but will identify files in subdirectories. +Skenavimas pakartotinai užima daugiau laiko, tačiau bus nustatyti papildomai kataloguose esantys failai. Default (None) - Default (None) + Numatytasis (nėra) No devices available - No devices available + Nėra pasiekiamų įrenginių Automatic Binding - Automatic Binding + Automatinis susiejimas No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. + Įrenginiui '%1' nebuvo sukurta bendrųjų susiejimų. Kontroleris/šaltinis gali nepalaikyti automatinio suplanavimo. @@ -14970,7 +15593,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. LABEL Warning: short space limit. Abbreviate if needed. - LABEL + ETIKETĖ @@ -15033,106 +15656,106 @@ Scanning recursively takes more time, but will identify files in subdirectories. STATE Warning: short space limit. Abbreviate if needed. - STATE + BŪSENA WAIT TYPE Warning: short space limit. Abbreviate if needed. - WAIT TYPE + LAUKIMO TIPAS - + BAD Refers to a Thread State in the Debugger. - BAD + BLOGAS - + RUN Refers to a Thread State in the Debugger. - RUN + PALEISTI - + READY Refers to a Thread State in the Debugger. - READY + PASIRUOŠTA - + WAIT Refers to a Thread State in the Debugger. - WAIT + LAUKTI - + SUSPEND Refers to a Thread State in the Debugger. - SUSPEND + SUSTABDYTI - + WAIT SUSPEND Refers to a Thread State in the Debugger. - WAIT SUSPEND + PALAUKITE SUSTABDYMO - + DORMANT Refers to a Thread State in the Debugger. - DORMANT + MIEGA - + NONE Refers to a Thread Wait State in the Debugger. - NONE + JOKS - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. - WAKEUP REQUEST + PRAŠYMAS PABUDINTI - + SEMAPHORE Refers to a Thread Wait State in the Debugger. - SEMAPHORE + SEMAFORAS - + SLEEP Refers to a Thread Wait State in the Debugger. MIEGOTI - + DELAY Refers to a Thread Wait State in the Debugger. - DELAY + DELSIMAS - + EVENTFLAG Refers to a Thread Wait State in the Debugger. - EVENTFLAG + RENGINIO VĖLIAVA - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15217,7 +15840,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Up - D-Pad Up + Aukštyn @@ -15226,7 +15849,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Down - D-Pad Down + Žemyn @@ -15235,7 +15858,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Left - D-Pad Left + Kairė @@ -15244,7 +15867,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. D-Pad Right - D-Pad Right + Dešinė @@ -15331,17 +15954,22 @@ Scanning recursively takes more time, but will identify files in subdirectories. Cursor Scale - Cursor Scale + Žymeklio dydis Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color - Cursor Color + Žymeklio spalva @@ -15369,6 +15997,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15377,17 +16011,23 @@ Scanning recursively takes more time, but will identify files in subdirectories. Center X - Center X + Centruoti X Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y - Center Y + Centruoti Y @@ -15404,6 +16044,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15417,14 +16063,14 @@ Scanning recursively takes more time, but will identify files in subdirectories. Logitech USB Headset - Logitech USB Headset + Logitech USB Headset Input Device - Input Device + Įvesties įrenginys @@ -15436,7 +16082,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Output Device - Output Device + Išvesties įrenginys @@ -15459,10 +16105,19 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency - Output Latency + Išvesties vėlavimas @@ -15487,7 +16142,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Player 1 Device - Player 1 Device + Žaidėjo 1 įrenginys @@ -15497,7 +16152,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Player 2 Device - Player 2 Device + Žaidėjo 2 įrenginys @@ -15507,7 +16162,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Logitech USB Mic - Logitech USB Mic + Logitech USB Mic @@ -15527,7 +16182,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Image Path - Image Path + Atvaizdo kelias @@ -15620,12 +16275,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Shift Up / R1 - Shift Up / R1 + Shift aukštyn / R1 Shift Down / L1 - Shift Down / L1 + Shift žemyn / L1 @@ -15640,12 +16295,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Menu Up - Menu Up + Meniu Aukštyn Menu Down - Menu Down + Meniu Žemyn @@ -15659,6 +16314,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Išjungta + + + + Low + Žemas + + + + Medium + Vidutinis + + + + High + Aukštas + Steering Smoothing @@ -15669,6 +16344,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -15697,17 +16378,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. Driving Force - Driving Force + Driving Force Driving Force Pro - Driving Force Pro + Driving Force Pro Driving Force Pro (rev11.02) - Driving Force Pro (rev11.02) + Driving Force Pro (rev11.02) @@ -15977,12 +16658,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Wheel Up - Wheel Up + Vairas aukštyn Wheel Down - Wheel Down + Vairas žemyn @@ -16007,7 +16688,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Stick Down - Stick Down + Lazda žemyn @@ -16054,12 +16735,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Default Input Device - Default Input Device + Numatytasis įvesties įrenginys Default Output Device - Default Output Device + Numatytasis išvesties įrenginys @@ -16168,117 +16849,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Užuominos - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad - D-Pad + Kryptis - + Down Žemyn - + Left Kairė - + Up Aukštyn - + Right Dešinė - + L1 L1 - + L2 L2 - + Brake Stabdžiai - + Steering Left Vairavimas į kairę - + Steering Right Vairavimas į dešine - + Select Pasirinkti - + Start Pradėti - + Face Buttons Veido mygtukai - + Circle Apskritimas - + Cross Kryžius - + Triangle Trikampis - + Square Kvadratas - + R1 R1 - + R2 R2 - + Accelerator Greitintuvas @@ -16286,139 +16967,139 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Užuominos - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Stabdžiai - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator - Accelerator + Greitintuvas USBBindingWidget_GunCon2 - + Buttons Mygtukai - + A A - + C C - + Start Pradėti - + Select Pasirinkti - + B B - + D-Pad - D-Pad + Kryptis - - + + Down Žemyn - - + + Left Kairė - - + + Up Aukštyn - - + + Right Dešinė - + Pointer Setup - Pointer Setup + Rodyklės nustatymas - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16427,29 +17108,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Gaidukas - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16457,39 +17138,39 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Įrenginio tipas - + Bindings Susiejimai - + Settings Nustatymai - + Automatic Mapping Automatinis suplanavimas - + Clear Mapping - Clear Mapping + Ištrinti suplanavimus USB Port %1 - USB Port %1 + USB jungtis %1 No devices available - No devices available + Nėra pasiekiamų įrenginių @@ -16499,7 +17180,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Are you sure you want to clear all bindings for this device? This action cannot be undone. - Are you sure you want to clear all bindings for this device? This action cannot be undone. + Ar tikrai norite išvalyti visus šio kontrolerio susiejimus? Šio veiksmo anuliuoti negalima. @@ -16509,38 +17190,38 @@ Scanning recursively takes more time, but will identify files in subdirectories. No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. + Įrenginiui '%1' nebuvo sukurta bendrųjų susiejimų. Kontroleris/šaltinis gali nepalaikyti automatinio suplanavimo. VMManager - + Failed to back up old save state {}. - Failed to back up old save state {}. + Nepavyko sukurti atsarginės kopijos senos išsaugotos būsenos {}. - + Failed to save save state: {}. - Failed to save save state: {}. + Nepavyko išsaugoti išsaugojimo būsenos: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Nežinomas žaidimas - + Error Klaida - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16552,204 +17233,224 @@ Please consult the FAQs and Guides for further instructions. Dėl teisinių priežasčių jūs *privalote* gauti BIOS iš tikro jums priklausančio PS2 įrenginio (skolinimasis nesiskaito). -Gavus šį BIOS, jis turi būti įdėtas į duomenų katalogo bios aplanką (įrankių meniu –> atidaryti duomenų katalogą). +Gavus šį BIOS, jis turi būti įdėtas į duomenų katalogo bios aplanką (įrankių meniu –> atidaryti duomenų adresyne). Daugiau instrukcijų rasite DUK ir vadovuose. - + + Resuming state + Būsena tęsiama + + + State saved to slot {}. - State saved to slot {}. + Būklė įrašyta į slota {}. - + Failed to save save state to slot {}. - Failed to save save state to slot {}. + Nepavyko išsaugoti išsaugojimo būsenos į slota {}. - + + + Loading state + Būsena kraunama + + + There is no save state in slot {}. - There is no save state in slot {}. + Slote {} nėra išsaugotos būsenos. - + Loading state from slot {}... - Loading state from slot {}... + Kraunama būsena iš sloto {}... - + Saving state to slot {}... - Saving state to slot {}... + Būklės įrašymas į slota {}... - + + Frame advancing + Kadro greitėjimas į priekį + + + Disc removed. Diskas pašalintas. - + Disc changed to '{}'. Diskas pakeistas į '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Nepavyko atidaryti naujo disko vaizdo '{}'. Grąžinama į seną vaizdą. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Nepavyko atidaryti naujo disko atvaizdo '{}'. Grįžtama prie senojo atvaizdo. +Klaida buvo: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Nepavyko grįžti prie senojo disko atvaizdo. Išimamas diskas. +Klaida buvo: {} - + Cheats have been disabled due to achievements hardcore mode. - Cheats have been disabled due to achievements hardcore mode. + Cheatai buvo išjungti dėl pasiekimų sunkiojo režimo. - + Fast CDVD is enabled, this may break games. - Fast CDVD is enabled, this may break games. + Įjungtas greitasis CDVD, tai gali sugadinti žaidimus. - + Cycle rate/skip is not at default, this may crash or make games run too slow. - Cycle rate/skip is not at default, this may crash or make games run too slow. + Ciklo greitis/praleidimas yra ne pagal numatytuosius nustatymus, dėl to žaidimai gali sutrikti arba veikti per lėtai. - + Audio is using async mix, expect desynchronization in FMVs. - Audio is using async mix, expect desynchronization in FMVs. + Garso įrašams naudojamas asinchroninis mišinys, tikėkitės desinchronizacijos FMV. - + Upscale multiplier is below native, this will break rendering. - Upscale multiplier is below native, this will break rendering. + Padidinto mastelio daugiklis yra mažesnis už vietinį, dėl to sutriks vaizdavimas. - + Mipmapping is not set to automatic. This may break rendering in some games. - Mipmapping is not set to automatic. This may break rendering in some games. + Mipmapping nenustatytas kaip automatinis. Tai gali sutrikdyti vaizdavimą kai kuriuose žaidimuose. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. + Tekstūros filtravimas nenustatytas į Bilinear (PS2). Dėl to kai kuriuose žaidimuose sutrinka atvaizdavimas. - + Trilinear filtering is not set to automatic. This may break rendering in some games. - Trilinear filtering is not set to automatic. This may break rendering in some games. + Trilinijinis filtravimas nenustatytas kaip automatinis. Tai gali sutrikdyti vaizdavimą kai kuriuose žaidimuose. - + Blending is below basic, this may break effects in some games. - Blending is below basic, this may break effects in some games. + Maišymas yra žemesnis nei paprastas, todėl kai kuriuose žaidimuose gali sutrikti efektai. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. - Hardware Download Mode is not set to Accurate, this may break rendering in some games. + Techninės įrangos atsisiuntimo režimas nenustatytas į tikslų, todėl kai kuriuose žaidimuose gali sutrikti vaizdo perteikimas. - + EE FPU Round Mode is not set to default, this may break some games. - EE FPU Round Mode is not set to default, this may break some games. + EE FPU apvalinimo režimas nenustatytas pagal numatytuosius nustatymus, tai gali sugadinti kai kuriuos žaidimus. - + EE FPU Clamp Mode is not set to default, this may break some games. - EE FPU Clamp Mode is not set to default, this may break some games. + EE FPU prispaudimo režimas nenustatytas pagal numatytuosius nustatymus, dėl to gali sutrikti kai kurie žaidimai. - + VU Round Mode is not set to default, this may break some games. - VU Round Mode is not set to default, this may break some games. + VU apvalinimo režimas nenustatytas pagal numatytuosius nustatymus, tai gali sugadinti kai kuriuos žaidimus. - + VU Clamp Mode is not set to default, this may break some games. - VU Clamp Mode is not set to default, this may break some games. + VU prispaudimo režimas nenustatytas pagal numatytuosius nustatymus, dėl to gali sutrikti kai kurie žaidimai. - + Game Fixes are not enabled. Compatibility with some games may be affected. Žaidimo pataisymai neįjungti. Gali būti paveiktas suderinamumas su kai kuriais žaidimais. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Suderinamumo pataisymai neįjungti. Gali būti paveiktas suderinamumas su kai kuriais žaidimais. - + Frame rate for NTSC is not default. This may break some games. - Frame rate for NTSC is not default. This may break some games. + NTSC kadrų greitis nėra numatytasis. Tai gali sugadinti kai kuriuos žaidimus. - + Frame rate for PAL is not default. This may break some games. - Frame rate for PAL is not default. This may break some games. + PAL kadrų dažnis nėra numatytasis. Tai gali sugadinti kai kuriuos žaidimus. - + EE Recompiler is not enabled, this will significantly reduce performance. - EE Recompiler is not enabled, this will significantly reduce performance. + EE rekompilatorius nėra įjungtas, tai gerokai sumažins našumą. - + VU0 Recompiler is not enabled, this will significantly reduce performance. - VU0 Recompiler is not enabled, this will significantly reduce performance. + VU0 rekompilatorius nėra įjungtas, tai gerokai sumažins našumą. - + VU1 Recompiler is not enabled, this will significantly reduce performance. - VU1 Recompiler is not enabled, this will significantly reduce performance. + VU1 rekompilatorius nėra įjungtas, tai gerokai sumažins našumą. - + IOP Recompiler is not enabled, this will significantly reduce performance. - IOP Recompiler is not enabled, this will significantly reduce performance. + IOP rekompilatorius nėra įjungtas, tai gerokai sumažins našumą. - + EE Cache is enabled, this will significantly reduce performance. - EE Cache is enabled, this will significantly reduce performance. + EE spartinančioji atmintinė yra įjungta, tai gerokai sumažins našumą. - + EE Wait Loop Detection is not enabled, this may reduce performance. - EE Wait Loop Detection is not enabled, this may reduce performance. + EE laukimo kilpos aptikimas neįjungtas, tai gali sumažinti našumą. - + INTC Spin Detection is not enabled, this may reduce performance. - INTC Spin Detection is not enabled, this may reduce performance. + INTC sukimosi aptikimas neįjungtas, tai gali sumažinti našumą. - + Instant VU1 is disabled, this may reduce performance. - Instant VU1 is disabled, this may reduce performance. + Akimirksnis VU1 yra išjungtas, dėl to gali sumažėti našumas. - + mVU Flag Hack is not enabled, this may reduce performance. - mVU Flag Hack is not enabled, this may reduce performance. + mVU vėliavos hackas neįjungtas, tai gali sumažinti našumą. - + GPU Palette Conversion is enabled, this may reduce performance. - GPU Palette Conversion is enabled, this may reduce performance. + GPU paletės konvertavimas yra įjungtas, gali sumažėti našumas. - + Texture Preloading is not Full, this may reduce performance. - Texture Preloading is not Full, this may reduce performance. + Tekstūrų išankstinis įkėlimas nėra pilnas, dėl to gali sumažėti našumas. - + Estimate texture region is enabled, this may reduce performance. - Estimate texture region is enabled, this may reduce performance. + Numatomas tekstūros regionas yra įjungtas, tai gali sumažinti našumą. diff --git a/pcsx2-qt/Translations/pcsx2-qt_lv-LV.ts b/pcsx2-qt/Translations/pcsx2-qt_lv-LV.ts index d4584ff17c79ff..5ae01a82bea1d5 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_lv-LV.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_lv-LV.ts @@ -80,33 +80,39 @@ Gatavs... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Jūsu RetroAchievements pieteikšanās žetons vairs nav derīgs.</strong> Lai izsekotu sasniegumus, atkārtoti jāievada akreditācijas dati. Jūsu parole netiks saglabāta PCSX2, tā vietā tiks ģenerēts un izmantots piekļuves žetons. - + &Login &Pieteikties - + Logging in... Pieslēdzas... - + Login Error Pieslēgšanās kļūda - - Login failed. Please check your username and password, and try again. - Pieteikšanās neizdevās. Lūdzu pārbaudiet lietotājvārdu un paroli, un mēģiniet vēlreiz. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login failed. +Error: %1 + +Please check your username and password, and try again. - + Login failed. Pieslēgšanās neizdevās. @@ -114,270 +120,502 @@ AchievementSettingsWidget - - Global Settings - Globālie iestatījumi - - - - + + Enable Achievements Ieslēgt Sasniegumus - - - Show Challenge Indicators - Rādīt Izaicinājumu Indikātorus - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Rādīt RA Rich Presence - - - - + + Enable Hardcore Mode Ieslēgt Hardcore Režīmu - - - Enable Leaderboards - Ieslēgt Līderu saraktu - - - + Test Unofficial Achievements Izmēģināt Neoficiālos Sasniegumus - - - Enable Test Mode - Ieslēgt Izmēģinājuma Režīmu - - - - + + Enable Sound Effects Ieslēgt Skaņas Efektus - + Notifications Paziņojumi - - - Show Notifications - Parādīt Paziņojumus - - - - Duration - Ilgums - - - - - - + + 5 seconds 5 sekundes - + Account Konts - - + + Login... Pieteikties... - + View Profile... Skatīt Profilu... - + + Settings + Settings + + + + + Enable Spectator Mode + Enable Spectator Mode + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Show Achievement Notifications + + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info Spēles Informācija - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 izmanto RetroAchievements kā sasniegumu datubāzi un progresa sekošanai. Lai izmantotu sasniegumus, lūdzu izveidojiet kontu <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Lai apskatītu spēles laikā sasniegumus, nospiediet taustiņu <span style=" font-weight:600;">Atvērt Pauzes Izvēlni</span> un izvēlieties <span style=" font-weight:600;">Sasniegumi</span> no izvēlnes.</p></body></html> + - seconds -  sekundes - - - - + + - - Unchecked Neatzīmēts - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Kad ieslēgts un pieslēdzies, PCSX2 skenēs sasniegumus spēles lādēšanās laikā - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Kad iespējots, PCSX2 pieņems, ka visi sasniegumi ir bloķēti, un nesūtīs serverim paziņojumus par atbloķēšanu. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Kad iespējots. PCSX2 uzskaitīs sasniegumus no neoficiālām kopām. Ņemiet vērā, ka šiem sasniegumiem RetroSasniegumi neseko līdzi, tāpēc tie atslēdzas katru reizi. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Kad iespējots, rich presence informācija tiks apkopota un nosūtīta RetroAchievements serveriem, ja tas tiks atbalstīts. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Izaicinājumi" režīms sasniegumiem, ieskaitot līderu saraksta izsekošanai. Atspējo saglabāšanas stāvokļa, čītu un palēnināšanas funkcijas. - - - - + + + + Checked Pārbaudīts - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Iespējo atbalstīto spēļu līderu sarakstu sekošanu un iesniegšanu. Ja līderu saraksti ir atspējoti, jūs joprojām varēsit skatīt sarakstu un rezultātus, taču rezultāti netiks augšupielādēti. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Displejā izlecojošie ziņojumi par notikumiem, piemēram, sasniegumu atbloķēšana un līderu saraksta iesniegšana. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Atskaņo skaņas efektus tādiem notikumiem kā sasniegumu atbloķēšana un līderu saraksta iesniegšana. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Parāda ikonas ekrāna apakšējā labajā stūrī, kad ir aktīvs izaicinājums/sasniegums. - - - - Notification Duration - Ziņojuma Ilgums + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Sasniegumu izlecoša paziņojuma ilgums uz ekrāna sekundēs. + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Reset System Atiestatīt Sistēmu - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore režīms netiks iespējots, kamēr sistēma netiks atiestatīta. Vai vēlaties atiestatīt sistēmu tagad? + + + + %n seconds + + %n seconds + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Lietotājvārds: %1 Pieslēgšānās žetons ģenerēts uz %2 - + Logout Atslēgties - + Not Logged In. Nav Pieslēdzies. - - - %1 seconds - %1 sekundes - Achievements - + Hardcore mode will be enabled on system reset. Sistēmas atiestatīšanas laikā tiks iespējots hardcore režīms. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} nevar izpildīt, kamēr ir aktīvs hardcore režīms. Vai vēlaties atspējot hardcore režīmu? {0} tiks atcelts, ja būs atlasīts Nē. - + Hardcore mode is now enabled. Hardcore režīms šobrīd ir iespējots. - + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Unofficial) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. Hardcore režīms šobrīd ir atspējots. - + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (Hardcore Režīms) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Jūs esat nopelnījis {0} no {1} sasniegumiem un {2} no {3} punktiem. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - Šai spēlei nav sasniegumu. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Unknown + + + + Locked + Locked + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + Unofficial + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Unlocked: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Name + + + + Time + Time + + + + Score + Score + + + + Value + Value + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + Loading... - - Leaderboard submission is enabled. - Līderu saraksta iesniegšana ir iespējota. + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + Šai spēlei nav sasniegumu. - + Failed to read executable from disc. Achievements disabled. Neizdevās nolasīt izpildāmo failu no diska. Sasniegumi ir atspējoti. @@ -581,220 +819,220 @@ Pieslēgšānās žetons ģenerēts uz %2 AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Mainot šīs opcijas, spēles var kļūt nefunkcionālas. Modificējiet uz sava riska pamata, pcsx2 komanda nenodrošinās atbalstu konfigurācijām, mainot šos iestatījumus. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Noapaļošanas Režīms: - - - + + + Nearest Tuvākais - - - + + + Negative Negatīvs - - - + + + Positive Pozitīvs - - - + + + Chop / Zero (Default) Apgriezt / Nulle (Noklusējums) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Saspiešanas Režīms: - - + + None Nekā - - - + + + Normal (Default) Normāls (Noklusējums) - + None ClampMode Nekā - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Papildus + Saglabāšanas Zīme - + Full Pilns - + Wait Loop Detection Gaidīšanas Cikla Novēršana - - + + Enable Recompiler Iespējot Pārkompilatoru - + Enable Fast Memory Access Iespējot Ātras Atmiņas Piekļuvi - + Enable Cache (Slow) Iespējot Kešatmiņu (Lēni) - + INTC Spin Detection INTC Griezes Noteikšana - + Pause On TLB Miss Pauzēt Uz TLB Kļūmes - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vektoru Vienības (VU) - + VU1 Rounding Mode: VU1 Noapaļošanas Režīms: - + mVU Flag Hack mVU Indikācijas Korekcija - + Enable VU1 Recompiler Iespējot VU1 Pārkompilatoru - + Enable VU0 Recompiler (Micro Mode) Iespējot VU0 Pārkompilatoru (Mikrorežīms) - - + + Extra Papildus - + VU0 Clamping Mode: VU0 Saspiešanas Režīms: - + VU0 Rounding Mode: VU0 Noapaļošanas Režīms: - + VU1 Clamping Mode: VU1 Saspiešanas Režīms: - + I/O Processor (IOP, MIPS-I) I/O Processors (IOP, MIPS-I) - + Game Settings Spēļu Iestatījumi - + Enable Game Fixes Iespējot Spēļu Labojumus - + Enable Compatibility Patches Iespējot Saderības Izlabojumus - + Frame Rate Control Kadru Ātruma Kontrole - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL Kadru Ātrums: - + NTSC Frame Rate: NTSC Kadru Ātrums: - + PINE Settings PINE Iestatījumi - + Slot: Slots: - + Enable Iespējot @@ -802,189 +1040,189 @@ Pieslēgšānās žetons ģenerēts uz %2 AudioSettingsWidget - + Timestretch Settings - Timestretch Settings + TimeStretch Iestatījumi - + Sequence Length: - Sequence Length: + Secības Garums: - + 30 - 30 + 30 - + Seekwindow Size: - Seekwindow Size: + Meklēšanas Loga Izmērs: - + 20 - 20 + 20 - + Overlap: - Overlap: + Pārklāšanās: - + 10 - 10 + 10 - + Restore Defaults - Restore Defaults + Atjaunot Noklusējumus - + Volume - Volume + Skaļums - + 100% - 100% + 100% - + Mixing Settings - Mixing Settings + Miksera Iestatījumi - + Synchronization: - Synchronization: + Sinhronizācija: - + TimeStretch (Recommended) - TimeStretch (Recommended) + TimeStretch (Rekomemdēts) - + Async Mix (Breaks some games!) - Async Mix (Breaks some games!) + Async Mix (Bojā dažas spēles!) - + None (Audio can skip.) - None (Audio can skip.) + Nekā (Audio var raustīties.) - + Expansion: - Expansion: + Paplašinājums: - + Stereo (None, Default) - Stereo (None, Default) + Stereo (Nekā, Noklusējums) - + Quadraphonic - Quadraphonic + Kvadrafonisks - + Surround 5.1 - Surround 5.1 + Surround 5.1 - + Surround 7.1 - Surround 7.1 + Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. - ProLogic Level: + ProLogic Līmenis: - + None (Default) - None (Default) + Nekā (Noklusējums) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. - ProLogic Decoding (basic) + ProLogic Dekodēšana (Vienkāršs) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. - ProLogic II Decoding (gigaherz) + ProLogic II Dekodēšana (gigahercos) - + Target Latency: - Target Latency: + Mērķa Latentums: - + 60 ms - 60 ms + 60 ms - + Output Settings - Output Settings + Izvades Istatījumi - + Output Module: - Output Module: + Izvades Modulis: - + Output Latency: - Output Latency: + Izvades Latnentums: - + 20 ms - 20 ms + 20 ms - + Minimal - Minimal + Minimāls - + Output Backend: - Output Backend: + Izvades Aizmugursistēma: - + Maximum Latency: - Maximum Latency: + Māksimālais Latentums: - + Output Device: - Output Device: + Izvades Ierīce: Cubeb (Cross-platform) - Cubeb (Cross-platform) + Cubeb (Krossplatforma) @@ -994,43 +1232,43 @@ Pieslēgšānās žetons ģenerēts uz %2 ms Measuring unit that will appear after the number selected in its option. Adapt the space depending on your language's rules. - ms + ms Synchronization - Synchronization + Sinhronizācija When running outside of 100% speed, adjusts the tempo on audio instead of dropping frames. Produces much nicer fast-forward/slowdown audio. - When running outside of 100% speed, adjusts the tempo on audio instead of dropping frames. Produces much nicer fast-forward/slowdown audio. + Skrienot ārpus 100% ātruma, pielāgo audio tempu, nevis nomet kadrus. Rada daudz jaukāku ātri pārtīšanas/palēnināšanas audio. Expansion - Expansion + Paplašinājums Determines how the stereo output from the emulated system is upmixed into a greater number of the output speakers. - Determines how the stereo output from the emulated system is upmixed into a greater number of the output speakers. + Nosaka, kā stereo izvade no emulētās sistēmas tiek sajaukta lielākā skaitā izvades skaļruņu. Output Module Cubeb is an audio engine name. Leave as-is. - Output Module + Izvades Modulis Selects the library to be used for audio output. - Selects the library to be used for audio output. + Atlasa bibliotēku, kas tiks izmantota audio izvadei. Output Backend - Output Backend + Izvades Aizmugursistēma @@ -1039,105 +1277,105 @@ Pieslēgšānās žetons ģenerēts uz %2 Default - Default + Noklusējums When the sound output module supports multiple audio backends, determines the API to be used for audio output to the system. - When the sound output module supports multiple audio backends, determines the API to be used for audio output to the system. + Ja skaņas izvades modulis atbalsta vairākas audio aizmugursistēmas, nosaka API, kas jāizmanto audio izvadīšanai sistēmā. Output Device - Output Device + Izvades Ierīce Determines which audio device to output the sound to. - Determines which audio device to output the sound to. + Nosaka, uz kuru audio ierīci izvadīt skaņu. Target Latency - Target Latency + Mērķa Latentums Determines the buffer size which the time stretcher will try to keep filled. It effectively selects the average latency, as audio will be stretched/shrunk to keep the buffer size within check. - Determines the buffer size which the time stretcher will try to keep filled. It effectively selects the average latency, as audio will be stretched/shrunk to keep the buffer size within check. + Nosaka bufera lielumu, kuru laika paplašinātājs mēģinās saglabāt aizpildītu. Tas efektīvi atlasa vidējo latentumu, jo audio tiks izstiepts/saraustīts, lai bufera lielums tiktu pārbaudīts. Output Latency - Output Latency + Izvades Latnentums Determines the latency from the buffer to the host audio output. This can be set lower than the target latency to reduce audio delay. - Determines the latency from the buffer to the host audio output. This can be set lower than the target latency to reduce audio delay. + Nosaka latentumu no bufera līdz resursa audio izvades. To var iestatīt zemāku par mērķa latentumu, lai samazinātu audio aizkavi. Sequence Length - Sequence Length + Secības Garums 30 ms - 30 ms + 30 ms Seek Window Size Seek Window: the region of samples (window) the audio stretching algorithm is allowed to search. - Seek Window Size + Meklēšanas Loga Izmērs Overlap - Overlap + Pārklāšanās 10 ms - 10 ms + 10 ms Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. - Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. + Pirms spēles audio izvades pārsūtīšanas uz datoru tiek iepriekš lietots skaļuma modifikators. Use Global Setting [%1] - Use Global Setting [%1] + Izmantot Vispārējo Iestatījumu [%1] %1% Variable value that indicates a percentage. Preserve the %1 variable, adapt the latter % (and/or any possible spaces) to your language's ruleset. - %1% + %1% N/A Preserve the %1 variable, adapt the latter ms (and/or any possible spaces in between) to your language's ruleset. - N/A + N/A %1 ms - %1 ms + %1 ms Average Latency: %1 ms (%2 ms buffer + %3 ms output) - Average Latency: %1 ms (%2 ms buffer + %3 ms output) + Vidējais Latentums: %1 ms (%2 ms buferis + %3 ms izvade) Average Latency: %1 ms (minimum output latency unknown) - Average Latency: %1 ms (minimum output latency unknown) + Vidējais Latentums: %1 ms (minimālais izejas latentums nav zināms) @@ -1147,182 +1385,192 @@ Pieslēgšānās žetons ģenerēts uz %2 Automatic Updater - Automatic Updater + Automātisks Atjauninātājs Update Available - Update Available + Pieejams Atjauninājums Current Version: - Current Version: + Pašreizējā Versija: New Version: - New Version: + Jauna Versija: - - Download and Install... - Download and Install... + + Download Size: + Download Size: - Skip This Update - Skip This Update + Download and Install... + Lejupielādēt un Instalēt... + Skip This Update + Izlaist Šo Atjauninājumu + + + Remind Me Later - Remind Me Later + Atgādināt vēlāk Updater Error - Updater Error + Kļūda Atjaunojot - + <h2>Changes:</h2> - <h2>Changes:</h2> + <h2>Izmaiņas:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> + <h2>Saglabāšanas Stāvokļa Brīdinājums</h2><p>Instalējot šo atjauninājumu, tiks iestatīti saglabāšanas statusi <b>nesaderīgs</b>. Pirms šī atjauninājuma instalēšanas pārliecinieties, ka esat saglabājis spēles atmiņas kartē, pretējā gadījumā jūs zaudēsiet progresu.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> - <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> + <h2>Istatījumu Brīdinājums</h2><p>Instalējot šo atjauninājumu, jūsu programmas konfigurācija tiks atiestatīta. Lūdzu, ņemiet vērā, ka pēc šī atjauninājuma iestatījumi būs jāpārkonfigurē.</p> Savestate Warning - Savestate Warning + Saglabāšanas Brīdinājums <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> - <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> + <h1>BRĪDINĀJUMS</h1><p style='font-size:12pt;'>Instalējot šo atjauninājumu, jūsu <b>saglabāšanas stāvokļi kļūs nesaderīgi</b>, <i> pirms turpināšanas, saglabājiet progresu savās atmiņas kartēs</i>.</p><p>Vai vēlaties turpināt?</p> Downloading %1... - Downloading %1... + Lejupielādē %1... Cancel - Cancel + Atcelt No updates are currently available. Please try again later. - No updates are currently available. Please try again later. + Pašlaik nav pieejami atjauninājumi. Lūdzu, vēlāk mēģiniet vēlreiz. Current Version: %1 (%2) - Current Version: %1 (%2) + Esošā Versija: %1 (%2) New Version: %1 (%2) - New Version: %1 (%2) + Jauna Versija: %1 (%2) + Download Size: %1 MB + Download Size: %1 MB + + + Loading... - Loading... + Notiek ielāde... BIOSSettingsWidget - + BIOS Directory - BIOS Directory + BIOS Direktorija - + PCSX2 will search for BIOS images in this directory. - PCSX2 will search for BIOS images in this directory. + PCSX2 meklēs BIOS attēlus šajā direktorijā. - + Browse... - Browse... + Pārlūkot... - + Reset - Reset + Atiestatīt - + BIOS Selection - BIOS Selection + BIOS Izvēlne - - Open in Explorer... - Open in Explorer... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List - Refresh List + Atsvaidzināt Sarakstu - + Filename - Filename + Faila nosaukums - + Version - Version + Versija - + Options and Patches - Options and Patches + Opcijas un Izmaiņas - + Fast Boot - Fast Boot + Fast Boot - + Fast Forward Boot - Fast Forward Boot + Ātra Paātrinājuma Palaišana Checked - Checked + Pārbaudīts Patches the BIOS to skip the console's boot animation. - Patches the BIOS to skip the console's boot animation. + Izlabo BIOS, lai izlaistu konsoles sāknēšanas animāciju. Unchecked - Unchecked + Nepārbaudīts Removes emulation speed throttle until the game starts to reduce startup time. - Removes emulation speed throttle until the game starts to reduce startup time. + Noņem emulācijas ātruma sajūgu, līdz spēle sāk samazināt starta laiku. @@ -1330,64 +1578,64 @@ Pieslēgšānās žetons ģenerēts uz %2 Create / Modify Breakpoint - Create / Modify Breakpoint + Izveidot /Mainīt Pārtrūkuma Punktu Type - Type + Tips Execute - Execute + Izpildīt Memory - Memory + Atmiņa Address - Address + Adrese 0 - 0 + 0 Read - Read + Lasīt Write - Write + Rakstīt Change - Change + Izmaiņas Size - Size + Izmērs 1 - 1 + 1 Condition - Condition + Stāvoklis @@ -1427,91 +1675,84 @@ Pieslēgšānās žetons ģenerēts uz %2 BreakpointModel - + Execute Execute - - No Condition - No Condition - - - - + + -- -- - - + Enabled Enabled - - + Disabled Disabled - + Read Read - + Write(C) (C) = changes, as in "look for changes". Write(C) - + Write Write - + TYPE Warning: limited space available. Abbreviate if needed. TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. SIZE / LABEL - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCTION - + CONDITION Warning: limited space available. Abbreviate if needed. CONDITION - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1522,7 +1763,7 @@ Pieslēgšānās žetons ģenerēts uz %2 Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - + Saving CDVD block dump to '{}'. Saving CDVD block dump to '{}'. @@ -1558,32 +1799,32 @@ Pieslēgšānās žetons ģenerēts uz %2 ControllerBindingWidget - + Virtual Controller Type Virtual Controller Type - + Bindings Bindings - + Settings Settings - + Macros Macros - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -1623,146 +1864,146 @@ Pieslēgšānās žetons ģenerēts uz %2 ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. D-Pad - - - + + + Down Down - - - + + + Left Left - - - + + + Up Up - - - + + + Right Right - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Left Analog - + Large Motor Large Motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Face Buttons - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cross - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Square - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangle - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Circle - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Right Analog - + Small Motor Small Motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Pressure Modifier - + Analog Analog @@ -1770,77 +2011,72 @@ Pieslēgšānās žetons ģenerēts uz %2 ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow Yellow - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start Start - + Red Red - + Green Green - + Orange Orange - + Select Select - + Strum Up Strum Up - + Strum Down Strum Down - + Blue Blue - + Whammy Bar Whammy Bar - + Tilt Tilt @@ -1866,123 +2102,133 @@ Pieslēgšānās žetons ģenerēts uz %2 ControllerGlobalSettingsWidget - + SDL Input Source SDL Input Source - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - + Enable SDL Input Source Enable SDL Input Source - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense Enhanced Mode - + XInput Source XInput Source - + Enable XInput Input Source Enable XInput Input Source - + DInput Source DInput Source - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - + Enable DInput Input Source Enable DInput Input Source - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Profile Settings - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - + Use Per-Profile Hotkeys Use Per-Profile Hotkeys - - + + Controller LED Settings Controller LED Settings - + Enable SDL Raw Input Enable SDL Raw Input - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - + Controller Multitap Controller Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - + Multitap on Console Port 1 Multitap on Console Port 1 - + Multitap on Console Port 2 Multitap on Console Port 2 - + Mouse/Pointer Source Mouse/Pointer Source - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 allows you to use your mouse to simulate analog stick movement. - + Settings... Settings... - + Enable Mouse Mapping Enable Mouse Mapping - + Detected Devices Detected Devices @@ -2018,58 +2264,58 @@ Pieslēgšānās žetons ģenerēts uz %2 ControllerMacroEditWidget - + Binds/Buttons Binds/Buttons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - + Pressure Pressure - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - - + + 100% 100% - + Trigger Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: Deadzone: - + Frequency Frequency - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Set... @@ -2172,46 +2418,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller Settings - + Editing Profile: Editing Profile: - + New Profile New Profile - + Load Profile Load Profile - + Delete Profile Delete Profile - - + + Restore Defaults Restore Defaults - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2222,35 +2468,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Error - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2263,12 +2509,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2277,12 +2523,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2295,13 +2541,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2309,8 +2555,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2318,26 +2564,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2409,204 +2655,242 @@ You cannot undo this action. Functions - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Refresh - + Filter Filter - + Memory Search Memory Search - + End End - + Value Value - + Start Start - + Type Type - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Search - + Memory Memory - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New New - + Edit Edit - - - + + + Copy Copy - + Delete Delete - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2662,22 +2946,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet Device: - + Ethernet Device Type: Ethernet Device Type: - + Intercept DHCP Intercept DHCP @@ -2687,135 +2971,130 @@ You cannot undo this action. Enabled - + Enabled InterceptDHCP Enabled - + Subnet Mask: Subnet Mask: - + Gateway Address: Gateway Address: - - + + Auto Auto - + Intercept DHCP: Intercept DHCP: - + PS2 Address: PS2 Address: - + DNS1 Address: DNS1 Address: - + DNS2 Address: DNS2 Address: - + Internal DNS Internal DNS - + Add Add - + Delete Delete - + Export Export - + Import Import - + Per game Per game - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Enabled - + Hard Disk Drive Hard Disk Drive - + HDD File: HDD File: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD Enabled - + Browse Browse - + Create Image Create Image - - - - - PCAP Bridged @@ -2848,7 +3127,7 @@ You cannot undo this action. - + Use Global Setting [%1] Use Global Setting [%1] @@ -2868,78 +3147,78 @@ You cannot undo this action. Address - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Exported Successfully - + Failed to open file Failed to open file - + No Hosts in file No Hosts in file - + Imported Successfully Imported Successfully - - + + Per Game Host list Per Game Host list - + Copy global settings? Copy global settings? - + Delete per game host list? Delete per game host list? - + HDD Image File HDD Image File - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Overwrite File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2948,22 +3227,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2971,69 +3250,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Browse... - - + + Open... Open... @@ -3046,29 +3325,53 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run Run - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Pause @@ -3081,149 +3384,174 @@ Do you want to overwrite? Disassembly - + Copy Address Copy Address - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3231,17 +3559,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games Scan For New Games @@ -3249,49 +3577,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3299,192 +3622,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled Disabled - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3572,12 +3895,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3641,45 +3974,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3687,79 +4015,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3767,2082 +4095,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection BIOS Selection - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. - Sets the average output latency when using the cubeb backend. + Iestata vidējo izvades latentumu, izmantojot cubeb aizmugursistēmu. + + + + %d ms (avg) + %d ms (avg) - + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. - + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5851,2221 +6199,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications - + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} + + Game: {0} ({1}) + Game: {0} ({1}) - - Achievements: {} ({} points) - Achievements: {} ({} points) - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8078,7 +8327,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8133,12 +8382,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8194,7 +8443,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8205,266 +8454,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8472,74 +8863,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8548,12 +8965,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8561,32 +8978,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8612,17 +9029,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8640,7 +9057,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8659,399 +9076,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9059,62 +9487,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9124,12 +9552,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9140,92 +9568,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9233,355 +9661,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9589,79 +10022,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9672,606 +10100,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10281,69 +10719,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10352,43 +10784,43 @@ Swap chain: see Microsoft's Terminology Portal. Direct3D 11 Graphics backend/engine type. Leave as-is. - Direct3D 11 + Direct3D 11 Direct3D 12 Graphics backend/engine type. Leave as-is. - Direct3D 12 + Direct3D 12 OpenGL Graphics backend/engine type. Leave as-is. - OpenGL + OpenGL Vulkan Graphics backend/engine type. Leave as-is. - Vulkan + Vulkan Metal Graphics backend/engine type. Leave as-is. - Metal + Metāls Software Graphics backend/engine type (refers to emulating the GS in software, on the CPU). Translate accordingly. - Software + Programmatūra Null Null here means that this is a graphics backend that will show nothing. - Null + Nulle @@ -10412,8 +10844,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10465,6 +10897,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10524,11 +10957,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10580,6 +11023,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10595,11 +11093,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10637,7 +11130,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10726,8 +11219,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10869,11 +11362,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10924,11 +11412,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11046,7 +11529,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11086,6 +11569,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11139,29 +11627,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11169,405 +11667,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11726,6 +12224,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11753,137 +12341,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12076,7 +12664,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12133,14 +12721,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12645,13 +13233,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12663,7 +13251,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12674,7 +13262,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12689,27 +13277,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12722,168 +13310,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12898,97 +13491,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12997,12 +13590,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13015,70 +13608,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13087,42 +13680,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13130,8 +13723,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13212,6 +13805,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13262,11 +13856,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13392,103 +13981,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13658,58 +14248,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13759,10 +14349,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13958,6 +14553,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13974,14 +14579,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14028,13 +14633,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14105,40 +14703,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14156,13 +14777,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14367,7 +14988,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14417,222 +15037,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14645,12 +15286,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14663,33 +15304,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14775,8 +15398,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15043,97 +15666,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15339,6 +15962,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15370,6 +15998,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15385,6 +16019,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15405,6 +16045,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15460,6 +16106,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15660,6 +16315,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15670,6 +16345,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16169,117 +16850,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16287,67 +16968,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16355,71 +17036,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16428,29 +17109,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16458,27 +17139,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings Settings - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16516,32 +17197,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16558,197 +17239,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_nl-NL.ts b/pcsx2-qt/Translations/pcsx2-qt_nl-NL.ts index 2047620540f25a..0fde7b66fef175 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_nl-NL.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_nl-NL.ts @@ -80,32 +80,38 @@ Gereed... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Je Retro prestaties login token is niet langer geldig.</strong> Je moet opnieuw je referenties invoeren om je prestaties te kunnen volgen. Jouw wachtwoord wordt niet opgeslagen in PCSX2, er wordt een toegangstoken gegenereerd en gebruikt. - + &Login &Aanmelden - + Logging in... Aanmelden... - + Login Error Fout bij inloggen - - Login failed. Please check your username and password, and try again. - Het aanmelden is mislukt. Controleer je e-mail en/of wachtwoord en probeer het opnieuw. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Aanmelding mislukt. +Fout: %1 + +Controleer uw gebruikersnaam en wachtwoord en probeer het opnieuw. - + Login failed. Aanmelden mislukt. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Globale Instellingen - - - - + + Enable Achievements Prestaties ingeschakeld - - - Show Challenge Indicators - Toon Uitdagingsaanduidingen - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - RA's Rich Presence inschakelen - - - - + + Enable Hardcore Mode Hardcore modus inschakelen - - - Enable Leaderboards - Leaderboards inschakelen - - - + Test Unofficial Achievements Test Onofficiele Achievements - - - Enable Test Mode - Testmodus inschakelen - - - - + + Enable Sound Effects Geluidseffecten inschakelen - + Notifications Meldingen - - - Show Notifications - Notificaties weergeven - - - - Duration - Duur - - - - - - + + 5 seconds 5 seconden - + Account Account - - + + Login... Login... - + View Profile... Profiel bekijken... - + + Settings + Instellingen + + + + + Enable Spectator Mode + Schakel Kijkersmodus in + + + + + Enable Encore Mode + Schakel Herhalingsmodus in + + + + + Show Achievement Notifications + Toon Prestatiemeldingen + + + + + Show Leaderboard Notifications + Toon Scorebord meldingen + + + + + Enable In-Game Overlays + Schakel In-Spel Overlays in + + + + Username: +Login token generated at: + Gebruikersnaam: +Aanmeldingstoken gegenereerd op: + + + Game Info Game informatie - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 maakt gebruik van RetroAchievements als een prestatiesdatabase en voor het bijhouden van de vooruitgang. Om prestaties te gebruiken, meld u aan voor een account bij <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">De prestatielijst in-game bekijken. Druk op de sneltoets voor <span style=" font-weight:600;">Open Pause Menu</span> en selecteer <span style=" font-weight:600;">Prestaties</span> uit het menu.</p></body></html> + - seconds - seconden - - - - + + - - Unchecked Uitgeschakeld - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Wanneer ingeschakeld en aangemeld, zal PCSX2 scannen naar prestaties bij het laden van het spel. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Wanneer ingeschakeld, zal PCSX2 ervan uitgaan dat alle prestaties vergrendeld zijn en geen ontgrendelmeldingen naar de server sturen. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Wanneer ingeschakeld, zal PCSX2 prestaties weergeven uit niet-officiële sets. Houd er rekening mee dat deze prestaties niet worden bijgehouden door RetroAchievements, dus ze ontgrendelen elke keer. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Wanneer ingeschakeld, zal rijke prestatie-informatie worden verzameld en verzonden naar de RetroAchievements servers waarbij deze worden ondersteund. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Uitdaging" modus voor prestaties, inclusief het volgen van het scorebord. Schakelt het opslaan van staat, cheats en vertragingfuncties. - - - - + + + + Checked Ingeschakeld - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Activeert het volgen en indienen van scoreboards in ondersteunde spellen. Als leaderboards zijn uitgeschakeld, kun je nog steeds de ranglijst en scores bekijken, maar er worden geen scores geüpload. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Geeft meldingsberichten weer over evenementen zoals prestatie-ontgrendelingen en scorebord. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Speelt geluidseffecten af voor evenementen zoals prestatie-ontgrendelingen en het scorebord. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Toont pictogrammen in de rechterbenedenhoek van het scherm wanneer een uitdagings/voorbereid prestatie actief is. - - - - Notification Duration - Duur van melding + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Wanneer ingeschakeld en ingelogd, zal PCSX2 bij het opstarten scannen naar prestaties. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - De duur, in seconden, hoe lang een prestatie melding op het scherm blijft staan. + + Displays popup messages on events such as achievement unlocks and game completion. + Toont pop-upberichten bij gebeurtenissen zoals het ontgrendelen van prestaties en het voltooien van het spel. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Toont pop-upberichten bij het starten, indienen of mislukken van een scoreborduitdaging. + + + + When enabled, each session will behave as if no achievements have been unlocked. + Wanneer ingeschakeld, zal elke sessie zich voordoen alsof er geen prestaties zijn ontgrendeld. + + + Reset System Systeem Herstarten - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore modus zal niet worden ingeschakeld totdat het systeem is gereset. Wilt u het systeem nu resetten? + + + + %n seconds + + %n seconden + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Gebruikersnaam: %1 Aanmeldingstoken gegenereerd op %2. - + Logout Uitloggen - + Not Logged In. Niet ingelogd. - - - %1 seconds - %1 seconden - Achievements - + Hardcore mode will be enabled on system reset. Hardcore modus zal worden ingeschakeld bij een systeem reset. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} kan niet worden uitgevoerd wanneer de hardcore modus actief is. Wil je de hardcore modus uitschakelen? {0} zal worden geannuleerd als je voor Nee kiest. - + Hardcore mode is now enabled. Hardcore modus is nu ingeschakeld. - + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Onofficieel) + + + + Mastered {} + Voltooid {} in Hardcore Modus + + + + Leaderboard attempt started. + Scorebord poging gestart. + + + + Leaderboard attempt failed. + Scorebord poging mislukt. + + + + Your Time: {}{} + Je tijd: {} {} + + + + Your Score: {}{} + Je score: {}{} + + + + Your Value: {}{} + Je waarde: {}{} + + + + (Submitting) + (Aan het indienen) + + + + Achievements Disconnected + Prestaties Verbroken + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Een ontgrendelverzoek kon niet worden voltooid. We zullen blijven proberen om dit verzoek in te dienen. + + + + Achievements Reconnected + Prestaties Hersteld + + + + All pending unlock requests have completed. + Alle openstaande ontgrendel verzoeken zijn voltooid. + + + Hardcore mode is now disabled. Hardcore modus is nu uitgeschakeld. - + + Confirm Hardcore Mode + Bevestig Hardcore Modus + + + + Active Challenge Achievements + Prestaties voor Actieve Uitdagingen + + + (Hardcore Mode) (Hardcore Modus) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Je hebt {0} van {1} prestaties verdiend, en {2} van {3} punten. + + You have unlocked all achievements and earned {} points! + Je hebt alle prestaties ontgrendeld en {} punten verdiend! - - This game has no achievements. - Dit spel heeft geen verdienbare prestaties. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Je hebt {0} van de {1} prestaties ontgrendeld en {2} van de {3} punten verdiend. + + + + {0} achievements, {1} points + {0} prestaties, {1} punten - - Leaderboard submission is enabled. - Leidersbord-inzending is ingeschakeld. + + Your Time: {0} (Best: {1}) + Je Tijd: {0} (Beste: {1}) - + + Your Score: {0} (Best: {1}) + Je Score{0} (Beste: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Je hebt {0} van de {1} prestaties ontgrendeld en {2} van de {3} mogelijke punten verdiend. + + + + Unknown + Onbekend + + + + Locked + Vergrendeld + + + + Unlocked + Ontgrendeld + + + + Unsupported + Niet ondersteund + + + + Unofficial + Onofficieel + + + + Recently Unlocked + Onlangs ontgrendeld + + + + Active Challenges + Actieve Uitdagingen + + + + Almost There + Bijna Voltooid + + + + {} points + {} punten + + + + {} point + {} punt + + + + XXX points + XXX punten + + + + Unlocked: {} + Ontgrendeld: {} + + + + This game has {} leaderboards. + Dit spel heeft {} scoreborden. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Het indienen van scores is uitgeschakeld omdat de hardcore-modus uit staat. Scoreborden zijn alleen-lezen. + + + + Show Best + Show Best + + + + Show Nearby + Toon Vlakbij + + + + Rank + Rang + + + + Name + Naam + + + + Time + Tijd + + + + Score + Score + + + + Value + Waarde + + + + Date Submitted + Datum Ingediend + + + + Downloading leaderboard data, please wait... + Scorebord gegevens worden gedownload, even geduld alstublieft... + + + + + Loading... + Laden... + + + + + Leaderboard download failed + Scorebord download mislukt + + + + This game has no achievements. + Dit spel heeft geen verdienbare prestaties. + + + Failed to read executable from disc. Achievements disabled. Kan uitvoerbaar bestand niet lezen van disc. Verdienbare prestaties uitgeschakeld. @@ -562,236 +799,236 @@ Aanmeldingstoken gegenereerd op %2. Automatically loads and applies fixes to known problematic games on game start. - Automatically loads and applies fixes to known problematic games on game start. + Laad automatisch fixes en past deze automatisch toe bij de start van spellen met dat issue. Enable Compatibility Patches - Enable Compatibility Patches + Compatibiliteitspatches inschakelen Automatically loads and applies compatibility patches to known problematic games. - Automatically loads and applies compatibility patches to known problematic games. + Laadt en past automatisch compatibiliteitspatches toe bij bekende problematische spellen. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. + Het veranderen van deze opties kan ervoor zorgen dat spellen niet functioneren. Wijzig op eigen risico, het PCSX2-team biedt geen ondersteuning voor configuraties met deze instelling. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). - EmotionEngine (MIPS-IV) + EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. - Rounding Mode: + Afrondingsmodus: - - - + + + Nearest - Nearest + Dichtsbezijnde - - - + + + Negative Negatief - - - + + + Positive Positief - - - + + + Chop / Zero (Default) - Chop / Zero (Default) + Chop / Zero (standaard) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. - Clamping Mode: + Clamping modus: - - + + None Geen - - - + + + Normal (Default) - Normal (Default) + Normaal (Standaard) - + None ClampMode - None + Geen - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). - Extra + Preserve Sign + Extra + Behoud Teken - + Full Vol - + Wait Loop Detection - Wait Loop Detection + Wachtlus detectie - - + + Enable Recompiler - Enable Recompiler + Recompiler Inschakelen - + Enable Fast Memory Access - Enable Fast Memory Access + Schakel snelle geheugentoegang in - + Enable Cache (Slow) - Enable Cache (Slow) + Cache Inschakelen (Langzaam) - + INTC Spin Detection - INTC Spin Detection + INTC-Spin Detectie - + Pause On TLB Miss - Pause On TLB Miss + Pauzeer bij TLB Missers - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. - Vector Units (VU) + Vector eenheden (VU) - + VU1 Rounding Mode: - VU1 Rounding Mode: + VU1 afrondingsmodus: - + mVU Flag Hack - mVU Flag Hack + mVU Vlag Hack - + Enable VU1 Recompiler - Enable VU1 Recompiler + VU1 Recompiler Inschakelen - + Enable VU0 Recompiler (Micro Mode) - Enable VU0 Recompiler (Micro Mode) + VU0 Recompiler (Micro Modus) Inschakelen - - + + Extra Extra - + VU0 Clamping Mode: - VU0 Clamping Mode: + VU0 Klemmodus: - + VU0 Rounding Mode: - VU0 Rounding Mode: + VU0 Afrondingsmodus: - + VU1 Clamping Mode: - VU1 Clamping Mode: + VU1 Klemmodus: - + I/O Processor (IOP, MIPS-I) - I/O Processor (IOP, MIPS-I) + I/O-verwerker (IOP, MIPS-I) - + Game Settings Spelinstellingen - + Enable Game Fixes - Enable Game Fixes + Schakel Spel-Fixes in - + Enable Compatibility Patches - Enable Compatibility Patches + Compatibiliteitspatches inschakelen - + Frame Rate Control - Frame Rate Control + Frame Rate Controle - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. - hz + hz - + PAL Frame Rate: - PAL Frame Rate: + PAL Frame Rate: - + NTSC Frame Rate: - NTSC Frame Rate: + NTSC Frame Rate: - + PINE Settings PINE-instellingen - + Slot: Gleuf: - + Enable Inschakelen @@ -799,182 +1036,182 @@ Aanmeldingstoken gegenereerd op %2. AudioSettingsWidget - + Timestretch Settings Tijdsrekkingsinstellingen - + Sequence Length: Volgnummerlengte: - + 30 30 - + Seekwindow Size: Zoekvenstergrootte: - + 20 20 - + Overlap: Overlappen: - + 10 10 - + Restore Defaults Terug Naar Standaardinstellingen - + Volume Geluidsvolume - + 100% 100% - + Mixing Settings Menginstellingen - + Synchronization: Synchronisatie: - + TimeStretch (Recommended) Tijdsuitrekking (Aanbevolen) - + Async Mix (Breaks some games!) Async Mix (Breekt paar spellen) - + None (Audio can skip.) Geen (Audio kan gedeeltelijk springen) - + Expansion: Uitbreiding: - + Stereo (None, Default) Stereo (Geen, Standaard) - + Quadraphonic - Quadraphonic + Quadrafonisch - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Niveau: - + None (Default) Geen (Standaard) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Decoderen (basis) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II decoderen (gigaherz) - + Target Latency: Doelsvertraging: - + 60 ms 60 ms - + Output Settings Uitgangsinstellingen - + Output Module: Uitvoer Module: - + Output Latency: Uitvoersvertraging: - + 20 ms 20 ms - + Minimal Minimaal - + Output Backend: Uitvoer Backend: - + Maximum Latency: Maximale Vertraging: - + Output Device: Uitvoerapparaat: @@ -1006,28 +1243,28 @@ Aanmeldingstoken gegenereerd op %2. Expansion - Expansion + Uitbreiding Determines how the stereo output from the emulated system is upmixed into a greater number of the output speakers. - Determines how the stereo output from the emulated system is upmixed into a greater number of the output speakers. + Bepaalt hoe de stereo-uitvoer van het geëmuleerde systeem wordt samengevoegd tot een groter aantal van de uitvoerspeakers. Output Module Cubeb is an audio engine name. Leave as-is. - Output Module + Output Module Selects the library to be used for audio output. - Selects the library to be used for audio output. + Selecteert de bibliotheek die moet worden gebruikt voor de audio-uitvoer. Output Backend - Output Backend + Output backend @@ -1041,100 +1278,100 @@ Aanmeldingstoken gegenereerd op %2. When the sound output module supports multiple audio backends, determines the API to be used for audio output to the system. - When the sound output module supports multiple audio backends, determines the API to be used for audio output to the system. + Bepaal de API voor audio-uitvoer naar het systeem wanneer de geluidsuitvoer module meerdere audio-backends ondersteunt. Output Device - Output Device + Uitvoerapparaat Determines which audio device to output the sound to. - Determines which audio device to output the sound to. + Bepaalt naar welk audio apparaat het geluid moet worden uitgestuurd. Target Latency - Target Latency + Doel Latency Determines the buffer size which the time stretcher will try to keep filled. It effectively selects the average latency, as audio will be stretched/shrunk to keep the buffer size within check. - Determines the buffer size which the time stretcher will try to keep filled. It effectively selects the average latency, as audio will be stretched/shrunk to keep the buffer size within check. + Bepaalt de buffergrootte die de time-stretcher probeert vol te houden. Het selecteert effectief de gemiddelde latentie, omdat audio wordt uitgerekt/compressed om de buffergrootte binnen het bereik te houden. Output Latency - Output Latency + Uitvoersvertraging Determines the latency from the buffer to the host audio output. This can be set lower than the target latency to reduce audio delay. - Determines the latency from the buffer to the host audio output. This can be set lower than the target latency to reduce audio delay. + Bepaalt de vetraging van de buffer naar de audio-uitvoer van de host. Dit kan lager worden ingesteld dan de doelvertraging om de audiovertraging te verminderen. Sequence Length - Sequence Length + Sequentielengte 30 ms - 30 ms + 30 ms Seek Window Size Seek Window: the region of samples (window) the audio stretching algorithm is allowed to search. - Seek Window Size + Zoekvenstergrootte Overlap - Overlap + Overlappen 10 ms - 10 ms + 10 ms Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. - Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. + Past vooraf een volumeaanpassing toe op de audio-uitvoer van de game voordat deze naar uw computer wordt doorgestuurd. Use Global Setting [%1] - Use Global Setting [%1] + Gebruik Algemene Instellingen [%1] %1% Variable value that indicates a percentage. Preserve the %1 variable, adapt the latter % (and/or any possible spaces) to your language's ruleset. - %1% + %1% N/A Preserve the %1 variable, adapt the latter ms (and/or any possible spaces in between) to your language's ruleset. - N/A + N/A %1 ms - %1 ms + %1 ms Average Latency: %1 ms (%2 ms buffer + %3 ms output) - Average Latency: %1 ms (%2 ms buffer + %3 ms output) + Gemiddelde Vertraging: %1 ms (%2 ms buffer + %3 ms uitvoer) Average Latency: %1 ms (minimum output latency unknown) - Average Latency: %1 ms (minimum output latency unknown) + Gemiddelde Vertraging: %1 ms (minimum uitvoer vertraging onbekend) @@ -1144,7 +1381,7 @@ Aanmeldingstoken gegenereerd op %2. Automatic Updater - Automatic Updater + Automatische Updater @@ -1162,44 +1399,49 @@ Aanmeldingstoken gegenereerd op %2. Nieuwe versie: - + + Download Size: + Downloadgrootte: + + + Download and Install... Download en installeer... - + Skip This Update Update overslaan - + Remind Me Later Herinner mij later Updater Error - Updater Error + Updater fout - + <h2>Changes:</h2> <h2>Changes:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> Savestate Warning - Savestate Warning + Savestate Waarschuwing @@ -1209,12 +1451,12 @@ Aanmeldingstoken gegenereerd op %2. Downloading %1... - Downloading %1... + %1 downloaden... Cancel - Cancel + Annuleren @@ -1224,15 +1466,20 @@ Aanmeldingstoken gegenereerd op %2. Current Version: %1 (%2) - Current Version: %1 (%2) + Huidige versie: %1 (%2) New Version: %1 (%2) - New Version: %1 (%2) + Nieuwe versie: %1 (%2) + Download Size: %1 MB + Download grootte: %1 MB + + + Loading... Aan het laden... @@ -1240,86 +1487,86 @@ Aanmeldingstoken gegenereerd op %2. BIOSSettingsWidget - + BIOS Directory - BIOS Directory + BIOS map - + PCSX2 will search for BIOS images in this directory. - PCSX2 will search for BIOS images in this directory. + PCSX2 zoekt naar BIOS afbeeldingen in deze map. - + Browse... - Browse... + Bladeren... - + Reset - Reset + Resetten - + BIOS Selection - BIOS Selection + BIOS Selectie - - Open in Explorer... - Open in Explorer... + + Open BIOS Folder... + BIOS-map openen... - + Refresh List - Refresh List + Lijst verversen - + Filename Bestandsnaam - + Version Versie - + Options and Patches Opties en patches - + Fast Boot - Fast Boot + Snel Opstarten - + Fast Forward Boot - Fast Forward Boot + Snelle Voorwaartse Opstart Checked - Checked + Aangevinkt Patches the BIOS to skip the console's boot animation. - Patches the BIOS to skip the console's boot animation. + Hiermee verbetert u de BIOS om de console'de opstartanimatie over te slaan. Unchecked - Unchecked + Uitgevinkt Removes emulation speed throttle until the game starts to reduce startup time. - Removes emulation speed throttle until the game starts to reduce startup time. + Verwijdert emulatiesnelheid beperking tot het spel de opstarttijd begint te verminderen. @@ -1327,74 +1574,74 @@ Aanmeldingstoken gegenereerd op %2. Create / Modify Breakpoint - Create / Modify Breakpoint + Creëer / wijzig Breekpunt Type - Type + Soort Execute - Execute + Uitvoeren Memory - Memory + Geheugen Address - Address + Adres 0 - 0 + 0 Read - Read + Lezen Write - Write + Schrijven Change - Change + Wijzigen Size - Size + Grootte 1 - 1 + 1 Condition - Condition + Voorwaarde Log - Log + Logboek Enable - Enable + Inschakelen @@ -1402,113 +1649,106 @@ Aanmeldingstoken gegenereerd op %2. Error - Error + Foutmelding Invalid address "%1" - Invalid address "%1" + Ongeldig adres "%1" Invalid condition "%1" - Invalid condition "%1" + Ongeldige staat "%1" Invalid size "%1" - Invalid size "%1" + Ongeldige grootte "%1" BreakpointModel - + Execute - Execute + Uitvoeren - - No Condition - No Condition - - - - + + -- - -- + -- - - + Enabled - Enabled + Ingeschakeld - - + Disabled - Disabled + Uitgeschakeld - + Read - Read + Lezen - + Write(C) (C) = changes, as in "look for changes". - Write(C) + Schrijven(C) - + Write - Write + Schrijven - + TYPE Warning: limited space available. Abbreviate if needed. - TYPE + TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. - SIZE / LABEL + GROOTTE / LABEL - + INSTRUCTION Warning: limited space available. Abbreviate if needed. - INSTRUCTION + INSTRUCTIE - + CONDITION Warning: limited space available. Abbreviate if needed. - CONDITION + VOORWAARDE - + HITS Warning: limited space available. Abbreviate if needed. - HITS + HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1516,32 +1756,32 @@ Aanmeldingstoken gegenereerd op %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. + De locatie van de gamedisc bevindt zich op een verwijderbare schijf, prestatieproblemen zoals haperingen en bevriezingen kunnen optreden. - + Saving CDVD block dump to '{}'. - Saving CDVD block dump to '{}'. + CDVD blok dump opslaan naar '{}'. Audio - Audio + Geluid Mode 1 - Mode 1 + Modus 1 Mode 2 - Mode 2 + Modus 2 Unknown - Unknown + Onbekend @@ -1549,67 +1789,67 @@ Aanmeldingstoken gegenereerd op %2. Select LED Color - Select LED Color + Selecteer LED-kleur ControllerBindingWidget - + Virtual Controller Type - Virtual Controller Type + Virtueel Controller Type - + Bindings Sneltoetsen - + Settings - Settings + Instellingen - + Macros - Macros + Macros - + Automatic Mapping - Automatic Mapping + Automatische Toewijzing - + Clear Mapping - Clear Mapping + Toewijzing wissen Controller Port %1 - Controller Port %1 + Controller poort %1 No devices available - No devices available + Geen apparaten beschikbaar Clear Bindings Binding: A pair of (host button, target button); Mapping: A list of bindings covering an entire controller. These are two different things (which might be the same in your language, please make sure to verify this). - Clear Bindings + Verwijder Verbindingen Are you sure you want to clear all bindings for this controller? This action cannot be undone. Binding: A pair of (host button, target button); Mapping: A list of bindings covering an entire controller. These are two different things (which might be the same in your language, please make sure to verify this). - Are you sure you want to clear all bindings for this controller? This action cannot be undone. + Weet je zeker dat je alle logboeken voor deze configuratie wilt wissen? Deze actie kan niet ongedaan gemaakt worden. Automatic Binding - Automatic Binding + Automatische Toewijzing @@ -1620,226 +1860,221 @@ Aanmeldingstoken gegenereerd op %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - D-Pad + D-Pad - - - + + + Down - Down + Omlaag - - - + + + Left - Left + Links - - - + + + Up - Up + Omhoog - - - + + + Right - Right + Rechts - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Left Analog + Linkse Analoge Stick - + Large Motor - Large Motor + Grote Motor - + L2 Leave this button name as-is. - L2 + L2 - + R2 Leave this button name as-is. - R2 + R2 - + L1 Leave this button name as-is. - L1 + L1 - + R1 Leave this button name as-is. - R1 + R1 - + Start Leave this button name as-is or uppercase it entirely. - Start + Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Face Buttons - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Cross + Kruisje - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Square + Vierkantje - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Triangle + Driehoekje - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Circle + Rondje - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Right Analog + Rechter Analoge Joystick - + Small Motor - Small Motor + Kleine Motor - + L3 Leave this button name as-is. - L3 + L3 - + R3 Leave this button name as-is. - R3 + R3 - + Pressure Modifier - Pressure Modifier + Druk wijzigen - + Analog - Analog + Analoog ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow - Yellow - - - - - - - - - - - - - + Geel + + + + + + + + + + + + + PushButton - PushButton + Druk op Knop - + Start - Start + Start - + Red - Red + Rood - + Green - Green + Groen - + Orange - Orange + Oranje - + Select - Select + Selecteer - + Strum Up - Strum Up + Tokkel Omhoog - + Strum Down - Strum Down + Tokkel naar beneden - + Blue - Blue + Blauw - + Whammy Bar Whammy Bar - + Tilt - Tilt + Kantelen @@ -1847,141 +2082,151 @@ Aanmeldingstoken gegenereerd op %2. Restore Default Settings - Restore Default Settings + Herstel Standaard instellingen Browse... - Browse... + Verkennen... Select File - Select File + Kies een bestand ControllerGlobalSettingsWidget - + SDL Input Source - SDL Input Source + SDL invoerbron - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). + De SDL invoerbron ondersteunt de meeste controllers en biedt geavanceerde functionaliteit voor DualShock 4 / DualSense pads in Bluetooth-modus (Trillen / LED aansturing). - + Enable SDL Input Source - Enable SDL Input Source + Schakel SDL invoerbron in - + DualShock 4 / DualSense Enhanced Mode - DualShock 4 / DualSense Enhanced Mode + DualShock 4 / DualSense Verbeterde modus - + XInput Source - XInput Source + XInput bron - + Enable XInput Input Source - Enable XInput Input Source + XInput bron inschakelen - + DInput Source - DInput Source + DInput Bron - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. + De DInput bron biedt ondersteuning voor oudere controllers welke XInput niet ondersteunen. Toegang tot deze controllers via SDL in plaats van wordt aanbevolen, maar DirectInput kan worden gebruikt als ze niet compatibel zijn met SDL. - + Enable DInput Input Source - Enable DInput Input Source + Schakel Dinput invoerbron in + + + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion - + Profile Settings - Profile Settings + Profiel instellingen - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. + Als deze optie is ingeschakeld, kunnen sneltoetsen worden ingesteld in dit invoerprofiel en worden gebruikt in plaats van de globale sneltoetsen. Standaard worden sneltoetsen altijd over alle profielen gedeeld. - + Use Per-Profile Hotkeys - Use Per-Profile Hotkeys + Gebruik Per-Profile Sneltoetsen - - + + Controller LED Settings - Controller LED Settings + Controller LED instellingen - + Enable SDL Raw Input - Enable SDL Raw Input + Schakel SDL Rauwe invoer in - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. + De XInput bron biedt ondersteuning voor Xbox 360 / Xbox One / Xbox Series controllers, en derde partijen controllers die het XInput protocol implementeren. - + Controller Multitap - Controller Multitap + Controller Multi-tap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. + De multi-tap maakt het mogelijk om tot 8 controllers te verbinden met de console. Elke multi-tap levert 4 poorten. Multi-tap wordt niet door alle spellen ondersteund. - + Multitap on Console Port 1 - Multitap on Console Port 1 + Multi-tap op Console Poort 1 - + Multitap on Console Port 2 - Multitap on Console Port 2 + Multi-tap op Console Poort 2 - + Mouse/Pointer Source - Mouse/Pointer Source + Muis/Aanwijzer Bron - + PCSX2 allows you to use your mouse to simulate analog stick movement. - PCSX2 allows you to use your mouse to simulate analog stick movement. + Met PCSX2 kunt u de muis als analoge stick gebruiken. - + Settings... - Settings... + Instellingen... - + Enable Mouse Mapping Enable Mouse Mapping - + Detected Devices - Detected Devices + Gevonden apparaten @@ -1989,112 +2234,112 @@ Aanmeldingstoken gegenereerd op %2. Controller LED Settings - Controller LED Settings + Controller LED instellingen SDL-0 LED - SDL-0 LED + SDL-0 LED SDL-1 LED - SDL-1 LED + SDL-1 LED SDL-2 LED - SDL-2 LED + SDL-2 LED SDL-3 LED - SDL-3 LED + SDL-3 LED ControllerMacroEditWidget - + Binds/Buttons Binds/Buttons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - + Pressure - Pressure + Druk - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - - + + 100% - 100% + 100% - + Trigger - Trigger + Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: Deadzone: - + Frequency - Frequency + Frequentie - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... - Set... + Instellen... Not Configured - Not Configured + Niet geconfigureerd %1% - %1% + %1% Set Frequency - Set Frequency + Frequentie instellen Frequency: - Frequency: + Frequentie: Macro will not repeat. - Macro will not repeat. + Macro zal zich niet herhalen. @@ -2117,7 +2362,7 @@ Aanmeldingstoken gegenereerd op %2. Macro 1 Not Configured/Buttons configured - Macro %1 + Macro %1 %2 @@ -2126,12 +2371,12 @@ Not Configured/Buttons configured Mouse Mapping Settings - Mouse Mapping Settings + Muismapping instellingen Y Speed - Y Speed + Y-snelheid @@ -2140,22 +2385,22 @@ Not Configured/Buttons configured 10 - 10 + 10 X Speed - X Speed + X Snelheid <html><head/><body><p><span style=" font-weight:700;">Mouse Mapping Settings</span><br/>These settings fine-tune the behavior when mapping a mouse to the emulated controller.</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">Mouse Mapping Settings</span><br/>These settings fine-tune the behavior when mapping a mouse to the emulated controller.</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Muis MappinInstellingen</span><br/>Deze instellingen veranderen hoe je een muis aan de controller geeft.</p></body></html> Inertia - Inertia + Inertie @@ -2169,46 +2414,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - PCSX2 Controller Settings + PCSX2 Controller Instellingen - + Editing Profile: - Editing Profile: + Profiel bewerken: - + New Profile Nieuw Profiel - + Load Profile Laad profiel - + Delete Profile - Delete Profile + Profiel verwijderen - - + + Restore Defaults - Standaardinstellingen herstellen + Terug Naar Standaardinstellingen - - + + Create Input Profile - Create Input Profile + Invoerprofiel aanmaken - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2464,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error - Error + Fout - + A profile with the name '%1' already exists. - A profile with the name '%1' already exists. + Een profiel met de naam '%1' bestaat al. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2505,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2519,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2537,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings - Global Settings + Algemene instellingen - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2551,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2560,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2349,7 +2594,7 @@ You cannot undo this action. PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. + PCSX2 kan automatisch covers downloaden voor spellen die momenteel geen cover hebben ingesteld. Wij hosten geen coverafbeeldingen, de gebruiker moet zelf een bron voor afbeeldingen aanleveren. @@ -2375,22 +2620,22 @@ You cannot undo this action. Start - Start + Start Close - Close + Sluiten Download complete. - Download complete. + Download voltooid. Stop - Stop + Stop @@ -2403,209 +2648,247 @@ You cannot undo this action. Functions - Functions + Functies + + + + Module + Module + + + + Version + Versie - + + Count + Aantal + + + Refresh - Refresh + Ververs - + Filter - Filter + Filteren - + Memory Search - Memory Search + Geheugen doorzoeken - + End - End + Einde - + Value - Value + Waarde - + Start - Start + Start - + Type - Type + Soort - + 1 Byte (8 bits) - 1 Byte (8 bits) + 1 Byte (8 bits) - + 2 Bytes (16 bits) - 2 Bytes (16 bits) + 2 Byte (16 bits) - + 4 Bytes (32 bits) - 4 Bytes (32 bits) + 4 Byte (32 bits) - + 8 Bytes (64 bits) - 8 Bytes (64 bits) + 8 Byte (64 bits) - + Float - Float + Float - + Double - Double + Dubbel - + String - String + String - + Array of byte - Array of byte + Array van byte - + Hex - Hex + Hex - + Search Zoeken - + Memory Geheugen - + Breakpoints - Breakpoints + Breakpoints - + Threads - Threads + Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New - New + Nieuw - + Edit - Edit + Bewerken - - - + + + Copy - Copy + Kopiëer - + Delete - Delete + Verwijderen + + + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV - + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger - Debugger + Foutopsporing - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value - Invalid search value + Ongeldige zoekwaarde - + Value is larger than type - Value is larger than type + Waarde is groter dan type @@ -2618,201 +2901,196 @@ You cannot undo this action. Select Hosts - Select Hosts + Selecteer hosts OK - OK + OK Cancel - Cancel + Annuleren Selected - Selected + Geselecteerd Name - Name + Naam Url - Url + Host Naam Address - Address + Adres Enabled - Enabled + Ingeschakeld DEV9SettingsWidget - + Ethernet - Ethernet + Ethernet - + Ethernet Device: - Ethernet Device: + Ethernet apparaat: - + Ethernet Device Type: - Ethernet Device Type: + Ethernet Apparaat Type: - + Intercept DHCP Intercept DHCP Enabled - Enabled + Ingeschakeld - + Enabled InterceptDHCP - Enabled + Ingeschakeld - + Subnet Mask: - Subnet Mask: + Subnet Mask: - + Gateway Address: - Gateway Address: + Gateway Adres: - - + + Auto Auto - + Intercept DHCP: Intercept DHCP: - + PS2 Address: PS2 Address: - + DNS1 Address: DNS1 Address: - + DNS2 Address: DNS2 Address: - + Internal DNS Internal DNS - + Add Add - + Delete Delete - + Export Export - + Import Import - + Per game Per game - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Enabled - + Hard Disk Drive Hard Disk Drive - + HDD File: HDD File: - + 40 - 40 + 40 - + 120 - 120 + 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD - Enabled + Ingeschakeld - + Browse - Browse + Bladeren - + Create Image Create Image - - - - - PCAP Bridged @@ -2845,98 +3123,98 @@ You cannot undo this action. - + Use Global Setting [%1] - Use Global Setting [%1] + Gebruik Algemene Instellingen [%1] Name - Name + Naam Url - Url + Host Naam Address - Address + Adres - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Exported Successfully - + Failed to open file Failed to open file - + No Hosts in file No Hosts in file - + Imported Successfully Imported Successfully - - + + Per Game Host list Per Game Host list - + Copy global settings? Copy global settings? - + Delete per game host list? Delete per game host list? - + HDD Image File HDD Image File - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Overwrite File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3223,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2968,69 +3246,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... - Browse... + Bladeren... - - + + Open... Open... @@ -3043,29 +3321,53 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run Run - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Altijd op voorgrond + + + + Show this window on top + Show this window on top + + + Pause Pause @@ -3078,149 +3380,174 @@ Do you want to overwrite? Disassembly - + Copy Address - Copy Address + Adres kopiëren - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3228,17 +3555,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games Scan For New Games @@ -3246,48 +3573,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3295,192 +3618,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled - Disabled + Uitgeschakeld - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3568,12 +3891,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3637,45 +3970,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3683,79 +4011,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3763,2082 +4091,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display - On-Screen Display + Weergave op het scherm + + + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. - + BIOS Configuration - BIOS Configuration + BIOS instellingen - + BIOS Selection BIOS Selection - + Options and Patches - Options and Patches + Opties en patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Half-Pixel Offset + Opschaling correcties - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging - Logging + Logboekregistratie - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadrafonisch - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. - + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5847,2221 +6195,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + Gebruik een alternatieve methode om interne FPS te berekenen om onjuiste metingen in sommige spellen te voorkomen. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account - Account + Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game - Current Game - - - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. + Huidig spel - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} - Console Port {} + Console poort {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. - + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8074,7 +8323,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8129,12 +8378,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8190,7 +8439,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8201,266 +8450,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8468,74 +8859,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8544,12 +8961,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8557,32 +8974,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8608,17 +9025,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8636,7 +9053,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8655,399 +9072,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9055,62 +9483,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9120,12 +9548,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9136,92 +9564,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9229,355 +9657,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9585,79 +10018,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9668,606 +10096,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames - Skip Presenting Duplicate Frames + Overslaan Van Dubbele Beelden - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10277,69 +10715,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10408,8 +10840,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10461,23 +10893,24 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked Automatically loads and applies widescreen patches on game start. Can cause issues. - Automatically loads and applies widescreen patches on game start. Can cause issues. + Laden en automatisch toepassen van breedbeeldpatches bij het starten van het spel. Kan problemen veroorzaken. Automatically loads and applies no-interlacing patches on game start. Can cause issues. - Automatically loads and applies no-interlacing patches on game start. Can cause issues. + Laden en automatisch toepassen van geen-interlacingpatches bij het starten van het spel. Kan problemen veroorzaken. Disables interlacing offset which may reduce blurring in some situations. - Disables interlacing offset which may reduce blurring in some situations. + Schakelt interlacing-offset uit, wat vervaging in sommige situaties kan verminderen. @@ -10487,18 +10920,18 @@ Swap chain: see Microsoft's Terminology Portal. Enables bilinear post processing filter. Smooths the overall picture as it is displayed on the screen. Corrects positioning between pixels. - Enables bilinear post processing filter. Smooths the overall picture as it is displayed on the screen. Corrects positioning between pixels. + Schakelt bilineaire post-processingsfilter in. Maakt het algehele beeld gladder zoals het op het scherm wordt weergegeven. Corrigeert de positionering tussen pixels. Enables PCRTC Offsets which position the screen as the game requests. Useful for some games such as WipEout Fusion for its screen shake effect, but can make the picture blurry. PCRTC: Programmable CRT (Cathode Ray Tube) Controller. - Enables PCRTC Offsets which position the screen as the game requests. Useful for some games such as WipEout Fusion for its screen shake effect, but can make the picture blurry. + Schakelt PCRTC-offsets in die het scherm positioneren zoals het spel verzoekt. Handig voor sommige spellen zoals WipEout Fusion vanwege het schudeffect van het scherm, maar kan het beeld wazig maken. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - Enables the option to show the overscan area on games which draw more than the safe area of the screen. + Schakelt de optie in om het overscan-gebied te tonen bij spellen die meer tekenen dan het veilige gebied van het scherm. @@ -10520,20 +10953,30 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Schakel de ondersteuning van dieptebuffers in de textuurcache uit. Dit kan de snelheid verhogen, maar het kan waarschijnlijk verschillende glitches veroorzaken. + This option disables game-specific render fixes. - This option disables game-specific render fixes. + Deze optie schakelt game-specifieke renderfixes uit. By default, the texture cache handles partial invalidations. Unfortunately it is very costly to compute CPU wise. This hack replaces the partial invalidation with a complete deletion of the texture to reduce the CPU load. It helps with the Snowblind engine games. - By default, the texture cache handles partial invalidations. Unfortunately it is very costly to compute CPU wise. This hack replaces the partial invalidation with a complete deletion of the texture to reduce the CPU load. It helps with the Snowblind engine games. + Normaal gesproken behandelt de textuurcache gedeeltelijke ongeldigverklaringen. Helaas is dit erg kostbaar qua CPU-berekeningen. Deze aanpassing vervangt de gedeeltelijke ongeldigverklaring door een volledige verwijdering van de textuur om de CPU-belasting te verminderen. Het helpt bij spellen die de Snowblind-engine gebruiken. @@ -10543,27 +10986,27 @@ Swap chain: see Microsoft's Terminology Portal. Convert 4-bit and 8-bit framebuffer on the CPU instead of the GPU. Helps Harry Potter and Stuntman games. It has a big impact on performance. - Convert 4-bit and 8-bit framebuffer on the CPU instead of the GPU. Helps Harry Potter and Stuntman games. It has a big impact on performance. + Converteert het 4-bits en 8-bits framebuffer op de CPU in plaats van de GPU. Helpt bij Harry Potter- en Stuntmanspellen. Heeft een grote invloed op de prestaties. Uploads GS data when rendering a new frame to reproduce some effects accurately. - Uploads GS data when rendering a new frame to reproduce some effects accurately. + Uploadt GS-gegevens bij het renderen van een nieuw frame om sommige effecten nauwkeurig te reproduceren. Disabled - Disabled + Uitgeschakeld Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. + Stelt de textuurcache in staat om het binnenste gedeelte van een vorige framebuffer opnieuw te gebruiken als invoertextuur. Flushes all targets in the texture cache back to local memory when shutting down. Can prevent lost visuals when saving state or switching renderers, but can also cause graphical corruption. - Flushes all targets in the texture cache back to local memory when shutting down. Can prevent lost visuals when saving state or switching renderers, but can also cause graphical corruption. + Maakt alle doelen in de textuurcache leeg terug naar het lokale geheugen bij het afsluiten. Kan voorkomen dat visuals verloren gaan bij het opslaan van de status of het wisselen van renderers, maar kan ook grafische corruptie veroorzaken. @@ -10576,6 +11019,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10591,11 +11089,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10633,7 +11126,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10641,7 +11134,7 @@ Swap chain: see Microsoft's Terminology Portal. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. + Voegt padding toe aan het weergavegebied om ervoor te zorgen dat de verhouding tussen pixels op de host en pixels in de console een geheel getal is. Dit kan leiden tot een scherper beeld in sommige 2D-spellen. @@ -10697,13 +11190,13 @@ Swap chain: see Microsoft's Terminology Portal. Selects the quality at which screenshots will be compressed. Higher values preserve more detail for JPEG, and reduce file size for PNG. - Selects the quality at which screenshots will be compressed. Higher values preserve more detail for JPEG, and reduce file size for PNG. + Selecteert de kwaliteit waarmee schermafbeeldingen worden gecomprimeerd. Hogere waarden behouden meer detail voor JPEG en verminderen de bestandsgrootte voor PNG. 100% - 100% + 100% @@ -10722,10 +11215,10 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen - Borderless Fullscreen + Randloos Volledig Scherm @@ -10783,7 +11276,7 @@ Swap chain: see Microsoft's Terminology Portal. Native (PS2) (Default) - Native (PS2) (Default) + Natief (PS2) (Standaard) @@ -10843,7 +11336,7 @@ Swap chain: see Microsoft's Terminology Portal. Uploads entire textures at once instead of small pieces, avoiding redundant uploads when possible. Improves performance in most games, but can make a small selection slower. - Uploads entire textures at once instead of small pieces, avoiding redundant uploads when possible. Improves performance in most games, but can make a small selection slower. + Uploadt hele texturen tegelijk in plaats van kleine stukjes, vermijdt redundante uploads wanneer mogelijk. Verbetert de prestaties in de meeste spellen, maar kan een kleine selectie langzamer maken. @@ -10853,7 +11346,7 @@ Swap chain: see Microsoft's Terminology Portal. Enabling this option gives you the ability to change the renderer and upscaling fixes to your games. However IF you have ENABLED this, you WILL DISABLE AUTOMATIC SETTINGS and you can re-enable automatic settings by unchecking this option. - Enabling this option gives you the ability to change the renderer and upscaling fixes to your games. However IF you have ENABLED this, you WILL DISABLE AUTOMATIC SETTINGS and you can re-enable automatic settings by unchecking this option. + Het inschakelen van deze optie geeft je de mogelijkheid om de renderer en upscaling-fixes voor je spellen aan te passen. Echter, ALS je dit HEBT INGESCHAKELD, WORDEN AUTOMATISCHE INSTELLINGEN UITGESCHAKELD en kun je automatische instellingen opnieuw inschakelen door deze optie uit te schakelen. @@ -10865,11 +11358,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10884,7 +11372,7 @@ Swap chain: see Microsoft's Terminology Portal. Force a primitive flush when a framebuffer is also an input texture. Fixes some processing effects such as the shadows in the Jak series and radiosity in GTA:SA. - Force a primitive flush when a framebuffer is also an input texture. Fixes some processing effects such as the shadows in the Jak series and radiosity in GTA:SA. + Dwingt een primitieve flush af wanneer een framebuffer ook een invoertextuur is. Dit lost enkele verwerkingseffecten op, zoals de schaduwen in de Jak-serie en radiosity in GTA:SA. @@ -10920,15 +11408,10 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. + Deze optie schakelt meerdere veilige functies uit. Het schakelt nauwkeurige Unscale Point en Line rendering uit, wat kan helpen bij Xenosaga-spellen. Het schakelt nauwkeurige GS Memory Clearing uit om door de CPU te worden gedaan, en laat alleen de GPU het afhandelen, wat Kingdom Hearts-spellen kan helpen. @@ -10986,7 +11469,7 @@ Swap chain: see Microsoft's Terminology Portal. Replaces post-processing multiple paving sprites by a single fat sprite. It reduces various upscaling lines. - Replaces post-processing multiple paving sprites by a single fat sprite. It reduces various upscaling lines. + Vervangt post-processing van meerdere plaveisel-sprites door een enkele dikke sprite. Vermindert verschillende upscaling-lijnen. @@ -11002,7 +11485,7 @@ Swap chain: see Microsoft's Terminology Portal. Enables saturation, contrast, and brightness to be adjusted. Values of brightness, saturation, and contrast are at default 50. - Enables saturation, contrast, and brightness to be adjusted. Values of brightness, saturation, and contrast are at default 50. + Verzadiging, contrast en helderheid kunnen worden aangepast. De standaardwaarde voor helderheid, verzadiging en contrast is ingesteld op 50. @@ -11042,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11082,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11126,38 +11614,48 @@ Swap chain: see Microsoft's Terminology Portal. Detects when idle frames are being presented in 25/30fps games, and skips presenting those frames. The frame is still rendered, it just means the GPU has more time to complete it (this is NOT frame skipping). Can smooth our frame time fluctuations when the CPU/GPU are near maximum utilization, but makes frame pacing more inconsistent and can increase input lag. - Detects when idle frames are being presented in 25/30fps games, and skips presenting those frames. The frame is still rendered, it just means the GPU has more time to complete it (this is NOT frame skipping). Can smooth our frame time fluctuations when the CPU/GPU are near maximum utilization, but makes frame pacing more inconsistent and can increase input lag. + Detecteert wanneer inactieve frames worden gepresenteerd in 25/30fps spellen, en slaat het presenteren van die frames over. De frame wordt nog steeds gerenderd, het betekent gewoon dat de GPU meer tijd heeft om het te voltooien (dit is NIET frames overslaan). Kan de frametijd fluctuaties gladstrijken wanneer de CPU/GPU bijna maximaal worden gebruikt, maar maakt de frame pacing inconsistenter en kan de invoervertraging verhogen. Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. Could reduce chance of missing a frame or reduce tearing at the expense of more erratic frame times. Only applies to the Vulkan renderer. - Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. Could reduce chance of missing a frame or reduce tearing at the expense of more erratic frame times. Only applies to the Vulkan renderer. + Presenteert frames op de hoofd-GS-thread in plaats van een werknemersthread. Kan gebruikt worden voor het debuggen van frametijdproblemen. Kan de kans op het missen van een frame verminderen of scheuren verminderen ten koste van meer onregelmatige frametijden. Is alleen van toepassing op de Vulkan-renderer. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. + Slaat het synchroniseren met de GS-thread en host-GPU voor GS-downloads over. Kan leiden tot een grote snelheidsboost op tragere systemen, ten koste van veel gebroken grafische effecten. Als games kapot zijn en je hebt deze optie ingeschakeld, schakel deze dan eerst uit. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11165,405 +11663,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11721,6 +12219,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11748,137 +12336,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -11972,7 +12560,7 @@ Right click to clear binding Automatically checks for updates to the program on startup. Updates can be deferred until later or skipped entirely. - Automatically checks for updates to the program on startup. Updates can be deferred until later or skipped entirely. + Controleert automatisch op updates voor het programma bij het opstarten. Updates kunnen worden uitgesteld of volledig worden overgeslagen. @@ -11983,32 +12571,32 @@ Right click to clear binding Prevents the screen saver from activating and the host from sleeping while emulation is running. - Prevents the screen saver from activating and the host from sleeping while emulation is running. + Voorkomt dat de screensaver activeert en de host in slaapstand gaat terwijl de emulatie draait. Determines whether a prompt will be displayed to confirm shutting down the virtual machine when the hotkey is pressed. - Determines whether a prompt will be displayed to confirm shutting down the virtual machine when the hotkey is pressed. + Bepaalt of er een prompt wordt weergegeven om het afsluiten van de virtuele machine te bevestigen wanneer de sneltoets wordt ingedrukt. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. + Slaat automatisch de emulatorstatus op bij het uitschakelen of afsluiten. Je kunt dan de volgende keer direct verdergaan waar je gebleven was. When enabled, custom per-game settings will be applied. Disable to always use the global configuration. - When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + Wanneer ingeschakeld, worden aangepaste instellingen per spel toegepast. Schakel uit om altijd de globale configuratie te gebruiken. Allows switching in and out of fullscreen mode by double-clicking the game window. - Allows switching in and out of fullscreen mode by double-clicking the game window. + Staat het in- en uitschakelen van de volledige schermmodus toe door dubbel te klikken op het spelvenster. Prevents the main window from being resized. - Prevents the main window from being resized. + Voorkomt dat het hoofdvenster wordt aangepast in grootte. @@ -12021,59 +12609,59 @@ Right click to clear binding Unchecked - Unchecked + Niet aangevinkt Fusion [Light/Dark] Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - Fusion [Light/Dark] + Fusie [Licht/Donker] Pauses the emulator when a game is started. - Pauses the emulator when a game is started. + Pauzeert de emulator wanneer een spel wordt gestart. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. + Pauzeert de emulator wanneer je het venster minimaliseert of naar een andere applicatie overschakelt, en hervat wanneer je terugkeert. Creates a backup copy of a save state if it already exists when the save is created. The backup copy has a .backup suffix. Do not translate the ".backup" extension. - Creates a backup copy of a save state if it already exists when the save is created. The backup copy has a .backup suffix. + Maakt een back-upkopie van een opslagstatus als deze al bestaat wanneer de opslag wordt gemaakt. De back-upkopie heeft een .backup-extensie. Automatically switches to fullscreen mode when a game is started. - Automatically switches to fullscreen mode when a game is started. + Schakelt automatisch over naar de volledige schermmodus wanneer een spel wordt gestart. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - Hides the mouse pointer/cursor when the emulator is in fullscreen mode. + Verbergt de muisaanwijzer/cursor wanneer de emulator in de volledige schermmodus is. Renders the game to a separate window, instead of the main window. If unchecked, the game will display over the top of the game list. - Renders the game to a separate window, instead of the main window. If unchecked, the game will display over the top of the game list. + Rendert het spel naar een apart venster, in plaats van het hoofdvenster. Als dit niet is aangevinkt, wordt het spel weergegeven boven de lijst met spellen. Hides the main window (with the game list) when a game is running, requires Render To Separate Window to be enabled. - Hides the main window (with the game list) when a game is running, requires Render To Separate Window to be enabled. + Verbergt het hoofdvenster (met de spellenlijst) wanneer een spel draait, vereist dat Render To Separate Window is ingeschakeld. Shows the game you are currently playing as part of your profile in Discord. - Shows the game you are currently playing as part of your profile in Discord. + Toont het spel dat je momenteel speelt als onderdeel van je profiel in Discord. - + System Language [Default] - System Language [Default] + Systeem Taal [Default] @@ -12101,7 +12689,7 @@ Right click to clear binding Preferences... - Preferences... + Voorkeuren... @@ -12128,14 +12716,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12207,12 +12795,12 @@ Right click to clear binding &Scan For New Games - &Scan For New Games + &Scan Voor Nieuwe Spellen &Rescan All Games - &Rescan All Games + &Opnieuw scannen van Games Scannen @@ -12640,13 +13228,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12658,7 +13246,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12669,7 +13257,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12684,27 +13272,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12717,168 +13305,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12893,97 +13486,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12992,12 +13585,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13010,70 +13603,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13082,42 +13675,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13125,8 +13718,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13207,6 +13800,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13257,11 +13851,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13387,103 +13976,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13653,58 +14243,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13754,10 +14344,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13953,6 +14548,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13969,14 +14574,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14023,13 +14628,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14100,40 +14698,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14151,13 +14772,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14362,7 +14983,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14412,222 +15032,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14640,12 +15281,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14658,33 +15299,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14770,8 +15393,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15038,97 +15661,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15334,6 +15957,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15365,6 +15993,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15380,6 +16014,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15400,6 +16040,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15455,6 +16101,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15655,6 +16310,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15665,6 +16340,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16164,117 +16845,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16282,67 +16963,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16350,71 +17031,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16423,29 +17104,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16453,27 +17134,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings Settings - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16511,32 +17192,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16553,197 +17234,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_no-NO.ts b/pcsx2-qt/Translations/pcsx2-qt_no-NO.ts index be50caa99c9400..64d04504bef79b 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_no-NO.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_no-NO.ts @@ -80,32 +80,38 @@ Klar... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>dine Retroprestasjoner inlogging's ID nummer er ikke lengre gyldig.</strong> Du må skrive inn dine innloggings detaljer for prestasjoner for å bli sporet. Passordet ditt vil ikke bli spart i PCSX2, tilgangs id nummeret vil bli generert å brukt isteden. - + &Login &Innlogging - + Logging in... Logger inn... - + Login Error Påloggingsfeil - - Login failed. Please check your username and password, and try again. - Pålogging mislyktes. Sjekk brukernavnet og passordet ditt, og prøv igjen. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Påloggingen mislyktes. +Feil: %1 + +Vennligst sjekk brukernavn og passord, og prøv på nytt. - + Login failed. Påloggingsfeil. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Globale innstillinger - - - - + + Enable Achievements Aktiver Prestasjoner - - - Show Challenge Indicators - Vis utfordringsindikatorer - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Aktiver RAs Rich Presence - - - - + + Enable Hardcore Mode Aktiver Hardcore modus - - - Enable Leaderboards - Aktiver ledertavle - - - + Test Unofficial Achievements Test uoffisielle prestasjoner - - - Enable Test Mode - Aktiver testmodus - - - - + + Enable Sound Effects Aktiver lydeffekter - + Notifications Varsler - - - Show Notifications - Vis varsler - - - - Duration - Varighet - - - - - - + + 5 seconds 5 sekunder - + Account Konto - - + + Login... Logg inn... - + View Profile... Vis profil... - + + Settings + Innstillinger + + + + + Enable Spectator Mode + Aktiver tilskuermodus + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Vis prestasjonsvarsler + + + + + Show Leaderboard Notifications + Vis Ledertavle Varsler + + + + + Enable In-Game Overlays + Aktiver I-Spill Overlegg + + + + Username: +Login token generated at: + Brukernavn: +Påloggingstoken generert på: + + + Game Info Spill Info - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 bruker RetroAchievements som en prestasjonsdatabase og til å spore fremgang. For å bruke prestasjoner må du registrere en konto på <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">For å se prestasjonslisten i spillet, trykk på hurtigtasten for <span style=" font-weight:600;">Åpne pause meny</span> og velg <span style=" font-weight:600;">Prestasjoner</span> i menyen.</p></body></html> + - seconds - sekunder - - - - + + - - Unchecked Uavmerket - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Når aktivert og logget inn, vil PCSX2 søke etter prestasjoner ved spilllast. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Når aktivert vil PCSX2 anta at alle prestasjoner er låst og ikke sende noen opplåsnings notifikasjoner til serveren. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Når aktivert vil PCSX2 liste opp prestasjoner fra uoffisielle sett. Vær oppmerksom på at disse prestasjonene ikke er sporet av RetroAchievements, så de vil låse opp hver gang. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Når aktivert vil Rich Presence informasjon bli samlet inn og sendt til RetroAchievements servere hvor dette støttes. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Utfordring" modus for prestasjoner, inkludert ledertavle sporing. Deaktiverer lagret tilstand, juksing og tregere funksjoner. - - - - + + + + Checked Avmerket - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Aktiverer sporing og innsending av ledertavler i støttede spill. Dersom ledertavler er deaktivert, vil du fremdeles kunne se ledertavlen og poengsummer, men ingen poengsummer vil bli lastet opp. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Viser popup-meldinger på hendelser som opplåsning av prestasjoner og innsendinger for ledertavlen. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Spiller av lydeffekter for hendelser som prestasjon opplåsinger og ledertavle innsendinger. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Viser ikoner nederst til høyre på skjermen når en utfordring/"primed" prestasjon er aktiv. - - - - Notification Duration - Varsel varighet + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Når aktivert og logget inn, vil PCSX2 søke etter prestasjoner ved oppstart. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Viser popup-meldinger på hendelser som for eksempel prestasjoner og spillefullføring. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Viser popup-meldinger ved oppstart, sending eller mislykket en ledertavleutfordring. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Varigheten, i sekunder, et popup-varsel vil bli værende på skjermen. + + When enabled, each session will behave as if no achievements have been unlocked. + Når aktivert, vil hver økt oppføre seg som om ingen prestasjoner har blitt låst opp. - + Reset System Omstart systemet - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore modus vil ikke bli aktivert før systemet er omstartet. Vil du omstarte systemet nå? + + + + %n seconds + + %n sekunder + %n sekunder + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Brukernavn: %1 Påloggingstoken generert på %2. - + Logout Logg ut - + Not Logged In. Ikke innlogget. - - - %1 seconds - %1 sekunder - Achievements - + Hardcore mode will be enabled on system reset. Hardcore modus vil bli aktivert når systemet tilbakestilles. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} kan ikke utføres mens hardcore modus er aktiv. Vil du deaktivere hardcore modus? {0} vil bli kansellert hvis du velger Nei. - + Hardcore mode is now enabled. Hardcore modus er nå aktivert. - + + {} (Hardcore Mode) + {} (Hardcore Modus) + + + + {} (Unofficial) + {} (frivillig) + + + + Mastered {} + Mestret {} + + + + Leaderboard attempt started. + Ledertavleseforsøk startet. + + + + Leaderboard attempt failed. + Ledertavleforsøk feilet. + + + + Your Time: {}{} + Tiden din: {}{} + + + + Your Score: {}{} + Poengsum: {}{} + + + + Your Value: {}{} + Verdien din: {}{} + + + + (Submitting) + (Oppføring) + + + + Achievements Disconnected + Prestasjoner frakoblet + + + + An unlock request could not be completed. We will keep retrying to submit this request. + En opplåsningsforespørsel kunne ikke bli fullført. Vi vil fortsette å sende inn denne forespørselen på nytt. + + + + Achievements Reconnected + Oppnåelser gjenopprettet + + + + All pending unlock requests have completed. + Alle ventende opplåsningsforespørsler er fullført. + + + Hardcore mode is now disabled. Hardcore modus er nå deaktivert. - + + Confirm Hardcore Mode + Bekreft Hardcore modus + + + + Active Challenge Achievements + Aktiv utfordring Prestasjoner + + + (Hardcore Mode) (Hardcore Modus) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Du har oppnådd {0} av {1} prestasjoner, og {2} av {3} poeng. + + You have unlocked all achievements and earned {} points! + Du har låst opp alle prestasjoner og tjente {} poeng! + + + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Du har låst opp {0} av {1} prestasjoner og tjent {2} av {3} poeng. - - This game has no achievements. - Dette spillet har ingen prestasjoner. + + {0} achievements, {1} points + {0} oppnåelser, {1} poeng + + + + Your Time: {0} (Best: {1}) + Din tid: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Din poengsum: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Din verdi: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Ledertavle Posisjon: {1} av {2} - - Leaderboard submission is enabled. - Innsending til ledertavle er aktivert. + + Server error in {0}: +{1} + Serverfeil i {0}: +{1} - + + Score: {0} ({1} softcore) +Unread messages: {2} + Poeng: {0} ({1} softcore) +Uleste meldinger: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Du har låst opp {0} av {1} prestasjoner, som tjener {2} av {3} mulige poeng. + + + + Unknown + Ukjent + + + + Locked + Låst + + + + Unlocked + Opplåst + + + + Unsupported + Ikke støttet + + + + Unofficial + Uoffisiell + + + + Recently Unlocked + Nylig låst opp + + + + Active Challenges + Aktive utfordringer + + + + Almost There + Nesten fremme + + + + {} points + {} poeng + + + + {} point + {} poeng + + + + XXX points + XXX poeng + + + + Unlocked: {} + Opplåst: {} + + + + This game has {} leaderboards. + Dette spillet har {} ledertavler. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Innsending av poengsummene er deaktivert pga hardcore modus er skrudd av. Poengtavlen er skrivebeskyttet og kan ikke leses. + + + + Show Best + Vis beste + + + + Show Nearby + Vis nærliggende + + + + Rank + Rang + + + + Name + Navn + + + + Time + Tid + + + + Score + Poengsum + + + + Value + Verdi + + + + Date Submitted + Dato innsendt + + + + Downloading leaderboard data, please wait... + Laster ned data for poengtavlen, vennligst vent... + + + + + Loading... + Laster... + + + + + Leaderboard download failed + Nedlasting av ledertavle feilet + + + + This game has no achievements. + Dette spillet har ingen prestasjoner. + + + Failed to read executable from disc. Achievements disabled. Kunne ikke lese kjørbar fil fra disk. Prestasjoner er deaktivert. @@ -578,220 +815,220 @@ Påloggingstoken generert på %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Hvis du endrer disse alternativene, kan det føre til at spillene ikke fungerer. PCSX2-teamet vil ikke gi støtte for konfigurasjoner der disse innstillingene er endret. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Avrunding Modus: - - - + + + Nearest Nærmeste - - - + + + Negative Negativ - - - + + + Positive Positiv - - - + + + Chop / Zero (Default) Chop / Zero (Standard) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Klemme Modus: - - + + None Ingen - - - + + + Normal (Default) Normal (Standard) - + None ClampMode Ingen - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Ekstra + bevar tegn - + Full Full - + Wait Loop Detection Wait Loop Detection - - + + Enable Recompiler Aktiver Rekompilator - + Enable Fast Memory Access Aktiver Hurtig Minne Tilgang - + Enable Cache (Slow) Aktiver Hurtiglagring (Treg) - + INTC Spin Detection INTC-spinnoppdagelse - + Pause On TLB Miss Pause Ved TLB Avvik - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vektorenheter (VU) - + VU1 Rounding Mode: VU1 Avrunding Modus: - + mVU Flag Hack mVU-flaggkorrigering - + Enable VU1 Recompiler Aktiver VU1 Rekompilator - + Enable VU0 Recompiler (Micro Mode) Aktiver VU0 Rekompilator (Mikro Modus) - - + + Extra Ekstra - + VU0 Clamping Mode: VU0 Klemme Modus: - + VU0 Rounding Mode: VU0 Avrunding Modus: - + VU1 Clamping Mode: VU1 Klemme Modus: - + I/O Processor (IOP, MIPS-I) I/O-prosessor (IOP, MIPS-I) - + Game Settings Spillinnstillinger - + Enable Game Fixes Aktiver spillfikser - + Enable Compatibility Patches Aktiver kompatibilitetspatcher - + Frame Rate Control Bildefrekvens Kontroll - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL Bildefrekvens: - + NTSC Frame Rate: NTSC Bildefrekvens: - + PINE Settings PINE Innstillinger - + Slot: Spor: - + Enable Aktiver @@ -799,182 +1036,182 @@ Påloggingstoken generert på %2. AudioSettingsWidget - + Timestretch Settings Tidsstrekk innstillinger - + Sequence Length: Sekvens Lengde: - + 30 30 - + Seekwindow Size: Søkevindu størrelse: - + 20 20 - + Overlap: Overlapp: - + 10 10 - + Restore Defaults Gjenopprett Standarder - + Volume Volum - + 100% 100% - + Mixing Settings Blande innstillinger - + Synchronization: Synkronisering: - + TimeStretch (Recommended) TimeStretch (Anbefalt) - + Async Mix (Breaks some games!) Async Mix (Bryter noen spill!) - + None (Audio can skip.) Ingen (Audio kan hoppe.) - + Expansion: Utvidelse: - + Stereo (None, Default) Stereo (Ingen, Standard) - + Quadraphonic - Quadraphonic + Kvadrofonisk - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic nivå: - + None (Default) Ingen (Standard) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Dekoding (grunnleggende) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II Dekoding (gigaherz) - + Target Latency: Mållatens: - + 60 ms 60 ms - + Output Settings Utgangsinnstillinger - + Output Module: Utgangsmodul: - + Output Latency: Utdatalatens: - + 20 ms 20 ms - + Minimal Minimal - + Output Backend: Utgang backend: - + Maximum Latency: Maksimal Latens: - + Output Device: Utdataenhet: @@ -1162,17 +1399,22 @@ Påloggingstoken generert på %2. Ny versjon: - + + Download Size: + Nedlastingsstørrelse: + + + Download and Install... Last ned og installer... - + Skip This Update Hopp over denne oppdateringen - + Remind Me Later Påminn Meg Senere @@ -1182,17 +1424,17 @@ Påloggingstoken generert på %2. Feil ved oppdatering - + <h2>Changes:</h2> <h2>Endringer:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Savestate advarsel</h2><p>ved å installere denne oppdateringen vil det gjøre savestaten<b>inkompatibel</b>. Forsikre deg om at du har lagret fremgang på spill til minnekort før du installerer denne oppdateringen, eller at du vil miste fremdriften.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Advarsel om innstillinger</h2><p>Installasjon av denne oppdateringen vil tilbakestille programkonfigurasjonen. Vær oppmerksom på at du må konfigurere innstillingene på nytt etter denne oppdateringen.</p> @@ -1233,6 +1475,11 @@ Påloggingstoken generert på %2. + Download Size: %1 MB + Nedlastingsstørrelse: %1 MB + + + Loading... Laster... @@ -1240,63 +1487,63 @@ Påloggingstoken generert på %2. BIOSSettingsWidget - + BIOS Directory BIOS-mappe - + PCSX2 will search for BIOS images in this directory. PCSX2 vil søke etter BIOS bilder i denne mappen. - + Browse... Bla gjennom... - + Reset Gjenstart - + BIOS Selection BIOS Valg - - Open in Explorer... - Åpne i Filutforsker... + + Open BIOS Folder... + Åpne BIOS mappen... - + Refresh List Oppdater Liste - + Filename Filnavn - + Version Versjon - + Options and Patches Alternativer og Patcher - + Fast Boot Hurtig Oppstart - + Fast Forward Boot Hurtig oppstart @@ -1424,91 +1671,84 @@ Påloggingstoken generert på %2. BreakpointModel - + Execute Eksekver - - No Condition - Ingen betingelse - - - - + + -- -- - - + Enabled Aktivert - - + Disabled Deaktivert - + Read Les - + Write(C) (C) = changes, as in "look for changes". Skriv(C) - + Write Skriv - + TYPE Warning: limited space available. Abbreviate if needed. TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. STØRRELSE / ETIKETT - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUKSJON - + CONDITION Warning: limited space available. Abbreviate if needed. BETINGELSE - + HITS Warning: limited space available. Abbreviate if needed. TREFF - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - AKTIVERT + X @@ -1519,7 +1759,7 @@ Påloggingstoken generert på %2. Plasseringen av spilldisken er på en flyttbar enhet. Det kan oppstå ytelsesproblemer som hakking og frysing - + Saving CDVD block dump to '{}'. Lagring av CDVD-blokkdump til '{}'. @@ -1555,32 +1795,32 @@ Påloggingstoken generert på %2. ControllerBindingWidget - + Virtual Controller Type Virtuell Kontroll Type - + Bindings Bindinger - + Settings Innstillinger - + Macros Makroer - + Automatic Mapping Automatisk kartlegging - + Clear Mapping Fjern tilordning @@ -1620,146 +1860,146 @@ Påloggingstoken generert på %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. D-Pad - - - + + + Down Ned - - - + + + Left Venstre - - - + + + Up Opp - - - + + + Right Høyre - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Venstre analog - + Large Motor Stor motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Velg - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Hovedknapper - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kryss - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kvadrat - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Trekant - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Sirkel - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Høyre Analog - + Small Motor Liten Motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Trykkmodifikator - + Analog Analog @@ -1767,77 +2007,72 @@ Påloggingstoken generert på %2. ControllerBindingWidget_Guitar - - Form - Skjema - - - + Yellow Gul - - - - - - - - - - - + + + + + + + + + + + PushButton TrykkKnapp - + Start Start - + Red Rød - + Green Grønn - + Orange Oransje - + Select Velg - + Strum Up Slag Opp - + Strum Down Slag Ned - + Blue Blå - + Whammy Bar vibrato arm - + Tilt Tilt @@ -1863,123 +2098,133 @@ Påloggingstoken generert på %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL-inndatakilde - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). SDL-inngangskilden støtter de fleste kontrollere og gir avansert funksjonalitet for DualShock 4/DualSense kontrollere i Bluetooth-modus (vibrasjon/LED-kontroll). - + Enable SDL Input Source Aktiver SDL-inngangskilde - + DualShock 4 / DualSense Enhanced Mode Dualshock 4 / Dualsense Forbedring Modus - + XInput Source XInput Kilde - + Enable XInput Input Source Aktiver XInput Inngang Kilde - + DInput Source DInput Kilde - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. DInput-kilden gir støtte for eldre kontrollere som ikke støtter XInput. Det anbefales å bruke disse kontrollerne via SDL istedenfor, men DirectInput kan brukes hvis de ikke er kompatible med SDL. - + Enable DInput Input Source Aktiver DInput Inngang Kilde - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Visse tredjepartskontrollere feilaktig merker de analoge spakene som inverterte på den positive komponenten, ikke den negative.</p><p>Resultatet er at den analoge spaken &quot;være aktiv&quot; selv når den er i nøytral posisjon. </p><p> Når aktiv, så vil denne innstillingen fortelle PCSX2 å ignorere inversjonsflagget når du skaper nye tilordninger så kontrolleren fungerer som normalt.</p></body></html> + + + + Ignore Inversion + Ignorer inversjon + + + Profile Settings Profilinnstillinger - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Når dette alternativet er aktivert, kan hurtigtaster angis i denne inndataprofilen og bli brukt i stedet for de globale hurtigtastene. Som standard deles hurtigtaster alltid mellom alle profiler. - + Use Per-Profile Hotkeys Bruk hurtigtaster per profil - - + + Controller LED Settings Kontroll LED Innstillinger - + Enable SDL Raw Input Aktiver SDL Rå-inngang - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. XInput kilden gir støtte til Xbox 360 / Xbox One / Xbox-serie-kontrollere og tredjeparts kontroller som bruker XInput protokollen. - + Controller Multitap Kontroll Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Multitrykk lar opptil 8 kontroller kobles til konsollen. Hvert multitrykk gir 4 porter. Multitrykk støttes ikke av alle spill. - + Multitap on Console Port 1 Multitap på Kontrollport 1 - + Multitap on Console Port 2 Multitap på Kontrollport 2 - + Mouse/Pointer Source Mus/Peker Kilder - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 lar deg bruke musen din til å simulere analoge bevegelser. - + Settings... Innstillinger... - + Enable Mouse Mapping Aktiver musetilordning - + Detected Devices Oppdagede Enheter @@ -2015,58 +2260,58 @@ Påloggingstoken generert på %2. ControllerMacroEditWidget - + Binds/Buttons Bindinger/knapper - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Velg knappene du ønsker å utløse med denne makroen. Alle knappene er aktivert samtidig. - + Pressure Trykkfølsomhet - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. For knapper som er trykkfølsomme, styrer denne glidebryteren hvor mye kraft som skal simuleres når makroen er aktiv. - - + + 100% 100% - + Trigger Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Velg utløseren som skal aktivere denne makroen. Dette kan være en enkelt knapp eller en kombinasjon av knapper (akkord). Shift-klikk for flere utløsere. - + Deadzone: Dødsone: - + Frequency Frekvens - + Macro will toggle every N frames. Makroen veksler hvert N bilde. - + Set... Sett... @@ -2169,174 +2414,174 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PVSX2 Kontrollerinnstillinger - + Editing Profile: Redigerer profil: - + New Profile Ny profil - + Load Profile Last inn profil - + Delete Profile Slett profil - - + + Restore Defaults Gjenopprett standardinnstillinger - - + + Create Input Profile - Opprett Inputprofil + Opprett inndataprofil - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - Egendefinerte inngangsprofiler brukes til å overstyre den delte inngangsprofilen for bestemte spill. -For å bruke en egendefinert inndata-profil til et spill, gå til sine spillegenskaper, deretter endrer du 'Inndata profilen' i kategorien Oversikt over Innstillinger. + Custom input profiles are used to override the Shared input profile for specific games. +To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. -Angi navn på den nye profilen: +Enter the name for the new input profile: - - - - + + + + Error Feil - + A profile with the name '%1' already exists. En profil med navnet '%1' finnes allerede. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Vil du kopiere alle bindinger fra gjeldende profil til den nye profilen? Velger du Nei vil den opprette en helt tom profil. - + Failed to save the new profile to '%1'. Kunne ikke lagre den nye profilen til '%1'. - + Load Input Profile Last inn inndataprofil - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - Er du sikker på at du vil laste inn den innlagte profilen med navn '%1'? + Are you sure you want to load the input profile named '%1'? -Alle nåværende globale bindinger vil bli fjernet, og profilen vil bli lastet inn. +All current global bindings will be removed, and the profile bindings loaded. -Du kan ikke angre denne handlingen. +You cannot undo this action. - + Delete Input Profile Slett inndataprofil - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - Er du sikker på at du vil slette den eksisterende profilen med navn '%1'? + Are you sure you want to delete the input profile named '%1'? -Du kan ikke angre denne handlingen. +You cannot undo this action. - + Failed to delete '%1'. - Kunne ikke slette '%1'. + Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - Er du sikker du ønsker å gjenopprette standard kontrollerkonfigurasjon? + Are you sure you want to restore the default controller configuration? -Alle delte bindinger og konfigurasjoner vil bli tapt, men inngangsprofilene dine vil forbli. +All shared bindings and configuration will be lost, but your input profiles will remain. -Denne handlingen kan ikke angres. +You cannot undo this action. - + Global Settings Globale innstillinger - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Kontroll Port %1%2 + Controller Port %1%2 %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Kontroll Port %1 + Controller Port %1 %2 - - + + USB Port %1 %2 - USB Port %1 + USB-port %1 %2 - + Hotkeys - Hurtigtaster + Tastatursnarveier - + Shared "Shared" refers here to the shared input profile. Delt - + The input profile named '%1' cannot be found. - Inndataprofilen med navnet '%1' kunne ikke bli funnet. + The input profile named '%1' cannot be found. @@ -2406,204 +2651,242 @@ Denne handlingen kan ikke angres. Funksjoner - + + Module + Modul + + + + Version + Versjon + + + + Count + Tell + + + Refresh Oppdater - + Filter Filter - + Memory Search Minne Søk - + End Slutt - + Value Verdi - + Start Start - + Type Type - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Flyttall - + Double Dobbel - + String Streng - + Array of byte Rekke med byte - + Hex Hex - + Search Søk - + Memory Minne - + Breakpoints Brytningspunkter - + Threads Tråder - + Active Call Stack Aktiv Call Stack - + Breakpoint List Context Menu Kontekstmeny for brytepunktliste - + New Ny - + Edit Rediger - - - + + + Copy Kopier - + Delete Slett - + + + + Copy all as CSV + Kopier alle som CSV + + + + Paste from CSV + Lim inn fra CSV + + + Thread List Context Menu Tråd Liste Kontekst Meny - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle symboler - + + Copy Function Name Kopier Funksjon Navn - + + Copy Function Address Kopier Funksjon Adresse - + + Go to in Disassembly Gå til Disassembly - + + Go to in Memory View Gå til minnevisning - + + + Module Tree + Module Tree + + + Stack List Context Menu Kontekstmeny for stackliste - - - - - + + + + + Debugger Feilsøker - + Invalid start address Ugyldig startadresse - + Invalid end address Ugyldig sluttadresse - + Start address can't be equal to or greater than the end address Startadressen kan ikke være lik eller større enn sluttadressen - + Invalid search value Ugyldig søkeverdi - + Value is larger than type Verdien er større enn typen @@ -2659,22 +2942,22 @@ Denne handlingen kan ikke angres. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet enhet: - + Ethernet Device Type: Ethernet-enhetstype: - + Intercept DHCP Avskjære DHCP @@ -2684,135 +2967,130 @@ Denne handlingen kan ikke angres. Aktivert - + Enabled InterceptDHCP Aktivert - + Subnet Mask: Subnet Maske: - + Gateway Address: Gateway Adresse: - - + + Auto Auto - + Intercept DHCP: Avskjære DHCP: - + PS2 Address: PS2 Adresse: - + DNS1 Address: DNS1 Adresse: - + DNS2 Address: DNS2 Adresse: - + Internal DNS Intern DNS - + Add Legg Til - + Delete Slett - + Export Eksporter - + Import Importer - + Per game Per spill - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Intern DNS kan velges med DNS1/2 nedtrykksmenyene, eller ved å sette dem til 192.0.2.1 - + Enabled InternalDNSTable Aktivert - + Hard Disk Drive Harddisk - + HDD File: HDD Fil: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Størrelse (GiB): - + Enabled HDD Aktivert - + Browse Bla gjennom - + Create Image Opprett bilde - - - - - PCAP Bridged @@ -2845,7 +3123,7 @@ Denne handlingen kan ikke angres. - + Use Global Setting [%1] Bruk Globale Innstillinger [%1] @@ -2865,100 +3143,100 @@ Denne handlingen kan ikke angres. Adresse - - + + Hosts File Hosts-fil - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS-verter - + Exported Successfully Eksport Vellykket - + Failed to open file Kunne ikke åpne fil - + No Hosts in file Ingen verter i filen - + Imported Successfully Importeringen var vellykket - - + + Per Game Host list Per spillvertliste - + Copy global settings? Kopier globale innstillinger? - + Delete per game host list? Slette per spillvertliste? - + HDD Image File HDD bildefil - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Erstatt Filen? - + HDD image "%1" already exists? Do you want to overwrite? HDD-image "%1" finnes allerede? - + HDD Creator HDD-skaper - + HDD image created HDD-bilde opprettet - + Use Global Bruk globalt - + Override Overstyring @@ -2966,69 +3244,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Rå dumping - + Dump GS Draws Dumpe GF Trekk - + Save RT Lagre RT - + Save Frame Lagre bilde - + Save Texture Lagre tekstur - + Save Depth Lagre dybde - + Start Draw Number: Start trekk nummer: - + Draw Dump Count: Trekk Dumpe Nummer: - + Hardware Dump Directory: Mappe for maskinvaredumper: - + Software Dump Directory: Mappe for programvaredumper: - - + + Browse... Bla gjennom … - - + + Open... Åpne... @@ -3041,29 +3319,53 @@ Do you want to overwrite? PCSX2 Feilsøker - - - + + Run Kjør - + Step Into Gå inn - + + F11 + F11 + + + Step Over Gå over - + + F10 + F10 + + + Step Out Gå ut - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Pause @@ -3076,149 +3378,174 @@ Do you want to overwrite? Demonter - + Copy Address Kopier adresse - + Copy Instruction Hex Kopier instruksjonshex - + Copy Instruction Text Kopier instruksjonstekst - + Assemble new Instruction(s) Monter nye instruksjon(er) - + NOP Instruction(s) NOP instruksjon(er) - + Run to Cursor Hopp til markøren - + Jump to Cursor Hopp til markøren - + Toggle Breakpoint Veksle brytepunkt - + Follow Branch Følg grenen - + Go to Address Gå til adresse - + Go to in Memory View Gå til minnevisning - - + + Add Function Legg til funksjon - - + + Rename Function Endre funksjonsnavn - + Remove Function Fjern funksjon - - + + Assemble Error Monteringsfeil - + Unable to change assembly while core is running Kan ikke endre montering mens kjernen kjører - + Assemble Instruction Monter instruksjon - + Go to address Gå til adresse - + Go to address error Gå til adressefeil - + Invalid address Ugyldig adresse - + Add Function Error Legg til funksjonsfeil - + A function entry point already exists here. Consider renaming instead. Det finnes allerede et oppføringspunkt for funksjoner her. Vurder å gi nytt navn i stedet. - - + + Function will be (0x%1) instructions long. Enter function name Funksjonen blir (0x%1) instruksjoner lang. Skriv inn funksjonsnavn - + Function name Funksjonsnavn - - + + Rename Function Error Endre navn på funksjonsfeil - + Function name cannot be nothing. Funksjonsnavn kan ikke være ingenting. - + No function / symbol is currently selected. Ingen funksjon / symbol er valgt for øyeblikket. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 IKKE GYLDIG ADRESSE @@ -3226,17 +3553,17 @@ Skriv inn funksjonsnavn EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">Ingen spill i støttede formater ble funnet.</span></p><p>Legg til en mappe med spill for å begynne.</p><p>Spill dumper i følgende format vil bli skannet og oppført:</p></body></html> - + Add Game Directory... Legg til spillmappe... - + Scan For New Games Søk etter nye spill @@ -3244,48 +3571,44 @@ Skriv inn funksjonsnavn EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x %2 - + Game: %1 FPS Spill: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Spill-ID: %1 -Spilltittel: %2 -Prestasjoner: %5 (%6) - + Spill: %1 (%2) - - - %n points - - %n poeng - %n poeng - - - + Rich presence inactive or unsupported. Rich presence inaktiv eller ikke støttet. - + Game not loaded or no RetroAchievements available. Spillet er ikke lastet inn eller så er ingen RetroAchievements tilgjengelig. @@ -3293,192 +3616,192 @@ Prestasjoner: %5 (%6) EmulationSettingsWidget - + Speed Control Hastighetsregulator - + Normal Speed: Normal hastighet: - + Enable Speed Limiter Aktiver hastighetsgrense - + System Settings Systeminnstillinger - + Enable Instant VU1 Aktiver øyeblikkelig VU1 - + Enable Cheats Skru på juksekoder - + Slow-Motion Speed: Hastighet for sakte bevegelse: - + Fast-Forward Speed: Hastighet for hurtigspoling: - + Enable Multithreaded VU1 (MTVU) Aktiver flertrådet VU1 (MTVU) - + Enable Host Filesystem Aktiver vertens filsystem - + Enable Fast CDVD Aktiver rask CDVD - + EE Cycle Skipping: Hopp over EE-syklus: - - + + Disabled Deaktivert - + Mild Underclock Mild underklokking - + Moderate Underclock Moderat underklokking - + Maximum Underclock Maksimal underklokking - + EE Cycle Rate: EE syklusfrekvens: - + 50% (Underclock) 50% (underklokking) - + 60% (Underclock) 60% (underklokking) - + 75% (Underclock) 75% (underklokking) - + 100% (Normal Speed) 100 % (Normal hastighet) - + 130% (Overclock) 130% (overklokking) - + 180% (Overclock) 180% (overklokking) - + 300% (Overclock) 300% (overklokking) - + Affinity Control: Affinitetskontroll: - + EE > VU > GS EE > VE > GS - + EE > GS > VU EE > GS > VE - + VU > EE > GS VE > EE > GS - + VU > GS > EE VE > GS > EE - + GS > EE > VU GS > EE > VE - + GS > VU > EE GS > VE > EE - + Frame Pacing / Latency Control Styring av bilderytme / forsinkelse - + frames This string will appear next to the amount of frames selected, in a dropdown box. bilder - + Maximum Frame Latency: Maksimal bildeforsinkelse: - + Optimal Frame Pacing Optimal bilderytme - + Scale To Host Refresh Rate Skaler til vertens oppdateringshastighet @@ -3566,12 +3889,22 @@ Prestasjoner: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Gir spill og homebrew tilgang til filer/mapper direkte på vertsdatamaskinen. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Hastighet for hurtigspoling + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3635,45 +3968,40 @@ Prestasjoner: %5 (%6) Angir det maksimale antallet bilder som kan settes i kø til GS før CPU-tråden venter på at ett av dem skal fullføres før den fortsetter. Høyere verdier kan bidra til å jevne ut uregelmessige rammetider, men gir ekstra inndata-forsinkelse. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Justerer emuleringshastigheten så konsollens oppdateringshastighet samsvarer med vertens når både VSync og Audio Resampling er aktivert. Dette gir jevnere animasjoner, med økning i emuleringshastigheten på mindre enn 1%. Skaler til Vertens Oppdateringsfrekvens trer ikke i kraft hvis konsollens oppdateringsfrekvens er for langt unna vertens oppdateringsfrekvens. Brukere med skjermer med variabel oppdateringsfrekvens bør deaktivere dette alternativet. - - - + Use Global Setting [%1%] Bruk Globale Innstillinger [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Ubegrenset - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Egendefinert - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Tilpasset [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Egendefinert hastighet - + Enter Custom Speed Angi egendefinert hastighet @@ -3681,79 +4009,79 @@ Prestasjoner: %5 (%6) FolderSettingsWidget - + Cache Directory Mappe for hurtiglager - - - - - + + + + + Browse... Bla gjennom... - - - - - + + + + + Open... Åpne... - - - - - + + + + + Reset Tilbakestill - + Used for storing shaders, game list, and achievement data. Brukes til lagring av shaders, spilliste og prestasjonsdata. - + Cheats Directory Mappe for juksekoder - + Used for storing .pnach files containing game cheats. Brukes til å lagre .pnach-filer som inneholder juksekoder. - + Covers Directory Mappe for omslag - + Used for storing covers in the game grid/Big Picture UIs. Brukes til å lagre omslag i spillets rutenett/store bildegrensesnitt. - + Snapshots Directory Mappe for skjermbilder - + Used for screenshots and saving GS dumps. Brukes til skjermbilder og lagring av GS-dumps. - + Save States Directory Mappe for lagrede tilstander - + Used for storing save states. Brukes til å lagre lagringstilstander. @@ -3761,2082 +4089,2102 @@ Prestasjoner: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Kunne ikke finne noen CD/DVD-ROM enheter. Pass på at du har en optisk enhet koblet til og tilstrekkelig tilgang til å bruke den. - + Use Global Setting Bruk global Instilling - + Automatic binding failed, no devices are available. Automatisk binding feilet, ingen enhet er tilgjengelig. - + Game title copied to clipboard. Spill tittel kopiert til i utklippstavlen. - + Game serial copied to clipboard. Spill nøkkel kopert til utklippstavlen. - + Game CRC copied to clipboard. Spill CRC kopert til utklippstavlen. - + Game type copied to clipboard. Spill type kopert til utklippstavlen. - + Game region copied to clipboard. Spill region kopert til utklippstavlen. - + Game compatibility copied to clipboard. Spill kompatiblitet kopert til utklippstavlen. - + Game path copied to clipboard. Spill bane kopert til utklippstavlen. - + Per-game controller configuration initialized with global settings. Per-spill kontroller konfigurasjon initialisert med globale instillinger. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... - Create New... + Opprett ny... - + Enter the name of the input profile you wish to create. - Enter the name of the input profile you wish to create. + Skriv inn navnet på den inndataprofilen du ønsker å opprette. - + Are you sure you want to restore the default settings? Any preferences will be lost. - Are you sure you want to restore the default settings? Any preferences will be lost. + Er du sikker på at du vil gjenopprette standardinnstillingene? Alle innstillinger vil gå tapt. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. - No save states found. + Ingen lagringstilstander funnet. - + Failed to delete save state. - Failed to delete save state. + Kunne ikke slette lagringstilstand. - + Failed to copy text to clipboard. - Failed to copy text to clipboard. + Kunne ikke kopiere til utklippstavlen. - + This game has no achievements. - This game has no achievements. + Dette spillet har ingen prestasjoner. - + This game has no leaderboards. - This game has no leaderboards. + Dette spillet har ingen ledertavler. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. - Start the console without any disc inserted. + Start konsollen uten noen disk satt inn. - + Start a game from a disc in your PC's DVD drive. - Start a game from a disc in your PC's DVD drive. + Start et spill fra en plate i din PC's DVD-stasjon. - + Change settings for the emulator. - Change settings for the emulator. + Endre innstillinger for emulatoren. - + Exits the program. - Exits the program. + Avslutter programmet. - + No Binding - No Binding + Ingen tastebinding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. - Push a controller button or axis now. + Trykk på en kontrollerknapp eller kontrollerspak nå. - + Timing out in %.0f seconds... - Timing out in %.0f seconds... + Tidsavbrudd om %.0f sekunder... - + Unknown - Unknown + Ukjent - + OK - OK + OK - + Select Device - Select Device + Velg enhet - + Details - Details + Detaljer - + Options - Options + Innstillinger - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. - Clears all settings set for this game. + Fjerner alle innstillinger satt for dette spillet. - + Behaviour - Behaviour + Oppførsel - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. - Pauses the emulator when a game is started. + Setter emulatoren på pause når et spill startes opp. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. + Pauser emulatoren når du minimerer vinduet eller skifter til en annen applikasjon, og fortsetter når du bytter tilbake. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. - Pauses the emulator when you open the quick menu, and unpauses when you close it. + Pauser emulatoren når du åpner hurtigmeny, og fortsetter når du lukker. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. + Bestemmer om det skal vises en melding for å bekrefte at emulator/spill slås av når du trykker på hurtigtasten. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. + Lagrer emulatortilstanden automatisk når du slår av eller avslutter. Du kan da gjenoppta direkte fra der du slapp neste gang. - + Uses a light coloured theme instead of the default dark theme. - Uses a light coloured theme instead of the default dark theme. + Bruker et lys farget tema i stedet for standard mørkt tema. - + Game Display - Game Display - - - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. + Spillvisning - + Switches between full screen and windowed when the window is double-clicked. - Switches between full screen and windowed when the window is double-clicked. + Veksler mellom full skjerm og vindu når vinduet dobbeltklikkes. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - Hides the mouse pointer/cursor when the emulator is in fullscreen mode. + Skjuler musepeker-/markøren når emulatoren er i fullskjerm-modus. - + Determines how large the on-screen messages and monitor are. - Determines how large the on-screen messages and monitor are. + Bestemmer hvor store melding overlegg på skjerm er. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - Shows the current emulation speed of the system in the top-right corner of the display as a percentage. + Viser emulator sin emulatorhastighet øverst i høyre hjørnet av skjerm, med en prosentverdi. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Viser CPU Bruk basert på trådene øverst til høyre hjørne av skjermen. - + Shows the host's GPU usage in the top-right corner of the display. Viser verten's GPU bruk øverst til høyre hjørne av skjermen. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Viser oppløsningen spillet rendrer ved øverst til høyre hjørne av skjermen. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic - Automatic + Automatisk + + + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} - + + Default + Standard + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display - On-Screen Display + Visning på skjermen + + + + %d%% + %d%% - + + Shows the resolution of the game in the top-right corner of the display. + Viser spillets oppløsning øverst til høyre på skjermen. + + + BIOS Configuration - BIOS Configuration + BIOS konfigurasjon - + BIOS Selection - BIOS Selection + BIOS utvalg - + Options and Patches - Options and Patches + Alternativer og Patcher - + Skips the intro screen, and bypasses region checks. - Skips the intro screen, and bypasses region checks. + Hopper over intro skjermen, og forbigår region kontroller. - + Speed Control - Speed Control + Hastighet kontroll - + Normal Speed - Normal Speed + Normal hastighet - + Sets the speed when running without fast forwarding. - Sets the speed when running without fast forwarding. + Setter hastigheten under kjøring uten spoling. - + Fast Forward Speed - Fast Forward Speed + Hurtig Fremover Fart - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings - System Settings + Systeminnstillinger - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats - Enable Cheats + Skru på juksekoder - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display - Display + Skjerm - + Aspect Ratio - Aspect Ratio + Visningsaspekt - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing - Deinterlacing + Avfletting - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size - Screenshot Size + Skjermklippstørrelse - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format - Screenshot Format + Skjermklippformat - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality - Screenshot Quality + Skjermklippkvalitet - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch - Vertical Stretch + Vertikal strekking - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop - Crop + Klipp - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling - Integer Upscaling + Heltall oppskalering - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur - Anti-Blur + Anti-uskarphet - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering - Bilinear Filtering + Bilineær filtrering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering - Trilinear Filtering + Trilineær filtrering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering - Anisotropic Filtering - - - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. + Anisotropisk filtrering - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes - Hardware Fixes + Maskinvarefikser - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Half-Pixel Offset + Oppskaleringsfikser - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement - Texture Replacement + Tekstur-utskiftning - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders - Folders + Mapper - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA - FXAA + FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters - Filters + Filtre - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced - Advanced + Avansert - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen - Allow Exclusive Fullscreen + Tillat eksklusiv fullskjerm - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings - Output Settings + Utdatainnstillinger - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (snitt) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %dms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card - Create Memory Card + Opprett minnekort - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: - Card Name: + Kortnavn: - + Configuration - Configuration + Oppsett - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources - Input Sources + Inndatakilder - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap - Multitap + Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging - Logging + Loggføring - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging - File Logging + Fillogging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging - Verbose Logging + Detaljert loggføring - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine - Emotion Engine + Emotion Engine - + Rounding Mode - Rounding Mode + Avrundingsmodus - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode - Clamping Mode + Klemmingsmodus - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection - Enable INTC Spin Detection + Aktiver INTC-spinneoppdagelse - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection - Enable Wait Loop Detection + Aktiver venteløkkeoppdagelse - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. - New Vector Unit recompiler with much improved compatibility. Recommended. + Ny vektor enhet rekompilert med forbedret kompatibilitet. Anbefalt. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor - I/O Processor + I/O-prosessor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics - Graphics + Grafikk - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings - Settings + Innstillinger - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes - Cheat Codes + Juksekoder - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes - Game Fixes + Spillkorrigeringer - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. - For Tales of Destiny. + For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. - For Gundam games. + For Gundam-spill. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack + + + + Full VU0 Synchronization + Full VU0 Synchronization + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + VU Overflow Hack + VU Overflow Hack - - (Fifa Street 2). - (Fifa Street 2). + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + Quadraphonic + Kvadrofonisk (4.0) - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Load State + Last inn tilstand - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU Add Hack - VU Add Hack + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Disable Depth Emulation + Disable Depth Emulation - - Full VU0 Synchronization - Full VU0 Synchronization + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Render Fixes + Skru av rendringsfikser + + + + Preload Frame Data + Preload Frame Data - - VU Sync (Run behind) - VU Sync (Run behind) + + Texture Inside RT + Texture Inside RT - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - VU Overflow Hack - VU Overflow Hack + + Half Pixel Offset + Half Pixel Offset - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Offset X + Texture Offset X - - VU XGkick Sync - VU XGkick Sync + + Texture Offset Y + Texture Offset Y - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. - - Use Blit for internal FPS - Use Blit for internal FPS + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. - - Quadraphonic - Quadraphonic + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. - - Load State - Load State + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Bruk programvare-rendrer for FMV-er - + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State - Save State + Lagre tilstanden - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5845,2223 +6193,2124 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: - Region: + Region: - + Compatibility: - Compatibility: + Kompatibilitet: - + No Game Selected - No Game Selected + Ingen spill er valgt - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings - Cover Settings + Omslagsinnstillinger - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers - Download Covers - - - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names + Last ned omslag - + About PCSX2 - About PCSX2 + Om PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account - Account + Konto - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} - Saved {} + Lagret {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points + + Left: + Left: - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Top: + Topp: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! - - - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bunn: - + Summary - Summary + Sammendrag - + Interface Settings - Interface Settings + Grensesnittinnstillinger - + BIOS Settings - BIOS Settings + BIOS-innstillinger - + Emulation Settings - Emulation Settings + Emulator Instillinger - + Graphics Settings - Graphics Settings + Grafikkinnstillinger - + Audio Settings - Audio Settings + Innstillinger for lyd - + Memory Card Settings - Memory Card Settings + Minnekort Instillinger - + Controller Settings - Controller Settings + Kontroller Instillinger - + Hotkey Settings - Hotkey Settings + Hurtigtastinnstillinger - + Achievements Settings - Achievements Settings + Prestasjon Instillinger - + Folder Settings - Folder Settings + Mappeinnstillinger - + Advanced Settings - Advanced Settings + Avanserte innstillinger - + Patches - Patches + Patcher - + Cheats - Cheats + Juksekoder - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] - 2% [1 FPS (NTSC) / 1 FPS (PAL)] + 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - 10% [6 FPS (NTSC) / 5 FPS (PAL)] + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - 25% [15 FPS (NTSC) / 12 FPS (PAL)] + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - 50% [30 FPS (NTSC) / 25 FPS (PAL)] + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - 75% [45 FPS (NTSC) / 37 FPS (PAL)] + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - 90% [54 FPS (NTSC) / 45 FPS (PAL)] + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - 100% [60 FPS (NTSC) / 50 FPS (PAL)] + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - 110% [66 FPS (NTSC) / 55 FPS (PAL)] + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - 120% [72 FPS (NTSC) / 60 FPS (PAL)] + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - 150% [90 FPS (NTSC) / 75 FPS (PAL)] + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - 175% [105 FPS (NTSC) / 87 FPS (PAL)] + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - 200% [120 FPS (NTSC) / 100 FPS (PAL)] + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - 300% [180 FPS (NTSC) / 150 FPS (PAL)] + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - 400% [240 FPS (NTSC) / 200 FPS (PAL)] + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - 500% [300 FPS (NTSC) / 250 FPS (PAL)] + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - 1000% [600 FPS (NTSC) / 500 FPS (PAL)] + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock - Mild Underclock + Mild underklokking - + Moderate Underclock - Moderate Underclock + Moderat underklokking - + Maximum Underclock - Maximum Underclock + Maksimal underklokking - + Disabled - Disabled + Skrudd av - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None - None + Ingen - + Extra + Preserve Sign - Extra + Preserve Sign + Ekstra + bevar tegn - + Full - Full + Full - + Extra - Extra + Ekstra - + Automatic (Default) Automatic (Default) - + Direct3D 11 - Direct3D 11 + Direct3D 11 - + Direct3D 12 - Direct3D 12 + Direct3D 12 - + OpenGL - OpenGL + OpenGL - + Vulkan - Vulkan + Vulkan - + Metal Metal - + Software - Software + Programvare - + Null - Null + Null - + Off - Off + Av - + On - On + - + Adaptive - Adaptive + Tilpassende - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest - Nearest + Nærmest - + Bilinear (Forced) - Bilinear (Forced) + Bilineær (tvunget) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) - Off (None) + Av (ingen) - + Trilinear (PS2) - Trilinear (PS2) + Trilineær (PS2) - + Trilinear (Forced) - Trilinear (Forced) + Trilineær (tvunget) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum - Minimum + Minimum - + Basic (Recommended) Basic (Recommended) - + Medium - Medium + Middels - + High - High + Høy - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) - Off (Default) + Av (standard) - + 2x - 2x + 2x - + 4x - 4x + 4x - + 8x - 8x + 8x - + 16x - 16x + 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled - Force Disabled + Tvangsdeaktivert - + Force Enabled - Force Enabled + Tvangsaktivert - + Accurate (Recommended) - Accurate (Recommended) + Nøyaktig (anbefalt) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full oppstart - + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode + + + PNG - PNG + PNG - + JPEG - JPEG + JPEG - + 0 (Disabled) - 0 (Disabled) + 0 (skrudd av) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) - 1 (Normal) + 1 (normal) - + 2 (Aggressive) - 2 (Aggressive) + 2 (aggressiv) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) - Special (Texture) + Spesiell (tekstur) - + Special (Texture - Aggressive) - Special (Texture - Aggressive) + Spesiell (tekstur – aggressiv) - + Half - Half + Halv - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) - None (Default) + Ingen (standard) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS - 4xRGSS + 4xRGSS - + NxAGSS - NxAGSS + NxAGSS - + Uncompressed - Uncompressed + Ukomprimert - + LZMA (xz) - LZMA (xz) + LZMA (xz) - + Zstandard (zst) - Zstandard (zst) + Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) - Stereo (None, Default) + Stereo (ingen, standard) - + Surround 5.1 - Surround 5.1 + Surround 5.1 - + Surround 7.1 - Surround 7.1 + Surround 7.1 - + No Sound (Emulate SPU2 only) - No Sound (Emulate SPU2 only) + Ingen lyd (Kun emuler SPU2) - + Cubeb (Cross-platform) - Cubeb (Cross-platform) + Cubeb (Kryssplattform) - + XAudio2 - XAudio2 + XAudio2 - + PS2 (8MB) - PS2 (8MB) + PS2 (8MB) - + PS2 (16MB) - PS2 (16MB) + PS2 (16MB) - + PS2 (32MB) - PS2 (32MB) + PS2 (32MB) - + PS2 (64MB) - PS2 (64MB) + PS2 (64MB) - + PS1 - PS1 + PS1 - + 8 MB [Most Compatible] - 8 MB [Most Compatible] + 8 MB [mest kompatibelt] - + 16 MB - 16 MB + 16 MB - + 32 MB - 32 MB + 32 MB - + 64 MB - 64 MB + 64 MB - + Folder [Recommended] - Folder [Recommended] + Mappe [anbefalt] - + 128 KB [PS1] - 128 KB [PS1] + 128 KB [PS1] + + + + Negative + Negativ - + + Positive + Positiv + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid - Game Grid + Spillrutenett - + Game List - Game List + Spill-liste - + Game List Settings Game List Settings - + Type - Type + Type - + Serial Serial - + Title - Title + Tittel - + File Title - File Title + Filtittel - + CRC CRC - + Time Played - Time Played + Tid spilt - + Last Played - Last Played + Nyligst spilt - + Size - Size + Størrelse - + Select Disc Image - Select Disc Image + Velg diskbilde - + Select Disc Drive Select Disc Drive - + Start File - Start File + Start fil - + Start BIOS - Start BIOS + Start BIOS - + Start Disc - Start Disc + Start disk - + Exit - Exit + Avslutt - + Set Input Binding Set Input Binding - + Region - Region + Region - + Compatibility Rating Compatibility Rating - + Path - Path + Sti - + Disc Path - Disc Path + Diskens filbane - + Select Disc Path - Select Disc Path + Velg disk-filbane - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings - Copy Settings + Kopier innstillinger - + Clear Settings - Clear Settings + Tøm innstillinger - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown - Confirm Shutdown + Bekreft avslutning - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale - OSD Scale + OSD-skala - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings - Reset Settings + Tilbakestill innstillinger - + Change Search Directory Change Search Directory - + Fast Boot - Fast Boot + Rask oppstart - + Output Volume - Output Volume + Utdatavolum - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency - Latency + Latens - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create - Create + Opprett - + Cancel - Cancel + Avbryt - + Load Profile - Load Profile + Last inn profil - + Save Profile - Save Profile + Lagre profil - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} - Controller Port {}{} + Kontrollerport {}{} - + Controller Port {} - Controller Port {} + Kontrollerport {} - + Controller Type - Controller Type + Kontrollertype - + Automatic Mapping - Automatic Mapping + Automatisk kartlegging - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons - Buttons + Knapper - + Frequency - Frequency + Frekvens - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} - USB Port {} + USB-port {} - + Device Type - Device Type + Enhetstype - + Device Subtype Device Subtype - + {} Bindings - {} Bindings + {}-tastebindinger - + Clear Bindings - Clear Bindings + Tøm bindinger - + {} Settings - {} Settings + {}-innstillinger - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game - Resume Game + Fortsett spill - + Toggle Frame Limit - Toggle Frame Limit + Skru av/på bildefrekvensgrense - + Game Properties - Game Properties + Spillegenskaper - + Achievements - Achievements + Bragder - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc - Change Disc + Bytt disk - + Close Game - Close Game + Lukk spillet - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu - Close Menu - - - - Clean Boot - Clean Boot + Lukk meny - + Delete State Delete State - + Default Boot - Default Boot - - - - Slow Boot - Slow Boot + Standard oppstart - + Reset Play Time - Reset Play Time + Tilbakestill spilletid - + Add Search Directory - Add Search Directory + Legg til søkemappe - + Open in File Browser - Open in File Browser + Åpne i filutforsker - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By - Sort By + Sorter etter - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website - Website + Nettsted - + Support Forums - Support Forums + Supportforum - + GitHub Repository - GitHub Repository + GitHub-kodelager - + License - License + Lisens - + Close - Close + Lukk - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode - Hardcore Mode + Hardcore-modus - - Show Notifications - Show Notifications - - - + Sound Effects - Sound Effects - - - - Show Challenge Indicators - Show Challenge Indicators + Lydeffekter - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} - Username: {} + Brukernavn: {} - + Login token generated on {} Login token generated on {} - + Logout - Logout - - - - Not Logged In - Not Logged In - - - - Login - Login - - - - Achievements are disabled. - Achievements are disabled. + Logg ut - - Game ID: {} - Game ID: {} + + Not Logged In + Ikke pålogget - - Game Title: {} - Game Title: {} + + Login + Logg inn - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Spill: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name - Card Name + Kortnavn - + Eject Card - Eject Card + Løs ut kortet @@ -8072,7 +8321,7 @@ ${serial}: Serial of the game. Kunne ikke åpnes på nytt, gjenoppretter gammel konfigurasjon. - + Upscale multiplier set to {}x. Oppskaleringsmultiplikator satt til {}x. @@ -8127,12 +8376,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8188,7 +8437,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8199,266 +8448,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Bruk programvare-rendrer for FMV-er + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - "Hopp over MPEG"-hack (Hopper over videoer/FMV-er) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emuler GIF FIFO (Korrekt men tregere) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emuler VIF FIFO (Mer presis men tregere) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0-synkronisering (Korrekt men tregere) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Legg til hack (For Tri-Ace spill) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overstrømningshack (Superman Returner) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU synk (Run Behind, M-Bit spill) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick synk (korrekt, men tregere) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit intern FPS-deteksjon (når automatisk deteksjon mislykkes) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Bruk programvare-rendrer for FMV-er + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam-spill. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never - Never + Aldri - + Today - Today + I dag - + Yesterday - Yesterday + I går - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s - {}s + {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Kode - + Title Tittel - + File Title Filtittel - + CRC CRC - + Time Played Tid spilt - + Last Played Sist Spilt - + Size Størrelse - + Region Region - + Compatibility Kompatibilitet @@ -8466,74 +8857,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Søk etter mapper (vil bli skannet for spill) - + Add... - Add... + Legg til... - - - + + + Remove Fjern - + Search Directory Søk i mappe - + Scan Recursively Skann rekursivt - + Excluded Paths (will not be scanned) Ekskluderte stier (vil ikke bli skannet) - + Directory... Directory... - + File... - File... + Fil … - + Scan For New Games Søk etter nye spill - + Rescan All Games Skann alle spill på nytt - + + Display + Skjerm + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Åpne Mappe... - + Select Search Directory Velg søkemappe - + Scan Recursively? Skann rekursivt? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8542,45 +8959,45 @@ Scanning recursively takes more time, but will identify files in subdirectories. Rekursiv skanning tar lengre tid, men identifiserer filer i underkataloger. - + Select File - Select File + Velg fil - + Select Directory - Select Directory + Velg mappe GameListWidget - + Game List Spillliste - + Game Grid Spill rutenett - + Show Titles Vis titler - + All Types Alle typer - + All Regions Alle regioner - + Search... Søk... @@ -8606,17 +9023,17 @@ Rekursiv skanning tar lengre tid, men identifiserer filer i underkataloger.<html><head/><body><p><span style=" font-weight:700;">Forfatter: </span>Patch Forfatter</p><p>Beskrivelse går her</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Forfatter: </strong>%1<br>%2 - + Unknown Ukjent - + No description provided. Ingen beskrivelse oppgitt. @@ -8634,7 +9051,7 @@ Rekursiv skanning tar lengre tid, men identifiserer filer i underkataloger.Last inn patcher på nytt - + There are no patches available for this game. Det er ingen patcher tilgjengelig for dette spillet. @@ -8653,399 +9070,410 @@ Rekursiv skanning tar lengre tid, men identifiserer filer i underkataloger. - + Restore - Restore + Gjenopprett + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + Engelsk tittel: + + + Path: Filbane: - + Serial: Serienummer: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 plate - + PS1 Disc PS1 plate - + ELF (PS2 Executable) ELF (Kjørbar PS2-fil) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brasil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (Kina) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (USA) - + Other Annet - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (Sør-Afrika) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Østerrike) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgia) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europa/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (Frankrike) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Tyskland) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Hellas) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italia) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europa/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Nederland) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norge) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Polen) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russland) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spania) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Skandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sverige) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Sveits) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Storbritannia) - + Compatibility: Kompatibilitet: - + Unknown Ukjent - + Not Bootable Ikke kjørbart - + Reaches Intro Når frem til introen - + Reaches Menu Når frem til menyen - + In-Game I Spill - + Playable Spillbar - + Perfect Perfekt - + Input Profile: Inndataprofil: - + Shared Refers to the shared settings profile. Delt - + Disc Path: Diskens filbane: - + Browse... Bla gjennom... - + Clear Tøm - + Verify - Verify + Verifiser - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Velg disk-filbane: - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # - # + # - + Mode - Mode + Modus - - + + Start - Start + Start - - + + Sectors - Sectors + Sektorer - - + + Size - Size + Størrelse - - + + MD5 - MD5 + MD5 - - + + Status - Status + Status - - - - - - + + + + + + %1 - %1 + %1 - - + + <not computed> <not computed> - + Error - Error + Feil - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9053,62 +9481,62 @@ Rekursiv skanning tar lengre tid, men identifiserer filer i underkataloger. GraphicsSettingsWidget - + Renderer: Gjengiver: - + Adapter: Adapter: - + Display Skjerm - + Fullscreen Mode: Fullskjermmodus: - + Aspect Ratio: Visningsforhold: - + Fit to Window / Fullscreen Tilpass til vindu / Fullskjerm - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto standard (4:3 sammenflettet / 3:2 progressiv) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV størrelsesforhold: - - - + + + @@ -9118,12 +9546,12 @@ Rekursiv skanning tar lengre tid, men identifiserer filer i underkataloger.Av (Standard) - - - - - - + + + + + + @@ -9134,92 +9562,92 @@ Rekursiv skanning tar lengre tid, men identifiserer filer i underkataloger.Automatisk (Standard) - + None (Interlaced, also used by Progressive) Ingen (sammenflettet, men også brukt av progressiv) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Veving (toppfelt først, sagtann) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Veving (nedre felt først, sagtann) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (toppfelt først, fulle bilder) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (nedre felt først, fulle bilder) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Bland (toppfelt først, slå sammen 2 felt) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Bland (nedre felt først, slå sammen 2 felt) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptiv (toppfelt først, ligner på Bob + Veving) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptiv (nedre felt først, ligner på Bob + Veving) - + Bilinear Filtering: Bilineær filtrering: - - + + None Ingen - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilineær (jevn) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilineær (skarp) - + Vertical Stretch: Vertikal strekking: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9227,355 +9655,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Beskjær: - + Left: Warning: short space constraints. Abbreviate if necessary. Venstre: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Topp: - + Right: Warning: short space constraints. Abbreviate if necessary. Høyre: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bunn: - + Screen Offsets Skjerm forskyvninger - + VSync VSync - + Show Overscan Vis overskann - + Enable Widescreen Patches Aktiver bredskjerm patcher - + Enable No-Interlacing Patches Aktiver patcher som deaktiverer sammenfletting - + Anti-Blur Anti-uskarphet - + Ctrl+S Ctrl+S - + Disable Interlace Offset Deaktiver sammenflettingsforskyvning - + Screenshot Size: Skjermbilde størrelse: - + Screen Resolution Skjermoppløsning - + Internal Resolution Intern oppløsning - + Internal Resolution (Aspect Uncorrected) Intern oppløsning (aspekt ukorrigert) - + PNG PNG - + JPEG JPEG - + Quality: Kvalitet: - - + + Rendering Gjengivelse - + Internal Resolution: Intern oppløsning: - + Mipmapping: Mipmapping: - - + + Off Av - + Basic (Generated Mipmaps) Grunnleggende (Genererte Mipmaps) - + Full (PS2 Mipmaps) Fullt (PS2 mipmaps) - - + + Texture Filtering: Tekstur filtrering: - - + + Nearest Nærmeste - - + + Bilinear (Forced) Bilineær (tvunget) - - + + Bilinear (PS2) Bilineær (PS2) - - + + Bilinear (Forced excluding sprite) Bilineær (tvunget, ekskluderer spriter) - + Trilinear Filtering: Trilineær filtrering: - + Off (None) Av (Ingen) - + Trilinear (PS2) Trilineær (PS2) - + Trilinear (Forced) Trilineær (tvunget) - + Anisotropic Filtering: Anisotropisk filtrering: - + Dithering: Dithering: - + Scaled Skalert - + Unscaled (Default) Uskalert (standard) - + Blending Accuracy: Blandingsnøyaktighet: - + Minimum Minimum - + Basic (Recommended) Grunnleggende (Anbefalt) - + Medium Medium - + High Høy - + Full (Slow) Full (Sakte) - + Maximum (Very Slow) Maksimum (veldig sakte) - + Texture Preloading: Teksturforhåndsinnlasting: - + Partial Delvis - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU-palettkonvertering - + Manual Hardware Renderer Fixes Manuelle maskinvare-renderingsfikser - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads tråder - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Maskinvarefikser - + Force Disabled Tvangsdeaktivert - + Force Enabled Tvangsaktivert - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9583,79 +10016,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (skrudd av) - + 1 (64 Max Width) 1 (64 Maks Bredde) - + 2 (128 Max Width) 2 (128 Maks Bredde) - + 3 (192 Max Width) 3 (192 Maks Bredde) - + 4 (256 Max Width) 4 (256 Maks Bredde) - + 5 (320 Max Width) 5 (320 Maks Bredde) - + 6 (384 Max Width) 6 (384 Maks Bredde) - + 7 (448 Max Width) 7 (448 Maks Bredde) - + 8 (512 Max Width) 8 (512 Maks Bredde) - + 9 (576 Max Width) 9 (576 Maks Bredde) - + 10 (640 Max Width) 10 (640 Maks Bredde) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9666,606 +10094,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (normal) - + 2 (Aggressive) 2 (Aggressiv) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Skrudd av (Standard) - + Enabled (Exact Match) Skrudd på (Nøyaktig samsvar) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Oppskaleringsfikser - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Spesiell (tekstur) - + Special (Texture - Aggressive) Spesiell (tekstur – aggressiv) - + Round Sprite: Round Sprite: - + Half Halv - + Full Full - + Texture Offsets: Teksturforskyvninger: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Avfletting: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Skru av rendringsfikser - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Tekstur-erstatting - + Search Directory Søk i mappe - - + + Browse... Bla gjennom... - - + + Open... Åpne... - - + + Reset Tilbakestill - + PCSX2 will dump and load texture replacements from this directory. PCSX2 dumper og laster inn teksturerstatninger fra denne mappen. - + Options Innstillinger - + Dump Textures Dump teksturer - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV teksturer - - - Async Texture Loading - Asynk Teksturinnlasting - - - + Load Textures Last teksturer - + Precache Textures Precache teksturer - + Post-Processing Etterbehandling - + Sharpening/Anti-Aliasing Skarphet/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Kontrasttilpasset skjerping: - - + + None (Default) Ingen (Standard) - + Sharpen Only (Internal Resolution) Skjerping (intern oppløsning) - + Sharpen and Resize (Display Resolution) Skjerpe og endre størrelse (visningsoppløsning) - + Sharpness: Skarphet: - + FXAA FXAA - + Filters Filtre - + TV Shader: TV Shader: - + Scanline Filter Skannelinje filter - + Diagonal Filter Diagonalt filter - + Triangular Filter Triangulært filter - + Wave Filter Bølgefilter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Lysstyrke: - + Contrast: Kontrast: - Saturation Fargemetning - + OSD OSD - + On-Screen Display Skjerm på-skjerm - + OSD Scale: OSD-skala: - + Show Indicators Vis indikatorer - + Show Resolution Vis oppløsning - + Show Inputs Vis inndata - + Show GPU Usage Vis GPU-bruk - + Show Settings Vis innstillinger - + Show FPS Vis Bildefrekvens - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Deaktiver Shader buffer - + Disable Vertex Shader Expand Deaktiver Vertex Shader Utvid - + Show Statistics Vis statistikk - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Vis CPU-bruk - + Warn About Unsafe Settings Advar om utrygge innstillinger - + Show Frame Times Vis bildetider - + Recording Opptak - + Video Dumping Directory Mappe for videodumping - + Capture Setup Opptaksoppsett - + Container: Container: - - + + Codec: Kodeks: - - + + Extra Arguments Extra Argumenter - + Capture Audio Ta opp lyd - + Resolution: Oppløsning: - + x x - + Auto Auto - + Capture Video Videoopptak - + Advanced Advanced here refers to the advanced graphics options. Avansert - + Advanced Options Avanserte Innstillinger - + Hardware Download Mode: Nedlastingsmodus for maskinvare: - + Accurate (Recommended) Nøyaktig (anbefalt) - + Disable Readbacks (Synchronize GS Thread) Deaktiver tilbakelesing (synkroniser GS-tråden) - + Unsynchronized (Non-Deterministic) Usynkronisert (ikke-deterministisk) - + Disabled (Ignore Transfers) Deaktivert (Ignorer Overføringer) - + GS Dump Compression: GS Dump kompresjon: - + Uncompressed Ukomprimert - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Hopp over eksisterende duplikatbilder - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10275,69 +10713,63 @@ Swap chain: see Microsoft's Terminology Portal. Bruk Blit Swap Chain - + Disable Threaded Presentation Deaktiver trådet presentasjon - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kb/s - + Allow Exclusive Fullscreen: Tillat eksklusiv fullskjerm: - + Disallowed Ikke tillat - + Allowed Unntak - + Debugging Options Feilsøkingsalternativer - + Override Texture Barriers: Overstyre teksturbarrierer: - + Use Debug Device Bruk Debug-Enhet - - - Disable Dual Source Blending - Deaktiver Dual Source Blending - - - + Show Speed Percentages Vis Hastighetsprosent - + Disable Framebuffer Fetch Deaktiver bildebufferhenting @@ -10406,8 +10838,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Bruk Globale Innstillinger [%1] @@ -10459,6 +10891,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Uavmerket @@ -10518,11 +10951,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Kontroller nøyaktighetsnivået for emuleringen av GS-blandingsenheten.<br> Jo høyere innstilling, desto mer nøyaktig emuleres blanding i shaderen, og desto høyere blir hastighetsreduksjonen.<br> Vær oppmerksom på at Direct3Ds blanding er redusert i forhold til OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Programvare CLUT gjengiver + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10574,6 +11017,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10589,11 +11087,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10631,7 +11124,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10720,8 +11213,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Kantløs fullskjerm @@ -10863,11 +11356,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10918,11 +11406,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw rekkevidde slutt - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Deaktiver støtten for dybdebuffer i teksturbufferen. Det kan bidra til å øke hastigheten, men det vil sannsynligvis skape ulike feil. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11040,7 +11523,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD-skala - + Show OSD Messages Vis OSD meldinger @@ -11080,6 +11563,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Viser tellere for intern grafisk bruk, nyttig for feilsøking. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11133,29 +11621,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS nedlastingsmodus - + Accurate Nøyaktig - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Hopp over synkronisering med GS-tråden og verts-GPUen for GS-nedlastinger. Kan gi en stor hastighetsøkning på tregere systemer, men på bekostning av mange ødelagte grafiske effekter. Hvis spill er ødelagt og du har dette alternativet aktivert, bør du deaktivere det først. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Standard - - + + (Default) (Standard) @@ -11163,405 +11661,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Grafikk - + Save Screenshot Lagre skjermdump - + Toggle Video Capture Slå av/på videoopptak - + Save Single Frame GS Dump Lagre enkeltramme GS-dump - + Save Multi Frame GS Dump Lagre GS-dump med flere bilder - + Toggle Software Rendering Veksle programvare gjengivelse - + Increase Upscale Multiplier Øke multiplikatoren for oppskalering - + Decrease Upscale Multiplier Redusere multiplikatoren for oppskalering - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Veksle størrelsesforhold - + Aspect ratio set to '{}'. Visningsforhold satt til '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volum: Dempet - + Volume: {}% Volum: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Åpne pausemeny - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Skru av/på pause - + Toggle Fullscreen Skru av/på fullskjem - + Toggle Frame Limit Skru av/på bildefrekvensgrense - + Toggle Turbo / Fast Forward Skru av/på turbo / fort film - + Toggle Slow Motion Skru av/på sakte film - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed - Increase Target Speed + Øk målhastigheten - + Decrease Target Speed - Decrease Target Speed + Reduser målhastigheten - + Increase Volume Øk volum - + Decrease Volume Senk volum - + Toggle Mute Skru av/på lyddemping - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Tilbakestill virtuell maskin - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Last tilstand fra spor 5 - + Save State To Slot 6 Lagre tilstand til spor 6 - + Load State From Slot 6 Last tilstand fra spor 6 - + Save State To Slot 7 Lagre tilstand til spor 7 - + Load State From Slot 7 Last tilstand fra spor 7 - + Save State To Slot 8 Lagre tilstand til spor 8 - + Load State From Slot 8 Last tilstand fra spor 8 - + Save State To Slot 9 Lagre tilstand til spor 9 - + Load State From Slot 9 Last tilstand fra spor 9 - + Save State To Slot 10 Lagre tilstand til spor 10 - + Load State From Slot 10 Last tilstand fra spor 10 @@ -11719,6 +12217,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Kryss + + + + Square + Kvadrat + + + + Triangle + Trekant + + + + Circle + Sirkel + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L3 + + + + R2 + R2 + + + + D-Pad Down + D-pad ned + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Velg + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11746,137 +12334,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Oppførsel - + Pause On Focus Loss Pause ved tap av fokus - + Inhibit Screensaver Hemme skjermsparer - + Save State On Shutdown Lagre tilstanden ved nedstengning - + Pause On Start Pause ved start - + Confirm Shutdown Bekreft avslutning - + Create Save State Backups Opprette sikkerhetskopier av lagringstilstander - + Enable Discord Presence Aktiver Discord Rich Presence - + Enable Per-Game Settings Aktiver per-spill innstillinger - + Game Display Spillvisning - + Start Fullscreen Start Fullskjerm - + Double-Click Toggles Fullscreen Dobbeltklikk for å aktivere fullskjerm - + Render To Separate Window Gjengi til separat vindu - + Hide Main Window When Running Skjul hovedvinduet under kjøring - + Disable Window Resizing Deaktivere endring av vindusstørrelse - + Hide Cursor In Fullscreen Skjul markøren i fullskjerm - + Preferences Innstillinger - + Language: Språk: - + Theme: Tema: - + Automatic Updater Automatisk oppdateringsverktøy - + Update Channel: Oppdateringskanal: - + Current Version: Nåværende versjon: - + Enable Automatic Update Check Aktiver automatisk oppdateringskontroll - + Check for Updates... Se etter oppdateringer... @@ -12069,7 +12657,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] Systemspråk [standard] @@ -12126,14 +12714,14 @@ Right click to clear binding - - + + Change Disc Bytt disk - + Load State Last inn tilstand @@ -12638,13 +13226,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12656,7 +13244,7 @@ Right click to clear binding - + Show Advanced Settings Vis avanserte innstillinger @@ -12667,14 +13255,14 @@ Right click to clear binding - + Video Capture Videoopptak Edit Cheats... - Edit Cheats... + Rediger juksekoder … @@ -12682,27 +13270,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Intern oppløsning - + %1x Scale %1x Skala - + Select location to save block dump: Select location to save block dump: - + Do not show again Ikke vis igjen - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12715,168 +13303,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 filer (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Bekreft avslutning - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Feil - + You must select a disc to change discs. Du må velge en disk for å kunne bytte disker. - + Properties... Egenskaper... - + Open Containing Directory... Refers to the directory where a game is contained. Åpne inneholdende mappe ... - + Set Cover Image... Bestem omslagsbilde ... - + Exclude From List Ekskluder fra listen - + Reset Play Time Tilbakestill spilletid - + Default Boot Standard oppstart - + Fast Boot Hurtig Oppstart - + Full Boot Full Oppstart - + Boot and Debug - Boot and Debug + Start opp og feilsøk - + Add Search Directory... Legg til søkemappe ... - + Start File Start fil - + Start Disc Start disk - + Select Disc Image Velg diskbilde - + Updater Error Feil hos oppdateringsverktøy - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation - Confirm File Creation + Bekreft filoppretting - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Pauset - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12891,97 +13484,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Spillegenskaper - + Game properties is unavailable for the current game. Spillegenskaper er utilgjengelige for det nåværende spillet. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Velg diskstasjon: - + This save state does not exist. This save state does not exist. - + Select Cover Image Velg omslagsbilde - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Omslaget finnes allerede - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Feil ved kopiering - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Bekreft tilbakestilling - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12990,12 +13583,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13008,70 +13601,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot - Fresh Boot + Oppfrisket oppstart - + Delete And Boot Slett og start opp - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Last inn fra fil ... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Fortsett (%2) - + Load Slot %1 (%2) Last inn spor %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13080,42 +13673,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Lagre til fil … - + Empty Tomt innhold - + Save Slot %1 (%2) - Save Slot %1 (%2) + Lagreplass %1 (%2) - + Confirm Disc Change Bekreft diskskifte - + Do you want to swap discs or boot the new image (via system reset)? Ønsker du å skifte disker eller å starte opp fra en ny fil (via systemomstart)? - + Swap Disc Bytt disk - + Reset Tilbakestill @@ -13123,8 +13716,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13205,6 +13798,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13255,11 +13849,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Kan ikke konvertere minnekort - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13385,103 +13974,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Konsollporter - + Memory Cards Minnekort - + Folder: Mappe: - + Browse... Bla gjennom... - + Open... Åpne... - + Reset Tilbakestill - + Name Navn - + Type Type - + Formatted Formatert - + Last Modified Sist endret - + Refresh Last inn på nytt - + + Create Opprett - + Duplicate Dupliser - + Rename Endre navn - + Convert Konverter - + Delete Slett - + Settings Innstillinger - + Automatically manage saves based on running game Behandle automatisk lagrefiler basert på det pågående spillet - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13651,58 +14241,58 @@ This action cannot be reversed, and you will lose any saves on the card.Minne - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Gå til adresse - + Show as 1 byte Vis som 1 byte - + Show as 2 bytes Vis som 2 byte - + Show as 4 bytes Vis som 4 byte - + Show as 8 bytes Vis som 8 byte - + Copy Byte Kopier Byte - + Copy Segment Kopier segment - + Copy Character Kopier Tegn - + Paste Lim inn @@ -13752,10 +14342,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Velg en fil + Pad @@ -13951,6 +14546,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13967,14 +14572,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14021,13 +14626,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14096,42 +14694,65 @@ Leaving the original controller type connected, but this may cause issues. Guitar - Guitar + Gitar + + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} er aktiv. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14149,13 +14770,13 @@ The URL was: %1 URL-en var: %1 - + HDD Creator HDD-skaper - + Failed to create HDD image Mislyktes i å lage HDD-avbildning @@ -14360,7 +14981,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14394,7 +15014,7 @@ Do you want to create this directory? Error - Error + Feil @@ -14410,222 +15030,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings - PCSX2 Innstillinger + PCSX2-innstillinger - + Restore Defaults - Gjenopprett Standardinnstillinger + Gjenopprett standardinnstillinger - + Copy Global Settings Copy Global Settings - + Clear Settings - Clear Settings + Tøm innstillinger - + Close Lukk - - - Summary - Sammendrag - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Sammendrag + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Grensesnitt - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Spill-liste - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulering - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patcher - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Juksekoder - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Spillkorrigeringer - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Grafikk - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Lyd - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Minnekort - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD - Nettverk & HDD + Nettverk og HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Mapper - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Bragder - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Avansert - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug - Feilsøk + Feilsøking - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Bekreft gjenoppretting av standardinnstillinger - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Tilbakestill UI-innstillinger - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14638,12 +15279,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14656,33 +15297,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Anbefalt verdi - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14768,8 +15391,8 @@ Do you want to continue? - Open in Explorer... - Åpne i Utforsker … + Open BIOS Folder... + Åpne BIOS-mappen … @@ -14789,7 +15412,7 @@ Do you want to continue? Add... - Add... + Legg til... @@ -14891,7 +15514,7 @@ Are you sure you want to continue? &Finish - &Finish + &Fullfør @@ -14988,7 +15611,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. SIZE Warning: short space limit. Abbreviate if needed. - SIZE + STØRRELSE @@ -15036,97 +15659,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. DÅRLIG - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. KLAR - + WAIT Refers to a Thread State in the Debugger. VENT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. INGEN - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15332,6 +15955,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15363,6 +15991,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15378,6 +16012,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15398,6 +16038,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15453,6 +16099,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15653,6 +16308,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Av + + + + Low + Lav + + + + Medium + Middels + + + + High + Høy + Steering Smoothing @@ -15663,6 +16338,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -15846,7 +16527,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. KeyboardMania - KeyboardMania + KeyboardMania @@ -16058,7 +16739,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. DJ Hero Turntable - DJ Hero Turntable + DJ Hero-platespiller @@ -16162,117 +16843,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hint - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Risting - + D-Pad D-Pad - + Down Ned - + Left Venstre - + Up Opp - + Right Høyre - + L1 L1 - + L2 L2 - + Brake Brems - + Steering Left Steering Left - + Steering Right Steering Right - + Select Velg - + Start Start - + Face Buttons Hovedknapper - + Circle Sirkel - + Cross Kryss - + Triangle Trekant - + Square Firkant - + R1 R1 - + R2 R2 - + Accelerator Akselerator @@ -16280,67 +16961,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hint - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Risting - + X X - + A A - + Brake Brems - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B Mrd - + Accelerator Akselerator @@ -16348,71 +17029,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons - Buttons + Knapper - + A - A + A - + C - C + C - + Start - Start + Start - + Select - Select + Velg - + B - B + B - + D-Pad D-Pad - - + + Down - Down + Ned - - + + Left - Left + Venstre - - + + Up - Up + Opp - - + + Right - Right + Høyre - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16421,29 +17102,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger - Trigger + Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16451,27 +17132,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Enhetstype - + Bindings Bindinger - + Settings Innstillinger - + Automatic Mapping Automatisk kartlegging - + Clear Mapping Tøm bindinger @@ -16509,32 +17190,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) - PS2 BIOS ({}) + PS2 BIOS ({}) - + Unknown Game - Unknown Game + Ukjent spill - + Error Feil - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16551,197 +17232,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disken ble fjernet. - + Disc changed to '{}'. Disken ble endret til '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_pl-PL.ts b/pcsx2-qt/Translations/pcsx2-qt_pl-PL.ts index 1b301c658825f6..83876d2c852f71 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_pl-PL.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_pl-PL.ts @@ -80,32 +80,38 @@ Gotowe... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Twój token logowania do RetroAchievements nie jest już ważny.</strong> Musisz ponownie wprowadzić swoje dane logowania, aby móc śledzić osiągnięcia. Twoje hasło nie zostanie zapisane w PCSX2, zamiast tego zostanie wygenerowany i użyty token dostępu. - + &Login Zaloguj się - + Logging in... Logowanie... - + Login Error Błąd logowania - - Login failed. Please check your username and password, and try again. - Logowanie nieudane. Proszę sprawdzić swoją nazwę użytkownika lub hasło i spróbować ponownie. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Logowanie nieudane. +Błąd: %1 + +Sprawdź nazwę użytkownika i hasło, i spróbuj ponownie. - + Login failed. Logowanie nieudane. @@ -113,268 +119,501 @@ AchievementSettingsWidget - - Global Settings - Ustawienia globalne - - - - + + Enable Achievements Włącz osiągnięcia - - - Show Challenge Indicators - Pokazuj wskaźniki wyzwań - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Włącz status aktywność na Discordzie - - - - + + Enable Hardcore Mode Włącz Tryb Hardcore - - - Enable Leaderboards - Włącz rankingi - - - + Test Unofficial Achievements Sprawdź nieoficjalne osiągnięcia - - - Enable Test Mode - Aktywuj tryb testowy - - - - + + Enable Sound Effects Włącz efekty dźwiękowe - + Notifications Powiadomienia - - - Show Notifications - Pokazuj powiadomienia - - - - Duration - Czas trwania - - - - - - + + 5 seconds 5 sekund - + Account Konto - - + + Login... Zaloguj się... - + View Profile... Zobacz profil... - + + Settings + Ustawienia + + + + + Enable Spectator Mode + Włącz tryb obserwatora + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Pokazuj powiadomienia o osiągnięciach + + + + + Show Leaderboard Notifications + Pokazuj powiadomienia tabeli wyników + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Użytkownik: +Token użytkownika wygenerowany: + + + Game Info Informacje o grze - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 używa RetroAchievements jako bazę osiągnięć oraz do śledzenia postępu. Aby używać osiągnięć, zarejestruj konto na stronie <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify"> Aby zobaczyć listę osiągnięć w trakcie gry, użyj skrótu <span style=" font-weight:600;">Otwórz Menu Pauzy</span> oraz wybierz <span style=" font-weight:600;">Osiągnięcia</span> z listy.</p></body></html> + - seconds - sekund/sekundy - - - - + + - - Unchecked Odznaczone - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Po włączeniu i zalogowaniu PCSX2 skanuje osiągnięcia podczas ładowania gry. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Po włączeniu PCSX2 zakłada, że wszystkie osiągnięcia są zablokowane i nie wysyłają żadnych powiadomień o odblokowaniu na serwer. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Po włączeniu PCSX2 wyświetli osiągnięcia z nieoficjalnych zestawów. Pamiętaj, że te osiągnięcia nie są śledzone przez RetroAchievations, więc odblokują się za każdym razem. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Kiedy funkcja jest włączona, informacje o statusie aktywności będą zbierane i wysyłane do obsługiwanych serwerów Retro osiągnięć. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Tryb wyzwania" dla osiągnięć, w tym śledzenie tablicy wyników. Wyłącza zapisywanie stanu, oszustw i funkcji spowolnienia. - - - - + + + + Checked Zaznaczone - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Umożliwia śledzenie i dodawanie tablic wyników w obsługiwanych grach. Jeśli tablice wyników są wyłączone, nadal będziesz mógł zobaczyć tablicę wyników i poszczególne wyniki, ale nie zostaną przesłane żadne wyniki. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Wyświetla wyskakujące wiadomości na wydarzeniach, takich jak odblokowywanie osiągnięć i posty tablicy wyników. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Odtwarza efekty dźwiękowe dla takich wydarzeń, jak odblokowywanie osiągnięć i wpisy do tablicy wyników. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Pokazuje ikony w dolnym prawym rogu ekranu, gdy wyzwanie / nadrzędne osiągnięcie jest aktywne. - - - - Notification Duration - Czas trwania powiadomień + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Wyświetla wyskakujące wiadomości podczas wydarzeń, takich jak odblokowanie osiągnięć i ukończenie gry. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Czas trwania, w sekundach, w jakim wyskakujące powiadomienia o osiągnięciach pozostaną na ekranie. + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Reset System Zresetuj system - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Tryb Hardcore nie zostanie włączony, dopóki system nie zostanie zresetowany. Czy chcesz zresetować system teraz? + + + + %n seconds + + %n sekund + %n seconds + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Nazwa użytkownika: %1 Token logowania wygenerowany na %2. - + Logout Wyloguj - + Not Logged In. Niezalogowany. - - - %1 seconds - %1 sekundy/sekund - Achievements - + Hardcore mode will be enabled on system reset. Tryb Hardcore zostanie włączony po zresetowaniu systemu. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} nie może być wykonany, gdy tryb hardcore jest aktywny. Czy chcesz wyłączyć tryb hardcore? {0} zostanie anulowany, jeśli wybierzesz Nie. - + Hardcore mode is now enabled. Tryb Hardcore jest teraz włączony. - + + {} (Hardcore Mode) + {} (Tryb ekstremalny) + + + + {} (Unofficial) + {} (Nieoficjalny) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Twój czas: {}{} + + + + Your Score: {}{} + Twój wynik: {}{} + + + + Your Value: {}{} + Twoja waryość: {}{} + + + + (Submitting) + (Przesyłanie) + + + + Achievements Disconnected + Osiągnięcia odłączone + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Prośba odblokowania nie może zostać ukończona. Będziemy nadal próbować przesłać żądanie. + + + + Achievements Reconnected + Przywrócono osiągnięcia + + + + All pending unlock requests have completed. + Ukończono wszystkie oczekujące żądania. + + + Hardcore mode is now disabled. Tryb Hardcore jest teraz wyłączony. - + + Confirm Hardcore Mode + Potwierdź tryb ekstremalny + + + + Active Challenge Achievements + Aktywuj wyzwanie osiągnięć + + + (Hardcore Mode) (Tryb Ekstremalny) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Zdobyłeś {0} z {1} osiągnięcia i {2} z {3} punktów. + + You have unlocked all achievements and earned {} points! + Odblokowałeś wszystkie osiągnięcia i zdobyłeś and {} punktów! - - This game has no achievements. - Ta gra nie ma osiągnięć. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Odblokowałeś {0} z {1} osiągnięć oraz zdobyłeś {2} z {3} punktów. + + + + {0} achievements, {1} points + Osiągnięcia: {0}, punkty: {1} + + + + Your Time: {0} (Best: {1}) + Twój czas: {0} (Najlepszy: {1}) + + + + Your Score: {0} (Best: {1}) + Twój wynik: {0} (Najlepszy: {1}) + + + + Your Value: {0} (Best: {1}) + Twoja wartość: {0} (Najlepsza: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Pozycja na tablicy wyników: {1} z {2} + + + + Server error in {0}: +{1} + Błąd serwera w {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} - - Leaderboard submission is enabled. - Przesyłanie na tablicę wyników jest włączone. + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Odblokowałeś {0} z {1} osiągnięć, zdobywając {2} z {3} możliwych punktów. + + + + Unknown + Nieznane + + + + Locked + Zablokowane + + + + Unlocked + Odblokowane + + + + Unsupported + Nieobsługiwane + + + + Unofficial + Nieoficjalne + + + + Recently Unlocked + Ostatnio odblokowane + + + + Active Challenges + Aktywne wyzwania + + + + Almost There + Już prawie koniec + + + + {} points + {} punktów + + + + {} point + {} punktu + + + + XXX points + XXX punkty + + + + Unlocked: {} + Odblokowane: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank - + + Name + Nazwa + + + + Time + Time + + + + Score + Wynik + + + + Value + Value + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + Wczytywanie... + + + + + Leaderboard download failed + Pobieranie tablicy wyników nie powiodło się + + + + This game has no achievements. + Ta gra nie ma osiągnięć. + + + Failed to read executable from disc. Achievements disabled. Nie udało się odczytać pliku wykonywalnego z dysku. Osiągnięcia wyłączone. @@ -578,220 +817,220 @@ Token logowania wygenerowany na %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Zmiana tych opcji może spowodować, że gry staną się niegrywalne. Modyfikuj na własne ryzyko, zespół PCSX2 nie będzie wspierał konfiguracji z tymi ustawieniami. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). Procesor EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Tryb zaokrąglania: - - - + + + Nearest Najbliższy - - - + + + Negative Negatywny - - - + + + Positive Pozytywny - - - + + + Chop / Zero (Default) Chop / Zero (domyślnie) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Camping Mode: - - + + None Brak - - - + + + Normal (Default) Normalne (domyślne) - + None ClampMode Żaden - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Dodatkowe z zachowaniem znaku - + Full Pełne - + Wait Loop Detection Wykrywanie pętli oczekujących - - + + Enable Recompiler Włącz rekompilator - + Enable Fast Memory Access Włącz szybki dostęp do pamięci - + Enable Cache (Slow) Włącz pamięć podręczną (wolne) - + INTC Spin Detection Detekcja INTC Spin - + Pause On TLB Miss Pauza na TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Jednostki wektorowe (VU) - + VU1 Rounding Mode: VU1 Tryb zaokrąglania: - + mVU Flag Hack mVU Flag Hack - + Enable VU1 Recompiler Włącz rekompilator VU1 - + Enable VU0 Recompiler (Micro Mode) Włącz rekompilator VU0 (Tryb mikro) - - + + Extra Dodatkowe - + VU0 Clamping Mode: VU0 Tryb mocowania: - + VU0 Rounding Mode: VU0 Tryb zaokrąglania: - + VU1 Clamping Mode: VU1 Tryb mocowania: - + I/O Processor (IOP, MIPS-I) Procesor I/O (IOP, MIPS-I) - + Game Settings Ustawienia gry - + Enable Game Fixes Włącz poprawki do gier - + Enable Compatibility Patches Włącz kompatybilne łatki - + Frame Rate Control Kontrola klatek - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: Częstotliwość klatek PAL: - + NTSC Frame Rate: Częstotliwość klatek NTSC: - + PINE Settings Ustawienia PINE - + Slot: Slot: - + Enable Włącz @@ -799,182 +1038,182 @@ Token logowania wygenerowany na %2. AudioSettingsWidget - + Timestretch Settings Ustawienia licznika czasu - + Sequence Length: Długość sekwencji: - + 30 30 - + Seekwindow Size: Rozmiar okna wyszukiwania: - + 20 20 - + Overlap: Nakładanie: - + 10 10 - + Restore Defaults Przywróć ustawienia domyślne - + Volume Głośność - + 100% 100% - + Mixing Settings Ustawienia mieszania - + Synchronization: Synchronizacja: - + TimeStretch (Recommended) TimeStretch (rekomendowane) - + Async Mix (Breaks some games!) Async Mix (Psuje kilka gier!) - + None (Audio can skip.) Brak (dźwięk może pomijać.) - + Expansion: Rozszerzenie: - + Stereo (None, Default) Stereo (Brak, Domyślne) - + Quadraphonic Quadraphonic - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Poziom ProLogic: - + None (Default) Brak (domyślne) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Dekodowanie ProLogic (podstawowe) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Dekodowanie ProLogic II (gigaherz) - + Target Latency: Docelowe opóźnienie: - + 60 ms 60 ms - + Output Settings Ustawienia wyjścia - + Output Module: Moduł wyjściowy: - + Output Latency: Opóźnienie wyjścia: - + 20 ms 20 ms - + Minimal Minimalne - + Output Backend: Backend wyjściowy: - + Maximum Latency: Maksymalne opóźnienie: - + Output Device: Urządzenie wyjściowe: @@ -1162,17 +1401,22 @@ Token logowania wygenerowany na %2. Nowa wersja: - + + Download Size: + Download Size: + + + Download and Install... Pobierz i zainstaluj... - + Skip This Update Pomiń tę aktualizację - + Remind Me Later Przypomnij mi później @@ -1182,17 +1426,17 @@ Token logowania wygenerowany na %2. Błąd aktualizacji - + <h2>Changes:</h2> <h2>Zmiany:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Ostrzeżenie o zapisach stanu</h2><p>Instalacja tej aktualizacji sprawi, że twoje zapisy <b>będą niekompatybilne</b>. Upewnij się, że gry zostały zapisane na karcie pamięci przed zainstalowaniem tej aktualizacji lub stracisz postęp.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Ostrzeżenie o ustawieniach</h2><p>Instalacja tej aktualizacji zresetuje konfigurację programu. Pamiętaj, że będziesz musiał ponownie skonfigurować swoje ustawienia po tej aktualizacji.</p> @@ -1233,6 +1477,11 @@ Token logowania wygenerowany na %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... Wczytywanie... @@ -1240,63 +1489,63 @@ Token logowania wygenerowany na %2. BIOSSettingsWidget - + BIOS Directory Folder BIOS-u - + PCSX2 will search for BIOS images in this directory. PCSX2 będzie szukać obrazów BIOS w tym katalogu. - + Browse... Przeglądaj... - + Reset Resetuj - + BIOS Selection Wybór BIOS-u - - Open in Explorer... - Otwórz w Eksploratorze... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List Odśwież listę - + Filename Nazwa pliku - + Version Wersja - + Options and Patches Opcje i łatki - + Fast Boot Szybkie rozruch - + Fast Forward Boot Szybkie uruchomienie @@ -1424,91 +1673,84 @@ Token logowania wygenerowany na %2. BreakpointModel - + Execute Wykonaj - - No Condition - Brak warunku - - - - + + -- -- - - + Enabled Włączony - - + Disabled Wyłączony - + Read Odczyt - + Write(C) (C) = changes, as in "look for changes". Zapis(C) - + Write Zapis - + TYPE Warning: limited space available. Abbreviate if needed. TYP - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. ROZMIAR / ETYKIETA - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUKCJA - + CONDITION Warning: limited space available. Abbreviate if needed. WARUNEK - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - WŁĄCZONY + X @@ -1519,7 +1761,7 @@ Token logowania wygenerowany na %2. Lokacja dysku gry znajduje się na dysku usuwalnym, mogą wystąpić problemy z wydajnością. - + Saving CDVD block dump to '{}'. Zapisywanie zrzutu bloku CDVD do '{}'. @@ -1555,32 +1797,32 @@ Token logowania wygenerowany na %2. ControllerBindingWidget - + Virtual Controller Type Typ kontrolera wirtualnego - + Bindings Przypisanie przycisków - + Settings Ustawienia - + Macros Makro - + Automatic Mapping Automatyczne przypisanie - + Clear Mapping Wyczyść przypisanie @@ -1620,146 +1862,146 @@ Token logowania wygenerowany na %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Krzyżak - - - + + + Down w dół - - - + + + Left Lewo - - - + + + Up Góra - - - + + + Right Prawo - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Lewy analog - + Large Motor Duży silnik - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Przednie przyciski - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Krzyżyk - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kwadrat - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Trójkąt - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kółko - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Prawo analog - + Small Motor Mały silnik - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Modyfikator nacisku - + Analog Analog @@ -1767,77 +2009,72 @@ Token logowania wygenerowany na %2. ControllerBindingWidget_Guitar - - Form - Forma - - - + Yellow Żółty - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start Start - + Red Czerwony - + Green Zielony - + Orange Pomarańczowy - + Select Wybierz - + Strum Up Uderzenie w górę - + Strum Down Uderzenie w dół - + Blue Niebieski - + Whammy Bar Wajcha gitarowa - + Tilt Nachylenie @@ -1863,123 +2100,133 @@ Token logowania wygenerowany na %2. ControllerGlobalSettingsWidget - + SDL Input Source Źródło wejścia SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). Źródło wejścia SDL obsługuje większość kontrolerów i zapewnia zaawansowaną funkcjonalność dla padów DualShock 4 / DualSense w trybie Bluetooth (wibracja / sterowanie LED). - + Enable SDL Input Source Włącz źródło wejścia SDL - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense tryb rozszerzony - + XInput Source Źródło wejścia XInput - + Enable XInput Input Source Włącz źródło wejścia XInput - + DInput Source Źródło wejścia DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. Źródło DInput zapewnia wsparcie dla starszych kontrolerów, którzy nie obsługują XInput. Zamiast tego zaleca się dostęp do tych kontrolerów za pomocą SDL, ale DirectInput może być użyty, jeśli nie są one kompatybilne z SDL. - + Enable DInput Input Source Włącz źródło wejścia DInput - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Ustawienia profilu - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Gdy ta opcja jest włączona, skróty klawiszowe mogą być ustawione w tym profilu i będą używane zamiast globalnych skrótów. Domyślnie skróty klawiszowe są zawsze współdzielone między wszystkimi profilami. - + Use Per-Profile Hotkeys Użyj skrótów dla profilu - - + + Controller LED Settings Ustawienia LED kontrolera - + Enable SDL Raw Input Włącz SDL Raw Input - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. Źródło wejścia XInput zapewnia obsługę kontrolerów Xbox 360 / Xbox One / Xbox Series oraz kontrolerów firm trzecich wykorzystujących protokół XInput. - + Controller Multitap Kontroler Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Multtitap umożliwia podłączenie do konsoli maksymalnie 8 kontrolerów. Każdy multitap zapewnia 4 porty. Multitap nie jest obsługiwany przez wszystkie gry. - + Multitap on Console Port 1 Multitap w pierwszym porcie konsoli - + Multitap on Console Port 2 Multitap w drugim porcie konsoli - + Mouse/Pointer Source Źródło myszy/wskaźnika - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 pozwala użyć myszy do symulacji ruchu drążków analogowych. - + Settings... Ustawienia... - + Enable Mouse Mapping Włącz mapowanie myszy - + Detected Devices Wykryte urządzenia @@ -2015,58 +2262,58 @@ Token logowania wygenerowany na %2. ControllerMacroEditWidget - + Binds/Buttons Bindy/Przyciski - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Wybierz przyciski, które chcesz uruchomić za pomocą tego makro. Wszystkie przyciski są aktywowane jednocześnie. - + Pressure Nacisk - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Dla przycisków wrażliwych na nacisk ten suwak kontroluje ile siły będzie symulowano, gdy makro jest aktywne. - - + + 100% 100% - + Trigger Spust - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Wybierz spust, aby aktywować ten makro. Może to być pojedynczy przycisk lub kombinacja przycisków (chord). Kliknij Shift, aby użyć wiele spustów. - + Deadzone: Martwa Strefa: - + Frequency Częstotliwość - + Macro will toggle every N frames. Makro będzie się powtarzać co %d klatek. - + Set... Ustaw... @@ -2169,136 +2416,136 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - Ustawienia kontrolera PCSX2 + PCSX2 - Ustawienia kontrolera - + Editing Profile: Edycja profilu: - + New Profile Nowy profil - + Load Profile Załaduj profil - + Delete Profile Usuń profil - - + + Restore Defaults Przywróć domyślne - - + + Create Input Profile Utwórz profil sterowania - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - Własne profile sterowania są używane do nadpisywania udostępnionego profilu sterowania dla określonych gier. -Aby zastosować własny profil sterowania do gry, przejdź do jej właściwości, następnie zmień 'Profil sterowania' na karcie Podsumowanie. + Custom input profiles are used to override the Shared input profile for specific games. +To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. -Wprowadź nazwę dla nowego profilu: +Enter the name for the new input profile: - - - - + + + + Error Błąd - + A profile with the name '%1' already exists. - Profil o nazwie '%1' już istnieje. + A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - Czy chcesz skopiować wszystkie przypisania przycisków z aktualnie wybranego profilu do nowego profilu? Zaznaczenie "Nie" utworzy całkowicie pusty profil. + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. - Nie udało się zapisać nowego profilu do '%1'. + Failed to save the new profile to '%1'. - + Load Input Profile Wczytaj profil sterowania - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - Czy na pewno chcesz załadować profil sterowania o nazwie '%1'? + Are you sure you want to load the input profile named '%1'? -Wszystkie bieżące globalne przypisane przyciski zostaną usunięte, a powiązania profilowe załadowane. +All current global bindings will be removed, and the profile bindings loaded. -Nie możesz cofnąć tej akcji. +You cannot undo this action. - + Delete Input Profile - Usuń profil sterowania + Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - Czy na pewno chcesz usunąć profil sterowania o nazwie '%1'? + Are you sure you want to delete the input profile named '%1'? -Nie możesz cofnąć tej czynności. +You cannot undo this action. - + Failed to delete '%1'. - Nie udało się usunąć '%1'. + Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - Czy na pewno chcesz przywrócić domyślną konfigurację kontrolera? + Are you sure you want to restore the default controller configuration? -Wszystkie współdzielone przypisane przyciski i konfiguracja zostaną utracone, ale twoje profile sterowania pozostaną niezmienione. +All shared bindings and configuration will be lost, but your input profiles will remain. -Nie możesz cofnąć tej akcji. +You cannot undo this action. - + Global Settings Ustawienia globalne - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,36 +2553,36 @@ Nie możesz cofnąć tej akcji. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. Port kontrolera %1%2 - - + + USB Port %1 %2 Port USB %1 %2 - + Hotkeys Skróty klawiszowe - + Shared "Shared" refers here to the shared input profile. - Współdzielone + Udostępnij - + The input profile named '%1' cannot be found. - Nie można znaleźć profilu wejściowego o nazwie '%1'. + The input profile named '%1' cannot be found. @@ -2405,204 +2652,242 @@ Nie możesz cofnąć tej akcji. Funkcje - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Odśwież - + Filter Filtr - + Memory Search Wyszukiwanie pamięci - + End Zakończ - + Value Wartość - + Start Start - + Type Typ - + 1 Byte (8 bits) 1 bajt (8 bitów) - + 2 Bytes (16 bits) 2 bajty (16 bitów) - + 4 Bytes (32 bits) 4 bajty (32 bitów) - + 8 Bytes (64 bits) 8 bajty (64 bitów) - + Float Float - + Double Podwójny - + String Ciąg - + Array of byte Tablica bajtów - + Hex Hex - + Search Szukaj - + Memory Pamięć - + Breakpoints Punkty przerwania - + Threads Wątki - + Active Call Stack Aktywny stos wywołań - + Breakpoint List Context Menu Menu kontekstowe listy przerwań - + New Nowy - + Edit Edytuj - - - + + + Copy Kopiuj - + Delete Usuń - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Menu kontekstowe listy wątków - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Kopiuj nazwę funkcji - + + Copy Function Address Kopiuj adres funkcji - + + Go to in Disassembly Przejdź do demontażu - + + Go to in Memory View Przejdź do widoku pamięci - + + + Module Tree + Module Tree + + + Stack List Context Menu Menu kontekstowe listy stosów - - - - - + + + + + Debugger Debugger - + Invalid start address Nieprawidłowy adres początkowy - + Invalid end address Nieprawidłowy adres końcowy - + Start address can't be equal to or greater than the end address Adres początkowy nie może być równy lub większy niż adres końcowy - + Invalid search value Nieprawidłowa wartość wyszukania - + Value is larger than type Wartość jest większa niż typ @@ -2658,22 +2943,22 @@ Nie możesz cofnąć tej akcji. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Urządzenie Ethernet: - + Ethernet Device Type: Typ urządzenia Ethernet: - + Intercept DHCP Przechwyć DHCP @@ -2683,135 +2968,130 @@ Nie możesz cofnąć tej akcji. Aktywne - + Enabled InterceptDHCP Aktywny - + Subnet Mask: Maska podsieci: - + Gateway Address: Adres bramy: - - + + Auto Automatyczny - + Intercept DHCP: Przechwyć DHCP: - + PS2 Address: Adres PS2: - + DNS1 Address: Adres DNS1: - + DNS2 Address: Adres DNS2: - + Internal DNS Wewnętrzny DNS - + Add Dodaj - + Delete Usuń - + Export Eksportuj - + Import Importuj - + Per game Na grę - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Wewnętrzny DNS może być wybrany przy użyciu rozwijanej listy DNS1/2 lub ustawieniu ich na 192.0.2.1 - + Enabled InternalDNSTable Aktywny - + Hard Disk Drive Dysk twardy - + HDD File: Plik dysku twardego HDD: - + 40 40 - + 120 120 - + HDD Size (GiB): Rozmiar dysku twardego HDD (GiB): - + Enabled HDD Aktywny - + Browse Przeglądaj - + Create Image Utwórz obraz - - - - - PCAP Bridged @@ -2844,7 +3124,7 @@ Nie możesz cofnąć tej akcji. - + Use Global Setting [%1] Użyj ustawień globalnych [%1] @@ -2864,78 +3144,78 @@ Nie możesz cofnąć tej akcji. Adres - - + + Hosts File Plik hosts - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts Hosty DNS - + Exported Successfully Pomyślnie wyeksportowano - + Failed to open file Nie można otworzyć pliku - + No Hosts in file Brak hostów w pliku - + Imported Successfully Pomyślnie zaimportowano - - + + Per Game Host list Lista hostów na grę - + Copy global settings? Skopiować ustawienia globalne? - + Delete per game host list? Usunąć listę hostów na grę? - + HDD Image File Plik obrazu dysku twardego - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Nadpisać plik? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2944,22 +3224,22 @@ Do you want to overwrite? Czy chcesz nadpisać? - + HDD Creator Kreator dysku twardego HDD - + HDD image created Utworzono obraz dysku twardego HDD - + Use Global Użyj globalnych - + Override Nadpisz @@ -2967,69 +3247,69 @@ Czy chcesz nadpisać? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Zapisz RT - + Save Frame Zapisz klatkę - + Save Texture Zapisz teksturę - + Save Depth Zapisz głębię - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Przeglądaj... - - + + Open... Otwórz... @@ -3042,29 +3322,53 @@ Czy chcesz nadpisać? Debuger PCSX2 - - - + + Run Uruchom - + Step Into Wejdź do - + + F11 + F11 + + + Step Over Przekrocz - + + F10 + F10 + + + Step Out Wyjdź z - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Wstrzymaj @@ -3077,149 +3381,174 @@ Czy chcesz nadpisać? Demontaż - + Copy Address Skopiuj adres - + Copy Instruction Hex Skopiuj Hex Instrukcji - + Copy Instruction Text Kopiuj tekst Instrukcji - + Assemble new Instruction(s) Zainstaluj nowe instrukcje - + NOP Instruction(s) Instrukcja(-e) NOP - + Run to Cursor Przejdź do kursora - + Jump to Cursor Przejdź do kursora - + Toggle Breakpoint Przełącz punkt przerwania - + Follow Branch Obserwuj gałąź - + Go to Address Przejdź do adresu - + Go to in Memory View Przejdź do widoku pamięci - - + + Add Function Dodaj Funkcję - - + + Rename Function Zmień nazwę funkcji - + Remove Function Usuń funkcję - - + + Assemble Error Błąd montażu - + Unable to change assembly while core is running Nie można zmienić montażu podczas działania rdzenia - + Assemble Instruction Instrukcja montażu - + Go to address Przejdź do adresu - + Go to address error Przejdź do błędu adresu - + Invalid address Nieprawidłowy adres - + Add Function Error Błąd dodawania funkcji - + A function entry point already exists here. Consider renaming instead. Punkt wejścia funkcji już tutaj istnieje. Rozważ zmianę nazwy. - - + + Function will be (0x%1) instructions long. Enter function name Funkcja będzie miała długość (0x%1) instrukcji. Wprowadź nazwę funkcji - + Function name Nazwa funkcji - - + + Rename Function Error Błąd zmiany nazwy funkcji - + Function name cannot be nothing. Nazwa funkcji nie może być pusta. - + No function / symbol is currently selected. Nie wybrano żadnej funkcji / symbolu. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NIEPRAWIDŁOWY ADRES @@ -3227,17 +3556,17 @@ Wprowadź nazwę funkcji EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">Nie znaleziono żadnych gier w obsługiwanych formatach.</span></p><p>Dodaj katalog z grami, aby rozpocząć.</p><p>Obrazy gier w następujących formatach zostanie zeskanowana i wymieniona na liście::</p></body></html> - + Add Game Directory... Dodaj katalog z grami... - + Scan For New Games Skanuj w poszukiwaniu nowych gier @@ -3245,50 +3574,44 @@ Wprowadź nazwę funkcji EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Gra: %1 FPS - + Video: %1 FPS (%2%) Wideo: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - ID gry: %1 -Tytuł gry: %2 -Osiągnięcia: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n punktów - %n punktów - %n punktów - %n punkt - - - + Rich presence inactive or unsupported. Usługa Rich Presence nieaktywna lub nieobsługiwana. - + Game not loaded or no RetroAchievements available. Gra nie załadowana lub brak dostępnych osiągnięć. @@ -3296,192 +3619,192 @@ Osiągnięcia: %5 (%6) EmulationSettingsWidget - + Speed Control Kontrola prędkości - + Normal Speed: Normalna prędkość: - + Enable Speed Limiter Włącz ogranicznik prędkości - + System Settings Ustawienia systemu - + Enable Instant VU1 Włącz natychmiastowe VU1 - + Enable Cheats Włącz oszustwa - + Slow-Motion Speed: Prędkość spowolnienia: - + Fast-Forward Speed: Prędkość przewijania: - + Enable Multithreaded VU1 (MTVU) Włącz wielowątkowe VU1 (MTVU) - + Enable Host Filesystem Włącz system plików hosta - + Enable Fast CDVD Włącz szybkie CDVD - + EE Cycle Skipping: Pomijanie cykli EE: - - + + Disabled Wyłączone - + Mild Underclock Lekkie obniżenie taktowania - + Moderate Underclock Średnie obniżenie taktowania - + Maximum Underclock Maksymalne obniżenie taktowania - + EE Cycle Rate: Wskaźnik cyklu EE: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (bazowa prędkość) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Kontrola koligacji: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > EE > GS - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Pacing / Kontrola opóźnień - + frames This string will appear next to the amount of frames selected, in a dropdown box. klatek - + Maximum Frame Latency: Maksymalne opóźnienie klatek: - + Optimal Frame Pacing Optymalne nakładanie ramek - + Scale To Host Refresh Rate Skaluj do częstotliwości odświeżania hosta @@ -3569,12 +3892,22 @@ Osiągnięcia: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Pozwala grom i homebrew na dostęp do plików / folderów bezpośrednio na komputerze hosta. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Prędkość przewijania + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3638,45 +3971,40 @@ Osiągnięcia: %5 (%6) Ustawia maksymalną liczbę ramek, które mogą być umieszczone w kolejce do GS, zanim wątek CPU będzie czekał, aż jeden z nich zakończy się przed kontynuowaniem. Wyższe wartości mogą pomóc w wygładzaniu nieprawidłowych klatek czasowych, ale dodają dodatkowe opóźnienie wejściowe. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Dostosowuje prędkość emulacji, tak aby prędkość odświeżania konsoli pasowała do prędkości odświeżania hosta, gdy włączone są ustawienia VSync i Resampling dźwięku. Prowadzi to do jak najpłynniejszych animacji, kosztem potencjalnego zwiększenia szybkości emulacji o mniej niż 1%. Ustawienie "Skaluj Do Częstoliwości Odświeżania Hosta" nie będzie skuteczna, jeśli prędkość odświeżania konsoli jest zbyt daleko od prędkości odświeżania hosta. Użytkownicy z wyświetlaczami o zmiennym tempie odświeżania powinni wyłączyć tę opcję. - - - + Use Global Setting [%1%] Użyj ustawień globalnych [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Nieograniczony - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Niestandardowe - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Niestandardowe [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Niestandardowa prędkość - + Enter Custom Speed Wprowadź niestandardową prędkość @@ -3684,79 +4012,79 @@ Osiągnięcia: %5 (%6) FolderSettingsWidget - + Cache Directory Katalog pamięci podręcznej - - - - - + + + + + Browse... Przeglądaj... - - - - - + + + + + Open... Otwórz... - - - - - + + + + + Reset Resetuj - + Used for storing shaders, game list, and achievement data. Używane do przechowywania danych o cieniach, listach gier i osiągnięciach. - + Cheats Directory Katalog oszustw - + Used for storing .pnach files containing game cheats. Używane do przechowywania plików .pnach zawierających oszustwa do gry. - + Covers Directory Katalog okładek - + Used for storing covers in the game grid/Big Picture UIs. Używane do przechowywania okładek w widoku siatki / interfejsach w trybie Big Picture. - + Snapshots Directory Katalog migawek - + Used for screenshots and saving GS dumps. Używane do zrzutów ekranu i zapisywanie zrzutów GS. - + Save States Directory Katalog zapisanych stanów - + Used for storing save states. Używane do przechowywania zapisywanych stanów. @@ -3764,2082 +4092,2102 @@ Osiągnięcia: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Nie można znaleźć żadnych urządzeń CD/DVD-ROM. Upewnij się, że masz podłączony dysk i wystarczające uprawnienia, aby uzyskać do niego dostęp. - + Use Global Setting Użyj ustawień globalnych - + Automatic binding failed, no devices are available. Automatyczne powiązanie nie powiodło się, żadne urządzenia nie są dostępne. - + Game title copied to clipboard. Tytuł gry skopiowany do schowka. - + Game serial copied to clipboard. Region gry skopiowany do schowka. - + Game CRC copied to clipboard. CRC do gry skopiowany do schowka. - + Game type copied to clipboard. Typ gry skopiowany do schowka. - + Game region copied to clipboard. Region gry skopiowany do schowka. - + Game compatibility copied to clipboard. Kompatybilność z grą skopiowana do schowka. - + Game path copied to clipboard. Ścieżka do gry skopiowana do schowka. - + Per-game controller configuration initialized with global settings. Konfiguracja kontrolera dla gry zainicjowana z ustawieniami globalnymi. - + Controller settings reset to default. Ustawienia kontrolera zostały zresetowane do domyślnych. - + No input profiles available. Brak dostępnych profili sterowania. - + Create New... Utwórz nowy... - + Enter the name of the input profile you wish to create. Wprowadź nazwę profilu sterowania, który chcesz utworzyć. - + Are you sure you want to restore the default settings? Any preferences will be lost. Czy na pewno chcesz przywrócić ustawienia domyślne? Wszelkie ustawienia zostaną utracone. - + Settings reset to defaults. Ustawienia zresetowane do domyślnych. - - Quick Save Slot - Slot szybkiego zapisu - - - + No save present in this slot. Brak zapisów w tym slocie. - + No save states found. Nie znaleziono stanów zapisu gier. - + Failed to delete save state. Nie udało się usunąć zapisanego stanu. - + Failed to copy text to clipboard. Nie udało się skopiować tekstu do schowka. - + This game has no achievements. Ta gra nie ma żadnych osiągnięć. - + This game has no leaderboards. Ta gra nie ma żadnych rankingów. - + Reset System Zresetuj system - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Tryb Hardcore nie zostanie włączony, dopóki system nie zostanie zresetowany. Czy chcesz zresetować system teraz? - + Launch a game from images scanned from your game directories. Uruchom grę ze znalezionych obrazów z katalogów gry. - + Launch a game by selecting a file/disc image. Uruchom grę, wybierając plik / obraz dysku. - + Start the console without any disc inserted. Uruchom konsolę bez włożonej płyty. - + Start a game from a disc in your PC's DVD drive. Rozpocznij grę ze stacji dysków DVD w twoim komputerze. - + Change settings for the emulator. Zmień ustawienia emulatora. - + Exits the program. Wychodzi z programu. - + No Binding Nie przypisano - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Naciśnij przycisk kontrolera albo oś. - + Timing out in %.0f seconds... Limit czasu upływa za %.0f sekund... - + Unknown Nieznane - + OK OK - + Select Device Wybierz urządzenie - + Details Szczegóły - + Options Opcje - + Copies the current global settings to this game. Kopiuje bieżące ustawienia globalne do tej gry. - + Clears all settings set for this game. Usuwa wszystkie ustawienia dla tej gry. - + Behaviour Zachowanie - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Zapobiega aktywacji wygaszacza ekranu i uśpieniu hosta, gdy działa emulacja. - + Shows the game you are currently playing as part of your profile on Discord. Pokazuje obecnie graną grę jako część twoje profilu Discord. - + Pauses the emulator when a game is started. Pauzuje emulator po uruchomieniu gry. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauzuje emulator przy zminimalizowaniu okna lub przełączeniu się na inną aplikację, i wznawia pracę po powrocie. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Wstrzymuje emulator, kiedy otwierasz szybkie menu, i wznawia pracę po jego zamknięciu. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Określa czy monit zostanie wyświetlony, aby potwierdzić wyłączenie emulatora/gry po naciśnięciu klawisza skrótu. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatycznie zapisuje stan emulatora przy wyłączeniu albo wyjściu. Możesz wrócić do dokładnie tego samego miejsca po powrocie. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Używa jasnego motywu zamiast domyślnego, ciemnego motywu. - + Game Display Wyświetlacz gry - - Automatically switches to fullscreen mode when the program is started. - Automatycznie przełącza się na tryb pełnoekranowy po uruchomieniu programu. - - - + Switches between full screen and windowed when the window is double-clicked. Przełącza pomiędzy pełnym ekranem i oknem po dwukrotnym kliknięciu okna. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Ukrywa wskaźnik/kursor myszy, gdy emulator pracuje w trybie pełnoekranowym. - + Determines how large the on-screen messages and monitor are. Określa, jak duże są komunikaty na ekranie i monitorze. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Wyświetla powiadomienia na ekranie przy czynnościach tj. tworzenie i wczytywanie zapisów, robienie zrzutów ekranu itp. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Pokazuje szybkość emulacji w procentach w prawym górnym rogu. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Pokazuje numer klatek wideo (v-sync) wyświetlanych na sekundę przez system w prawym górnym rogu. - + Shows the CPU usage based on threads in the top-right corner of the display. Pokazuje użycie procesora na podstawie wątków w prawym górnym rogu wyświetlacza. - + Shows the host's GPU usage in the top-right corner of the display. Pokazuje zużycie GPU hosta w prawym górnym rogu wyświetlacza. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Pokazuje rozdzielczość renderowania gry w prawym górnym rogu. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Pokazuje statystyki o cieniowaniu geometrycznym (prymitywy, wezwania do rysowania obrazu) w prawym górnym rogu. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Pokazuje wskaźniki, kiedy stany takie jak przewijanie czy wstrzymywanie, są aktywne. - + Shows the current configuration in the bottom-right corner of the display. Pokazuje bieżącą konfigurację w prawym dolnym rogu ekranu. - + Shows the current controller state of the system in the bottom-left corner of the display. Pokazuje bieżący stan kontrolera systemu w lewym dolnym rogu ekranu. - + Shows a visual history of frame times in the upper-left corner of the display. Pokazuje wizualną historię czasów klatki w lewym górnym rogu ekranu. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatyczne - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection Wybór BIOS-u - + Options and Patches - Options and Patches + Opcje i łatki - + Skips the intro screen, and bypasses region checks. Pomija ekran wprowadzania i pomija kontrolę regionu. - + Speed Control Kontrola prędkości - + Normal Speed Normalna prędkość - + Sets the speed when running without fast forwarding. Ustawia prędkość podczas działania bez szybkiego przewijania. - + Fast Forward Speed Prędkość przewijania - + Sets the speed when using the fast forward hotkey. Ustawia prędkość podczas używania klawisza szybkiego przewijania. - + Slow Motion Speed Prędkość spowolnienia - + Sets the speed when using the slow motion hotkey. Ustawia prędkość podczas używania klawisza spowolnienia. - + Enable Speed Limiter Włącz ogranicznik prędkości - + When disabled, the game will run as fast as possible. Przy wyłączeniu gra będzie działała tak szybko, jak to możliwe. - + System Settings Ustawienia systemu - + EE Cycle Rate Wskaźnik cyklu EE - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping Pomijanie cykli EE - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Tryb kontroli koligacji - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Włącz MTVU (wielowątkowy VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Używa drugiego wątku do mikroprogramów VU1. Pozwala na znaczące zwiększenie szybkości. - - - + Enable Instant VU1 Włącz natychmiastowe VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Włącz cheaty - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Włącz system plików hosta - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Włącz szybkie CDVD - + Fast disc access, less loading times. Not recommended. Szybki odczyt dysku, krótsze czasy ładowania. Nierekomendowane. - + Frame Pacing/Latency Control Pacing / Kontrola opóźnień - + Maximum Frame Latency Maksymalne opóźnienie klatek - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optymalne nakładanie ramek - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Silnik renderujący - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Wyświetlacz - + Aspect Ratio Proporcje obrazu - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio Proporcje obrazu przy FMV - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Usuwanie przeplotu - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Rozmiar zrzutu ekranu - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Format zrzutów ekranu - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Jakość zrzutu ekranu - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Rozciągnięcie pionowe - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Przytnij - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Upscaling dwuliniowy - + Smooths out the image when upscaling the console to the screen. Wygładza obraz przy upscalingu konsoli do ekranu. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Dodaje dopełnienie do obszaru wyświetlania, aby stosunek pikseli hosta do pikseli na konsoli był liczbą całkowitą. Może wyostrzyć obraz w niektórych grach 2D. - + Screen Offsets Przesunięcia ekranu - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Pokaż overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anty-rozmycie - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Renderowanie - + Internal Resolution Rozdzielczość wewnętrzna - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mapowanie mip - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Filtrowanie bilinearne - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Filtrowanie trójliniowe - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Filtrowanie Anizotropowe - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Wstępne ładowanie tekstur - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Przesyła pełne tekstury do GPU przy użyciu zamiast tylko używanych części. Może poprawić wydajność w niektórych grach. - + Software Rendering Threads Wątki renderowania przez oprogramowanie - + Number of threads to use in addition to the main GS thread for rasterization. Liczba wątków do użycia w dodatku do głównego wątku GS do rasteryzacji. - + Auto Flush (Software) Automatyczne oczyszczanie (w oprogramowaniu) - + Force a primitive flush when a framebuffer is also an input texture. Wymuś prymitywne oczyszczenie, gdy bufor ramek jest także teksturą wejściową. - + Edge AA (AA1) Krawędź AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Umożliwia emulację anti-aliasingu krawędzi GS (AA1). - + Enables emulation of the GS's texture mipmapping. Umożliwia emulację mipmapowania tekstury GS. - + Hardware Fixes Poprawki sprzętowe - + Manual Hardware Fixes Ręczne poprawki sprzętu - + Disables automatic hardware fixes, allowing you to set fixes manually. Wyłącza automatyczne poprawki sprzętowe, umożliwiając ręczne poprawki. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Automatyczne oczyszczanie (sprzętowe) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Konwertuje 4- i 8-bitowy bufor ramek na procesorze zamiast na karcie graficznej. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. - Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - - - Texture Inside Render Target - Texture Inside Render Target + Removes texture cache entries when there is any intersection, rather than only the intersected areas. - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Dostosuj sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Zastępuje sprite'y po obróbce końcowej większym, pojedynczym spritem. - + Wild Arms Hack Hack Wild Arms - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Może naprawić zepsute efekty, bazujące na idealnej precyzji pikseli. - + Texture Replacement Texture Replacement - + Load Textures Załaduj tekstury - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchroniczne wczytywanie tekstur - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Katalogi - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filtry - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Zaawansowane - + Skip Presenting Duplicate Frames Pomiń pokazywanie powtarzających się klatek - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card - Create Memory Card + Utwórz kartę pamięci - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations - Data Save Locations + Lokalizacja zapisu danych - + Show Advanced Settings - Show Advanced Settings + Pokaż ustawienia zaawansowane - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. + Zmiana tych opcji może spowodować brak funkcjonalności gry. Modyfikuj na własne ryzyko, ekipa PCSX2 nie zapewnia wsparcia konfiguracji tych ustawień. - + Logging - Logging + Logowanie - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics - Graphics + Grafika - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings - Settings + Ustawienia - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + VU Add Hack + VU Add Hack - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + Full VU0 Synchronization + Full VU0 Synchronization - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - (Fifa Street 2). - (Fifa Street 2). + + VU Overflow Hack + VU Overflow Hack - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Quadraphonic + Quadraphonic - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Load State + Load State - - VU Add Hack - VU Add Hack + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Full VU0 Synchronization - Full VU0 Synchronization + + Disable Depth Emulation + Disable Depth Emulation - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable Render Fixes + Disable Render Fixes - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Preload Frame Data + Preload Frame Data - - VU Overflow Hack - VU Overflow Hack + + Texture Inside RT + Texture Inside RT - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - VU XGkick Sync - VU XGkick Sync + + Half Pixel Offset + Half Pixel Offset - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Texture Offset X + Texture Offset X - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset Y + Texture Offset Y - - Quadraphonic - Quadraphonic + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. - - Load State - Load State + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack - + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5848,2221 +6196,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: - Region: + Region: - + Compatibility: - Compatibility: + Zgodność: - + No Game Selected - No Game Selected + Nie wybrano gry - + Search Directories - Search Directories + Szukaj w katalogu - + Adds a new directory to the game search list. - Adds a new directory to the game search list. + Dodaje nowy katalog do listy wyszukiwania. - + Scanning Subdirectories - Scanning Subdirectories + Skanowanie podkatalogów - + Not Scanning Subdirectories - Not Scanning Subdirectories + Nie skanuje podkatalogów - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Podsumowanie - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications - + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects - Sound Effects - - - - Show Challenge Indicators - Show Challenge Indicators + Sound Effects - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8075,7 +8324,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8130,12 +8379,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8191,7 +8440,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8202,266 +8451,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. Nie podano żadnych ścieżek. - + Hash {} is not in database. Hash {} nie znajduje się w bazie danych. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Poprawki do gier (NIE ZALECANE, aby zmienić globalnie) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Typ - + Code Kod - + Title Tytuł - + File Title Tytuł pliku - + CRC CRC - + Time Played Czas gry - + Last Played Ostatnio grane - + Size Rozmiar - + Region Region - + Compatibility Kompatybilność @@ -8469,74 +8860,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Przeszukiwane katalogi (zostaną przeskanowane w poszukiwaniu gier) - + Add... Add... - - - + + + Remove Usuń - + Search Directory Szukaj w katalogu - + Scan Recursively Skanuj rekursywnie - + Excluded Paths (will not be scanned) Wykluczone ścieżki (nie będą skanowane) - + Directory... Directory... - + File... File... - + Scan For New Games Skanuj w poszukiwaniu nowych gier - + Rescan All Games Ponownie przeskanuj wszystkie gry - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Otwórz katalog... - + Select Search Directory Wybierz katalog wyszukiwania - + Scan Recursively? Skanować rekursywnie? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8545,12 +8962,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Skanowanie to zajmuje więcej czasu, ale identyfikuje pliki w podkatalogach. - + Select File Select File - + Select Directory Select Directory @@ -8558,32 +8975,32 @@ Skanowanie to zajmuje więcej czasu, ale identyfikuje pliki w podkatalogach. GameListWidget - + Game List Widok listy - + Game Grid Widok siatki - + Show Titles Pokaż tytuły - + All Types Wszystkie typy - + All Regions Wszystkie regiony - + Search... Szukaj... @@ -8609,17 +9026,17 @@ Skanowanie to zajmuje więcej czasu, ale identyfikuje pliki w podkatalogach.<html><head/><body><p><span style=" font-weight:700;">Autor: </span><Autor patcha><p>Opis można wstawić tutaj</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Autor: </strong>%1<br>%2 - + Unknown Nieznany - + No description provided. Brak opisu. @@ -8637,7 +9054,7 @@ Skanowanie to zajmuje więcej czasu, ale identyfikuje pliki w podkatalogach.Odśwież Patche - + There are no patches available for this game. Nie ma żadnych dostępnych patchy dla tej gry. @@ -8656,399 +9073,410 @@ Skanowanie to zajmuje więcej czasu, ale identyfikuje pliki w podkatalogach. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Ścieżka: - + Serial: Numer seryjny: - + CRC: CRC: - + Type: Typ: - + PS2 Disc Dysk PS2 - + PS1 Disc Dysk PS1 - + ELF (PS2 Executable) ELF (Plik wykonywalny PS2) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazylia) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (Chiny) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hongkong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japonia) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Tajwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (USA) - + Other Inne - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (Afryka Południowa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgia) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europa/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (Francja) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finlandia) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Niemcy) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Grecja) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Włochy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (Indie) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europa/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Holandia) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norwegia) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugalia) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Polska) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Rosja) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Hiszpania) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Skandynawia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Szwecja) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Szwajcaria) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Wielka Brytania) - + Compatibility: Kompatybilność: - + Unknown Nieznana - + Not Bootable Nie można uruchomić - + Reaches Intro Uruchamia intro - + Reaches Menu Uruchamia menu - + In-Game W grze - + Playable Grywalne - + Perfect Idealna - + Input Profile: Profil sterowania: - + Shared Refers to the shared settings profile. Współdzielony - + Disc Path: Ścieżka dysku: - + Browse... Przeglądaj... - + Clear Wyczyść - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Wybierz ścieżkę dysku - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sektory - - + + Size Rozmiar - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Błąd - + Cannot verify image while a game is running. Nie można zweryfikować obrazu po uruchomieniu gry. - + One or more tracks is missing. Brakuje jednej lub więcej ścieżek. - + Verified as %1 [%2] (Version %3). Zweryfikowano jako %1 [%2] (Wersja %3). - + Verified as %1 [%2]. Zweryfikowano jako %1 [%2]. @@ -9056,62 +9484,62 @@ Skanowanie to zajmuje więcej czasu, ale identyfikuje pliki w podkatalogach. GraphicsSettingsWidget - + Renderer: Urządzenie renderujące: - + Adapter: Adapter: - + Display Wyświetlacz - + Fullscreen Mode: Tryb pełnoekranowy: - + Aspect Ratio: Proporcje obrazu: - + Fit to Window / Fullscreen Dopasuj do okna / Pełny ekran - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Automatycznie, standardowo (4:3 z przeplotem / 3:2 progresywnie) - - + + Standard (4:3) Standardowe (4:3) - - + + Widescreen (16:9) Panorama (16:9) - + FMV Aspect Ratio: Proporcje obrazu przy FMV: - - - + + + @@ -9121,12 +9549,12 @@ Skanowanie to zajmuje więcej czasu, ale identyfikuje pliki w podkatalogach.Wyłączone (Domyślne) - - - - - - + + + + + + @@ -9137,92 +9565,92 @@ Skanowanie to zajmuje więcej czasu, ale identyfikuje pliki w podkatalogach.Automatyczne (domyślne) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Filtrowanie dwuliniowe: - - + + None Brak - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Dwuliniowy (gładki) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Dwuliniowy (ostry) - + Vertical Stretch: Rozciągnięcie pionowe: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9230,355 +9658,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Przytnij: - + Left: Warning: short space constraints. Abbreviate if necessary. Lewo: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Góra: - + Right: Warning: short space constraints. Abbreviate if necessary. Prawo: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Dół: - + Screen Offsets Przesunięcia ekranu - + VSync Synchronizacja pionowa - + Show Overscan Pokaż overscan - + Enable Widescreen Patches Włącz łatki umożliwiające szerokie pole widzenia (widescreen) - + Enable No-Interlacing Patches Włącz łatki usuwające przeplot obrazu - + Anti-Blur Anty-rozmycie - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Rozmiar zrzutu ekranu: - + Screen Resolution Rozdzielczość ekranu - + Internal Resolution Rozdzielczość wewnętrzna - + Internal Resolution (Aspect Uncorrected) Rozdzielczość wewnętrzna (proporcje bez zmian) - + PNG PNG - + JPEG JPEG - + Quality: Jakość: - - + + Rendering Renderowanie - + Internal Resolution: Rozdzielczość wewnętrzna: - + Mipmapping: Mapowanie mip: - - + + Off Wyłączony - + Basic (Generated Mipmaps) Podstawowe (wygenerowane Mipmapy) - + Full (PS2 Mipmaps) Pełna (PS2 Mipmapy) - - + + Texture Filtering: Filtrowanie tekstur: - - + + Nearest Najbliższe - - + + Bilinear (Forced) Dwuliniowe (wymuszone) - - + + Bilinear (PS2) Dwuliniowe (PS2) - - + + Bilinear (Forced excluding sprite) Dwuliniowy (wymuszony z wyłączeniem sprite) - + Trilinear Filtering: Filtrowanie trójliniowe: - + Off (None) Wyłączony (Brak) - + Trilinear (PS2) Trójliniowe (PS2) - + Trilinear (Forced) Trójliniowe (wymuszone) - + Anisotropic Filtering: Filtrowanie anizotropowe: - + Dithering: Dithering: - + Scaled Skalowane - + Unscaled (Default) Nieskalowane (domyślne) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimalne - + Basic (Recommended) Podstawowe (zalecane) - + Medium Średnie - + High Wysokie - + Full (Slow) Pełne (wolne) - + Maximum (Very Slow) Maksymalne (Bardzo powolne) - + Texture Preloading: Texture Preloading: - + Partial Częściowe - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Ręczne poprawki renderowania sprzętowego - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Dodatkowe wątki renderujące: - - - + threads wątki - + Mipmapping Mapowanie mip - + Auto Flush Automatyczne oczyszczanie - + Hardware Fixes Poprawki sprzętowe - + Force Disabled Wymuś wyłączone - + Force Enabled Wymuś włączone - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9586,79 +10019,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Wyłączone) - + 1 (64 Max Width) 1 (Maksymalna szerokość - 64) - + 2 (128 Max Width) 2 (Maksymalna szerokość - 128) - + 3 (192 Max Width) 3 (Maksymalna szerokość - 192) - + 4 (256 Max Width) 4 (Maksymalna szerokość - 256) - + 5 (320 Max Width) 5 (Maksymalna szerokość - 320) - + 6 (384 Max Width) 6 (Maksymalna szerokość - 384) - + 7 (448 Max Width) 7 (Maksymalna szerokość - 448) - + 8 (512 Max Width) 8 (Maksymalna szerokość - 512) - + 9 (576 Max Width) 9 (Maksymalna szerokość - 576) - + 10 (640 Max Width) 10 (Maksymalna szerokość - 640) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9669,606 +10097,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normalne) - + 2 (Aggressive) 2 (Agresywne) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Wyłączone (domyślnie) - + Enabled (Exact Match) Włączone (Dokładne Dopasowanie) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Poprawki upscalingowe - + Half Pixel Offset: Przesunięcie o pół piksela: - + Normal (Vertex) Standardowe (Wierzchołkowe) - + Special (Texture) Szczególne (Teksturowe) - + Special (Texture - Aggressive) Szczególne (Teksturowe - agresywne) - + Round Sprite: Round Sprite: - + Half Połowa - + Full Pełne - + Texture Offsets: Przesunięcia tekstur: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Dostosuj sprite - + Deinterlacing: Usuwanie przeplotu: - + Sprites Only Tylko sprite'y - + Sprites/Triangles Sprite'y/Trójkąty - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Automatyczne oczyszczanie: - + Enabled (Sprites Only) Włączone (tylko sprite'y) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Szukaj w katalogu - - + + Browse... Przeglądaj... - - + + Open... Otwórz... - - + + Reset Resetuj - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Opcje - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Asynchroniczne wczytywanie tekstur - - - + Load Textures Załaduj tekstury - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) Brak (domyślne) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Ostrość: - + FXAA FXAA - + Filters Filtry - + TV Shader: TV Shader: - + Scanline Filter Filtr linii skanu - + Diagonal Filter Filtr "po przekątnej" - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Jasność: - + Contrast: Kontrast: - Saturation Nasycenie - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: Skala OSD: - + Show Indicators Pokaż wskaźniki - + Show Resolution Pokaż rozdzielczość - + Show Inputs Pokaż dane wejściowe - + Show GPU Usage Pokaż użycie GPU - + Show Settings Pokaż ustawienia - + Show FPS Pokaż licznik FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Pokaż statystyki - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Pokaż użycie procesora - + Warn About Unsafe Settings Ostrzegaj o niebezpiecznych ustawieniach - + Show Frame Times Show Frame Times - + Recording Nagrywanie - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Kontener: - - + + Codec: Kodek: - - + + Extra Arguments Dodatkowe argumenty - + Capture Audio Przechwyć dźwięk - + Resolution: Rozdzielczość: - + x x - + Auto Automatyczny - + Capture Video Nagraj film - + Advanced Advanced here refers to the advanced graphics options. Zaawansowane - + Advanced Options Opcje zaawansowane - + Hardware Download Mode: Tryb pobierania sprzętowego: - + Accurate (Recommended) Dokładne (zalecane) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Nieskompresowane - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10278,69 +10716,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Zabroniony - + Allowed Dozwolony - + Debugging Options Opcje debugowania - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10409,8 +10841,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Użyj ustawień globalnych [%1] @@ -10462,6 +10894,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Odznaczone @@ -10521,11 +10954,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10577,6 +11020,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10592,11 +11090,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10634,7 +11127,7 @@ Swap chain: see Microsoft's Terminology Portal. Włącz tę opcję, aby dopasować odświeżanie PCSX2 do bieżącego monitora lub ekranu. VSync jest automatycznie wyłączony, gdy nie jest to możliwe (np. działa z prędkością inną niż 100%). - + Integer Scaling Integer Scaling @@ -10723,8 +11216,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Pełny ekran bez obramowania @@ -10866,11 +11359,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10921,11 +11409,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11043,7 +11526,7 @@ Swap chain: see Microsoft's Terminology Portal. Skala OSD - + Show OSD Messages Show OSD Messages @@ -11083,6 +11566,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11136,29 +11624,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Dokładny - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Domyślne - - + + (Default) (Domyślne) @@ -11166,405 +11664,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Grafika - + Save Screenshot Zapisz zrzut ekranu - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Proporcje obrazu ustawione na '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Głośność: Wyciszona - + Volume: {}% Głośność: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Otwórz menu pauzy - + Open Achievements List Otwórz listę osiągnięć - + Open Leaderboards List Otwórz listę rankingów - + Toggle Pause Przełącz pauzę - + Toggle Fullscreen Przełącz tryb pełnoekranowy - + Toggle Frame Limit Przełącz limiter klatek - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Przełącz spowolnienie czasu - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Zwiększ prędkość celu - + Decrease Target Speed Zmniejsz prędkość celu - + Increase Volume Zwiększ głośność - + Decrease Volume Zmniejsz głośność - + Toggle Mute Przełącz wyciszenie - + Frame Advance Frame Advance - + Shut Down Virtual Machine Zamknij maszynę wirtualną - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Zapisy - + Select Previous Save Slot Wybierz poprzednie miejsce zapisu - + Select Next Save Slot Wybierz następne miejsce zapisu - + Save State To Selected Slot Zapisz w wybranym miejscu - + Load State From Selected Slot Wczytaj zapis z wybranego miejsca - + Save State To Slot 1 Zapisz na miejscu 1 - + Load State From Slot 1 Wczytaj zapis z miejsca 1 - + Save State To Slot 2 Zapisz w miejscu 2 - + Load State From Slot 2 Wczytaj zapis z miejsca 2 - + Save State To Slot 3 Zapisz stan do slotu 3 - + Load State From Slot 3 Wczytaj stan ze slotu 3 - + Save State To Slot 4 Zapisz stan do slotu 4 - + Load State From Slot 4 Wczytaj stan ze slotu 4 - + Save State To Slot 5 Zapisz stan do slotu 5 - + Load State From Slot 5 Wczytaj stan ze slotu 5 - + Save State To Slot 6 Zapisz stan do slotu 6 - + Load State From Slot 6 Wczytaj stan ze slotu 6 - + Save State To Slot 7 Zapisz stan do slotu 7 - + Load State From Slot 7 Wczytaj stan ze slotu 7 - + Save State To Slot 8 Zapisz stan do slotu 8 - + Load State From Slot 8 Wczytaj stan ze slotu 8 - + Save State To Slot 9 Zapisz stan do slotu 9 - + Load State From Slot 9 Wczytaj stan ze slotu 9 - + Save State To Slot 10 Zapisz stan do slotu 10 - + Load State From Slot 10 Wczytaj stan ze slotu 10 @@ -11724,6 +12222,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11751,137 +12339,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Zachowanie - + Pause On Focus Loss Pauza przy zminimalizowaniu gry - + Inhibit Screensaver Wstrzymaj wygaszacz ekranu - + Save State On Shutdown Zapisz stan przy zamknięciu - + Pause On Start Pauza po rozpoczęciu - + Confirm Shutdown Potwierdź zamknięcie - + Create Save State Backups Utwórz kopię zapasową stanu - + Enable Discord Presence Włącz Discord Rich Presence - + Enable Per-Game Settings Włącz ustawienia dla gry - + Game Display Wyświetlacz gry - + Start Fullscreen Uruchom na pełnym ekranie - + Double-Click Toggles Fullscreen Podwójne kliknięcie myszą przełącza tryb pełnoekranowy - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Ukryj główne okno podczas działania - + Disable Window Resizing Wyłącz zmianę rozmiaru okna - + Hide Cursor In Fullscreen Ukryj kursor w trybie pełnoekranowym - + Preferences Preferencje - + Language: Język: - + Theme: Motyw: - + Automatic Updater Asystent aktualizacji - + Update Channel: Kanał aktualizacji: - + Current Version: Bieżąca wersja: - + Enable Automatic Update Check Włącz automatyczne sprawdzanie aktualizacji - + Check for Updates... Sprawdź aktualizacje... @@ -12074,7 +12662,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12089,7 +12677,7 @@ Right click to clear binding Hide %1 - Hide %1 + Ukryj %1 @@ -12099,12 +12687,12 @@ Right click to clear binding Show All - Show All + Pokaż wszystko Preferences... - Preferences... + Ustawienia... @@ -12131,14 +12719,14 @@ Right click to clear binding - - + + Change Disc Zmień dysk - + Load State Wczytaj stan @@ -12643,13 +13231,13 @@ Right click to clear binding - + Start Big Picture Mode Uruchom tryb Big Picture - + Big Picture In Toolbar Tryb Big Picture @@ -12661,7 +13249,7 @@ Right click to clear binding - + Show Advanced Settings Pokaż ustawienia zaawansowane @@ -12672,7 +13260,7 @@ Right click to clear binding - + Video Capture Przechwytywanie wideo @@ -12687,27 +13275,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Rozdzielczość wewnętrzna - + %1x Scale Skala %1x - + Select location to save block dump: Select location to save block dump: - + Do not show again Nie pokazuj ponownie - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12720,168 +13308,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Pliki (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Potwierdź zamknięcie - + Are you sure you want to shut down the virtual machine? Czy na pewno chcesz zamknąć maszynę wirtualną? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Błąd - + You must select a disc to change discs. Musisz wybrać dysk, aby zmienić dyski. - + Properties... Właściwości... - + Open Containing Directory... Refers to the directory where a game is contained. Otwórz katalog zawierający... - + Set Cover Image... Ustaw okładkę... - + Exclude From List Wyklucz z listy - + Reset Play Time Zresetuj czas gry - + Default Boot Domyślny rozruch - + Fast Boot Szybki rozruch - + Full Boot Pełny rozruch - + Boot and Debug Uruchom i debuguj - + Add Search Directory... Dodaj katalog wyszukiwania... - + Start File Plik startowy - + Start Disc Dysk startowy - + Select Disc Image Wybierz obraz dysku - + Updater Error Błąd aktualizacji - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Przepraszamy, próbujesz zaktualizować wersję PCSX2, która nie jest oficjalną wersją GitHub. Aby zapobiec niezgodnościom, auto-aktualizacja jest włączona tylko na oficjalnych wersjach.</p><p>Aby uzyskać oficjalną wersję, pobierz link poniżej:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatyczna aktualizacja nie jest obsługiwana na bieżącej platformie. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Wstrzymano - + Load State Failed Nie udało się wczytać stanu - + Cannot load a save state without a running VM. Nie można załadować stanu zapisu bez uruchomionej maszyny wirtualnej. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Nie udało się uzyskać informacji o oknie z widżetu @@ -12896,97 +13489,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Właściwości gry - + Game properties is unavailable for the current game. Właściwości są niedostępne dla bieżącej gry. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Wybierz napęd dysku: - + This save state does not exist. Ten zapis stanu nie istnieje. - + Select Cover Image Wybierz okładkę - - All Cover Image Types (*.jpg *.jpeg *.png) - Wszystkie typy okładek (*.jpg *.jpeg *.png) - - - + Cover Already Exists Okładka już istnieje - + A cover image for this game already exists, do you wish to replace it? Obraz okładki dla tej gry już istnieje, czy chcesz go zastąpić? - - - - + + + + Copy Error Błąd kopiowania - + Failed to remove existing cover '%1' Nie udało się usunąć istniejącej okładki '%1' - + Failed to copy '%1' to '%2' Nie udało się skopiować '%1' do '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Potwierdź reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12995,12 +13588,12 @@ This action cannot be undone. Tej czynności nie można cofnąć. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13013,70 +13606,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Świeży rozruch - + Delete And Boot Usuń i uruchom - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Wczytaj plik stanu gry... - + Load From File... Wczytaj z pliku... - - + + Select Save State File Wybierz plik zapisu stanu gry - - + + Save States (*.p2s) Zapisz stany (*.p2s) - + Delete Save States... Usuń zapisy stanów... - + Undo Load State Cofnij załadowanie stanu - + Resume (%2) Wznów (%2) - + Load Slot %1 (%2) Wczytaj Slot %1 (%2) - - + + Delete Save States Usuń zapisy stanów gry - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13085,42 +13678,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. Usunięto %1 stan zapisu. - + Save To File... Zapisz do pliku... - + Empty Pusty - + Save Slot %1 (%2) Zapisz Slot %1 (%2) - + Confirm Disc Change Potwierdź zmianę dysku - + Do you want to swap discs or boot the new image (via system reset)? Chcesz zamienić dyski czy uruchomić nowy obraz (poprzez zresetowanie systemu)? - + Swap Disc Zamień dysk - + Reset Resetuj @@ -13128,8 +13721,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Karta pamięci '{}' została zapisana do pamięci masowej. @@ -13210,6 +13803,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13260,11 +13854,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Nie można skonwertować karty pamięci - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13390,103 +13979,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Porty konsoli - + Memory Cards Karty pamięci - + Folder: Katalog: - + Browse... Przeglądaj... - + Open... Otwórz... - + Reset Resetuj - + Name Nazwa - + Type Typ - + Formatted Sformatowana - + Last Modified Data modyfikacji - + Refresh Odśwież - + + Create Utwórz - + Duplicate Duplikuj - + Rename Zmień nazwę - + Convert Konwertuj - + Delete Usuń - + Settings Ustawienia - + Automatically manage saves based on running game Automatycznie zarządzaj zapisami na podstawie uruchomionej gry - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13656,58 +14246,58 @@ This action cannot be reversed, and you will lose any saves on the card.Pamięć - + Copy Address Copy Address - + Go to in disassembly Przejdź do demontażu - - + + Go to address Przejdź do adresu - + Show as 1 byte Pokaż jako 1 bajt - + Show as 2 bytes Pokaż jako 2 bajty - + Show as 4 bytes Pokaż jako 4 bajty - + Show as 8 bytes Pokaż jako 8 bajtów - + Copy Byte Skopiuj bajt - + Copy Segment Skopiuj segment - + Copy Character Kopiuj znak - + Paste Wklej @@ -13757,10 +14347,15 @@ This action cannot be reversed, and you will lose any saves on the card.Wprowadź nazwę autora - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13956,6 +14551,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13972,14 +14577,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14026,13 +14631,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14103,40 +14701,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} łatek GameDB - + {}{} game patches {}{} łatek gry - + {}{} cheat patches {}{} łatek cheatów - + {} are active. {} są aktywne. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14154,13 +14775,13 @@ The URL was: %1 Adres URL był: %1 - + HDD Creator Kreator dysku twardego HDD - + Failed to create HDD image Nie udało się utworzyć obrazu HDD @@ -14365,7 +14986,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14415,222 +15035,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Użyj ustawień globalnych [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Użyj ustawień globalnych [Disabled] + + + + + Use Global Setting [%1] + Użyj ustawień globalnych [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings - Ustawienia PCSX2 + PCSX2 Settings - + Restore Defaults - Przywróć domyślne + Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close - Zamknij - - - - - Summary - Podsumowanie + Close - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface - Interfejs + Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Lista gier - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - <strong>Ustawienia listy gier</strong><hr> Lista powyżej pokazuje katalogi, które będą wyszukiwane przez PCSX2 w celu wypełnienia listy gry. Katalogi wyszukiwania mogą być dodawane, usuwane i przełączane na rekursywne/nierekursywne. + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulacja - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - <strong>Ustawienia emulacji</strong><hr>Te opcje określają konfigurację tempa klatek i ustawień gry.<br><br>Najedź myszą nad opcję, aby uzyskać dodatkowych informacji. + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches - Łatki + Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - <strong>Patche</strong><hr>Ta sekcja pozwala wybrać opcjonalne patche do zastosowania w grze, które mogą zapewnić ulepszenia wydajności, wizualne lub rozgrywki. + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats - Cheaty + Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes - Poprawki gier + Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics - Grafika + Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio - Dźwięk + Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Karty pamięci - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD - Sieć & HDD + Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders - Katalogi + Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements - Osiągnięcia + Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Zaawansowane - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug - Debuguj + Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults - Potwierdź przywrócenie ustawień domyślnych + Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. - Czy na pewno chcesz przywrócić domyślne ustawienia? Wszelkie preferencje zostaną utracone. + Czy na pewno chcesz przywrócić ustawienia domyślne? Wszelkie ustawienia zostaną utracone. - + Reset UI Settings - Zresetuj ustawienia interfejsu + Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14643,12 +15284,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14661,32 +15302,14 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value - Zalecana wartość - - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Użyj ustawień globalnych [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Użyj ustawień globalnych [Disabled] - - - - - Use Global Setting [%1] - Użyj ustawień globalnych [%1] + Recommended Value @@ -14773,8 +15396,8 @@ Do you want to continue? - Open in Explorer... - Otwórz w Eksploratorze... + Open BIOS Folder... + Open BIOS Folder... @@ -15041,97 +15664,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. TYP CZEKANIA - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. Gotowe - + WAIT Refers to a Thread State in the Debugger. CZEKAJ - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. BRAK - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. OPÓŹNIENIE - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15337,6 +15960,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15368,6 +15996,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15383,6 +16017,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15403,6 +16043,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Ustawia szerokość emulowanego ekranu. + + + + %dpx + %dpx + Screen Height @@ -15458,6 +16104,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15658,6 +16313,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15668,6 +16343,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16167,117 +16848,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Wskazówki - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad Krzyżak - + Down Dół - + Left Lewo - + Up Góra - + Right Prawo - + L1 L1 - + L2 L2 - + Brake Hamulec - + Steering Left Skręcanie w lewo - + Steering Right Skręcanie w prawo - + Select Select - + Start Start - + Face Buttons Przednie przyciski - + Circle Kółko - + Cross Krzyżyk - + Triangle Trójkąt - + Square Kwadrat - + R1 R1 - + R2 R2 - + Accelerator Akcelerator @@ -16285,67 +16966,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Wskazówki - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Hamulec - + Steering Left Skręcanie w lewo - + Steering Right Skręcanie w prawo - + Left Paddle Lewy pedał - + Right Paddle Prawy pedał - + Y Y - + B B - + Accelerator Akcelerator @@ -16353,71 +17034,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons - Buttons + Przyciski - + A - A + A - + C - C + C - + Start - Start + Start - + Select - Select + Select - + B - B + B - + D-Pad D-Pad - - + + Down - Down + Dół - - + + Left - Left + Lewo - - + + Up - Up + Góra - - + + Right - Right + Prawo - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16426,29 +17107,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16456,27 +17137,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Typ urządenia - + Bindings Przypisanie przycisków - + Settings Ustawienia - + Automatic Mapping Automatyczne mapowanie - + Clear Mapping Wyczyść mapowanie @@ -16514,32 +17195,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game - Unknown Game + Nieznana gra - + Error Błąd - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16556,197 +17237,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Wyjęto płytę. - + Disc changed to '{}'. Zmieniono płytę na '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Poprawki kompatybilności są wyłączone. Może mieć to wpływ na zgodność z niektórymi grami. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Wstępne wczytywanie tekstur nie jest ustawione na Pełne, może to obniżyć wydajność. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_pt-BR.ts b/pcsx2-qt/Translations/pcsx2-qt_pt-BR.ts index 12333cc008a9b6..dbf50cc29eeea1 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_pt-BR.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_pt-BR.ts @@ -80,32 +80,38 @@ Pronto... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Seu token de login do RetroAchievements não é mais válido.</strong> Você deve re-inserir credenciais para as conquistas serem rastreadas. Sua senha não será salva no PCSX2, um token de acesso será gerado e usado ao invés disto. - + &Login &Login - + Logging in... Fazendo Login... - + Login Error Erro do Login - - Login failed. Please check your username and password, and try again. - O login falhou. Por favor verifique seu nome de usuário e senha e tente de novo. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + O login falhou. +Erro: %1 + +Por favor verifique seu nome de usuário e senha e tente de novo. - + Login failed. O login falhou. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Configurações Globais - - - - + + Enable Achievements Ativar Conquistas - - - Show Challenge Indicators - Mostrar Indicadores de Desafio - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Ativar Presença Rica dos RetroAchievements - - - - + + Enable Hardcore Mode Ativar Modo Hardcore - - - Enable Leaderboards - Ativar Tabelas de Classificação - - - + Test Unofficial Achievements Testar Conquistas Não Oficiais - - - Enable Test Mode - Ativar Modo de Teste - - - - + + Enable Sound Effects Ativar Efeitos de Som - + Notifications Notificações - - - Show Notifications - Mostrar Notificações - - - - Duration - Duração - - - - - - + + 5 seconds 5 segundos - + Account Conta - - + + Login... Login... - + View Profile... Visualizar Perfil... - + + Settings + Configurações + + + + + Enable Spectator Mode + Ativar Modo Espectador + + + + + Enable Encore Mode + Ativar Modo Encore + + + + + Show Achievement Notifications + Mostrar Notificações das Conquistas + + + + + Show Leaderboard Notifications + Mostrar Notificações da Tabela de Classificação + + + + + Enable In-Game Overlays + Ativar as Sobreposições Dentro do Jogo + + + + Username: +Login token generated at: + Nome de usuário: +Token do login gerado em: + + + Game Info Informações do Jogo - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">O PCSX2 usa o RetroAchievements como um banco de dados de conquistas para o progresso do rastreamento. Pra usar as conquistas por favor registre-se em uma conta no <a href="https://retroachievements.org/"><span style=" text-decoration: underline; color:#4169e1;">retroachievements.org</span></a>.</p><p align="justify">Pra visualizar a lista de conquistas no jogo pressione a tecla de atalho pra <span style=" font-weight:600;">Abrir o Menu de Pausa</span> e selecione <span style=" font-weight:600;">Conquistas</span> no menu.</p></body></html> + - seconds - segundos - - - - + + - - Unchecked Desmarcado - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Quando ativado e logado o PCSX2 escaneará por conquistas no carregamento do jogo. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Quando ativado o PCSX2 assumirá que todas as conquistas estão trancadas e não enviará quaisquer notificações de desbloqueio para o servidor. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Quando ativado o PCSX2 listará as conquistas dos conjuntos não oficiais. Por favor note que estas conquistas não são rastreadas pelo RetroAchievements, então elas estão destrancadas o tempo todo. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Quando ativado as informações da presença rica serão coletadas e enviadas para os servidores do RetroAchievements aonde for suportado. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. O modo "Desafio" pra conquistas incluindo o rastreamento da tabela de classificação. Desativa as funções do save state, trapaças e lentidão. - - - - + + + + Checked Selecionado - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Ativa o rastreamento e a submissão de tabelas de classificação nos jogos suportados. Se as tabelas de classificação estiverem desativadas você ainda será capaz de visualizar a tabela de classificação e as pontuações mas não serão feitos uploads das pontuações. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Exibe mensagens pop-up em eventos tais como desbloqueios de conquistas e submissões a tabela de classificação. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Reproduz os efeitos de som pra eventos tais como os desbloqueios de conquistas e submissões a tabela de classificação. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Mostra os ícones no canto inferior direito da tela quando uma conquista de desafio/preparada está ativa. - - - - Notification Duration - Duração das Notificações + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Quando ativado e logado o PCSX2 escaneará por conquistas na inicialização. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - A duração em segundos que uma notificação pop-up de conquista permanecerá na tela. + + Displays popup messages on events such as achievement unlocks and game completion. + Exibe mensagens pop-up em eventos tais como desbloqueios de conquistas e finalização do jogo. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Exibe mensagens pop-up quando iniciar, submeter ou falhar num desafio da tabela de classificação. + + + + When enabled, each session will behave as if no achievements have been unlocked. + Quando ativado, cada sessão se comportará como se nenhuma conquista tenha sido destrancada. + + + Reset System Resetar Sistema - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? O modo hardcore não será ativado até que o sistema seja resetado. Você quer resetar o sistema agora? + + + + %n seconds + + %n segundos + %n segundos + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Nome de usuário: %1 Token do login gerado em %2. - + Logout Sair - + Not Logged In. Não Está Logado. - - - %1 seconds - %1 segundos - Achievements - + Hardcore mode will be enabled on system reset. O modo Hardcore estará ativado ao resetar o sistema. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} não pode ser executado enquanto o modo hardcore estiver ativo. Você quer desativar o modo hardcore? {0} será cancelado se você selecionar Não. - + Hardcore mode is now enabled. O modo Hardcore agora está ativado. - + + {} (Hardcore Mode) + {} (Modo Hardcore) + + + + {} (Unofficial) + {} (Não oficial) + + + + Mastered {} + Dominou {} + + + + Leaderboard attempt started. + Tentativa da tabela de classificação iniciada. + + + + Leaderboard attempt failed. + A tentativa da tabela de classificação falhou. + + + + Your Time: {}{} + Seu Tempo: {}{} + + + + Your Score: {}{} + Sua Pontuação: {}{} + + + + Your Value: {}{} + Seu Valor: {}{} + + + + (Submitting) + (Submetendo) + + + + Achievements Disconnected + Conquistas Desconectadas + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Uma requisição de destravamento não pôde ser completada. Nós continuaremos tentando enviar esta requisição de novo. + + + + Achievements Reconnected + Conquistas Reconectadas + + + + All pending unlock requests have completed. + Todas as requisições de destravamento pendentes foram completadas. + + + Hardcore mode is now disabled. O modo Hardcore agora está desativado. - + + Confirm Hardcore Mode + Confirmar Modo Hardcore + + + + Active Challenge Achievements + Conquistas de Desafios Ativas + + + (Hardcore Mode) (Modo Hardcore) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Você ganhou {0} de {1} conquistas e {2} de {3} pontos. + + You have unlocked all achievements and earned {} points! + Você destrancou todas as conquistas e ganhou {} pontos! - - This game has no achievements. - Este jogo não tem conquistas. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Você destrancou {0} de {1} conquistas e ganhou {2} de {3} pontos. + + + + {0} achievements, {1} points + Conquistas: {0}, pontos {1} + + + + Your Time: {0} (Best: {1}) + Seu Tempo: {0} (Melhor: {1}) + + + + Your Score: {0} (Best: {1}) + Sua Pontuação: {0} (Melhor: {1}) + + + + Your Value: {0} (Best: {1}) + Seu Valor: {0} (Melhor: {1}) - - Leaderboard submission is enabled. - A submissão a tabela de classificação está ativada. + + {0} +Leaderboard Position: {1} of {2} + {0} +Posição na Tabela de Classificação: {1} de {2} + + + + Server error in {0}: +{1} + Erro do servidor em {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Pontuação: {0} ({1} softcore) +Mensagens não lidas: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Você destrancou {0} de {1} conquistas, ganhando {2} de {3} pontos possíveis. + + + + Unknown + Desconhecido + + + + Locked + Trancado + + + + Unlocked + Destrancado + + + + Unsupported + Não Suportado + + + + Unofficial + Não oficial + + + + Recently Unlocked + Destravou Recentemente + + + + Active Challenges + Desafios Ativos + + + + Almost There + Quase Lá + + + + {} points + {} pontos + + + + {} point + {} pontos + + + + XXX points + Pontos XXX + + + + Unlocked: {} + Destrancou: {} + + + + This game has {} leaderboards. + Este jogo tem {} tabelas de classificação. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + A submissão de pontuações está desativada porque o modo hardcore está desligado. As tabelas de classificação são somente-leitura. + + + + Show Best + Mostrar os Melhores + + + + Show Nearby + Mostrar os Próximos + + + + Rank + Rank + + + + Name + Nome - + + Time + Tempo + + + + Score + Pontuação + + + + Value + Valor + + + + Date Submitted + Dados Submetidos + + + + Downloading leaderboard data, please wait... + Baixando os dados da tabela de classificação, por favor aguarde... + + + + + Loading... + Carregando... + + + + + Leaderboard download failed + O download da tabela de classificação falhou + + + + This game has no achievements. + Este jogo não tem conquistas. + + + Failed to read executable from disc. Achievements disabled. Falhou em ler o executável do disco. Conquistas desativadas. @@ -578,220 +815,220 @@ Token do login gerado em %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Mudar estas opções pode fazer os jogos se tornarem não funcionais. Modifique por sua conta e risco, o time do PCSX2 não fornecerá suporte pra configurações com estas configurações mudadas. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). Emotion Engine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Modo de Arredondamento: - - - + + + Nearest Mais Próximo - - - + + + Negative Negativo - - - + + + Positive Positivo - - - + + + Chop / Zero (Default) Cortar/Zero (Padrão) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Modo de Fixação: - - + + None Nenhum - - - + + + Normal (Default) Normal (Padrão) - + None ClampMode Nenhum - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preservar Sinal - + Full Completo - + Wait Loop Detection Detecção do Loop de Espera - - + + Enable Recompiler Ativar Recompilador - + Enable Fast Memory Access Ativar Acesso Rápido a Memória - + Enable Cache (Slow) Ativar Cache (Lento) - + INTC Spin Detection Detecção do Giro do INTC - + Pause On TLB Miss Pausar ao Errar o TLB - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Unidades Vetoriais (VU) - + VU1 Rounding Mode: Modo de Arredondamento da VU1: - + mVU Flag Hack Hack da Bandeira da mVU - + Enable VU1 Recompiler Ativar o Recompilador VU1 - + Enable VU0 Recompiler (Micro Mode) Ativar o Recompilador VU0 (Modo Micro) - - + + Extra Extra - + VU0 Clamping Mode: Modo de Fixação da VU0: - + VU0 Rounding Mode: Modo de Arredondamento da VU0: - + VU1 Clamping Mode: Modo de Fixação da VU1: - + I/O Processor (IOP, MIPS-I) E/S do Processador (IOP, MIPS-I) - + Game Settings Configurações do Jogo - + Enable Game Fixes Ativar os Consertos dos Jogos - + Enable Compatibility Patches Ativar Patches de Compatibilidade - + Frame Rate Control Controle da Taxa dos Frames - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. Hz - + PAL Frame Rate: Taxa dos Frames do PAL: - + NTSC Frame Rate: Taxa dos Frames do NTSC: - + PINE Settings Configurações do PINE - + Slot: Slot: - + Enable Ativar @@ -799,182 +1036,182 @@ Token do login gerado em %2. AudioSettingsWidget - + Timestretch Settings Configurações do Esticador de Tempo - + Sequence Length: Tamanho da Sequência: - + 30 30 - + Seekwindow Size: Tamanho da Janela de Busca: - + 20 20 - + Overlap: Sobreposição: - + 10 10 - + Restore Defaults Restaurar Padrões - + Volume Volume - + 100% 100% - + Mixing Settings Configurações de Mixagem - + Synchronization: Sincronização: - + TimeStretch (Recommended) Esticador de Tempo (Recomendado) - + Async Mix (Breaks some games!) Mistura Assíncrona (Quebra alguns jogos!) - + None (Audio can skip.) Nenhum (O áudio pode pular) - + Expansion: Expansão: - + Stereo (None, Default) Estéreo (Nenhum, Padrão) - + Quadraphonic - Quadraphonic + Quadrifônico - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Nível do ProLogic: - + None (Default) Nenhum (Padrão) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Decodificação do ProLogic (básica) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Decodificação do ProLogic II (gigaherz) - + Target Latency: Latência do Alvo: - + 60 ms 60 ms - + Output Settings Configurações de Saída - + Output Module: Módulo de Saída: - + Output Latency: Latência da Saída: - + 20 ms 20 ms - + Minimal Mínimo - + Output Backend: Backend de Saída: - + Maximum Latency: Latência Máxima: - + Output Device: Dispositivo de Saída: @@ -1162,17 +1399,22 @@ Token do login gerado em %2. Nova Versão: - + + Download Size: + Tamanho do Download: + + + Download and Install... Baixar e Instalar... - + Skip This Update Ignorar esta Atualização - + Remind Me Later Lembre-me Mais Tarde @@ -1182,17 +1424,17 @@ Token do login gerado em %2. Erro do Atualizador - + <h2>Changes:</h2> <h2>Mudanças:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Aviso do Save State</h2><p>Instalar esta atualização tornará seus save states <b>incompatíveis</b>. Por favor certifique-se que você tenha salvo seus jogos no Cartão de Memória antes de instalar esta atualização ou você perderá o progresso.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Aviso das Configurações</h2><p>Instalar esta atualização resetará a configuração do seu programa. Por favor note que você terá que reconfigurar suas configurações após esta atualização.</p> @@ -1233,6 +1475,11 @@ Token do login gerado em %2. + Download Size: %1 MB + Tamanho do Download: %1 MB + + + Loading... Carregando... @@ -1240,63 +1487,63 @@ Token do login gerado em %2. BIOSSettingsWidget - + BIOS Directory Diretório da BIOS - + PCSX2 will search for BIOS images in this directory. O PCSX2 procurará imagens da BIOS neste diretório. - + Browse... Explorar... - + Reset Resetar - + BIOS Selection Seleção da BIOS - - Open in Explorer... - Abrir no Explorer... + + Open BIOS Folder... + Abrir a Pasta da BIOS... - + Refresh List Atualizar Lista - + Filename Nome do Arquivo - + Version Versão - + Options and Patches Opções e Patches - + Fast Boot Inicialização Rápida - + Fast Forward Boot Inicialização do Avanço Rápido @@ -1424,91 +1671,84 @@ Token do login gerado em %2. BreakpointModel - + Execute Executar - - No Condition - Não Há Condição - - - - + + -- -- - - + Enabled Ativado - - + Disabled Desativado - + Read Leitura - + Write(C) (C) = changes, as in "look for changes". Gravação(C) - + Write Gravação - + TYPE Warning: limited space available. Abbreviate if needed. TIPO - + OFFSET Warning: limited space available. Abbreviate if needed. DESLOCAMENTO - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. TAMANHO/RÓTULO - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUÇÃO - + CONDITION Warning: limited space available. Abbreviate if needed. CONDIÇÃO - + HITS Warning: limited space available. Abbreviate if needed. ACERTOS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ATIVADO + X @@ -1519,7 +1759,7 @@ Token do login gerado em %2. O local do disco do jogo está num drive removível, problemas de performance tais como tremores e congelamento podem ocorrer. - + Saving CDVD block dump to '{}'. Salvar o Dump dos Blocos do CDVD em '{}'. @@ -1555,32 +1795,32 @@ Token do login gerado em %2. ControllerBindingWidget - + Virtual Controller Type Tipo de Controle Virtual - + Bindings Associações - + Settings Configurações - + Macros Macros - + Automatic Mapping Mapeamento Automático - + Clear Mapping Limpar Mapeamento @@ -1620,146 +1860,146 @@ Token do login gerado em %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Direcionais - - - + + + Down Pra Baixo - - - + + + Left Esquerda - - - + + + Up Pra Cima - - - + + + Right Direita - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Analógico Esquerdo - + Large Motor Motor Grande - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Botões Faciais - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cruz - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Quadrado - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triângulo - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Círculo - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Analógico Direito - + Small Motor Motor Pequeno - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Modificador de Pressão - + Analog Analógico @@ -1767,77 +2007,72 @@ Token do login gerado em %2. ControllerBindingWidget_Guitar - - Form - Formulário - - - + Yellow Amarelo - - - - - - - - - - - + + + + + + + + + + + PushButton Pressionar Botão - + Start Start - + Red Vermelho - + Green Verde - + Orange Laranja - + Select Select - + Strum Up Dedilhar pra Cima - + Strum Down Dedilhar pra Baixo - + Blue Azul - + Whammy Bar Barra do Vibrato - + Tilt Inclinação @@ -1863,123 +2098,133 @@ Token do login gerado em %2. ControllerGlobalSettingsWidget - + SDL Input Source Fonte da Entrada do SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). A fonte de entrada do SDL suporta a maioria dos controles e fornece funcionalidade avançada pros controles DualShock 4/DualSense no modo Bluetooth (Controle de Vibração/LED). - + Enable SDL Input Source Ativar Fonte de Entrada do SDL - + DualShock 4 / DualSense Enhanced Mode Modo Melhorado do DualShock 4/DualSense - + XInput Source Fonte do XInput - + Enable XInput Input Source Ativar Fonte de Entrada do XInput - + DInput Source Fonte do DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. A fonte do DInput fornece suporte pra controles antigos os quais não suportam XInput. Acessar estes controles via SDL é recomendado ao invés disto mas o DirectInput pode ser usado se eles não são compatíveis com o SDL. - + Enable DInput Input Source Ativar Fonte de Entrada do XInput - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Alguns controles de terceiros sinalizam incorretamente seus direcionais analógicos como invertidos no componente positivo, mas não no negativo.</p><p>Como resultado, o direcional analógico ficará &quot;preso&quot; mesmo enquanto descansa na posição neutra. </p><p>Ativar esta configuração dirá ao PCSX2 pra ignorar as bandeiras de inversão quando criar mapeamentos, permitindo que tais controles funcionem normalmente.</p></body></html> + + + + Ignore Inversion + Ignorar Inversão + + + Profile Settings Configurações do Perfil - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Quando esta opção está ativada as teclas de atalho podem ser definidas neste perfil de entrada e serão usadas ao invés das teclas de atalho globais. Por padrão as teclas de atalho são sempre compartilhadas entre todos os perfis. - + Use Per-Profile Hotkeys Usar Teclas de Atalho por Perfil - - + + Controller LED Settings Configurações do Controle do LED - + Enable SDL Raw Input Ativar a Entrada Pura do SDL - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. A fonte do XInput fornece suporte pros controles do XBox 360/XBox One/XBox Series e controles de terceiros os quais implementam o protocolo XInput. - + Controller Multitap Controle Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. O multitap habilita que até 8 controles estejam conectados ao console. Cada multitap fornece 4 portas. O multitap não é suportado por todos os jogos. - + Multitap on Console Port 1 Multitap na Porta 1 do Console - + Multitap on Console Port 2 Multitap na Porta 2 do Console - + Mouse/Pointer Source Fonte do Mouse/Ponteiro - + PCSX2 allows you to use your mouse to simulate analog stick movement. O PCSX2 permite a você usar o mouse pra simular o movimento do controle analógico. - + Settings... Configurações... - + Enable Mouse Mapping Ativar o Mapeamento do Mouse - + Detected Devices Dispositivos Detectados @@ -2015,58 +2260,58 @@ Token do login gerado em %2. ControllerMacroEditWidget - + Binds/Buttons Associações/Botões - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Selecione os botões os quais você quer engatilhar com este macro. Todos os botões são ativados simultaneamente. - + Pressure Pressão - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Pra botões os quais são sensíveis à pressão, este controle deslizante controla quanta força será simulada quando o macro estiver ativo. - - + + 100% 100% - + Trigger Gatilho - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Selecione o gatilho pra ativar este macro. Este pode ser um único botão ou uma combinação de botões (acorde). Clique com a tecla Shift pra múltiplos gatilhos. - + Deadzone: Zona Morta: - + Frequency Frequência - + Macro will toggle every N frames. O macro alternará a cada N frames. - + Set... Definir... @@ -2169,46 +2414,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings Configurações do Controle do PCSX2 - + Editing Profile: Editar Perfil: - + New Profile Novo Perfil - + Load Profile Carregar Perfil - + Delete Profile Apagar Perfil - - + + Restore Defaults - Restaurar Padrões + Restaurar Padrões - - + + Create Input Profile Criar Perfil de Entrada - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2464,35 @@ Pra aplicar um perfil de entrada personalizado em um jogo vá até as Propriedad Insira o nome do novo perfil de entrada: - - - - + + + + Error Erro - + A profile with the name '%1' already exists. Um perfil com o nome '%1' já existe. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Você quer copiar todas as associações do perfil selecionado atualmente para o novo perfil? Selecionar Não criará um perfil completamente vazio. - + Failed to save the new profile to '%1'. Falhou em salvar o novo perfil em '%1'. - + Load Input Profile Carregar o Perfil de Entrada - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2505,12 @@ Todas as associações globais atuais serão removidas e as associações do per Você não pode desfazer esta ação. - + Delete Input Profile Apagar Perfil de Entrada - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2519,12 @@ You cannot undo this action. Você não pode desfazer esta ação. - + Failed to delete '%1'. Falhou em apagar o '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2537,13 @@ Todas as associações e configurações compartilhadas serão perdidas mas seus Você não pode desfazer esta ação. - + Global Settings Configurações Globais - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2551,8 @@ Você não pode desfazer esta ação. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2560,26 @@ Você não pode desfazer esta ação. %2 - - + + USB Port %1 %2 Porta USB %1 %2 - + Hotkeys Teclas de Atalho - + Shared "Shared" refers here to the shared input profile. Compartilhado - + The input profile named '%1' cannot be found. O perfil de entrada chamado '%1' não pôde ser achado. @@ -2406,204 +2651,242 @@ Você não pode desfazer esta ação. Funções - + + Module + Módulo + + + + Version + Versão + + + + Count + Contagem + + + Refresh Atualizar - + Filter Filtro - + Memory Search Busca na Memória - + End Fim - + Value Valor - + Start Iniciar - + Type Tipo - + 1 Byte (8 bits) 1 byte (8 bits) - + 2 Bytes (16 bits) 2 byte (16 bits) - + 4 Bytes (32 bits) 4 byte (32 bits) - + 8 Bytes (64 bits) 8 byte (64 bits) - + Float Flutuante - + Double Duplo - + String - String + Cadeia de texto - + Array of byte Arranjo dos bytes - + Hex - Hex + Hexad. - + Search Busca - + Memory Memória - + Breakpoints Pontos de Interrupção - + Threads Threads - + Active Call Stack Pilha da Chamada Ativa - + Breakpoint List Context Menu Menu de Contexto da Lista dos Pontos de Interrupção - + New Novo - + Edit Editar - - - + + + Copy Copiar - + Delete Apagar - + + + + Copy all as CSV + Copiar tudo como CSV + + + + Paste from CSV + Colar do CSV + + + Thread List Context Menu Menu de Contexto da Lista de Threads - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Converter Símbolos C++ pra Algo Legível - + + Copy Function Name Copiar Nome da Função - + + Copy Function Address Copiar Endereço da Função - + + Go to in Disassembly Ir pro Disassembly - + + Go to in Memory View Ir pra Visualização de Memória - + + + Module Tree + Árvore dos Módulos + + + Stack List Context Menu Menu de Contexto da Lista de Acumulações - - - - - + + + + + Debugger Debugger - + Invalid start address Endereço inicial inválido - + Invalid end address Endereço final inválido - + Start address can't be equal to or greater than the end address O endereço inicial não pode ser igual ou maior do que o endereço final - + Invalid search value Valor da busca inválido - + Value is larger than type O valor é maior do que o tipo @@ -2659,22 +2942,22 @@ Você não pode desfazer esta ação. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Dispositivo de Ethernet: - + Ethernet Device Type: Tipo de Dispositivo de Ethernet: - + Intercept DHCP Interceptar DHCP @@ -2684,135 +2967,130 @@ Você não pode desfazer esta ação. Ativado - + Enabled InterceptDHCP Ativado - + Subnet Mask: Máscara da Sub-Rede: - + Gateway Address: Endereço do Gateway: - - + + Auto Auto - + Intercept DHCP: Interceptar DHCP: - + PS2 Address: Endereço do PS2: - + DNS1 Address: Endereço do DNS1: - + DNS2 Address: Endereço do DNS2: - + Internal DNS DNS Interno - + Add Adicionar - + Delete Apagar - + Export Exportar - + Import Importar - + Per game Por jogo - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 O DNS interno pode ser selecionado usando as listas do DNS1/2 ou definindo-as como 192.0.2.1 - + Enabled InternalDNSTable Ativado - + Hard Disk Drive Drive de Disco Rígido - + HDD File: Arquivo do HDD: - + 40 40 - + 120 120 - + HDD Size (GiB): Tamanho do HDD (GBs): - + Enabled HDD Ativado - + Browse Explorar - + Create Image Criar Imagem - - - - - PCAP Bridged @@ -2845,7 +3123,7 @@ Você não pode desfazer esta ação. - + Use Global Setting [%1] Usar Configuração Global [%1] @@ -2865,78 +3143,78 @@ Você não pode desfazer esta ação. Endereço - - + + Hosts File Arquivo dos Hospedeiros - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts Hospedeiros DNS - + Exported Successfully Exportado com Sucesso - + Failed to open file Falhou em abrir o arquivo - + No Hosts in file Não há hospedeiros no arquivo - + Imported Successfully Importado com Sucesso - - + + Per Game Host list Lista de Hospedeiros por Jogo - + Copy global settings? Copiar configurações globais? - + Delete per game host list? Apagar a lista de hospedeiros por jogo? - + HDD Image File Arquivo de Imagem do HDD - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Sobrescrever o Arquivo? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3223,22 @@ Do you want to overwrite? Você quer sobrescrever? - + HDD Creator Criador de HDD - + HDD image created Imagem do HDD criada - + Use Global Usar Global - + Override Substituição @@ -2968,69 +3246,69 @@ Você quer sobrescrever? DebugSettingsWidget - + GS GS - + Draw Dumping Desenhar Dumping - + Dump GS Draws Dumpar Desenhos do GS - + Save RT Salvar RT - + Save Frame Salvar Frame - + Save Texture Salvar Textura - + Save Depth Salvar Profundidade - + Start Draw Number: Número do Desenho Inicial: - + Draw Dump Count: Contagem dos Dumps dos Desenhos: - + Hardware Dump Directory: Diretório do Dump do Hardware: - + Software Dump Directory: Diretório do Dump do Software: - - + + Browse... Explorar... - - + + Open... Abrir... @@ -3043,29 +3321,53 @@ Você quer sobrescrever? Debugger do PCSX2 - - - + + Run Executar - + Step Into Entrar - + + F11 + F11 + + + Step Over Passar por Cima - + + F10 + F10 + + + Step Out Sair - + + Shift+F11 + Shift+F11 + + + + Always On Top + Sempre no Topo + + + + Show this window on top + Mostrar esta janela no topo + + + Pause Pausa @@ -3078,149 +3380,174 @@ Você quer sobrescrever? Disassembly - + Copy Address Copiar Endereço - + Copy Instruction Hex Copiar Instrução Hex - + Copy Instruction Text Copiar Texto da Instrução - + Assemble new Instruction(s) Agrupar Novas Instruções - + NOP Instruction(s) Instruções NOP - + Run to Cursor Executar no Cursor - + Jump to Cursor Pular pro Cursor - + Toggle Breakpoint Alternar Pontos de Interrupção - + Follow Branch Seguir o Branch - + Go to Address Ir pro Endereço - + Go to in Memory View Ir pra Visualização de Memória - - + + Add Function Adicionar Função - - + + Rename Function Renomear Função - + Remove Function Remover Função - - + + Assemble Error Erro do Agrupamento - + Unable to change assembly while core is running Incapaz de mudar o agrupamento enquanto o núcleo está em execução - + Assemble Instruction Agrupar Instrução - + Go to address Ir pro Endereço - + Go to address error Ir pro erro de endereço - + Invalid address Endereço inválido - + Add Function Error Adicionar Erro da Função - + A function entry point already exists here. Consider renaming instead. Um ponto de entrada da função já existe aqui. Considere renomear ao invés disto. - - + + Function will be (0x%1) instructions long. Enter function name A função terá (0x%1) instruções longas. Insira o nome da função - + Function name Nome da função - - + + Rename Function Error Renomear Erro da Função - + Function name cannot be nothing. O nome da função não pode ser nada. - + No function / symbol is currently selected. Nenhuma função/símbolo está selecionada atualmente. - + + Restore Function Error + Erro da Função de Restauração + + + + Unable to stub selected address. + Incapaz de fazer o stub do endereço selecionado. + + + + Restore Instruction(s) + Restaurar Instrução(ões) + + + + Restore Function + Restaurar Função + + + + Stub (NOP) Function + Função Stub (NOP) + + + %1 NOT VALID ADDRESS %1 NÃO É UM ENDEREÇO VÁLIDO @@ -3228,17 +3555,17 @@ Insira o nome da função EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">Nenhum jogo nos formatos suportados foi achado.</span></p><p>Por favor adicione um diretório com jogos pra começar.</p><p>Os dumps dos jogos nos seguintes formatos serão escaneados e listados:</p></body></html> - + Add Game Directory... Adicionar Diretório dos Jogos... - + Scan For New Games Escanear por Novos Jogos @@ -3246,48 +3573,44 @@ Insira o nome da função EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Jogo: %1 FPS - + Video: %1 FPS (%2%) Vídeo: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - ID do Jogo: %1 -Título do Jogo: %2 -Conquistas: %5 (%6) - + Jogo: %1 (%2) - - - %n points - - %n pontos - %n pontos - - - + Rich presence inactive or unsupported. Presença rica inativa ou não suportada. - + Game not loaded or no RetroAchievements available. Jogo não carregado ou sem RetroAchievements disponíveis. @@ -3295,192 +3618,192 @@ Conquistas: %5 (%6) EmulationSettingsWidget - + Speed Control Controle de Velocidade - + Normal Speed: Velocidade Normal: - + Enable Speed Limiter Ativar Limitador de Velocidade - + System Settings Configurações do Sistema - + Enable Instant VU1 Ativar a VU1 Instantânea - + Enable Cheats Ativar Trapaças - + Slow-Motion Speed: Velocidade da Câmera Lenta: - + Fast-Forward Speed: Velocidade do Avanço Rápido: - + Enable Multithreaded VU1 (MTVU) Ativar VU1 Multi-Threaded (MTVU) - + Enable Host Filesystem Ativar o Sistema de Arquivos do Hospedeiro - + Enable Fast CDVD Ativar CDVD Rápido - + EE Cycle Skipping: Pulo dos Ciclos do EE: - - + + Disabled Desativado - + Mild Underclock Underclock Leve - + Moderate Underclock Underclock Moderado - + Maximum Underclock Underclock Máximo - + EE Cycle Rate: Taxa dos Ciclos do EE: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Velocidade Normal) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Controle de Afinidade: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Ritmo dos Frames/Controle da Latência - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Latência Máxima dos Frames: - + Optimal Frame Pacing Ritmo Otimizado dos Frames - + Scale To Host Refresh Rate Dimensionar pra Taxa de Atualização do Hospedeiro @@ -3568,12 +3891,22 @@ Conquistas: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Permite que jogos e homebrews acessem arquivos/pastas diretamente no computador hospedeiro. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Acelera a emulação pra que a taxa de atualização do convidado combine com a do hospedeiro. Isto resulta nas animações mais suaves possíveis ao custo de potencialmente aumentar a velocidade de emulação em menos de 1%. Dimensionar para a Taxa de Atualização do Hospedeiro não terá efeito se a taxa de atualização do console estiver muito longe da taxa de atualização do hospedeiro. Os usuários com exibições de taxa de atualização variável devem desativar esta opção. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Velocidade do Avanço Rápido + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3637,45 +3970,40 @@ Conquistas: %5 (%6) Define o número máximo de frames que podem ser enfileirados até o GS antes que o thread da CPU espere que um deles complete antes de continuar. Valores maiores podem ajudar a suavizar os tempos dos frames irregulares mas adiciona atraso adicional da entrada. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Ajusta a velocidade de emulação pra que a taxa de atualização do console combine com a taxa de atualização do hospedeiro quando as configurações do VSync e Reamostragem do Áudio estiverem ativadas. Isto resulta nas animações mais suaves possíveis ao custo de potencialmente aumentar a velocidade de emulação em menos de 1%. Dimensionar para a Taxa de Atualização do Hospedeiro não terá efeito se a taxa de atualização do console estiver muito longe da taxa de atualização do hospedeiro. Os usuários com exibições de taxa de atualização variável devem desativar esta opção. - - - + Use Global Setting [%1%] Usar Configuração Global [%1] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Ilimitado - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Personalizar - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Personalizar [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Velocidade Personalizada - + Enter Custom Speed Insira a Velocidade Personalizada @@ -3683,79 +4011,79 @@ Conquistas: %5 (%6) FolderSettingsWidget - + Cache Directory Diretório do Cache - - - - - + + + + + Browse... Explorar... - - - - - + + + + + Open... Abrir... - - - - - + + + + + Reset Resetar - + Used for storing shaders, game list, and achievement data. Usado pra armazenar os shaders, lista de jogos e os dados das conquistas. - + Cheats Directory Diretório das Trapaças - + Used for storing .pnach files containing game cheats. Usado pra armazenar arquivos .pnach contendo as trapaças dos jogos. - + Covers Directory Diretório das Capas - + Used for storing covers in the game grid/Big Picture UIs. Usado pra armazenar as capas na grade do jogo/interfaces do usuário do Big Picture. - + Snapshots Directory Diretório dos Snapshots - + Used for screenshots and saving GS dumps. Usado pra screenshots e salvamento dos dumps do GS. - + Save States Directory Diretório dos Save States - + Used for storing save states. Usado pra armazenar save states. @@ -3763,2082 +4091,2102 @@ Conquistas: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Não conseguiu achar quaisquer dispositivos de CD/DVD-ROM. Por favor certifique-se que você tenha um drive conectado e permissões suficientes pra acessá-lo. - + Use Global Setting Usar Configuração Global - + Automatic binding failed, no devices are available. A associação automática falhou, não há dispositivos disponíveis. - + Game title copied to clipboard. Título do jogo copiado pra área de transferência. - + Game serial copied to clipboard. Serial do jogo copiado pra área de transferência. - + Game CRC copied to clipboard. CRC do jogo copiado pra área de transferência. - + Game type copied to clipboard. Tipo de jogo copiado pra área de transferência. - + Game region copied to clipboard. Região do jogo copiada pra área de transferência. - + Game compatibility copied to clipboard. Compatibilidade do jogo copiada pra área de transferência. - + Game path copied to clipboard. Caminho do jogo copiado pra área de transferência. - + Per-game controller configuration initialized with global settings. Configuração do controle por jogo inicializada com as configurações globais. - + Controller settings reset to default. Configurações dos controles resetadas para o padrão. - + No input profiles available. Não há perfis de entrada disponíveis. - + Create New... Criar Novo... - + Enter the name of the input profile you wish to create. Insira o nome do novo perfil de entrada que você deseja criar. - + Are you sure you want to restore the default settings? Any preferences will be lost. Você tem certeza que você quer restaurar as configurações padrão? Quaisquer preferências serão perdidas. - + Settings reset to defaults. Configurações resetadas para o padrão. - - Quick Save Slot - Slot de Salvamento Rápido - - - + No save present in this slot. Nenhum save presente neste slot. - + No save states found. Não foram achados save states. - + Failed to delete save state. Falhou em apagar o save state. - + Failed to copy text to clipboard. Falhou em copiar o texto pra área de transferência. - + This game has no achievements. Este jogo não tem conquistas. - + This game has no leaderboards. Este jogo não tem tabelas de classificação. - + Reset System Resetar Sistema - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? O modo hardcore não será ativado até que o sistema seja resetado. Você quer resetar o sistema agora? - + Launch a game from images scanned from your game directories. Inicie um jogo das imagens escaneadas dos seus diretórios dos jogos. - + Launch a game by selecting a file/disc image. Inicie um jogo selecionando uma imagem do arquivo/disco. - + Start the console without any disc inserted. Inicia o console sem qualquer disco inserido. - + Start a game from a disc in your PC's DVD drive. Inicie um jogo de um disco no seu PC's drive de DVD. - + Change settings for the emulator. Mudar as configurações do emulador. - + Exits the program. Sai do programa. - + No Binding Sem Associações - + Setting %s binding %s. Configurar %s associação %s. - + Push a controller button or axis now. Pressione um botão ou eixo do controle agora. - + Timing out in %.0f seconds... O tempo se esgota em %.0f segundos... - + Unknown Desconhecido - + OK Ok - + Select Device Selecionar Dispositivo - + Details Detalhes - + Options Opções - + Copies the current global settings to this game. Copia as configurações globais atuais pra este jogo. - + Clears all settings set for this game. Limpa todas as configurações definidas pra este jogo. - + Behaviour Comportamento - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Impede que a proteção de tela seja ativada e o hospedeiro durma enquanto a emulação está em execução. - + Shows the game you are currently playing as part of your profile on Discord. Mostra o jogo que você está jogando atualmente como parte do seu perfil no Discord. - + Pauses the emulator when a game is started. Pausa o emulador quando um jogo é iniciado. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pausa o emulador quando você minimiza a janela ou troca pra outro aplicativo e despausa quando você troca de novo. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pausa o emulador quando você abre o menu rápido e despausa quando você o fecha. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determina se um alerta será exibido pra confirmar o desligamento do emulador/jogo quando a tecla de atalho é pressionada. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Salva automaticamente o state do emulador quando desligar ou sair. Você pode então resumir diretamente de onde você parou da próxima vez. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Ativa o carregamento das sobreposições do .ini das configurações do jogo ou configurações personalizadas por jogo. - - - + Uses a light coloured theme instead of the default dark theme. Usa um tema de cor clara ao invés do tema escuro padrão. - + Game Display Exibição do Jogo - - Automatically switches to fullscreen mode when the program is started. - Troca automaticamente pro modo de tela cheia quando o programa é iniciado. - - - + Switches between full screen and windowed when the window is double-clicked. Troca entre a tela cheia e a janela quando a janela é clicada duas vezes. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Esconde o ponteiro/cursor do mouse quando o emulador está no modo de tela cheia. - + Determines how large the on-screen messages and monitor are. Determina quão grandes são as mensagens e o monitor na tela. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Mostra mensagens de exibição na tela quando ocorrem eventos tais como save states sendo criados/carregados, screenshots sendo feitas, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Mostra a velocidade de emulação atual do sistema no canto superior direito da tela como uma porcentagem. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Mostra o número de frames do vídeoo (ou vsyncs) exibidos por segundo pelo sistema no canto superior direito da tela. - + Shows the CPU usage based on threads in the top-right corner of the display. Mostra o uso da CPU baseado nos threads no canto superior direito da tela. - + Shows the host's GPU usage in the top-right corner of the display. Mostra o uso da GPU do hospedeiro no canto superior direito da tela. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Mostra a resolução que o jogo está renderizando no canto superior direito da tela. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Mostra as estatísticas sobre os GS (primitivos, chamadas de desenho) no canto superior direito da tela. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Mostra indicadores quando o avanço rápido, pausa e outros estados anormais estão ativos. - + Shows the current configuration in the bottom-right corner of the display. Mostra a configuração atual no canto inferior direito da tela. - + Shows the current controller state of the system in the bottom-left corner of the display. Mostra o estado do sistema do controle atual no canto inferior esquerdo da tela. - + Shows a visual history of frame times in the upper-left corner of the display. Mostra um histórico visual dos tempos dos frames no canto superior esquerdo da tela. - + Displays warnings when settings are enabled which may break games. Exibe avisos quando as configurações estão ativadas as quais podem quebrar os jogos. - + Resets configuration to defaults (excluding controller settings). Reseta a configuração para os padrões (excluindo as configurações dos controles). - + Changes the BIOS image used to start future sessions. Muda a imagem da BIOS usada pra iniciar as sessões futuras. - + Automatic Automático - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Padrão + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + Quando ativado as configurações personalizadas por jogo serão aplicadas. Desative pra sempre usar a configuração global. + + + + Automatically switches to fullscreen mode when a game is started. + Troca automaticamente pro modo de tela cheia quando um jogo é iniciado. + + + On-Screen Display - On-Screen Display + Exibição na Tela - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Mostra a resolução do jogo no canto superior direito da tela. + + + BIOS Configuration - BIOS Configuration + Configuração da BIOS - + BIOS Selection Seleção da BIOS - + Options and Patches - Options and Patches + Opções e Patches - + Skips the intro screen, and bypasses region checks. Ignora a tela de introdução e ignora as verificações de região. - + Speed Control Controle de Velocidade - + Normal Speed Velocidade Normal - + Sets the speed when running without fast forwarding. Define a velocidade quando executar sem avanço rápido. - + Fast Forward Speed Velocidade do Avanço Rápido - + Sets the speed when using the fast forward hotkey. Define a velocidade quando usar a tecla de atalho do avanço rápido. - + Slow Motion Speed Velocidade da Câmera Lenta - + Sets the speed when using the slow motion hotkey. Define a velocidade quando usar a tecla de atalho da câmera lenta. - + Enable Speed Limiter Ativar o Limitador de Velocidade - + When disabled, the game will run as fast as possible. Quando desativado o jogo executará tão rápido quanto possível. - + System Settings Configurações do Sistema - + EE Cycle Rate - Taxa dos Ciclos do EE + Taxa dos Ciclos da EE - + Underclocks or overclocks the emulated Emotion Engine CPU. Faz underclock ou overclock da CPU da Emotion Engine emulada. - + EE Cycle Skipping - Pulo dos Ciclos do EE + Pulo dos Ciclos da EE - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adiciona uma penalidade a Emotion Engine emulada por executar programas da VU. - - - + Affinity Control Mode Modo de Controle da Afinidade - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Fixa os threads da emulação nos núcleos da CPU pra melhorar potencialmente a variação da performance/tempo dos frames. - + Enable MTVU (Multi-Threaded VU1) Ativar MTVU (VU1 Multi-threaded) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Usa um segundo thread pros micro programas da VU1. Aumento considerável da velocidade. - - - + Enable Instant VU1 Ativar a VU1 Instantânea - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduz o corte do tempo entre os recompiladores da VU1 e EE, efetivamente executando a VU1 numa velocidade do clock infinita. - - - + Enable Cheats Ativar Trapaças - + Enables loading cheats from pnach files. Ativa o carregamento de trapaças dos arquivos pnach. - + Enable Host Filesystem Ativar o Sistema de Arquivos do Hospedeiro - + Enables access to files from the host: namespace in the virtual machine. Ativa o acesso aos arquivos do hospedeiro: espaço do nome na máquina virtual. - + Enable Fast CDVD Ativar CDVD Rápido - + Fast disc access, less loading times. Not recommended. Acesso rápido ao disco, menos tempo de carregamento. Não é recomendado. - + Frame Pacing/Latency Control Ritmo dos Frames/Controle da Latência - + Maximum Frame Latency Latência Máxima dos Frames - + Sets the number of frames which can be queued. Define o número de frames os quais podem ser enfileirados. - + Optimal Frame Pacing Ritmo Otimizado dos Frames - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Sincroniza os threads da EE e GS após cada frame. Tem a menor latência de entrada mas aumenta os requerimentos do sistema. - - Adjust To Host Refresh Rate - Ajustar a Taxa de Atualização do Hospedeiro - - - + Speeds up emulation so that the guest refresh rate matches the host. Acelera a emulação pra que a taxa de atualização do convidado combine com a do hospedeiro. - + Renderer Renderizador - + Selects the API used to render the emulated GS. Seleciona a API usada pra renderizar o GS emulado. - + Sync To Host Refresh (VSync) Sincronizar com a Atualização do Hospedeiro (VSync) - + Synchronizes frame presentation with host refresh. Sincroniza a apresentação dos frames com a atualização do hospedeiro. - + Display Tela - + Aspect Ratio Proporção do Aspecto - + Selects the aspect ratio to display the game content at. Seleciona a proporção do aspecto pra exibir o conteúdo do jogo. - + FMV Aspect Ratio Proporção do Aspecto do FMV - + Selects the aspect ratio for display when a FMV is detected as playing. Seleciona a proporção do aspecto a exibir quando um FMV é detectado em execução. - + Deinterlacing Desentrelaçamento - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Seleciona o algoritmo usado pra converter a saída entrelaçada do PS2 em progressiva pra exibição. - + Screenshot Size Tamanho da Screenshot - + Determines the resolution at which screenshots will be saved. Determina a resolução na qual as screenshots serão salvas. - + Screenshot Format Formato da Screenshot - + Selects the format which will be used to save screenshots. Seleciona o formato o qual será usado pra salvar as screenshots. - + Screenshot Quality Qualidade da Screenshot - + Selects the quality at which screenshots will be compressed. Seleciona a qualidade na qual as screenshots serão compactadas. - + Vertical Stretch Esticamento Vertical - + Increases or decreases the virtual picture size vertically. Aumenta ou diminui o tamanho da imagem virtual verticalmente. - + Crop Cortar - + Crops the image, while respecting aspect ratio. Corta a imagem enquanto respeita a proporção do aspecto. - + + %dpx + %dpx + + + Enable Widescreen Patches Ativar Patches pra Widescreen - + Enables loading widescreen patches from pnach files. Ativa o carregamento dos patches widescreen dos arquivos pnach. - + Enable No-Interlacing Patches Ativar Patches Sem Entrelaçamento - + Enables loading no-interlacing patches from pnach files. Ativa o carregamento de patches sem entrelaçamento dos arquivos pnach. - + Bilinear Upscaling Ampliação Bilinear - + Smooths out the image when upscaling the console to the screen. Suaviza a imagen quando amplia o console na tela. - + Integer Upscaling Ampliação do Inteiro - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adiciona preenchimento a área de exibição pra garantir que a proporção entre pixels no hospedeiro e pixels no console seja um número inteiro. Pode resultar em uma imagem mais nítida em alguns jogos 2D. - + Screen Offsets Deslocamentos da Tela - + Enables PCRTC Offsets which position the screen as the game requests. Ativa os Deslocamentos do PCRTC os quais posicionam a tela conforme o jogo requisita. - + Show Overscan Mostrar Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Ativa a opção de mostrar a área do overscan em jogos os quais desenham mais do que a área segura da tela. - + Anti-Blur Anti-Desfoque - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Ativa hacks internos do Anti-Blur. Menos preciso para a renderização do PS2 mas fará com que muitos jogos pareçam menos borrados. - + Rendering Renderização - + Internal Resolution Resolução Interna - + Multiplies the render resolution by the specified factor (upscaling). Multiplica a resolução da renderização pelo fator especificado (ampliação). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determina como os mipmaps são usados quando renderizar as texturas. - + Bilinear Filtering Filtragem Bilinear - + Selects where bilinear filtering is utilized when rendering textures. Seleciona aonde a filtragem bilinear é utilizada quando renderizar as texturas. - + Trilinear Filtering Filtragem Trilinear - + Selects where trilinear filtering is utilized when rendering textures. Seleciona aonde a filtragem trilinear é utilizada quando renderizar as texturas. - + Anisotropic Filtering Filtragem Anisotrópica - - Selects where anistropic filtering is utilized when rendering textures. - Seleciona aonde a filtragem anisotrópica é utilizada quando renderizar as texturas. - - - + Dithering Pontilhamento - + Selects the type of dithering applies when the game requests it. Seleciona o tipo de aplicações do pontilhamento quando o jogo o requisita. - + Blending Accuracy Precisão da Mistura - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determina o nível de precisão quando emular os modos de mistura não suportados pela API dos gráficos do hospedeiro. - + Texture Preloading Pré-Carregamento das Texturas - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Faz upload das texturas completas para a GPU usar ao invés de só das regiões utilizadas. Pode melhorar a performance em alguns jogos. - + Software Rendering Threads Threads de Renderização do Software - + Number of threads to use in addition to the main GS thread for rasterization. Número de threads a usar em adição ao thread principal do GS pra rasterização. - + Auto Flush (Software) Auto-Limpeza (Software) - + Force a primitive flush when a framebuffer is also an input texture. Força uma descarga primitiva quando um buffer dos frames também é uma textura de entrada. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Ativa a emulação do anti-aliasing da borda do GS (AA1). - + Enables emulation of the GS's texture mipmapping. Ativa a emulação do mipmapping da textura do GS. - + Hardware Fixes Consertos do Hardware - + Manual Hardware Fixes Consertos Manuais do Hardware - + Disables automatic hardware fixes, allowing you to set fixes manually. Desativa os consertos automáticos do hardware permitindo a você definir os consertos manualmente. - + CPU Sprite Render Size Tamanho da Renderização das Imagens Móveis da CPU - + Uses software renderer to draw texture decompression-like sprites. Usa o renderizador do software pra desenhar as imagens móveis tipo descompressão das texturas. - + CPU Sprite Render Level Nível da Renderização das Imagens Móveis da CPU - + Determines filter level for CPU sprite render. Determina o nível do filtro pra renderização das imagens móveis da CPU. - + Software CLUT Render Renderizador do CLUT via Software - + Uses software renderer to draw texture CLUT points/sprites. Usa o renderizador do software pra desenhar os pontos/imagens móveis do CLUT. - + Skip Draw Start Início do Skip Draw - + Object range to skip drawing. Alcance do objeto pra ignorar o desenho. - + Skip Draw End Fim do Skip Draw - + Auto Flush (Hardware) Auto-Limpeza (Hardware) - + CPU Framebuffer Conversion Conversão do Buffer dos Frames - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Converte o buffer dos frames de 4 bits e 8 bits na CPU ao invés da GPU. - - Disable Depth Support - Desativar Suporte da Profundidade - - - - Disable the support of depth buffer in the texture cache. - Desativar o suporte do buffer de profundiade no cache das texturas. - - - + Disable Safe Features Desativar Funções Seguras - + This option disables multiple safe features. Esta opção desativa múltiplas funções seguras. - - Disable Render Features - Desativar as Funções dos Renderizadores - - - + This option disables game-specific render fixes. Esta opção desativa os consertos de renderização específicos do jogo. - - Preload Frame - Pré-Carregar o Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Faz upload dos dados do GS quando renderiza um novo frame pra reproduzir alguns efeitos com precisão. - + Disable Partial Invalidation Desativar Invalidação Parcial - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Remove as entradas do cache das texturas aonde há qualquer interseção ao invés de só nas áreas interseccionadas. - - Texture Inside Render Target - Textura Dentro do Alvo da Renderização - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Permite que o cache de textura reutilize como uma textura de entrada a porção interior de um buffer do frame anterior. - + Read Targets When Closing Ler os Alvos Quando Fechar - + Flushes all targets in the texture cache back to local memory when shutting down. Faz todos os alvos no cache das texturas de volta pra memória local quando desligar. - + Estimate Texture Region Estimar a Região da Textura - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Tenta reduzir o tamanho da textura quando os jogos não a definem eles mesmos. (ex: Jogos da Snowblind). - + GPU Palette Conversion Conversão da Paleta da GPU - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Aplica as paletas nas texturas na GPU ao invés da CPU. Pode resultar em melhorias de velocidade em alguns jogos. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Deslocamento de Meio Pixel + Consertos da Ampliação - + Adjusts vertices relative to upscaling. Ajusta os vértices relativos a ampliação. - + Round Sprite Imagem Móvel Redonda - + Adjusts sprite coordinates. Ajusta as coordenadas das imagens móveis. - + Bilinear Upscale Ampliação Bilinear - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Pode suavizar as texturas devido a serem filtradas de modo bilinear quando ampliadas. Ex: Brave Sun Glare. - - TC Offset X - Deslocamentos do TC X - - - + Adjusts target texture offsets. Ajusta os deslocamentos das texturas alvo. - - TC Offset Y - Deslocamentos do TC Y - - - + Align Sprite Alinhar Imagem Móvel - + Fixes issues with upscaling (vertical lines) in some games. Conserta problemas com a ampliação (linhas verticais) em alguns jogos. - + Merge Sprite Unir Imagem Móvel - + Replaces multiple post-processing sprites with a larger single sprite. Substitui as imagens móveis de pós-processamento múltiplas com uma única imagem móvel maior. - + Wild Arms Hack Hack do Wild Arms - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Reduz a precisão do GS pra evitar espaços entre os pixels quando ampliar. Conserta o texto nos jogos Wild Arms. - + Unscaled Palette Texture Draws Desenhos da Textura da Paleta Ampliada - + Can fix some broken effects which rely on pixel perfect precision. Pode consertar alguns efeitos quebrados os quais confiam na precisão perfeita dos pixels. - + Texture Replacement Substituição da Textura - + Load Textures Carregar Texturas - + Loads replacement textures where available and user-provided. Carrega as texturas de substituição aonde disponíveis e fornecidas pelo usuário. - + Asynchronous Texture Loading Carregamento das Texturas Assíncronas - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Carrega as texturas de substituição num thread trabalhador reduzindo o micro travamento quando as substituições estão ativadas. - + Precache Replacements Substituições do Pré-Cache - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Pré-carrega todas as texturas de substituição na memória. Não é necessário com o carregamento assíncrono. - + Replacements Directory Diretório das Substituições - + Folders Pastas - + Texture Dumping Dumpagem das Texturas - + Dump Textures Dumpar Texturas - - Dumps replacable textures to disk. Will reduce performance. - Dumpa texturas substituíveis no disco. Reduzirá a performance. - - - + Dump Mipmaps Dumpar Mipmaps - + Includes mipmaps when dumping textures. Inclui os mipmaps quando dumpar as texturas. - + Dump FMV Textures Dumpar Texturas do FMV - + Allows texture dumping when FMVs are active. You should not enable this. Permite a dumpagem das texutras quando os FMVs estão ativos. Você não deveria ativar isto. - + Post-Processing Pós-Processamento - + FXAA FXAA - + Enables FXAA post-processing shader. Ativa o shader do pós-processamento do FXAA. - + Contrast Adaptive Sharpening Nitidez Adaptável do Contraste - + Enables FidelityFX Contrast Adaptive Sharpening. Ativa a Nitidez Adaptável do Contraste do FidelityFX. - + CAS Sharpness Nitidez do CAS - + Determines the intensity the sharpening effect in CAS post-processing. Determina a intensidade do efeito de nitidez no pós-processamento do CAS. - + Filters Filtros - + Shade Boost Aumentar o Shade - + Enables brightness/contrast/saturation adjustment. Ativa o ajuste do brilho/contraste/saturação. - + Shade Boost Brightness Aumentar o Brilho do Shade - + Adjusts brightness. 50 is normal. Ajusta o brilho. 50 é normal. - + Shade Boost Contrast Aumentar o Contraste do Shade - + Adjusts contrast. 50 is normal. Ajusta o contraste. 50 é normal. - + Shade Boost Saturation Aumentar a Saturação do Shade - + Adjusts saturation. 50 is normal. Ajusta a saturação. 50 é normal. - + TV Shaders Shader de TV - - Selects post-processing TV shader. - Seleciona o shader de pós-processamento da TV. - - - + Advanced Avançado - + Skip Presenting Duplicate Frames Ignorar a Apresentação dos Frames Duplicados - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Ignora a exibição dos frames que não mudam nos jogos de 25/30 FPS. Pode melhorar a velocidade mas aumento o atraso da entrada/torna o ritmo dos frames pior. - - - + Disable Threaded Presentation Desativar a Apresentação em Threads - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Apresenta os frames num thread trabalhador ao invés do thread do GS. Pode melhorar os tempos dos frames em alguns sistemas ao custo de um ritmo potencialmente pior dos frames. - - - + Hardware Download Mode Modo de Download do Hardware - + Changes synchronization behavior for GS downloads. Muda o comportamento da sincronização pros downloads do GS. - + Allow Exclusive Fullscreen Permitir Tela Cheia Exclusiva - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Substitui as heurísticas do driver pra ativar tela cheia exclusiva ou inversão/escaneamento direto. - + Override Texture Barriers Substituir as Barreiras das Texturas - + Forces texture barrier functionality to the specified value. Força a funcionalidade da barreira das texutras ao valor especificado. - + GS Dump Compression Compressão do Dump do GS - + Sets the compression algorithm for GS dumps. Define o algorítmo de compressão pros dumps do GS. - + Disable Framebuffer Fetch Desativar a Busca do Buffer dos Frames - + Prevents the usage of framebuffer fetch when supported by host GPU. Impede o uso da busca do buffer dos frames quando suportado pela GPU do hospedeiro. - + Disable Dual-Source Blending Desativar a Mistura de Origem Dupla - + Prevents the usage of dual-source blending when supported by host GPU. Impede o uso de mistura de fonte dupla quando suportado pela GPU do hospedeiro. - + Disable Shader Cache Desativar o Cache do Shader - + Prevents the loading and saving of shaders/pipelines to disk. Impede o carregamento e o salvamento de shaders/pipelines no disco. - + Disable Vertex Shader Expand Desativar a Expansão do Shader do Vértice - + Falls back to the CPU for expanding sprites/lines. Retrocede pra CPU pras imagens móveis/linhas expandidas. - + Runtime Settings Configurações do Runtime - + Applies a global volume modifier to all sound produced by the game. Aplica um modificador de volume global em todos os sons produzidos pelo jogo. - + Mixing Settings Configurações da Mixagem - + Changes when SPU samples are generated relative to system emulation. Muda quando as amostras da SPU são geradas relativo a emulação do sistema. - + Determines how the stereo output is transformed to greater speaker counts. Determina como a saída estéreo é transformada em contagens maiores do alto-falante. - + Output Settings Configurações de Saída - + Determines which API is used to play back audio samples on the host. Determina qual API é usada pra reproduzir as amostras de áudio no hospedeiro. - + Sets the average output latency when using the cubeb backend. Define a latência média de saída quando usar o backend cubeb. - + + %d ms (avg) + %d ms (média) + + + Timestretch Settings Configurações do Esticador de Tempo - + Affects how the timestretcher operates when not running at 100% speed. Afeta como o esticador de tempo opera quando não executa a 100% da velocidade. - + + %d ms + %d ms + + + Settings and Operations Configurações e Operações - + Creates a new memory card file or folder. Cria um novo arquivo ou pasta do cartão de memória. - + Simulates a larger memory card by filtering saves only to the current game. Simula um cartão de memória maior filtrando os saves só no jogo atual. - + Automatically ejects Memory Cards when they differ after loading a state. Ejeta automaticamente os Cartões de Memória quando eles diferem após carregar um state. - + If not set, this card will be considered unplugged. Se não definido este cartão será considerado desplugado. - + The selected memory card image will be used for this slot. A imagem do cartão de memória selecionada será usada neste slot. - + Resets the card name for this slot. Reseta o nome do cartão neste slot. - + Create Memory Card Criar Cartão de Memória - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Insira o nome do Cartão de Memória que você deseja criar e escolha um tamanho. Nós recomendamos usar Cartões de Memória de 8 MBs ou Cartões de Memória de pasta pra melhor compatibilidade. - + Card Name: Nome do Cartão: - + Configuration Configuração - + Uses game-specific settings for controllers for this game. Usa as configurações específicas por jogo neste jogo. - + Copies the global controller configuration to this game. Copia as configurações globais do controle pra este jogo. - + Resets all configuration to defaults (including bindings). Reseta todas as configurações para os padrões (incluindo as associações). - + Replaces these settings with a previously saved input profile. Substitui estas configurações com um perfil de entrada salvo anteriormente. - + Stores the current settings to an input profile. Armazena as configurações atuais em um perfil de entrada. - + Input Sources Fontes de Entrada - + The SDL input source supports most controllers. A fonte de entrada do SDL suporta a maioria dos controles. - + Provides vibration and LED control support over Bluetooth. Fornece vibração e suporte de controle do LED sobre o Bluetooth. - + Allow SDL to use raw access to input devices. Permite ao SLD usar o acesso bruto nos dispositivos de entrada. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. A fonte do XInput fornece suporte pros controles do XBox 360/XBox One/XBox Series. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Ativa um slot adicional pra três controles. Não é suportado em todos os jogos. - + Attempts to map the selected port to a chosen controller. Tenta mapear a porta selecionada a um controle escolhido. - + No Buttons Selected Não Há Botões Selecionados - + Determines how much pressure is simulated when macro is active. Determina quanta pressão é simulada quando o macro está ativo. - + Determines the pressure required to activate the macro. Determina a pressão requerida pra ativar o macro. - + Toggle every %d frames Alternar a cada %d frames - + Clears all bindings for this USB controller. Limpar todas as associações com este controle USB. - + Data Save Locations Locais dos Dados dos Saves - + Show Advanced Settings Mostrar Configurações Avançadas - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Mudar estas opções pode fazer os jogos se tornarem não funcionais. Modifique por sua conta e risco, o time do PCSX2 não fornecerá suporte pra configurações com estas configurações mudadas. - + Logging - Logging + Registro - + System Console Console do Sistema - + Writes log messages to the system console (console window/standard output). Grava as mensagens do registro no console do sistema (janela do console/saída padrão). - + File Logging Registro dos Arquivos - + Writes log messages to emulog.txt. Grava as mensagens do registro no emulog.txt. - + Verbose Logging Registro Detalhado - + Writes dev log messages to log sinks. Grava as mensagens do registro dos devs no emulog.txt. - + Log Timestamps Registrar Estampas do Tempo - + Writes timestamps alongside log messages. Grava as estampas do tempo junto das mensagens do registro. - + EE Console Console do EE - + Writes debug messages from the game's EE code to the console. Grava as mensagens de debug do código da EE do jogo no console. - + IOP Console Console do IOP - + Writes debug messages from the game's IOP code to the console. Grava as mensagens de debug do código do IOP do jogo no console. - + CDVD Verbose Reads Leituras Detalhadas do CDVD - + Logs disc reads from games. Registra as leituras do disco dos jogos. - + Emotion Engine Emotion Engine - + Rounding Mode Modo de Arredondamento - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determina como os resultados das operações de ponto flutuante são arredondadas. Alguns jogos precisam de configurações específicas. - + Clamping Mode Modo de Fixação - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determina como os números do ponto flutuante fora de alcance são manipulados. Alguns jogos precisam de configurações específicas. - + Enable EE Recompiler Ativar Recompilador da EE - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Executa na hora a tradução binária do código da máquina MIPS-IV de 64 bits pro código nativo. - + Enable EE Cache Ativar Cache da EE - + Enables simulation of the EE's cache. Slow. Ativa a simulação do cache da EE. Lento. - + Enable INTC Spin Detection Ativar Detecção do Giro do INTC - + Huge speedup for some games, with almost no compatibility side effects. Enorme aceleração pra alguns jogos com quase nenhum efeito colateral na compatibilidade. - + Enable Wait Loop Detection Ativar Detecção do Loop de Espera - + Moderate speedup for some games, with no known side effects. Aceleração moderada pra alguns jogos com nenhum efeito colateral conhecido. - + Enable Fast Memory Access Ativar Acesso Rápido a Memória - + Uses backpatching to avoid register flushing on every memory access. Usa o backpatching pra evitar a limpeza do registro em cada acesso a memória. - + Vector Units Unidades Vetoriais - + VU0 Rounding Mode Modo de Arredondamento da VU0 - + VU0 Clamping Mode Modo de Fixação da VU0 - + VU1 Rounding Mode Modo de Arredondamento da VU1 - + VU1 Clamping Mode Modo de Fixação da VU1 - + Enable VU0 Recompiler (Micro Mode) Ativar o Recompilador da VU0 (Modo Micro) - + New Vector Unit recompiler with much improved compatibility. Recommended. Novo recompilador da Unidade do Veter com compatibilidade muito melhorada. Recomendado. - + Enable VU1 Recompiler Ativar o Recompilador da VU1 - + Enable VU Flag Optimization Ativar Otimização da Bandeira da VU - + Good speedup and high compatibility, may cause graphical errors. Boa aceleração e alta compatibilidade, pode causar erros gráficos. - + I/O Processor E/S do Processador - + Enable IOP Recompiler Ativar Recompilador do IOP - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Executa na hora a tradução binária do código da máquina MIPS-I de 32 bits pro código nativo. - + Graphics Gráficos - + Use Debug Device Usar Dispositivo de Debug - - Enables API-level validation of graphics commands - Ativa a validação do nível da API dos comandos gráficos. - - - + Settings Configurações - + No cheats are available for this game. Não há trapaças disponíveis pra este jogo. - + Cheat Codes Códigos de Trapaça - + No patches are available for this game. Não há patches disponíveis pra este jogo. - + Game Patches Patches dos Jogos - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Ativar trapaças pode causar comportamento imprevisível, crashes, travamentos leves ou saves de jogos quebrados. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. A ativação dos patches dos jogos pode causar comportamento imprevisível, crashes, travamentos leves ou saves de jogos quebrados. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use os patches por sua própria conta e risco, o time do PCSX2 não fornecerá suporte pra usuários que tenham ativado os patches dos jogos. - + Game Fixes Consertos dos Jogos - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Os consertos dos jogos não devem ser modificados a menos que você esteja ciente do que cada opção faz e as implicações de fazê-lo. - + FPU Multiply Hack - Hack do Multiplicação do FPU + Hack da Multiplicação da FPU - + For Tales of Destiny. Pro Tales of Destiny. - + FPU Negative Div Hack - Hack de Divisão Negativa do FPU + Hack da Divisão Negativa da FPU - + For Gundam games. Pros jogos do Gundam. - + Preload TLB Hack Pré-Carregar Hack do TLB - - To avoid tlb miss on Goemon. - Pra evitar o erro do tlb no Goemon. - - - - Switch to Software renderer for FMVs. - Trocar pro Renderizador de Software pros FMVs. - - - + Needed for some games with complex FMV rendering. Necessário pra alguns jogos com renderização complexa dos FMVs. - + Skip MPEG Hack Hack pra Ignorar o MPEG - + Skips videos/FMVs in games to avoid game hanging/freezes. Ignora vídeos/FMVs em jogos pra evitar o travamento/congelamentos dos jogos. - + OPH Flag Hack Hack da Bandeira do OPH - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Conhecido por afetar os seguintes jogos: Bleach Blade Battler, Growlanser II and III, Wizardry. + + EE Timing Hack + Hack da Cronometragem da EE - - EE Timing Hack - Hack do Timing da EE + + Instant DMA Hack + Hack do DMA Instantâneo - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Conhecido por afetar os seguintes jogos: Digital Devil Saga (Conserta o FMV e os crashes), SSX (Conserta os gráficos ruins e os crashes). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Conhecido por afetar os seguintes jogos: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Instant DMA Hack - Hack do DMA Instantâneo + + For SOCOM 2 HUD and Spy Hunter loading hang. + Pro travamento no carregamento do HUD do SOCOM 2 e Spy Hunter. - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Conhecido por afetar os seguintes jogos: Fire Pro Wrestling Z (Gráficos ruins do ring). + + VU Add Hack + Hack de Acréscimo da VU - - Handle DMAC writes when it is busy. - Manipula as gravações do DMAC quando está ocupado. + + Full VU0 Synchronization + Sincronização Completa da VU0 - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Conhecido por afetar os seguintes jogos: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + Forces tight VU0 sync on every COP2 instruction. + Força a sincronização rígida da VU0 em cada instrução do COP2. + + + + VU Overflow Hack + Hack da Sobrecarga da VU - - Force GIF PATH3 transfers through FIFO - Forçar as transferência do PATH3 do GIF através do FIFO + + To check for possible float overflows (Superman Returns). + Pra verificar possíveis sobrecargas na flutuação (Superman Returns). - - (Fifa Street 2). - (Fifa Street 2). + + Use accurate timing for VU XGKicks (slower). + Usa cronometragem precisa pros XGKicks da VU (mais lento). - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simular as leituras adiante do FIFO do VIF1. Conserta jogos com carregamento lento. + + Quadraphonic + Quadrifônico - - Known to affect following games: Test Drive Unlimited, Transformers. - Conhecido por afetar os seguintes jogos: Test Drive Unlimited, Transformers. + + Load State + Carregar State - - Delay VIF1 Stalls (VIF1 FIFO) - Atrasar Acumulações da VIF1 (VIF1 FIFO) + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Faz a Emotion Engine emulada ignorar os ciclos. Ajuda um pequeno sub-grupo de jogos como o Shadow Of The Colossus. Na maior parte do tempo é prejudicial a performance. - - For SOCOM 2 HUD and Spy Hunter loading hang. - Pro travamento no carregamento do HUD do SOCOM 2 e Spy Hunter. + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Geralmente uma aceleração em CPUs com 4 ou mais núcleos. Seguro pra maioria dos jogos mas alguns são incompatíveis e podem travar. - - VU Add Hack - Hack de Acréscimo da VU + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Executa a VU1 instantaneamente. Fornece uma modesta melhoria de velocidade na maioria dos jogos. Seguro pra maioria dos jogos mas alguns jogos podem exibir erros gráficos. + + + + Scale To Host Refresh Rate + Dimensionar pra Taxa de Atualização do Hospedeiro - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Jogo que precisam deste hack pra inicializar: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Disable Depth Emulation + Desativar a Emulação da Profundidade - - VU I bit Hack avoid constant recompilation in some games - O hack do bit da VU1 evita a recompilação constante em alguns jogos + + Disable the support of depth buffers in the texture cache. + Desativar o suporte dos buffers de profundidade no cache das texturas. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Disable Render Fixes + Desativar os Consertos dos Renderizadores - - Full VU0 Synchronization - Sincronização Completa da VU0 + + Preload Frame Data + Pré-Carregar os Dados do Frame - - Forces tight VU0 sync on every COP2 instruction. - Força a sincronização rígida da VU0 em cada instrução do COP2. + + Texture Inside RT + Textura Dentro do RT - - VU Sync (Run behind) - Sincronização da VU (Executa por Trás) + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + Quando ativada a GPU converte as texturas do mapa das cores, caso contrário a CPU o fará. É uma troca entre a GPU e a CPU. - - To avoid sync problems when reading or writing VU registers. - Pra evitar problemas de sincronização quando ler ou gravar os registros da VU. + + Half Pixel Offset + Deslocamento de Meio Pixel - - VU Overflow Hack - Hack da Sobrecarga da VU + + Texture Offset X + Deslocamentos da Textura X - - To check for possible float overflows (Superman Returns). - Pra verificar possíveis sobrecargas na flutuação (Superman Returns). + + Texture Offset Y + Deslocamentos da Textura Y - - VU XGkick Sync - Sincronização do XGkick da VU + + Dumps replaceable textures to disk. Will reduce performance. + Dumpa as texturas substituíveis no disco. Reduzirá a performance. - - Use accurate timing for VU XGKicks (slower). - Usa cronometragem precisa pros XGKicks da VU (mais lento). + + Applies a shader which replicates the visual effects of different styles of television set. + Aplica um shader o qual replica os efeitos visuais de diferentes estilos de configuração da televisão. - - Use Blit for internal FPS - Usa o Blit pros FPS internos + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Ignora a exibição dos frames que não mudam nos jogos de 25/30 FPS. Pode melhorar a velocidade mas aumenta o atraso da entrada/torna o ritmo dos frames pior. - - Quadraphonic - Quadraphonic + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Apresenta os frames no thread principal do GS ao invés de um thread trabalhador. Usado pra fazer debug dos problemas com o tempo dos frames. - - Load State - Carregar State + + Enables API-level validation of graphics commands. + Ativa a validação do nível da API dos comandos gráficos. + + + + Use Software Renderer For FMVs + Usar o Renderizador de Software pros FMVs + + + + To avoid TLB miss on Goemon. + Pra evitar o erro do TLB no Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Hack de cronometragem de propósito geral. Conhecido por afetar os seguintes jogos: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Bom pros problemas de emulação do cache. Conhecido por afetar os seguintes jogos: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Conhecido por afetar os seguintes jogos: Bleach Blade Battlers, Growlanser II e III, Wizardry. + + + + Emulate GIF FIFO + Emular o FIFO do GIF + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correto porém mais lento. Conhecido por afetar os seguintes jogos: Fifa Street 2. + + + + DMA Busy Hack + Hack do DMA Ocupado + + + + Delay VIF1 Stalls + Atrasar Acumulações da VIF1 + + + + Emulate VIF FIFO + Emular o FIFO da VIF + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simular a leitura adiantada do FIFO da VIF1. Conhecido por afetar os seguintes jogos: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + Hack do Bit da VU I + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Evita a recompilação constante em alguns jogos. Conhecido por afetar os seguintes jogos: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Pros Jogos da Tri-Ace: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + Sincronização da VU + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Executar atrasado. Pra evitar problemas de sincronização quando ler ou gravar os registros da VU. + + + + VU XGKick Sync + Sincronização do XGKick da VU + + + + Force Blit Internal FPS Detection + Forçar a Detecção dos FPS Internos dos Blits - + Save State Salvar State - + Load Resume State Carregar State do Resumo - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5847,2221 +6195,2122 @@ Do you want to load this save and continue? Você quer carregar este save e continuar? - + Region: Região: - + Compatibility: Compatibilidade: - + No Game Selected Nenhum Jogo Selecionado - + Search Directories Diretórios de Busca - + Adds a new directory to the game search list. Adiciona um novo diretório a lista de busca dos jogos. - + Scanning Subdirectories Escaneando Sub-Diretórios - + Not Scanning Subdirectories Não Escanear os Sub-Diretórios - + List Settings Listar Configurações - + Sets which view the game list will open to. Define com qual visualização a lista de jogos abrirá. - + Determines which field the game list will be sorted by. Determina com qual campo a lista de jogos será organizada. - + Reverses the game list sort order from the default (usually ascending to descending). Reverte a ordem da organização da lista de jogos do padrão (geralmetne ascendente ou descendente). - + Cover Settings Configurações das Capas - + Downloads covers from a user-specified URL template. Baixa as capas de um modelo da URL especificado pelo usuário. - + Operations Operações - + + Selects where anisotropic filtering is utilized when rendering textures. + Seleciona aonde a filtragem anisotrópica é utilizada quando renderizar as texturas. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + Usa método alternativo pra calcular os FPS internos pra evitar leituras falsas em alguns jogos. - + Identifies any new files added to the game directories. Identifica quaisquer novos arquivos adicionados aos diretórios dos jogos. - + Forces a full rescan of all games previously identified. Força um re-escaneamento completo de todos os jogos identificados anteriormente. - + Download Covers Baixar Capas - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - O PCSX2 pode baixar automaticamente as capas pros jogos os quais atualmente não têm um conjunto de capas. Nós não hospedamos quaisquer imagens de capas, o usuário deve fornecer sua própria fonte pras imagens. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - No formulárioa abaixo especifique as URLs da qual baixar as capas com um modelo de URL por linha. As seguintes variáveis estão disponíveis: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Título do jogo. -${filetitle}: Componente do nome do nome do arquivo do jogo. -${serial}: Serial do jogo. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Exemplo: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Usar Nomes dos Arquivos Seriais - - - + About PCSX2 Sobre o PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. O PCSX2 é um emulador de PlayStation 2 (PS2) grátis e de código fonte aberto. Seu propósito é emular o hardware do PS2 usando uma combinação de Interpretadores da CPU do MIPS, Recompiladores e uma Máquina Virtual a qual gerencia os estados do hardware e a memória do sistema do PS2. Isto permite a você jogar os jogos de PS2 no seu PC com muitas funções e benefícios adicionais. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. O PlayStation 2 e o PS2 são marcas registadas da Sony Interactive Entertainment. Este aplicativo não está afiliado de qualquer modo com a Sony Interactive Entertainment. - - XXX points - Pontos XXX - - - - Unlocked Achievements - Conquistas Destrancadas - - - - Locked Achievements - Conquistas Trancadas - - - - Active Challenge Achievements - Ativar Conquistas de Desafios - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - A submissão de pontuações está desativada porque o modo hardcore está desligado. As tabelas de classificação são somente-leitura. - - - - Rank - Rank - - - - Name - Nome - - - - Time - Tempo - - - - Score - Pontuação - - - - Downloading leaderboard data, please wait... - Baixando os dados da tabela de classificação, por favor aguarde... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. Quando ativado e logado o PCSX2 escaneará por conquistas na inicialização. - - When enabled, rich presence information will be collected and sent to the server where supported. - Quando ativado as informações da presença rica serão coletadas e enviadas para o servidor aonde for suportado. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. O modo "Desafio" pra conquistas incluindo o rastreamento da tabela de classificação. Desativa as funções do save state, trapaças e lentidão. - - Enables tracking and submission of leaderboards in supported games. - Ativa o rastreamento e submissão de tabelas de classificação nos jogos suportados. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Exibe mensagens pop-up em eventos tais como desbloqueios de conquistas e submissões a tabela de classificação. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Reproduz os efeitos de som pra eventos tais como os desbloqueios de conquistas e submissões a tabela de classificação. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Mostra os ícones no canto inferior direito da tela quando uma conquista de desafio/preparada está ativa. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. Quando ativado o PCSX2 listará as conquistas dos conjuntos não oficiais. Estas conquistas não são rastreadas pelo RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Quando ativado o PCSX2 assumirá que todas as conquistas estão trancadas e não enviará quaisquer notificações de desbloqueio para o servidor. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Exibe mensagens pop-up quando iniciar, submeter ou falhar num desafio da tabela de classificação. + + + + When enabled, each session will behave as if no achievements have been unlocked. + Quando ativado, cada sessão se comportará como se nenhuma conquista tenha sido destrancada. + + + Account - Account + Conta - + Logs out of RetroAchievements. Sair do RetroAchievements. - + Logs in to RetroAchievements. Logar no RetroAchievements. - + Current Game - Current Game - - - - Achievements Login - Login das Conquistas - - - - Please enter your user name and password for retroachievements.org. - Por favor insira seu nome de usuário e senha pro retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Sua senha não será salva no PCSX2, um token de acesso será gerado e usado ao invés disto. - - - - User Name: - Nome de Usuário: - - - - Password: - Senha: + Jogo Atual - + {} is not a valid disc image. {} não é uma imagem de disco válida. - + Automatic mapping completed for {}. Mapeamento automático completado pro {}. - + Automatic mapping failed for {}. O mapeamento automático falhou pro {}. - + Game settings initialized with global settings for '{}'. Configurações do jogo inicializadas com as configurações globais pro '{}'. - + Game settings have been cleared for '{}'. As configurações do jogo foram limpas pro '{}'. - + Console Port {} - Console Port {} + Porta do Console {} - + {} (Current) {} (Atual) - + {} (Folder) {} (Pasta) - + Memory card name '{}' is not valid. O nome do Cartão de Memória '{}' não é válido. - + Memory Card '{}' created. Cartão de memória '{}' criado. - + Failed to create memory card '{}'. Falhou em criar o cartão de memória '{}'. - + A memory card with the name '{}' already exists. Um cartão de memória com o nome '{}' já existe. - + Failed to load '{}'. Falhou em carregar o '%1'. - + Input profile '{}' loaded. Perfil de Entrada '{}' carregado. - + Input profile '{}' saved. Perfil de Entrada '{}' salvo. - + Failed to save input profile '{}'. Falhou em salvar o perfil de entrada '{}'. - + Port {} Controller Type Tipo de Controle da Porta {} - + Select Macro {} Binds Selecionar Associações com o Macro {} - + + Macro {} Frequency + Frequência do Macro {} + + + Macro will toggle every {} frames. O macro alternará a cada {} frames. - + Port {} Device Dispositivo da Porta {} - + Port {} Subtype Sub-Tipo da Porta {} - + {} unlabelled patch codes will automatically activate. Os códigos dos patches sem rótulo {} ativarão automaticamente. - + {} unlabelled patch codes found but not enabled. Os códigos dos patches sem rótulo {} achados mas não ativados. - + This Session: {} Esta Sessão: {} - + All Time: {} De Todos os Tempos: {} - + Save Slot {0} Slot do Save {0} - + Saved {} Salvo {} - + {} does not exist. {} não existe. - + {} deleted. {} apagados. - + Failed to delete {}. Falhou em apagar o {}. - + File: {} Arquivo: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Tempo Jogado: {} - + Last Played: {} Jogado pela Última Vez: {} - + Size: {:.2f} MB Tamanho: {:.2f} MBs - - {} points - {} pontos - - - - {} (Hardcore Mode) - {} (Modo Hardcore) + + Left: + Esquerda: - - You have unlocked all achievements and earned {} points! - Você destrancou todas as conquistas e ganhou {} pontos! + + Top: + Topo: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - Você destrancou {} de {} conquistas, ganhando {} de {} pontos possíveis. + + Right: + Direita: - - This game has {} leaderboards. - Este jogo tem {} tabelas de classificação. + + Bottom: + Rodapé: - + Summary Sumário - + Interface Settings Configurações da Interface - + BIOS Settings Configurações da BIOS - + Emulation Settings Configurações da Emulação - + Graphics Settings Configurações dos Gráficos - + Audio Settings Configurações do Áudio - + Memory Card Settings Configurações dos Cartões de Memória - + Controller Settings Configurações dos Controles - + Hotkey Settings Configurações das Teclas de Atalho - + Achievements Settings Configurações das Conquistas - + Folder Settings Configurações do Perfil - + Advanced Settings Configurações Avançadas - + Patches Patches - + Cheats Trapaças - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% de Velocidade - + 60% Speed 60% de Velocidade - + 75% Speed 75% de Velocidade - + 100% Speed (Default) 100% de Velocidade - + 130% Speed 130% de Velocidade - + 180% Speed 180% de Velocidade - + 300% Speed 300% de Velocidade - + Normal (Default) Normal (Padrão) - + Mild Underclock Underclock Leve - + Moderate Underclock Underclock Moderado - + Maximum Underclock Underclock Máximo - + Disabled Desativado - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Sincronização Rígida) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None Nenhum - + Extra + Preserve Sign Extra + Preservar Sinal - + Full Completo - + Extra Extra - + Automatic (Default) Automático (Padrão) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Nulo - + Off Desligado - + On Ligado - + Adaptive Adaptável - + Bilinear (Smooth) Bilinear (Suave) - + Bilinear (Sharp) Bilinear (Nitidez) - + Weave (Top Field First, Sawtooth) Entrelaçamento (Campo Superior Primeiro, Dente de Serra) - + Weave (Bottom Field First, Sawtooth) Entrelaçamento (Campo Inferior Primeiro, Dente de Serra) - + Bob (Top Field First) Bob (Campo Superior Primeiro) - + Bob (Bottom Field First) Bob (Campo Inferior Primeiro,) - + Blend (Top Field First, Half FPS) Mistura (Campo Superior Primeiro, Metade dos FPS) - + Blend (Bottom Field First, Half FPS) Mistura (Campo Inferior Primeiro, Metade dos FPS) - + Adaptive (Top Field First) Entrelaçamento (Campo Superior Primeiro) - + Adaptive (Bottom Field First) Adaptativo (Campo Inferior Primeiro) - + Native (PS2) Nativa (PS2) - + 1.25x Native 1.25x Nativa - + 1.5x Native 1.5x Nativa - + 1.75x Native 1.75x Nativa - + 2x Native (~720p) 2x Nativa (~720p) - + 2.25x Native 2.25x Nativa - + 2.5x Native 2.5x Nativa - + 2.75x Native 2.75x Nativa - + 3x Native (~1080p) 3x Nativa (~1080p) - + 3.5x Native 3.5x Nativa - + 4x Native (~1440p/2K) 4x Nativa (~1440p/2K) - + 5x Native (~1620p) 5x Nativa (~1620p) - + 6x Native (~2160p/4K) 6x Nativa (~2160p/4K) - + 7x Native (~2520p) 7x Nativa (~2520p) - + 8x Native (~2880p) 8x Nativa (~2880p) - + Basic (Generated Mipmaps) Básico (Mipmaps Gerados) - + Full (PS2 Mipmaps) Completo (Mipmaps do PS2) - + Nearest Mais Próximo - + Bilinear (Forced) Bilinear (Forçada) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forçada excluindo a imagem móvel) - + Off (None) Desligado (Nenhum) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forçado) - + Scaled Ampliado - + Unscaled (Default) Não Ampliado (Padrão) - + Minimum Mínimo - + Basic (Recommended) Básico (Recomendado) - + Medium Médio - + High Alto - + Full (Slow) Completo (Lento) - + Maximum (Very Slow) Máximo (Muito Lento) - + Off (Default) Desligado (Padrão) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Parcial - + Full (Hash Cache) Completo (Cache do Hash) - + Force Disabled Forçar Desativado - + Force Enabled Forçar Ativado - + Accurate (Recommended) Preciso (Recomendado) - + Disable Readbacks (Synchronize GS Thread) Desativar as Leituras de Retorno (Sincronizar a Thread do GS) - + Unsynchronized (Non-Deterministic) Não Sincronizado (Não Determinístico) - + Disabled (Ignore Transfers) Desativado (Ignorar Transferências) - + Screen Resolution Resolução da Tela - - Internal Resolution (Uncorrected) - Resolução Interna (Não Corrigido) + + Internal Resolution (Aspect Uncorrected) + Resolução Interna (Aspecto Não Corrigido) + + + + Cannot show details for games which were not scanned in the game list. + Não pode mostrar detalhes de jogos os quais não foram escaneados na lista de jogos. + + + + Full Boot + Inicialização Completa + + + + Achievement Notifications + Notificações das Conquistas + + + + Leaderboard Notifications + Notificações da Tabela de Classificação + + + + Enable In-Game Overlays + Ativar as Sobreposições Dentro do Jogo + + + + Encore Mode + Modo Encore + + + + Spectator Mode + Modo Espectador - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Desativado) - + 1 (64 Max Width) 1 (64 de Largura Máxima) - + 2 (128 Max Width) 2 (128 de Largura Máxima) - + 3 (192 Max Width) 3 (192 de Largura Máxima) - + 4 (256 Max Width) 4 (256 de Largura Máxima) - + 5 (320 Max Width) 5 (320 de Largura Máxima) - + 6 (384 Max Width) 6 (384 de Largura Máxima) - + 7 (448 Max Width) 7 (448 de Largura Máxima) - + 8 (512 Max Width) 8 (512 de Largura Máxima) - + 9 (576 Max Width) 9 (576 de Largura Máxima) - + 10 (640 Max Width) 10 (640 de Largura Máxima) - + Sprites Only Só Imagens Móveis - + Sprites/Triangles Imagens Móveis/Triângulos - + Blended Sprites/Triangles Imagens Móveis/Triângulos Misturados - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Agressivo) - + Inside Target Dentro do Alvo - + Merge Targets Unir Alvos - + Normal (Vertex) Normal (Vértice) - + Special (Texture) Especial (Textura) - + Special (Texture - Aggressive) Especial (Textura - Agressivo) - + Half Metade - + Force Bilinear Forçar Bilinear - + Force Nearest Forçar o Mais Próximo - + Disabled (Default) Desativado (Padrão) - + Enabled (Sprites Only) Ativado (Só Imagens Móveis) - + Enabled (All Primitives) Ativado (Todos os Primitivos) - + None (Default) Nenhum (Padrão) - + Sharpen Only (Internal Resolution) Só a Nitidez (Resolução Interna) - + Sharpen and Resize (Display Resolution) Tornar Mais Nítido e Redimensionar (Exibir Resolução) - + Scanline Filter Filtro Scanline - + Diagonal Filter Filtro Diagonal - + Triangular Filter Filtro Triangular - + Wave Filter Filtro de Ondas - + Lottes CRT CRT Lottes - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Descomprimido - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) Esticador de Tempo (Recomendado) - + Async Mix (Breaks some games!) Mistura Assíncrona (Quebra alguns jogos!) - + None (Audio can skip.) Nenhum (O áudio pode pular) - + Stereo (None, Default) Estéreo (Nenhum, Padrão) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) Sem Som (Emular só o SPU2) - + Cubeb (Cross-platform) Cubeb (Multi-Plataforma) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8 MBs) - + PS2 (16MB) PS2 (16 MBs) - + PS2 (32MB) PS2 (32 MBs) - + PS2 (64MB) PS2 (64 MBs) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MBs [Mais Compatível] - + 16 MB 16 MBs - + 32 MB 32 MBs - + 64 MB 64 MBs - + Folder [Recommended] Pasta [Recomendado] - + 128 KB [PS1] 128 KBs (PS1) - + + Negative + Negativo + + + + Positive + Positivo + + + + Chop/Zero (Default) + Cortar/Zero (Padrão) + + + Game Grid Grade dos Jogos - + Game List Lista de Jogos - + Game List Settings Configurações da Lista dos Jogos - + Type Tipo - + Serial Serial - + Title Título - + File Title Título do Arquivo - + CRC CRC - + Time Played Tempo Jogado - + Last Played Jogado pela Última Vez - + Size Tamanho - + Select Disc Image Selecionar Imagem do Disco - + Select Disc Drive Selecione o Drive do Disco - + Start File Iniciar Arquivo - + Start BIOS Iniciar BIOS - + Start Disc Iniciar Disco - + Exit Sair - + Set Input Binding Definir Associação com o Controle - + Region Região - + Compatibility Rating Taxa de Compatibilidade - + Path Caminho - + Disc Path Caminho do Disco - + Select Disc Path Selecionar o Caminho do Disco - - Details unavailable for game not scanned in game list. - Detalhes indisponíveis pros jogos não escaneados na lista de jogos. - - - + Copy Settings Copiar Configurações - + Clear Settings Limpar Configurações - + Inhibit Screensaver Inibir a Proteção de Tela - + + Enable Discord Presence + Ativar Presença no Discord + + + Pause On Start Pausar ao Iniciar - + Pause On Focus Loss Pausar na Perda de Foco - + Pause On Menu Pausar no Menu - + Confirm Shutdown Confirmar Desligamento - + Save State On Shutdown Salvar o State ao Desligar - + Enable Per-Game Settings Ativar Configurações por Jogo - + Use Light Theme Usar Tema Claro - + Start Fullscreen Iniciar em Tela Cheia - + Double-Click Toggles Fullscreen Clique Duplo Alterna pra Tela Cheia - + Hide Cursor In Fullscreen Esconder o Cursor na Tela Cheia - + OSD Scale Escala do OSD - + Show Messages Mostrar Mensagens - + Show Speed Mostrar Velocidade - + Show FPS Mostrar FPS - + Show CPU Usage Mostrar o Uso da CPU - + Show GPU Usage Mostrar o Uso da GPU - + Show Resolution Mostrar Resolução - + Show GS Statistics Mostrar Estatísticas do GS - + Show Status Indicators Mostrar Indicadores de Status - + Show Settings Mostrar Configurações - + Show Inputs Mostrar Entradas - + Show Frame Times Mostrar o Tempo dos Frames - + Warn About Unsafe Settings Avisar Sobre Configurações Não Seguras - + Reset Settings Resetar Configurações - + Change Search Directory Mudar Diretório de Busca - + Fast Boot Inicialização Rápida - + Output Volume Volume de Saída - + Synchronization Mode Modo de Sincronização - + Expansion Mode Modo de Expansão - + Output Module Módulo de Saída - + Latency Latência - + Sequence Length Tamanho da Sequência - + Seekwindow Size Tamanho da Janela de Busca - + Overlap Sobreposição - + Memory Card Directory Diretório do Cartão de Memória - + Folder Memory Card Filter Falhou em Converter o Cartão de Memória - + Auto Eject When Loading Auto-Ejetar Quando Carregar - + Create Criar - + Cancel Cancelar - + Load Profile Carregar Perfil - + Save Profile Salvar Perfil - + Per-Game Configuration Configuração Por Jogo - + Copy Global Settings Copiar Configurações Globais - + Enable SDL Input Source Ativar Fonte de Entrada do SDL - + SDL DualShock 4 / DualSense Enhanced Mode Modo Melhorado do DualShock 4/DualSense - + SDL Raw Input Ativar a Entrada Pura do SDL - + Enable XInput Input Source Ativar Fonte de Entrada do XInput - + Enable Console Port 1 Multitap Ativar Porta 1 do Console Multitap - + Enable Console Port 2 Multitap Ativar Porta 2 do Console Multitap - + Controller Port {}{} Porta do Controle {}{} - + Controller Port {} Porta do Controle {} - + Controller Type Tipo de Controle - + Automatic Mapping Mapeamento Automático - + Controller Port {}{} Macros Macros da Porta do Controle {}{} - + Controller Port {} Macros Macros da Porta do Controle {} - + Macro Button {} Botão do Macro {} - + Buttons Botões - + Frequency Frequência - + Pressure Pressão - + Controller Port {}{} Settings Configurações da Porta do Controle {}{} - + Controller Port {} Settings Configurações da Porta do Controle {} - + USB Port {} Porta USB {} - + Device Type Tipo de Dispositivo - + Device Subtype Sub-Tipo de Dispositivo - + {} Bindings Associações {} - + Clear Bindings Limpar Associações - + {} Settings Configurações {} - + Cache Directory Diretório do Cache - + Covers Directory Diretório das Capas - + Snapshots Directory Diretório dos Snapshots - + Save States Directory Diretório dos Save States - + Game Settings Directory Diretório das Configurações do Jogo - + Input Profile Directory Diretório do Perfil de Entrada - + Cheats Directory Diretório das Trapaças - + Patches Directory Diretório dos Patches - + Texture Replacements Directory Diretórios das Substituições das Texturas - + Video Dumping Directory Diretório do Dump do Vídeo - + Resume Game Resumir Jogo - + Toggle Frame Limit Alternar o Limite dos Frames - + Game Properties Propriedades do Jogo - + Achievements Conquistas - + Save Screenshot Salvar Screenshot - + Switch To Software Renderer Trocar pro Renderizador de Software - + Switch To Hardware Renderer Trocar pro Renderizador de Hardware - + Change Disc Mudar Disco - + Close Game Fechar Jogo - + Exit Without Saving Sair Sem Salvar - + Back To Pause Menu Voltar pro Menu da Pausa - + Exit And Save State Sair e Salvar o State - + Leaderboards Tabelas de Classificação - + Delete Save Apagar o Save - + Close Menu Fechar Menu - - Clean Boot - Inicialização Limpa - - - + Delete State Apagar State - + Default Boot Inicialização Padrão - - Slow Boot - Inicialização Lenta - - - + Reset Play Time Resetar o Tempo de Jogo - + Add Search Directory Adicionar Diretório de Busca - + Open in File Browser Abrir no File Explorer - + Disable Subdirectory Scanning Desativar o Escaneamento dos Sub-Diretórios - + Enable Subdirectory Scanning Ativar o Escaneamento dos Sub-Diretórios - + Remove From List Remover da Lista - + Default View Visualização Padrão - + Sort By Ordenar por - + Sort Reversed Organização Reversa - + Scan For New Games Escanear por Novos Jogos - + Rescan All Games Re-Escanear Todos os Jogos - - Start Download - Iniciar Download - - - + Website Site da Web - + Support Forums Fóruns de Suporte - + GitHub Repository Repositório do GitHub - + License Licença - + Close Fechar - + RAIntegration is being used instead of the built-in achievements implementation. O RAIntegration está sendo usado ao invés da implementação embutida das conquistas. - + Enable Achievements Ativar Conquistas - - Rich Presence - Presença Rica - - - + Hardcore Mode (Modo Hardcore - - Show Notifications - Mostrar Notificações - - - + Sound Effects Efeitos de Som - - Show Challenge Indicators - Mostrar Indicadores de Desafio - - - + Test Unofficial Achievements Testar Conquistas Não Oficiais - - Test Mode - Modo de Teste - - - + Username: {} Nome de Usuário {} - + Login token generated on {} Token do login gerado em {} - + Logout Sair - + Not Logged In Não Está Logado - + Login Login - - Achievements are disabled. - As conquistas estão desativadas. - - - - Game ID: {} - ID do Jogo: {} - - - - Game Title: {} - Título do Jogo: {} - - - - Achievements: {} ({} points) - Conquistas: {} ({} pontos) + + Game: {0} ({1}) + Jogo: {0} ({1}) - + Rich presence inactive or unsupported. Presença rica inativa ou não suportada. - + Game not loaded or no RetroAchievements available. Jogo não carregado ou sem RetroAchievements disponíveis. - + Card Enabled Cartão Ativado - + Card Name Nome do Cartão - + Eject Card Ejetar Cartão @@ -8074,7 +8323,7 @@ ${serial}: Serial do jogo. Falhou em re-abrir, restaurando a configuração antiga. - + Upscale multiplier set to {}x. Multiplicador da ampliação definido em {}x. @@ -8129,14 +8378,14 @@ ${serial}: Serial do jogo. Desativando os mipmaps gerados automaticamente em uma ou mais texturas de substituição comprimidas. Por favor gere mipmaps quando comprimir suas texturas. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Ambos os buffers do stencil e as barreiras das texturas estão indisponíveis, isto quebrará alguns efeitos gráficos. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. - O giro da GPU durante as leituras de retorno está ativado mas as estampas de data e hora calibrados estão indisponíveis. Isto pode ser realmente lento. + O giro da GPU durante as leituras de retorno está ativado mas as estampas de data e hora calibrados estão indisponíveis. Isto pode ser realmente lento. @@ -8190,7 +8439,7 @@ ${serial}: Serial do jogo. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8201,266 +8450,408 @@ Você pode ajustar o nível da mistura nas Propriedades do Jogo pra melhorar a qualidade gráfica, mas isto aumentará os requerimentos do sistema. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Os consertos manuais do renderizador via hardware do GS estão ativados. Os consertos automáticos não foram aplicados: - + No tracks provided. Nenhuma faixa foi fornecida. - + Hash {} is not in database. O Hash {} não está no banco de dados. - + Data track number does not match data track in database. O número da faixa dos dados não combina com a faixa dos dados no banco de dados. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - A faixa {} com o hash {} não foi achada no banco de dados. + A faixa {0} com o hash {1} não foi achada no banco de dados. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - A faixa {} com o hash {} é pra um jogo diferente ({}). + A faixa {0} com o hash {1} é pra um jogo diferente ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - A faixa {} com o hash {} não combina com a faixa no banco de dados. + A faixa {0} com o hash {1} não combina com a faixa no banco de dados. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Consertos dos jogos (NÃO recomendado pra mudar globalmente) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - Hack de Divisão Negativa do FPU (Pros Jogos Gundam) + Hack da Divisão Negativa da FPU - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - Hack de Multiplicação do FPU (Pro Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Usar o Renderizador de Software pros FMVs + Hack da Multiplicação da FPU - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Ignorar Hack do MPEG (Ignora os Vídeos/FMVs) + Hack pra Ignorar o MPEG - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Pré-Carregar Hack do TLB (Pro Goemon) + Pré-Carregar o Hack do TLB - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - Hack do Timing do EE (Hack do Timing de Propósito Geral) + Hack da Cronometragem da EE - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Hack Instantâneo do DMA (Bom para os problemas de emulação do cache) + Hack do DMA Instantâneo - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - Hack da Bandeira do OPH (Pro Bleach Blade Battlers) + Hack da Bandeira do OPH - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emular FIFO do GIF (Correto mas Mais Lento) + Emular o FIFO do GIF - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - Hack do DMA Ocupado (Nega as Gravações Quando Ocupado) + Hack do DMA Ocupado - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Atrasar Acumulações da VIF1 (Pro SOCOM 2 HUD/Spy Hunter) + Atrasar Acumulações da VIF1 - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emular FIFO da VIF (Correto mas Mais Lento) + Emular o FIFO da VIF - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Sincronização Completa da VU0 (Correta mas Mais Lenta) + Sincronização Completa da VU0 - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - Hack dos Bits da VU I (Pro Scarface The World is Yours/Crash Tag Team Racing) + Hack do Bit da VU I - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - Hack da Adição da VU (Pros Jogos da Tri-Ace) + Hack de Acréscimo da VU - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - Hack da Sobrecarga da VU (Superman Returns) + Hack da Sobrecarga da VU - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - Sincronização da VU (Executa por Trás, Jogos M-Bit) + Sincronização da VU - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - Sincronização do XGKick da VU (Correto mas Mais Lento) + Sincronização do XGKick da VU - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Forçar a Detecção Interna dos FPS dos Blits (Quando a detecção automática falha) + Forçar a Detecção dos FPS Internos dos Blits + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Usar o Renderizador de Software pros FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Desmarcado + + + + For Tales of Destiny. + Pro Tales of Destiny. + + + + For Gundam Games. + Pros Jogos do Gundam. + + + + To avoid TLB miss on Goemon. + Pra evitar o erro do TLB no Goemon. + + + + Needed for some games with complex FMV rendering. + Necessário pra alguns jogos com renderização complexa dos FMVs. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Ignora os vídeos/FMVs nos jogos pra evitar o travamento/congelamentos dos jogos. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Conhecido por afetar os seguintes jogos: Bleach Blade Battlers, Growlanser II e III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Hack de cronometragem de propósito geral. Conhecido por afetar os seguintes jogos: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Bom pros problemas de emulação do cache. Conhecido por afetar os seguintes jogos: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Conhecido por afetar os seguintes jogos: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correto porém mais lento. Conhecido por afetar os seguintes jogos: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simular a leitura adiantada do FIFO da VIF1. Conhecido por afetar os seguintes jogos: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + Pro travamento no carregamento do HUD do SOCOM 2 e Spy Hunter. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Pros Jogos da Tri-Ace: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Evita a recompilação constante em alguns jogos. Conhecido por afetar os seguintes jogos: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Força a sincronização rígida da VU0 em cada instrução do COP2. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Executar atrasado. Pra evitar problemas de sincronização quando ler ou gravar os registros da VU. + + + + To check for possible float overflows (Superman Returns). + Pra verificar possíveis sobrecargas na flutuação (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Usa cronometragem precisa pros XGKicks da VU (mais lento). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Usa um método alternativo pra calcular os FPS internos pra evitar leituras falsas em alguns jogos. GameList - + Never Nunca - + Today Hoje - + Yesterday Ontem - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} horas - + {} minutes {} minutos + + + Downloading cover for {0} [{1}]... + Baixando a capa pro {0} [{1}]... + GameListModel - + Type Tipo - + Code Código - + Title Título - + File Title Título do Arquivo - + CRC CRC - + Time Played Tempo Jogado - + Last Played Jogado pela Última Vez - + Size Tamanho - + Region Região - + Compatibility Compatibilidade @@ -8468,74 +8859,100 @@ qualidade gráfica, mas isto aumentará os requerimentos do sistema. GameListSettingsWidget - + + Game Scanning + Escaneamento do Jogo + + + Search Directories (will be scanned for games) Diretórios de Busca (serão escaneados por jogos) - + Add... Adicionar... - - - + + + Remove Remover - + Search Directory Diretório de Busca - + Scan Recursively Escanear Recursivamente - + Excluded Paths (will not be scanned) Caminhos Excluídos (não serão escaneados) - + Directory... Diretório... - + File... Arquivo... - + Scan For New Games Escanear por Novos Jogos - + Rescan All Games Re-Escanear Todos os Jogos - + + Display + Tela + + + + + Prefer English Titles + Preferir Títulos em Inglês + + + + Unchecked + Desmarcado + + + + For games with both a title in the game's native language and one in English, prefer the English title. + Pra jogos com ambos: um título no idioma nativo do jogo e um em inglês, prefira o título em inglês. + + + Open Directory... Abrir Diretório... - + Select Search Directory Selecionar Diretório da Busca - + Scan Recursively? Escanear Recursivamente? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8544,12 +8961,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. O escaneamento recursivamente leva mais tempo mas identificará os arquivos nos sub-diretórios. - + Select File Selecionar Arquivo - + Select Directory Selecionar Diretório @@ -8557,32 +8974,32 @@ O escaneamento recursivamente leva mais tempo mas identificará os arquivos nos GameListWidget - + Game List Lista de Jogos - + Game Grid Grade dos Jogos - + Show Titles Mostrar Títulos - + All Types Todos os Tipos - + All Regions Todas as Regiões - + Search... Procurar... @@ -8608,17 +9025,17 @@ O escaneamento recursivamente leva mais tempo mas identificará os arquivos nos <html><head/><body><p><span style=" font-weight:700;">Autor: </span>Autor do Patch</p><p>A descrição vai aqui</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Autor: </strong>%1<br>%2 - + Unknown Desconhecido - + No description provided. Nenhuma descrição fornecida. @@ -8636,7 +9053,7 @@ O escaneamento recursivamente leva mais tempo mas identificará os arquivos nos Recarregar Patches - + There are no patches available for this game. Não há patches disponíveis pra este jogo. @@ -8655,399 +9072,410 @@ O escaneamento recursivamente leva mais tempo mas identificará os arquivos nos - + Restore Restaurar + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Ordenação dos Títulos: + + + + English Title: + Título em Inglês: + + + Path: Caminho: - + Serial: Serial: - + CRC: CRC: - + Type: Tipo: - + PS2 Disc Disco de PS2 - + PS1 Disc Disco de PS1 - + ELF (PS2 Executable) ELF (Executável do PS2) - + Region: Região: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brasil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japão) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Coréia) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (EUA) - + Other Outro - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Austrália) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (África do Sul) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Áustria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Bélgica) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europa/Austrália) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (França) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finlândia) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Alemanha) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Grécia) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Itália) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (Índia) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europa/Austrália) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Holanda) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Noruega) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Polônia) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Rússia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Espanha) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Escandinávia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Suécia) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Suíça) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Reino Unido) - + Compatibility: Compatibilidade: - + Unknown Desconhecido - + Not Bootable Não é Inicializável - + Reaches Intro Alcança a Introdução - + Reaches Menu Alcança o Menu - + In-Game Dentro do Jogo - + Playable Jogável - + Perfect Perfeito - + Input Profile: Perfil de Entrada: - + Shared Refers to the shared settings profile. Compartilhado - + Disc Path: Caminho do Disco: - + Browse... Explorar... - + Clear Limpar - + Verify Verificar - + Search on Redump.org... Procurar no Redump.org... - + Select Disc Path Selecionar o Caminho do Disco - + Game is not a CD/DVD. O jogo não é um CD/DVD. - + Track list unavailable while virtual machine is running. A lista de faixas fica indisponível enquanto a máquina virtual está em execução. - + # # - + Mode Modo - - + + Start Start - - + + Sectors Setores - - + + Size Tamanho - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Erro - + Cannot verify image while a game is running. Não pode verificar a imagem enquanto um jogo está em execução. - + One or more tracks is missing. Uma ou mais faixas estão ausentes. - + Verified as %1 [%2] (Version %3). Verificado como %1 [%2] (Versão %3). - + Verified as %1 [%2]. Verificado como %1 [%2]. @@ -9055,62 +9483,62 @@ O escaneamento recursivamente leva mais tempo mas identificará os arquivos nos GraphicsSettingsWidget - + Renderer: Renderizador: - + Adapter: Adaptador: - + Display Tela - + Fullscreen Mode: Modo de Tela Cheia: - + Aspect Ratio: Proporção do Aspecto: - + Fit to Window / Fullscreen Encaixar na Janela/Tela Cheia - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Padrão Automático (4:3 Entrelaçado/3:2 Progressivo) - - + + Standard (4:3) Padrão (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: Proporção do Aspecto do FMV: - - - + + + @@ -9120,12 +9548,12 @@ O escaneamento recursivamente leva mais tempo mas identificará os arquivos nos Desligado (Padrão) - - - - - - + + + + + + @@ -9136,92 +9564,92 @@ O escaneamento recursivamente leva mais tempo mas identificará os arquivos nos Automático (Padrão) - + None (Interlaced, also used by Progressive) Nenhum (Entrelaçado, também usado pelo Progressivo) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Entrelaçamento (Campo Superior Primeiro, Dente de Serra) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Entrelaçamento (Campo Inferior Primeiro, Dente de Serra) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Campo Superior Primeiro, Frames Completos) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Campo Inferior Primeiro, Frames Completos) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Mistura (Campo Superior Primeiro, Unir os 2 Campos) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Mistura (Campo Inferior Primeiro, Unir os 2 Campos) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptável (Campo Superior Primeiro, Similar a Bob + Entrelaçamento) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptável (Campo Inferior Primeiro, Similar a Bob + Entrelaçamento) - + Bilinear Filtering: Filtragem Bilinear: - - + + None Nenhum - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Suave) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Nitidez) - + Vertical Stretch: Esticamento Vertical: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9229,355 +9657,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Cortar: - + Left: Warning: short space constraints. Abbreviate if necessary. Esquerda: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Topo: - + Right: Warning: short space constraints. Abbreviate if necessary. Direita: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Rodapé: - + Screen Offsets Deslocamentos da Tela - + VSync VSync - + Show Overscan Mostrar Overscan - + Enable Widescreen Patches Ativar Patches pra Widescreen - + Enable No-Interlacing Patches Ativar Patches Sem Entrelaçamento - + Anti-Blur Anti-Desfoque - + Ctrl+S Ctrl+S - + Disable Interlace Offset Desativar o Deslocamento do Entrelaçamento - + Screenshot Size: Tamanho da Screenshot: - + Screen Resolution Resolução da Tela - + Internal Resolution Resolução Interna - + Internal Resolution (Aspect Uncorrected) Resolução Interna (Aspecto Não Corrigido) - + PNG PNG - + JPEG JPEG - + Quality: Qualidade: - - + + Rendering Renderização - + Internal Resolution: Resolução Interna: - + Mipmapping: Mipmapping: - - + + Off Desligado - + Basic (Generated Mipmaps) Básico (Mipmaps Gerados) - + Full (PS2 Mipmaps) Completo (Mipmaps do PS2) - - + + Texture Filtering: Filtragem das Texturas: - - + + Nearest Mais Próximo - - + + Bilinear (Forced) Bilinear (Forçado) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forçada excluindo a imagem móvel) - + Trilinear Filtering: Filtragem Trilinear: - + Off (None) Desligado (Nenhum) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forçado) - + Anisotropic Filtering: Filtragem Anisotrópica: - + Dithering: Dithering: - + Scaled Dimensionado - + Unscaled (Default) Não Dimensionado (Padrão) - + Blending Accuracy: Precisão da Mistura: - + Minimum Mínimo - + Basic (Recommended) Básico (Recomendado) - + Medium Médio - + High Alto - + Full (Slow) Completo (Lento) - + Maximum (Very Slow) Máximo (Muito Lento) - + Texture Preloading: Pré-Carregamento das Texturas: - + Partial Parcial - + Full (Hash Cache) Completo (Cache do Hash) - + + Software Rendering Threads: + Threads da Renderização do Software: + + + + Skip Draw Range: + Ignorar Alcance do Skipdraw: + + + GPU Palette Conversion Conversão da Paleta da GPU - + Manual Hardware Renderer Fixes Consertos Manuais do Renderizador via Hardware - + Spin GPU During Readbacks Girar a GPU Durante as Leituras de Retorno - + Spin CPU During Readbacks Girar a CPU Durante as Leituras de Retorno - - Extra Rendering Threads: - Threads Extras pra Renderização: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto-Limpeza - + Hardware Fixes Consertos do Hardware - + Force Disabled Forçar Desativado - + Force Enabled Forçar Ativado - + CPU Sprite Render Size: Tamanho da Renderização das Imagens Móveis da CPU: - - - + + + 0 (Disabled) @@ -9585,79 +10018,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Desativado) - + 1 (64 Max Width) 1 (64 de Largura Máxima) - + 2 (128 Max Width) 2 (128 de Largura Máxima) - + 3 (192 Max Width) 3 (192 de Largura Máxima) - + 4 (256 Max Width) 4 (256 de Largura Máxima) - + 5 (320 Max Width) 5 (320 de Largura Máxima) - + 6 (384 Max Width) 6 (384 de Largura Máxima) - + 7 (448 Max Width) 7 (448 de Largura Máxima) - + 8 (512 Max Width) 8 (512 de Largura Máxima) - + 9 (576 Max Width) 9 (576 de Largura Máxima) - + 10 (640 Max Width) 10 (640 de Largura Máxima) - - Skipdraw Range: - Alcance do Skipdraw: - - - + Frame Buffer Conversion Conversão do Buffer dos Frames - + Disable Depth Emulation Desativar Emulação da Profundidade - + Disable Safe Features Desativar Funções Seguras - + Preload Frame Data Pré-Carregar Dados do Frame @@ -9668,606 +10096,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Textura Dentro do RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Agressivo) - + Software CLUT Render: Renderizador do CLUT via software: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. CLUT do Alvo da GPU: - - - + + + Disabled (Default) Desativado (Padrão) - + Enabled (Exact Match) Ativado (Combinação Exata) - + Enabled (Check Inside Target) Ativado (Verificação Dentro do Alvo) - + Upscaling Fixes Consertos da Ampliação - + Half Pixel Offset: Deslocamento de Meio Pixel: - + Normal (Vertex) Normal (Vértice) - + Special (Texture) Especial (Textura) - + Special (Texture - Aggressive) Especial (Textura - Agressivo) - + Round Sprite: Imagem Móvel Redonda: - + Half Metade - + Full Completo - + Texture Offsets: Deslocamentos da Textura: - + X: X: - + Y: Y: - + Merge Sprite Unir Imagem Móvel - + Align Sprite Alinhar Imagem Móvel - + Deinterlacing: Desentrelaçamento: - + Sprites Only Só Imagens Móveis - + Sprites/Triangles Imagens Móveis/Triângulo - + Blended Sprites/Triangles Imagens Móveis/Triângulos Misturados - + Auto Flush: Auto-Limpeza: - + Enabled (Sprites Only) Ativado (Só Imagens Móveis) - + Enabled (All Primitives) Ativado (Todos os Primitivos) - + Texture Inside RT: Textura Dentro do RT: - + Inside Target Dentro do Alvo - + Merge Targets Unir Alvos - + Disable Partial Source Invalidation Desativar Invalidação Parcial da Fonte - + Read Targets When Closing Ler os Alvos quando Fechar - + Estimate Texture Region Estimar a Região da Textura - + Disable Render Fixes Desativar os Consertos dos Renderizadores - + Unscaled Palette Texture Draws Desenhos da Textura da Paleta Ampliada - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Hack do Wild Arms - + Bilinear Dirty Upscale: Ampliação Bilinear Suja: - + Force Bilinear Forçar Bilinear - + Force Nearest Forçar o Mais Próximo - + Texture Replacement Substituição da Textura - + Search Directory Diretório de Busca - - + + Browse... Explorar... - - + + Open... Abrir... - - + + Reset Resetar - + PCSX2 will dump and load texture replacements from this directory. O PCSX2 dumpará e carregará as substituições de textura deste diretório. - + Options Opções - + Dump Textures Dumpar Texturas - + Dump Mipmaps Dumpar Mipmaps - + Dump FMV Textures Dumpar Texturas do FMV - - - Async Texture Loading - Carregamento das Texturas Assíncronas - - - + Load Textures Carregar Texturas - + Precache Textures Colocar as Texturas no Cache Primeiro - + Post-Processing Pós-Processamento - + Sharpening/Anti-Aliasing Nitidez/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Nitidez Adaptável do Contraste: - - + + None (Default) Nenhum (Padrão) - + Sharpen Only (Internal Resolution) Só a Nitidez (Resolução Interna) - + Sharpen and Resize (Display Resolution) Tornar Mais Nítido e Redimensionar (Exibir Resolução) - + Sharpness: Nitidez: - + FXAA FXAA - + Filters Filtros - + TV Shader: Shader de TV: - + Scanline Filter Filtro Scanline - + Diagonal Filter Filtro Diagonal - + Triangular Filter Filtro Triangular - + Wave Filter Filtro de Ondas - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. CRT Lottes - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x SuperSampling Rotacionado da Grade) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (SuperSampling Automático da Grade do Nx) - + Shade Boost Aumentar o Shade - + Brightness: Brilho: - + Contrast: Contraste: - Saturation Saturação - + OSD OSD - + On-Screen Display Exibição na Tela - + OSD Scale: Escala do OSD: - + Show Indicators Mostrar Indicadores - + Show Resolution Mostrar Resolução - + Show Inputs Mostrar Entradas - + Show GPU Usage Mostrar o Uso da GPU - + Show Settings Mostrar Configurações - + Show FPS Mostrar FPS - + + + Disable Dual-Source Blending + Desativar a Mistura de Origem Dupla + + + Disable Shader Cache Desativar o Cache do Shader - + Disable Vertex Shader Expand Desativar a Expansão do Shader do Vértice - + Show Statistics Mostrar Estatísticas - + + + Asynchronous Texture Loading + Carregamento das Texturas Assíncronas + + + + Saturation: + Saturação: + + + Show CPU Usage Mostrar o Uso da CPU - + Warn About Unsafe Settings - Avisar Sobre Configurações Não Seguras + Avisar Sobre Configurações Inseguras - + Show Frame Times Mostrar o Tempo dos Frames - + Recording Gravação - + Video Dumping Directory Diretório do Dump do Vídeo - + Capture Setup Configuração da Captura - + Container: Contêiner: - - + + Codec: Codec: - - + + Extra Arguments Argumentos Extras - + Capture Audio Capturar Áudio - + Resolution: Resolução: - + x x - + Auto Automático - + Capture Video Capturar Vídeo - + Advanced Advanced here refers to the advanced graphics options. Avançado - + Advanced Options Opções Avançadas - + Hardware Download Mode: Modo de Download do Hardware: - + Accurate (Recommended) Preciso (Recomendado) - + Disable Readbacks (Synchronize GS Thread) Desativar as Leituras de Retorno (Sincronizar a Thread do GS) - + Unsynchronized (Non-Deterministic) Não Sincronizado (Não Determinístico) - + Disabled (Ignore Transfers) Desativado (Ignorar Transferências) - + GS Dump Compression: Compressão do Dump do GS: - + Uncompressed Descomprimido - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Ignorar a Apresentação dos Frames Duplicados - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10277,69 +10715,63 @@ Swap chain: see Microsoft's Terminology Portal. Usar a Cadeia da Troca dos Blits - + Disable Threaded Presentation Desativar a Apresentação em Threads - - + + Bitrate: Taxa dos Bits: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. Kbps - + Allow Exclusive Fullscreen: Permitir Tela Cheia Exclusiva: - + Disallowed Rejeitado - + Allowed Permitido - + Debugging Options Opções de Debugging - + Override Texture Barriers: Substituir as Barreiras das Texturas: - + Use Debug Device Usar Dispositivo de Debug - - - Disable Dual Source Blending - Desativar a Mistura de Origem Dupla - - - + Show Speed Percentages Mostrar Porcentagens da Velocidade - + Disable Framebuffer Fetch Desativar a Busca do Buffer dos Frames @@ -10408,8 +10840,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Usar Configuração Global [%1] @@ -10461,6 +10893,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Desmarcado @@ -10520,11 +10953,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Controla o nível de precisão da emulação da unidade de mistura do GS.<br> Quanto maior a configuração mais a mistura é emulada no shader com precisão e maior a penalidade sobre a velocidade será.<br> Note que a mistura do Direct3D é reduzida em capacidade comparada com o OpenGL/Vulkan. + + + Software Rendering Threads + Threads da Renderização do Software + Software CLUT Render Renderizador do CLUT via Software + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Desativa o suporte dos buffers de profundidade no cache da textura. Pode ajudar a aumentar a velocidade mas provavelmente criará vários problemas gráficos. + This option disables game-specific render fixes. @@ -10576,6 +11019,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Conserta problemas com a ampliação (linhas verticais) em jogos da Namco como Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumpa as texturas substituíveis no disco. Reduzirá a performance. + + + + Includes mipmaps when dumping textures. + Inclui os mipmaps quando dumpar as texturas. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Permite a dumpagem das texturas quando os FMVs estão ativos. Você não deve ativar isto. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Carrega as texturas de substituição num thread trabalhador reduzindo o micro travamento quando as substituições estão ativadas. + + + + Loads replacement textures where available and user-provided. + Carrega as texturas de substituição aonde disponíveis e fornecidas pelo usuário. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Pré-carrega todas as texturas de substituição na memória. Não é necessário com o carregamento assíncrono. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Ativa a Nitidez Adaptável do Contraste do FidelityFX. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determina a intensidade do efeito de nitidez no pós-processamento do CAS. + + + + Adjusts brightness. 50 is normal. + Ajusta o brilho. 50 é normal. + + + + Adjusts contrast. 50 is normal. + Ajusta o contraste. 50 é normal. + + + + Adjusts saturation. 50 is normal. + Ajusta a saturação. 50 é normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10591,11 +11089,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Exibe várias configurações e os valores atuais dessas configurações, útil pra debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Mostra o estado do sistema de controle atual no canto inferior esquerdo da tela. - Displays a graph showing the average frametimes. @@ -10633,7 +11126,7 @@ Swap chain: see Microsoft's Terminology Portal. Ative esta opção pra combinar a taxa de atualização do PCSX2 com seu monitor ou tela atual. O VSync é desativado automaticamente quando não é possível (ex: executando em velocidade que não é 100%). - + Integer Scaling Dimensionamento do Inteiro @@ -10722,8 +11215,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Tela Cheia sem Bordas @@ -10865,11 +11358,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submete trabalho inútil para a GPU durante as leituras de retorno pra impedí-la de ir pro modo de economia de energia. Pode melhorar a performance mas com um aumento significativo no uso de energia. - - - Extra Rendering Threads - Threads Extras pra Renderização - 2 threads @@ -10920,11 +11408,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Fim do Alcance do Skipdraw - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Desativa o suporte do buffer de profundidade no cache da textura. Pode ajudar a aumentar a velocidade mas provavelmente criará vários problemas gráficos. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11042,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. Escala do OSD - + Show OSD Messages Mostrar Mensagens OSD @@ -11082,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Mostra os contadores pra utilização gráfica interna, útil pra debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Mostra o estado do sistema do controle atual no canto inferior esquerdo da tela. + Displays warnings when settings are enabled which may break games. @@ -11134,30 +11622,40 @@ Swap chain: see Microsoft's Terminology Portal. Apresenta os frames no thread principal do GS ao invés de um thread trabalhador. Usado pra fazer debug dos problemas de tempo dos frames. Poderia reduzir a chance de perder um frame ou reduzir o rasgo as custas de tempos dos frames mais erráticos. Só se aplica ao renderizador Vulkan. - + + Enable Debug Device + Ativar o Dispositivo de Debug + + + + Enables API-level validation of graphics commands. + Ativa a validação do nível da API dos comandos gráficos. + + + GS Download Mode Modo de Download do GS - + Accurate Preciso - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Ignora a sincronização com o thread do GS e a GPU do hospedeiro pros downloads do GS. Pode resultar num grande aumento de velocidade em sistemas mais lentos ao custo de muitos efeitos gráficos quebrados. Se os jogos estiverem quebrados e você tiver essa opção ativada por favor desative-a primeiro. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Padrão - - + + (Default) (Padrão) @@ -11165,405 +11663,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Gráficos - + Save Screenshot Salvar Screenshot - + Toggle Video Capture Alternar Captura de Vídeo - + Save Single Frame GS Dump Salvar Dump do Frame Único do GS - + Save Multi Frame GS Dump Salvar Múltiplos Dumps do Frame do GS - + Toggle Software Rendering Alternar pra Renderização via Software - + Increase Upscale Multiplier Aumentar Multiplicador da Ampliação - + Decrease Upscale Multiplier Diminuir Multiplicador da Ampliação - + Toggle On-Screen Display Alternar a Exibição na Tela - + Cycle Aspect Ratio Proporção do Aspecto dos Ciclos - + Aspect ratio set to '{}'. Proporção do aspecto definida em '{}'. - + Cycle Hardware Mipmapping Mipmapping do Hardware dos Ciclos - + Hardware mipmapping set to '{}'. Mipmapping do hardware definido como '{}'. - + Cycle Deinterlace Mode Modo de Desentrelaçamento dos Ciclos - + Deinterlace mode set to '{}'. Modo de desentrelaçamento defindo como '{}'. - + Toggle Texture Dumping Alternar Dumpagem das Texturas - + Texture dumping is now enabled. A dumpagem das texturas agora está ativada. - + Texture dumping is now disabled. A dumpagem das texturas agora está desativada. - + Toggle Texture Replacements Alternar Substituições da Textura - + Texture replacements are now enabled. As substituições da textura agora estão ativadas. - + Texture replacements are now disabled. As substituições da textura agora estão desativadas. - + Reload Texture Replacements Recarregar as Substituições da Textura - + Texture replacements are not enabled. As substituições da textura agora estão ativadas. - + Reloading texture replacements... Recarregar as substituições da textura... - + Target speed set to {:.0f}%. Velocidade do alvo definida em (:.0f)%. - + Volume: Muted Volume: Mudo - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Slot do save {} selecionado (último save: {}). + + Save slot {0} selected (last save: {1}). + Slot do save {0} selecionado (último save: {1}). - + Save slot {} selected (no save yet). Slot do save {} selecionado (nenhum save ainda). - + No save state found in slot {}. Nenhum save state achado no slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System Sistema - + Open Pause Menu Abrir Menu da Pausa - + Open Achievements List Abrir a Lista das Conquistas - + Open Leaderboards List Abrir a Lista das Tabelas de Classificação - + Toggle Pause Alternar a Pausa - + Toggle Fullscreen Alternar pra Tela Cheia - + Toggle Frame Limit Alternar o Limite dos Frames - + Toggle Turbo / Fast Forward Alternar Turbo/Avanço Rápido - + Toggle Slow Motion Alternar pra Câmera Lenta - + Turbo / Fast Forward (Hold) Turbo/Avanço Rápido (Pressionar) - + Increase Target Speed Aumentar Velocidade do Alvo - + Decrease Target Speed Diminuir Velocidade do Alvo - + Increase Volume Aumentar Volume - + Decrease Volume Diminuir Volume - + Toggle Mute Alternar pra Volume Mudo - + Frame Advance Avanço dos Frames - + Shut Down Virtual Machine Desligar a Máquina Virtual - + Reset Virtual Machine Resetar a Máquina Virtual - + Toggle Input Recording Mode Alternar pro Modo de Gravação da Entrada - - - - + + + + Save States Save States - + Select Previous Save Slot Selecionar o Slot do Save Anterior - + Select Next Save Slot Selecionar o Slot do Próximo Save - + Save State To Selected Slot Salvar o State no Slot Selecionado - + Load State From Selected Slot Carregar o State do Slot Selecionado - + Save State To Slot 1 Salvar o State no Slot 1 - + Load State From Slot 1 Carregar o State do Slot 1 - + Save State To Slot 2 Salvar o State no Slot 2 - + Load State From Slot 2 Carregar o State do Slot 2 - + Save State To Slot 3 Salvar o State no Slot 3 - + Load State From Slot 3 Carregar o State no Slot 3 - + Save State To Slot 4 Salvar o State no Slot 4 - + Load State From Slot 4 Carregar o State do Slot 4 - + Save State To Slot 5 Salvar o State no Slot 5 - + Load State From Slot 5 Carregar o State do Slot 5 - + Save State To Slot 6 Salvar o State no Slot 6 - + Load State From Slot 6 Carregar o State do Slot 6 - + Save State To Slot 7 Salvar o State no Slot 7 - + Load State From Slot 7 Carregar o State do Slot 7 - + Save State To Slot 8 Salvar o State no Slot 8 - + Load State From Slot 8 Carregar o State do Slot 8 - + Save State To Slot 9 Salvar o State no Slot 9 - + Load State From Slot 9 Carregar o State do Slot 9 - + Save State To Slot 10 Salvar o State no Slot 10 - + Load State From Slot 10 Carregar o State do Slot 10 @@ -11721,6 +12219,96 @@ Clique com o botão direito pra remover a associação %1 [%2] %1 [%2] + + + Left Analog + Analógico Esquerdo + + + + Right Analog + Analógico Direito + + + + Cross + Cruz + + + + Square + Quadrado + + + + Triangle + Triângulo + + + + Circle + Círculo + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + Direcional Pra Baixo + + + + D-Pad Right️ + Direcional Direito + + + + D-Pad Up️ + Direcional Pra Cima + + + + D-Pad Left️ + Direcional Esquerdo + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11748,137 +12336,137 @@ Clique com o botão direito pra remover a associação InterfaceSettingsWidget - + Behaviour Comportamento - + Pause On Focus Loss Pausar na Perda de Foco - + Inhibit Screensaver Inibir a Proteção de Tela - + Save State On Shutdown Salvar o State ao Desligar - + Pause On Start Pausar ao Iniciar - + Confirm Shutdown Confirmar Desligamento - + Create Save State Backups Criar Backups dos Save States - + Enable Discord Presence Ativar Presença no Discord - + Enable Per-Game Settings Ativar Configurações por Jogo - + Game Display Exibição do Jogo - + Start Fullscreen Iniciar em Tela Cheia - + Double-Click Toggles Fullscreen Clique Duplo Alterna pra Tela Cheia - + Render To Separate Window Renderizar em Janela Separada - + Hide Main Window When Running Esconder a Janela Principal quando Executar - + Disable Window Resizing Desativar o Redimensionamento da Janela - + Hide Cursor In Fullscreen Esconder o Cursor na Tela Cheia - + Preferences Preferências - + Language: Idioma: - + Theme: Tema: - + Automatic Updater Atualizador Automático - + Update Channel: Canal de Atualização: - + Current Version: Versão Atual: - + Enable Automatic Update Check Ativar Verificação Automática de Atualização - + Check for Updates... Procurar Atualizações... @@ -12071,7 +12659,7 @@ Clique com o botão direito pra remover a associação Mostra o jogo que você está jogando atualmente como parte do seu perfil no Discord. - + System Language [Default] Idioma do Sistema [Padrão] @@ -12128,14 +12716,14 @@ Clique com o botão direito pra remover a associação - - + + Change Disc Mudar Disco - + Load State Carregar State @@ -12640,13 +13228,13 @@ Clique com o botão direito pra remover a associação - + Start Big Picture Mode Iniciar o Modo Big Picture - + Big Picture In Toolbar Big Picture @@ -12658,7 +13246,7 @@ Clique com o botão direito pra remover a associação - + Show Advanced Settings Mostrar Configurações Avançadas @@ -12669,7 +13257,7 @@ Clique com o botão direito pra remover a associação - + Video Capture Captura de Vídeo @@ -12684,27 +13272,27 @@ Clique com o botão direito pra remover a associação Editar Patches... - + Internal Resolution Resolução Interna - + %1x Scale Escala %1x - + Select location to save block dump: Selecionar o local pra salvar o dump do bloco: - + Do not show again Não mostrar de novo - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12717,168 +13305,173 @@ O time do PCSX2 não fornecerá qualquer suporte pra configurações que modific Você tem certeza que você quer continuar? - + %1 Files (*.%2) %1 Arquivos (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logado como %1 (%2, %3 softcore). %4 mensagens não lidas. + + + Confirm Shutdown Confirmar Desligamento - + Are you sure you want to shut down the virtual machine? Você tem certeza que você quer desligar a máquina virtual? - + Save State For Resume Save State pro Resumo - - - - - - + + + + + + Error Erro - + You must select a disc to change discs. Você deve selecionar um disco pra mudar os discos. - + Properties... Propriedades... - + Open Containing Directory... Refers to the directory where a game is contained. Abrir o Diretório de Hospedagem... - + Set Cover Image... Definir Imagem da Capa... - + Exclude From List Excluir da Lista - + Reset Play Time Resetar Tempo de Jogo - + Default Boot Inicialização Padrão - + Fast Boot Inicialização Rápida - + Full Boot Inicialização Completa - + Boot and Debug Inicialização e Debug - + Add Search Directory... Adicionar Diretório de Busca... - + Start File Iniciar Arquivo - + Start Disc Iniciar Disco - + Select Disc Image Selecionar Imagem do Disco - + Updater Error Erro do Atualizador - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Desculpe, você está tentando atualizar uma versão do PCSX2 a qual não é um lançamento oficial do GitHub. Pra evitar incompatibilidades o auto-atualizador só é ativado nos builds oficiais.</p><p>Pra obter um build oficial por favor baixe-o no link abaixo:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. A atualização automática não é suportada na plataforma atual. - + Confirm File Creation Confirmar a Criação do Arquivo - + The pnach file '%1' does not currently exist. Do you want to create it? O arquivo pnach '%1' não existe atualmente. Você quer criá-lo? - + Failed to create '%1'. Falhou em criar o '%1'. - + Input Recording Files (*.p2m2) Arquivos da Gravação de Entrada (*.p2m2) - + Paused Pausado - + Load State Failed Falhou em Carregar o State - + Cannot load a save state without a running VM. Não pode carregar um save state sem uma máquina virtual em execução. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? O novo ELF não pode ser carregado sem resetar a máquina virtual. Você quer resetar a máquina virtual agora? - + Cannot change from game to GS dump without shutting down first. Não pode mudar do jogo pro dump do GS sem desligar primeiro. - + Failed to get window info from widget Falhou em obter informações da janela do widget @@ -12893,97 +13486,97 @@ Você tem certeza que você quer continuar? Todos os Tipos de Arquivos (*.bin *.iso *.cue *.chd *.cso *.gz *.dump);; Imagens Puras de Faixa Única (*.bin *.iso);; Cue Sheets (*.cue);; Arquivo Descritor da Mída (*.mdf);; Imagens CHD do MAME (*.chd);; Imagens CSO (*.cso);; Imagens GZ (*.gz);; Dumps dos Blocos (*.dump) - + Stop Big Picture Mode Parar o Modo Big Picture - + Exit Big Picture In Toolbar Sair do Big Picture - + Game Properties Propriedades do Jogo - + Game properties is unavailable for the current game. As propriedades do jogo não estão disponíveis para o jogo atual. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Não conseguiu achar nenhum dispositivo de CD/DVD-ROM. Por favor certifique-se que você tenha um drive conectado e permissões suficientes pra acessá-lo. - + Select disc drive: Selecione o drive do disco: - + This save state does not exist. Este save state não existe. - + Select Cover Image Selecionar a Imagem da Capa - - All Cover Image Types (*.jpg *.jpeg *.png) - Todos os Tipos de Imagens da Capa (*.jpg *.jpeg *.png) - - - + Cover Already Exists A Capa já Existe - + A cover image for this game already exists, do you wish to replace it? Uma imagem da capa pra este jogo já existe, você deseja substituí-la? - - - - + + + + Copy Error Erro da Cópia - + Failed to remove existing cover '%1' Falhou em remover a capa existente '%1' - + Failed to copy '%1' to '%2' Falhou em copiar '%1' para '%2' - + Failed to remove '%1' Falhou em remover o '%1'. - - + + Confirm Reset Confirmar Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + Todos os Tipos de Imagens da Capa (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. Você deve selecionar um arquivo diferente para a imagem atual da capa. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12992,12 +13585,12 @@ This action cannot be undone. Esta ação não pode ser desfeita. - + Load Resume State Carregar State do Resumo - + A resume save state was found for this game, saved at: %1. @@ -13010,70 +13603,70 @@ Do you want to load this state, or start from a fresh boot? Você quer carregar este state ou começar de uma nova inicialização? - + Fresh Boot Nova Inicialização - + Delete And Boot Apagar e Inicializar - + Failed to delete save state file '%1'. Falhou em apagar o arquivo do save state '%1'. - + Load State File... Carregar Arquivo do State... - + Load From File... Carregar do Arquivo... - - + + Select Save State File Selecionar Arquivo do Save State - - + + Save States (*.p2s) - Save States (*.p2s) + Estados de Salvamento (*.p2s) - + Delete Save States... Apagar Save States... - + Undo Load State Desfazer o Carregamento do State - + Resume (%2) Resumir (%2) - + Load Slot %1 (%2) Carregar Slot %1 (%2) - - + + Delete Save States Apagar Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13082,42 +13675,42 @@ The saves will not be recoverable. Os saves não serão recuperáveis. - + %1 save states deleted. %1 save states apagados. - + Save To File... Salvar como Arquivo... - + Empty Vazio - + Save Slot %1 (%2) Slot do Save %1 (%2) - + Confirm Disc Change Confirmar Mudança de Disco - + Do you want to swap discs or boot the new image (via system reset)? Você quer trocar os discos ou inicializar a nova imagem (via reset do sistema)? - + Swap Disc Trocar Disco - + Reset Resetar @@ -13125,8 +13718,8 @@ Os saves não serão recuperáveis. MemoryCard - - + + Memory Card '{}' was saved to storage. O Cartão de Memória '{}' foi salvo na armazenagem. @@ -13207,6 +13800,7 @@ Os saves não serão recuperáveis. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x maior do que um Cartão de Memória padrão. Pode ter alguns problemas de compatibilidade. @@ -13257,11 +13851,6 @@ Os saves não serão recuperáveis. Cannot Convert Memory Card Não Pôde Converter o Cartão de Memória - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x maior do que um Cartão de Memória padrão Pode ter alguns problemas de compatibilidade. - MemoryCardCreateDialog @@ -13387,103 +13976,104 @@ Os saves não serão recuperáveis. MemoryCardSettingsWidget - + Console Ports Portas do Console - + Memory Cards Cartões de Memória - + Folder: Pasta: - + Browse... Explorar... - + Open... Abrir... - + Reset Resetar - + Name Nome - + Type Tipo - + Formatted Formatado - + Last Modified Modificado pela Última Vez - + Refresh Atualizar - + + Create Criar - + Duplicate Duplicar - + Rename Renomear - + Convert Converter - + Delete Apagar - + Settings Configurações - + Automatically manage saves based on running game Gerencia automaticamente os saves baseado no jogo em execução - + Auto-eject Memory Cards when loading save states Auto-ejetar os Cartões de Memória quando carregar os save states @@ -13497,7 +14087,7 @@ Os saves não serão recuperáveis. (Folder type only / Card size: Auto) Loads only the relevant booted game saves, ignoring others. Avoids running out of space for saves. - (Só o tipo de pasta/tamanho do cartão: Automático) Só carrega os saves relevantes do jogo inicializado ignorando os outros. Evita ficar sem espaço pros saves. + (Só no tipo de pasta/tamanho do cartão: Automático) Só carrega os saves relevantes do jogo inicializado ignorando os outros. Evita ficar sem espaço pros saves. @@ -13653,58 +14243,58 @@ Esta ação não pode ser revertida e você perderá quaisquer saves no cartão. Memória - + Copy Address Copiar Endereço - + Go to in disassembly Ir pro Disassembly - - + + Go to address Ir pro Endereço - + Show as 1 byte Mostrar como 1 byte - + Show as 2 bytes Mostrar como 2 bytes - + Show as 4 bytes Mostrar como 4 bytes - + Show as 8 bytes Mostrar como 8 bytes - + Copy Byte Copiar Byte - + Copy Segment Copiar Segmento - + Copy Character Copiar Caractere - + Paste Colar @@ -13754,10 +14344,15 @@ Esta ação não pode ser revertida e você perderá quaisquer saves no cartão. Insira o Nome do Autor - + Input Recording Files (*.p2m2) Arquivos da Gravação de Entrada (*.p2m2) + + + Select a File + Selecione um Arquivo + Pad @@ -13953,6 +14548,16 @@ Esta ação não pode ser revertida e você perderá quaisquer saves no cartão. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Define a zona morta do controle analógico. Ex: a fração do movimento do controle analógico a qual será ignorada. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13969,14 +14574,14 @@ Esta ação não pode ser revertida e você perderá quaisquer saves no cartão. Define a zona morta pra ativar os botões/gatilhos. Ex: a fração da pressão do gatilho a qual será ignorada. - - Analog light is now on for port {} / slot {} - A luz do analógico agora está ligada para a porta {} / slot {} + + Analog light is now on for port {0} / slot {1} + A luz do analógico agora está ligada para a porta {0}/slot {1} - - Analog light is now off for port {} / slot {} - A luz do analógico agora está desligada para a porta {} / slot {} + + Analog light is now off for port {0} / slot {1} + A luz do analógico agora está desligada para a porta {0}/slot {1} @@ -14023,13 +14628,6 @@ Esta ação não pode ser revertida e você perderá quaisquer saves no cartão. DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - A porta do controle {}, slot {} tem um {} conectado mas o save state tem um {}. -Deixando o tipo de controle original conectado mas isto pode causar problemas. - Strum Up @@ -14100,40 +14698,63 @@ Deixando o tipo de controle original conectado mas isto pode causar problemas.Guitar Guitarra + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + A porta do controle {0}, slot {1} tem um {2} conectado mas o save state tem um {3}. +Deixando o tipo de controle original conectado mas isto pode causar problemas. + Patch - + Failed to open {}. Built-in game patches are not available. Falhou em abrir o {}. Os patches embutidos do jogo não estão disponíveis. - + {} GameDB patches {} patches do GameDB - + {}{} game patches {}{} patches do jogo - + {}{} cheat patches {}{} patches de trapaça - + {} are active. {} estão ativos. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. Nenhuma trapaça ou patches (widescreen, compatibilidade ou outros) foram achados/ativados. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + O PCSX2 usa sua câmera para emular uma câmera EyeToy conectada ao PS2 virtual + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + O PCSX2 usa o seu microfone para emular um microfone USB conectado ao PS2 virtual + + QObject @@ -14151,13 +14772,13 @@ The URL was: %1 A URL era: %1 - + HDD Creator Criador de HDD - + Failed to create HDD image Falhou em criar imagem do HDD @@ -14362,7 +14983,6 @@ De outro modo apague o save state e faça uma nova inicialização.SettingWidgetBinder - @@ -14412,222 +15032,243 @@ Você quer criar este diretório? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Usar Configuração Global [Ativado] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Usar Configuração Global [Desativado] + + + + + Use Global Setting [%1] + Usar Configuração Global [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings Configurações do PCSX2 - + Restore Defaults Restaurar Padrões - + Copy Global Settings Copiar Configurações Globais - + Clear Settings Limpar Configurações - + Close Fechar - - - Summary - Sumário - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Sumário</strong><hr>Esta página mostra detalhes sobre o jogo selecionado. Mudar o Perfil de Entrada definirá o esquema de associação do controle pra este jogo pra qualquer perfil que seja escolhido ao invés da configuração padrão (Compartilhada). A lista de faixas e verificação do dump podem ser usados pra determinar se sua imagem do disco combina com um bom dump conhecido. Se não combinar o jogo pode estar quebrado. - + + + Summary + Sumário + + + Summary is unavailable for files not present in game list. - O sumário está indisponível para arquivos não presentes na lista de jogos. + O sumário está indisponível pra arquivos não presentes na lista de jogos. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Configurações da Interface</strong><hr>Estas opções controlam como o software parece e se comporta.<br><br>Passe o mouse sobre uma opção pra obter informações adicionais. - + Game List Lista de Jogos - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Configurações da Lista de Jogos</strong><hr>A lista acima mostra os diretórios os quais serão vasculhados pelo PCSX2 pra preencher a lista de jogos. Os diretórios de busca podem ser adicionados, removidos e trocados pra recursivos/não recursivos. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>Configurações da BIOS</strong><hr>Configure sua BIOS aqui.<br><br>Passe o mouse sobre uma opção pra obter informações adicionais. - + Emulation Emulação - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Configurações da Emulação</strong><hr>Estas opções determinam a configuração do ritmo dos frames e as configurações do jogo.<br><br>Passe o mouse sobre uma opção pra obter informações adicionais. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>Estão seção permite a você selecionar os patches opcionais a aplicar no jogo os quais podem fornecer melhorias de performance, visuais ou de jogabilidade. - + Cheats Trapaças - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Trapaças</strong><hr>Esta seção permite a você selecionar quais trapaças você deseja ativar. Você não pode ativar/desativar as trapaças sem rótulos pros arquivos de formato antigo do pnach, esses ativarão automaticamente se a opção de ativação da trapaça principal estiver selecionada. - + Game Fixes Consertos dos Jogos - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Configurações dos Consertos dos Jogos</strong><hr>Os consertos dos jogos podem contornar a emulação incorreta em alguns títulos.<br>Contudo eles também podem causar problemas nos jogos se usados incorretamente.<br>É melhor deixá-los todos desativados a menos que seja aconselhado o contrário. - + Graphics Gráficos - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Configurações dos Gráficos</strong><hr>Estas opções determinam a configuração da saída gráfica.<br><br>Passe o mouse sobre uma opção pra obter informações adicionais. - + Audio Áudio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Configurações do Áudio</strong><hr>Estas opções controlam a saída de áudio do console.<br><br>Passe o mouse sobre uma opção pra obter informações adicionais. - + Memory Cards Cartões de Memória - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - <strong>Configurações do Cartão de Memória</strong><hr>Cria e configura os Cartões de Memória.<br><br>Passe o mouse sobre uma opção pra obter informações adicionais. + <strong>Configurações dos Cartões de Memória</strong><hr>Crie e configure os Cartões de Memória aqui.<br><br>Passe o mouse sobre uma opção pra obter informações adicionais. - + Network & HDD Rede & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Configurações de Rede & HDD</strong><hr>Estas opções controlam a conectividade da rede e o armazenamento interno no HDD do console.<br><br>Passe o mouse sobre uma opção pra obter informações adicionais. - + Folders Pastas - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Configurações da Pasta</strong><hr>Estas opções controlam aonde o PCSX2 salvará os arquivos dos dados do runtime. - + Achievements Conquistas - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Configurações das Conquistas</strong><hr>Estas opções controlam a implementação do RetroAchievements no PCSX2 permitindo a você ganhar conquistas nos seus jogos. - + RAIntegration is being used, built-in RetroAchievements support is disabled. O RAIntegration está sendo usado, o suporte embutido ao RetroAchievements está desativado. - + Advanced Avançado - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Configurações Avançadas</strong><hr>Estas são opções avançadas pra determinar a configuração do console simulado.<br><br>Passe o mouse sobre uma opção pra obter informações adicionais. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Configurações do Debug</strong><hr>Estas são opções as quais podem ser usadas pra registrar informações internas sobre o aplicativo. <strong>Não modifique a menos que você saiba o que você está fazendo</strong>, ela causará uma lentidão significativa e pode desperdiçar grandes quantidades de espaço em disco. - + Confirm Restore Defaults Confirmar Restauração dos Padrões - + Are you sure you want to restore the default settings? Any preferences will be lost. Você tem certeza que você quer restaurar as configurações padrão? Quaisquer preferências serão perdidas. - + Reset UI Settings Resetar Configurações da Interface do Usuário - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14640,12 +15281,12 @@ Quaisquer valores da configuração atual serão sobrescritos. Você quer continuar? - + Per-game configuration copied from global settings. - Configuração por jogo copiada das configurações globais. + Configuração por-jogo copiada das configurações globais. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14658,33 +15299,15 @@ Quaisquer valores da configuração atual serão perdidos. Você quer continuar? - + Per-game configuration cleared. - Configuração por jogo limpa. + Configuração por-jogo limpa. - + Recommended Value Valor Recomendado - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Usar Configuração Global [Ativado] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Usar Configuração Global [Desativado] - - - - - Use Global Setting [%1] - Usar Configuração Global [%1] - SetupWizardDialog @@ -14770,8 +15393,8 @@ Você quer continuar? - Open in Explorer... - Abrir no Explorer... + Open BIOS Folder... + Abrir a Pasta da BIOS... @@ -15029,7 +15652,7 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di STATE Warning: short space limit. Abbreviate if needed. - STATE + ESTADO @@ -15038,97 +15661,97 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di TIPO DE ESPERA - + BAD Refers to a Thread State in the Debugger. RUIM - + RUN Refers to a Thread State in the Debugger. EXECUTAR - + READY Refers to a Thread State in the Debugger. PRONTO - + WAIT Refers to a Thread State in the Debugger. ESPERA - + SUSPEND Refers to a Thread State in the Debugger. SUSPENDER - + WAIT SUSPEND Refers to a Thread State in the Debugger. ESPERAR A SUSPENSÃO - + DORMANT Refers to a Thread State in the Debugger. DORMENTE - + NONE Refers to a Thread Wait State in the Debugger. NENHUM - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. REQUISIÇÃO PRA DESPERTAR - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMÁFORO - + SLEEP Refers to a Thread Wait State in the Debugger. DORMIR - + DELAY Refers to a Thread Wait State in the Debugger. ATRASO - + EVENTFLAG Refers to a Thread Wait State in the Debugger. BANDEIRA DO EVENTO - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15334,6 +15957,11 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di Scales the crosshair image set above. Amplia a imagem da mira definida acima. + + + %.0f%% + %.0f%% + Cursor Color @@ -15365,6 +15993,12 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di Scales the position to simulate CRT curvature. Amplia a posição pra simular a curvatura do CRT. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15380,6 +16014,12 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di Sets the horizontal center position of the simulated screen. Define a posição central horizontal da tela simulada. + + + + %.0fpx + %.0fpx + Center Y @@ -15400,6 +16040,12 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di Sets the width of the simulated screen. Define a largura da tela simulada. + + + + %dpx + %dpx + Screen Height @@ -15455,6 +16101,15 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di Specifies the latency to the host input device. Especifica a latência do dispositivo de entrada hospedeiro. + + + + + + + %dms + %dms + Output Latency @@ -15655,6 +16310,26 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di Y Y + + + Off + Desligado + + + + Low + Baixa + + + + Medium + Média + + + + High + Alta + Steering Smoothing @@ -15665,6 +16340,12 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Suaviza as mudanças na direção na porcentagem especificada pela sondagem. Necessário pra usar teclados. + + + + %d%% + %d%% + Steering Deadzone @@ -16060,7 +16741,7 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di DJ Hero Turntable - Plataforma Giratória do DJ Hero + Toca-Discos do DJ Hero @@ -16164,117 +16845,117 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di USBBindingWidget_DrivingForce - + Hints Dicas - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - Pra associar a direção pra maioria das rodas modernas de 900 graus gire a roda uma rotação na direção desejada, então volte de novo pro centro. + Pra associar a direção com a maioria das rodas modernas de 900 graus gire a roda uma rotação na direção desejada, então volte de novo pro centro. - + Force Feedback Forçar Feedback - + D-Pad Direcionais - + Down Pra Baixo - + Left Esquerda - + Up Pra Cima - + Right Direita - + L1 L1 - + L2 L2 - + Brake Freio - + Steering Left Dirigir pra Esquerda - + Steering Right Dirigir pra Direita - + Select Select - + Start Start - + Face Buttons Botões Faciais - + Circle Círculo - + Cross Cruz - + Triangle Triângulo - + Square Quadrado - + R1 R1 - + R2 R2 - + Accelerator Acelerador @@ -16282,67 +16963,67 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di USBBindingWidget_GTForce - + Hints Dicas - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - Pra associar a direção pra maioria das rodas modernas de 900 graus gire a roda uma rotação na direção desejada, então volte de novo pro centro. + Pra associar a direção com a maioria das rodas modernas de 900 graus gire a roda uma rotação na direção desejada, então volte de novo pro centro. - + Force Feedback Forçar Feedback - + X X - + A A - + Brake Freio - + Steering Left Dirigir pra Esquerda - + Steering Right Dirigir pra Direita - + Left Paddle Remo Esquerdo - + Right Paddle Remo Direito - + Y Y - + B B - + Accelerator Acelerador @@ -16350,71 +17031,71 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di USBBindingWidget_GunCon2 - + Buttons Botões - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad Direcionais - - + + Down Pra Baixo - - + + Left Esquerda - - + + Up Pra Cima - - + + Right Direita - + Pointer Setup Configurações do Ponteiro - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16423,29 +17104,29 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di <p>Se você quer usar um controle ou lightgun o qual simula um controle ao invés de um mouse então você deve associá-lo com a Mira Relativa. De outro modo a Mira Relativa deve ser <strong>deixada sem restrições</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Mira Relativa - - + + Trigger Gatilho - + Shoot Offscreen Disparo Fora da Tela - + Calibration Shot Tiro de Calibração - + Calibration shot is required to pass the setup screen in some games. Um tiro de calibração é requerido pra passar a tela de configuração em alguns jogos. @@ -16453,27 +17134,27 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di USBDeviceWidget - + Device Type Tipo de Dispositivo - + Bindings Associações - + Settings Configurações - + Automatic Mapping Mapeamento Automático - + Clear Mapping Limpar Mapeamento @@ -16511,32 +17192,32 @@ Escanear recursivamente leva mais tempo mas identificará os arquivos nos sub-di VMManager - + Failed to back up old save state {}. Falhou em fazer backup do save state antigo {}. - + Failed to save save state: {}. - Falhou em salvar o save state em '{}'. + Falhou em salvar o save state em: {}. - + PS2 BIOS ({}) BIOS do PS2 ({}) - + Unknown Game Jogo Desconhecido - + Error Erro - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16553,199 +17234,219 @@ Uma vez dumpada esta imagem da BIOS deve ser colocada na pasta da BIOS dentro do Por favor consulte os FAQs e Guias pra mais instruções. - + + Resuming state + Resumindo o state + + + State saved to slot {}. State salvo no slot {}. - + Failed to save save state to slot {}. Falhou em salvar o save state no slot {}. - + + + Loading state + Carregando o state + + + There is no save state in slot {}. Não há save state no slot {}. - + Loading state from slot {}... Carregando o state do slot {}... - + Saving state to slot {}... Salvando o state no slot {}... - + + Frame advancing + Avanço dos Frames + + + Disc removed. Disco removido. - + Disc changed to '{}'. O disco mudou pra '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Falhou em abrir a nova imagem do disco '{}'. Revertendo pra imagem antiga. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Falhou em abrir a nova imagem do disco '{}'. Revertendo pra imagem antiga. +O erro foi: {} - - Failed to switch back to old disc image. Removing disc. - Falhou em trocar pra imagem de disco antiga. Removendo o disco. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Falhou em trocar pra imagem de disco antiga. Removendo o disco. +O erro foi: {} - + Cheats have been disabled due to achievements hardcore mode. As trapaças foram desativadas devido ao modo hardcore das conquistas. - + Fast CDVD is enabled, this may break games. - O CDVD rápido está ativado. Isto pode quebrar os jogos. + O CDVD rápido está ativado, isto pode quebrar os jogos. - + Cycle rate/skip is not at default, this may crash or make games run too slow. - A taxa/pulo dos ciclos não está no padrão. Isto pode causar um crash ou fazer os jogos rodarem muito lentos. + A taxa/pulo dos ciclos não está no padrão, isto pode causar um crash ou fazer os jogos rodarem muito lentos. - + Audio is using async mix, expect desynchronization in FMVs. O áudio está usando mistura assíncrona, espere dessincronização nos FMVs. - + Upscale multiplier is below native, this will break rendering. O multiplicador da ampliação está abaixo da resolução nativa, isto quebrará a renderização. - + Mipmapping is not set to automatic. This may break rendering in some games. O mipmapping não está definido como automático. Isto pode quebrar a renderização em alguns jogos. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. A filtragem das texturas não está definida como Bilinear (PS2). Isto quebrará a renderização em alguns jogos. - + Trilinear filtering is not set to automatic. This may break rendering in some games. A filtragem trilinear não está definida como automática. Isto pode quebrar a renderização em alguns jogos. - + Blending is below basic, this may break effects in some games. - A mistura está abaixo do básico. Isto pode quebrar os efeitos em alguns jogos. + A mistura está abaixo do básico, isto pode quebrar os efeitos em alguns jogos. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. - O modo de download do hardware não está definido como Preciso. Isto pode quebrar a renderização em alguns jogos. + O modo de download do hardware não está definido como Preciso, isto pode quebrar a renderização em alguns jogos. - + EE FPU Round Mode is not set to default, this may break some games. - O modo de arredondamento do FPU da EE não está definido como padrão. Isto pode quebrar alguns jogos. + O modo de arredondamento da FPU da EE não está definido como padrão, isto pode quebrar alguns jogos. - + EE FPU Clamp Mode is not set to default, this may break some games. - O modo de fixação do FPU da EE não está definido como padrão. Isto pode quebrar alguns jogos. + O modo de fixação da FPU da EE não está definido como padrão, isto pode quebrar alguns jogos. - + VU Round Mode is not set to default, this may break some games. - O modo de arredondamento da VU não está definido como padrão. Isto pode quebrar alguns jogos. + O modo de arredondamento da VU não está definido como padrão, isto pode quebrar alguns jogos. - + VU Clamp Mode is not set to default, this may break some games. - O modo de fixação do VU não está definido como padrão. Isto pode quebrar alguns jogos. + O modo de fixação da VU não está definido como padrão, isto pode quebrar alguns jogos. - + Game Fixes are not enabled. Compatibility with some games may be affected. Os consertos dos jogos não estão ativados. A compatibilidade com alguns jogos pode ser afetada. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Os patches de compatibilidade não estão ativados. A compatibilidade com alguns jogos pode ser afetada. - + Frame rate for NTSC is not default. This may break some games. A taxa dos frames do NTSC não é a padrão. Isto pode quebrar alguns jogos. - + Frame rate for PAL is not default. This may break some games. A taxa dos frames do PAL não é a padrão. Isto pode quebrar alguns jogos. - + EE Recompiler is not enabled, this will significantly reduce performance. O recompilador da EE não está ativado. Isto reduzirá significativamente a performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. O recompilador da VU0 não está ativado. Isto reduzirá significativamente a performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. O recompilador da VU1 não está ativado. Isto reduzirá significativamente a performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. O recompilador do IOP não está ativado. Isto reduzirá significativamente a performance. - + EE Cache is enabled, this will significantly reduce performance. - O cache do EE está ativado. Isto reduzirá significativamente a performance. + O cache da EE está ativado, isto reduzirá significativamente a performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. - A Detecção do Loop de Espera da EE não está ativada. Isto pode reduzir a performance. + A Detecção do Loop de Espera da EE não está ativada, isto pode reduzir a performance. - + INTC Spin Detection is not enabled, this may reduce performance. - A Detecção do Giro do INTC não está ativada. Isto pode reduzir a performance. + A Detecção do Giro do INTC não está ativada, isto pode reduzir a performance. - + Instant VU1 is disabled, this may reduce performance. - A VU1 instantânea está desativada. Isto pode reduzir a performance. + A VU1 instantânea está desativada, isto pode reduzir a performance. - + mVU Flag Hack is not enabled, this may reduce performance. - O Hack da Bandeira da mVU não está ativado. Isto pode reduzir a performance. + O Hack da Bandeira da mVU não está ativado, isto pode reduzir a performance. - + GPU Palette Conversion is enabled, this may reduce performance. - A conversão da paleta da GPU está ativada. Isto pode reduzir a performance. + A conversão da paleta da GPU está ativada, isto pode reduzir a performance. - + Texture Preloading is not Full, this may reduce performance. - O pré-carregamento das texturas não está completo. Isto pode reduzir a performance. + O pré-carregamento das texturas não está completo, isto pode reduzir a performance. - + Estimate texture region is enabled, this may reduce performance. - A estimativa da região das texturas está ativada. Isto pode reduzir a performance. + A estimativa da região das texturas está ativada, isto pode reduzir a performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_pt-PT.ts b/pcsx2-qt/Translations/pcsx2-qt_pt-PT.ts index 6e92a64eca5f61..33d84ca089d0ff 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_pt-PT.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_pt-PT.ts @@ -80,32 +80,38 @@ Pronto... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>O seu token de início de sessão no RetroAchievements já não é válido.</strong> Deve reintroduzir as suas credenciais para as conquistas serem monitorizadas. A sua palavra-passe não será gravada no PCSX2. Em vez disso, um token de acesso irá ser gerado e usado. - + &Login &Iniciar Sessão - + Logging in... A iniciar sessão... - + Login Error Erro ao iniciar sessão - - Login failed. Please check your username and password, and try again. - O início de sessão falhou. Por favor, verifique o seu nome de utilizador e palavra-passe e tente novamente. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Início de sessão falhou. +Erro: %1 + +Por favor, verifique o seu nome de utilizador e palavra-passe e tente novamente. - + Login failed. O início de sessão falhou. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Definições Globais - - - - + + Enable Achievements Ativar Conquistas - - - Show Challenge Indicators - Mostrar Indicadores de Desafios - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Ativar a Rich Presence do RA - - - - + + Enable Hardcore Mode Ativar Modo Hardcore - - - Enable Leaderboards - Ativar Tabelas de Classificação - - - + Test Unofficial Achievements Testar Conquistas Não Oficiais - - - Enable Test Mode - Ativar Modo de Teste - - - - + + Enable Sound Effects Ativar Efeitos Sonoros - + Notifications Notificações - - - Show Notifications - Mostrar Notificações - - - - Duration - Duração - - - - - - + + 5 seconds 5 segundos - + Account Conta - - + + Login... Iniciar Sessão... - + View Profile... Ver Perfil... - + + Settings + Configurações + + + + + Enable Spectator Mode + Ativar Modo Espetador + + + + + Enable Encore Mode + Ativar Modo de Encore + + + + + Show Achievement Notifications + Mostrar Notificações de Conquistas + + + + + Show Leaderboard Notifications + Mostrar Notificações de Classificações + + + + + Enable In-Game Overlays + Habilitar Sobreposições no Jogo + + + + Username: +Login token generated at: + Nome de Utilizador: +Token de início de sessão gerado a: + + + Game Info Informações do Jogo - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">O PCSX2 usa o RetroAchievements como uma base de dados de conquistas e para monitorizar o progresso. Para usar conquistas, por favor, increva-se em <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Para ver a lista de conquistas dentro do jogo, pressione a tecla de atalho para <span style=" font-weight:600;">Abrir Menu de Pausa</span> e selecione <span style=" font-weight:600;">Conquistas</span> no menu.</p></body></html> + - seconds - segundos - - - - + + - - Unchecked Não verificado - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Quando ativa e com sessão iniciada, o PCSX2 irá procurar por conquistas, ao carregar o jogo. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - Quando ativa, o PCSX2 irá assumir que todas as conquistas estão bloqueadas e não envia nenhuma notificação de desbloqueio para o servidor. + Quando ativado, o PCSX2 irá assumir que todas as conquistas estão bloqueadas e não envia nenhuma notificação de desbloqueio para o servidor. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Quando ativa, o PCSX2 irá listar conquistas de conjuntos não oficiais. Por favor, note que estas conquistas não são monitorizadas pelo RetroAchievements, portanto, são sempre desbloqueadas. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Quando ativa, as informações de rich presence serão recolhidas e enviadas para os servidores do RetroAchievements, caso for suportado. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. Modo de "Desafio" para conquistas, incluindo a monitorização de tabelas de classificação. Desativa as funções de save state, de batotas e de abrandamento. - - - - + + + + Checked Verificado - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Ativa a monitorização e a submissão de tabelas de classificação em jogos suportados. Se as tabelas de classificação estiverem desativadas, ainda poderá ver as tabelas de classificação e as pontuações, mas nenhuma pontuação será submetida. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Mostra mensagens de popup em eventos como o desbloqueio de conquistas ou uma submissão nas tabelas de classificação. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Toca efeitos sonoros para eventos como o desbloqueio de conquistas ou uma submissão nas tabelas de classificação. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Mostra ícones no canto inferior direito do ecrã quando um desafio ou uma conquista desejada estiverem ativos. - - - - Notification Duration - Duração da Notificação + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Quando ativado e com sessão iniciada, o PCSX2 irá procurar por conquistas, ao carregar o jogo. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Mostra mensagens popup em eventos como o desbloqueio de conquistas ou completação do jogo. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Exibe mensagens popup quando iniciar, enviar ou falhar um desafio de classificação. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - A duração, em segundos, que uma notificação popup de conquistas permanecerá na tela. + + When enabled, each session will behave as if no achievements have been unlocked. + Quando ativado, cada sessão se comportará como se nenhuma conquista tivesse sido desbloqueada. - + Reset System Reiniciar Sistema - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? O modo de Hardcore não será ativo até que o sistema seja reiniciado. Deseja reiniciar o sistema agora? + + + + %n seconds + + %n segundo + %n segundos + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Nome de Utilizador: %1 Token de início de sessão gerado a %2. - + Logout Terminar Sessão - + Not Logged In. Sem Sessão Iniciada. - - - %1 seconds - %1 segundos - Achievements - + Hardcore mode will be enabled on system reset. Modo Hardcore será ativado ao redefinir o sistema. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} não pode ser executado enquanto o modo hardcore está ativo. Quer desativar o modo hardcore? {0} será cancelado se selecionar Não. - + Hardcore mode is now enabled. O modo de Hardcore está agora ativo. - + + {} (Hardcore Mode) + {} (Modo Difícil) + + + + {} (Unofficial) + {} (Não Oficial) + + + + Mastered {} + Dominado {} + + + + Leaderboard attempt started. + Tentativa de classificação iniciada. + + + + Leaderboard attempt failed. + Tentativa de classificação falhada. + + + + Your Time: {}{} + Seu tempo: {}{} + + + + Your Score: {}{} + Sua Pontuação: {}{} + + + + Your Value: {}{} + Seu Valor: {}{} + + + + (Submitting) + (A submeter) + + + + Achievements Disconnected + Conquistas Desconectadas + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Não foi possível concluir a solicitação de desbloqueio. Continuaremos a tentar enviar esta solicitação. + + + + Achievements Reconnected + Conquistas Reconectadas + + + + All pending unlock requests have completed. + Todos os pedidos de desbloqueio pendentes foram concluídos. + + + Hardcore mode is now disabled. O modo de Hardcore está agora desativado. - + + Confirm Hardcore Mode + Confirmar Modo Difícil + + + + Active Challenge Achievements + Conquistas de desafio ativas + + + (Hardcore Mode) (Modo Hardcore) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Ganhou {0} de {1} conquistas e {2} de {3} pontos. + + You have unlocked all achievements and earned {} points! + Desbloqueaste todas as conquistas e ganhaste {} pontos! - - This game has no achievements. - Este jogo não tem conquistas. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Desbloqueaste {0} de {1} conquistas, e ganhaste {2} de {3} pontos. + + + + {0} achievements, {1} points + {0} conquistas, {1} pontos + + + + Your Time: {0} (Best: {1}) + O Teu Tempo: {0} (Melhor: {1}) + + + + Your Score: {0} (Best: {1}) + A Tua Pontuação: {0} (Melhor: {1}) + + + + Your Value: {0} (Best: {1}) + O Teu Valor: {0} (Melhor: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Posição de classificação: {1} de {2} + + + + Server error in {0}: +{1} + Erro do Servidor em {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Pontuação: {0} ({1} em modo normal) +Mensagens não lidas: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Desbloqueaste {0} de {1} conquistas, ganhaste {2} de {3} pontos possíveis. + + + + Unknown + Desconhecido + + + + Locked + Bloqueado + + + + Unlocked + Desbloqueado + + + + Unsupported + Não Suportado + + + + Unofficial + Não Oficial + + + + Recently Unlocked + Recentemente Desbloqueado + + + + Active Challenges + Desafios Ativos + + + + Almost There + Quase lá + + + + {} points + {} pontos + + + + {} point + {} ponto + + + + XXX points + XXX pontos + + + + Unlocked: {} + Desbloqueado: {} + + + + This game has {} leaderboards. + Este jogo tem {} tabelas de classificação. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Nome + + + + Time + Tempo + + + + Score + Pontuação + + + + Value + Valor + + + + Date Submitted + Data de Submissão - - Leaderboard submission is enabled. - A submissão para as tabelas de classificação está ativa. + + Downloading leaderboard data, please wait... + Baixando dados da tabela de classificação, por favor aguarde... + + + + + Loading... + A Carregar... + + + + + Leaderboard download failed + Falha ao baixar a tabela de classificação + + + + This game has no achievements. + Este jogo não tem conquistas. - + Failed to read executable from disc. Achievements disabled. Falha ao ler o executável do disco. Conquistas desativadas. @@ -578,220 +815,220 @@ Token de início de sessão gerado a %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Mudar estas opções podem fazer com que os jogos não fiquem funcionais. Modifique a seu próprio risco. A equipa do PCSX2 não irá providenciar suporte para configurações com estas definições alteradas. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Modo de Arredondamento: - - - + + + Nearest Mais próximo - - - + + + Negative Negativo - - - + + + Positive Positivo - - - + + + Chop / Zero (Default) Corte / Zero (Padrão) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Modo de Fixação: - - + + None Nenhum - - - + + + Normal (Default) Normal (Padrão) - + None ClampMode Nenhum - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preservar Sinal - + Full Completo - + Wait Loop Detection Deteção de Ciclos de Espera - - + + Enable Recompiler Ativar Recompilador - + Enable Fast Memory Access Ativar Acesso Rápido de Memória - + Enable Cache (Slow) Ativar Cache (Lento) - + INTC Spin Detection Deteção de Inatividade do INTC - + Pause On TLB Miss Pausar quando o TLB falhar - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: Modo de Arredondamento do VU1: - + mVU Flag Hack Hack do Indicador de mVU - + Enable VU1 Recompiler Ativar Recompilador de VU1 - + Enable VU0 Recompiler (Micro Mode) Ativar Recompilador de VU0 (Modo Micro) - - + + Extra Extra - + VU0 Clamping Mode: Modo de Fixação do VU0: - + VU0 Rounding Mode: Modo de Arredondamento do VU0: - + VU1 Clamping Mode: Modo de Fixação do VU1: - + I/O Processor (IOP, MIPS-I) Processador de E/S (IOP, MIPS-I) - + Game Settings Definições de Jogo - + Enable Game Fixes Ativar Correções de Jogos - + Enable Compatibility Patches Ativar Correções de Compatibilidade - + Frame Rate Control Controlo da Taxa de Videogramas - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. Hz - + PAL Frame Rate: Taxa de Videogramas PAL: - + NTSC Frame Rate: Taxa de Videogramas NTSC: - + PINE Settings Definições do PINE - + Slot: Ranhura: - + Enable Ativar @@ -799,182 +1036,182 @@ Token de início de sessão gerado a %2. AudioSettingsWidget - + Timestretch Settings Definições do Timestretch - + Sequence Length: Duração da Sequência: - + 30 30 - + Seekwindow Size: Tamanho da Janela de Busca: - + 20 20 - + Overlap: Sobreposição: - + 10 10 - + Restore Defaults Restaurar Valores Padrão - + Volume Volume - + 100% 100% - + Mixing Settings Definições de Mistura - + Synchronization: Sincronização: - + TimeStretch (Recommended) TimeStretch (Recomendado) - + Async Mix (Breaks some games!) Mistura Assíncrona (Quebra alguns jogos!) - + None (Audio can skip.) Nenhum (Pode haver cortes de áudio.) - + Expansion: Expansão: - + Stereo (None, Default) Estéreo (Nenhum, Padrão) - + Quadraphonic - Quadraphonic + Quadrifónico - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Nível ProLogic: - + None (Default) Nenhum (Padrão) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Descodificação ProLogic (básica) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Descodificação ProLogic II (gigaherz) - + Target Latency: Latência Alvo: - + 60 ms 60 ms - + Output Settings Definições de Saída - + Output Module: Módulo de Saída: - + Output Latency: Latência de Saída: - + 20 ms 20 ms - + Minimal Mínimo - + Output Backend: Backend de Saída: - + Maximum Latency: Latência Máxima: - + Output Device: Dispositivo de Saída: @@ -1162,17 +1399,22 @@ Token de início de sessão gerado a %2. Nova Versão: - + + Download Size: + Tamanho do Download: + + + Download and Install... Transferir e Instalar... - + Skip This Update Ignorar esta Atualização - + Remind Me Later Lembrar-me mais tarde @@ -1182,17 +1424,17 @@ Token de início de sessão gerado a %2. Erro de Atualizador - + <h2>Changes:</h2> <h2>Alterações:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Aviso de Save State</h2><p>Instalar esta atualização irá fazer com que os seus save states sejam <b>incompatíveis</b>. Certifique-se de que gravou os seus jogos num Memory Card, antes de instalar esta atualização, ou irá perder o seu progresso.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Aviso de Definições</h2><p>Instalar esta atualização irá repor a sua configuração do programa. Note que terá que reconfigurar as suas definições após esta atualização.</p> @@ -1233,6 +1475,11 @@ Token de início de sessão gerado a %2. + Download Size: %1 MB + Tamanho do Download: %1 MB + + + Loading... A carregar... @@ -1240,63 +1487,63 @@ Token de início de sessão gerado a %2. BIOSSettingsWidget - + BIOS Directory Diretório da BIOS - + PCSX2 will search for BIOS images in this directory. O PCSX2 irá procurar por imagens da BIOS neste diretório. - + Browse... Procurar... - + Reset Reiniciar - + BIOS Selection Seleção da BIOS - - Open in Explorer... - Abrir no Explorador... + + Open BIOS Folder... + Abrir diretório BIOS... - + Refresh List Atualizar Lista - + Filename Nome do Ficheiro - + Version Versão - + Options and Patches Opções e Correções - + Fast Boot Arranque Rápido - + Fast Forward Boot Acelerar Arranque @@ -1424,91 +1671,84 @@ Token de início de sessão gerado a %2. BreakpointModel - + Execute Executar - - No Condition - Sem Condição - - - - + + -- -- - - + Enabled Ativado - - + Disabled Desativado - + Read Lido - + Write(C) (C) = changes, as in "look for changes". Escreva(C) - + Write Escrever - + TYPE Warning: limited space available. Abbreviate if needed. ESCREVA - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. TAM. / ETIQ. - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUÇÃO - + CONDITION Warning: limited space available. Abbreviate if needed. CONDIÇÃO - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ATIVADO + X @@ -1519,7 +1759,7 @@ Token de início de sessão gerado a %2. A localização do disco do jogo está num disco removível, problemas de desempenho como jittering e congelamento podem ocorrer. - + Saving CDVD block dump to '{}'. A salvar arquivo de bloco CDVD em '{}'. @@ -1555,32 +1795,32 @@ Token de início de sessão gerado a %2. ControllerBindingWidget - + Virtual Controller Type Tipo de controlador virtual - + Bindings Mapeamentos - + Settings Definições - + Macros Macros - + Automatic Mapping Mapeamento automático - + Clear Mapping Limpar mapeamento @@ -1620,146 +1860,146 @@ Token de início de sessão gerado a %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. D-Pad - - - + + + Down Baixo - - - + + + Left Esquerda - - - + + + Up Cima - - - + + + Right Direita - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Analógico esquerdo - + Large Motor Motor grande - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Face Buttons - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. X - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Quadrado - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triângulo - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Bola - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Analógico direito - + Small Motor Motor Pequeno - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Modificador de Pressão - + Analog Analógico @@ -1767,77 +2007,72 @@ Token de início de sessão gerado a %2. ControllerBindingWidget_Guitar - - Form - Forma - - - + Yellow Amarelo - - - - - - - - - - - + + + + + + + + + + + PushButton Clicar o Botão - + Start Start - + Red Vermelho - + Green Verde - + Orange Laranja - + Select Select - + Strum Up Strum Up - + Strum Down Strum Down - + Blue Azul - + Whammy Bar Alavanca - + Tilt Inclinar @@ -1863,123 +2098,133 @@ Token de início de sessão gerado a %2. ControllerGlobalSettingsWidget - + SDL Input Source Fonte de Entrada SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). A fonte de entrada SDL suporta a maioria dos comandos e fornece funcionalidade avançada para os pads do DualShock 4 / DualSense em modo Bluetooth (Vibração / Controlo de LED). - + Enable SDL Input Source Habilitar fonte de entrada SDL - + DualShock 4 / DualSense Enhanced Mode Modo Melhorado DualShock 4 / DualSense - + XInput Source Fonte do XInput - + Enable XInput Input Source Habilitar fonte de entrada do XInput - + DInput Source Fonte do DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. A fonte do DInput fornece suporte para comandos antigos que não suportam o XInput. É recomendado acessar a estes comandos via SDL, mas o DirectInput pode ser usado se o comando não for compatível com SDL. - + Enable DInput Input Source Habilitar fonte de entrada do DInput - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Alguns controladores de terceiros marcam de forma incorreta os analógicos como invertidos na componente positiva, mas não na negativa.</p><p>Como resultado, o analógico vai ficar &quot;preso&quot; mesmo quando está na posição neutra. </p><p>Atiavar esta configuração vai fazer o PCSX2 ignorar a indicação de inversão quando cria mapeamentos, permitindo que tais controladores funcionem normalmente.</p></body></html> + + + + Ignore Inversion + Ignorar inversão + + + Profile Settings Configurações do Perfil - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Quando esta opção estiver ativada, as teclas de atalho podem ser definidas neste perfil de entrada, e serão usadas em vez das teclas de atalho globais. Por padrão, teclas de atalho são sempre compartilhadas entre todos os perfis. - + Use Per-Profile Hotkeys Usar teclas de atalho por perfil - - + + Controller LED Settings Definições LED do Comando - + Enable SDL Raw Input Habilitar Entrada de Origem SDL - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. A fonte do XInput suporta comandos da Xbox 360 / Xbox One / Xbox Series e comandos de terceiros que implementam o protocolo XInput. - + Controller Multitap Multitoque do comando - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. O multitoque permite que até 8 comandos estejam conectados à consola. Cada multitoque fornece 4 portas. O Multitoque não é suportado para todos os jogos. - + Multitap on Console Port 1 Multitoque na Porta 1 da Consola - + Multitap on Console Port 2 Multitoque na Porta 2 da Consola - + Mouse/Pointer Source Fonte do Rato/Ponteiro - + PCSX2 allows you to use your mouse to simulate analog stick movement. - PCSX2 permite que você use o seu rato para simular o movimento do stick analógico. + O PCSX2 permite que use o seu rato para simular o movimento do stick analógico. - + Settings... - Configurações... + Definições... - + Enable Mouse Mapping Ativar mapeamento do Rato - + Detected Devices Dispositivos Detetados @@ -1989,7 +2234,7 @@ Token de início de sessão gerado a %2. Controller LED Settings - Definições LED do Comando + Definições do LED do Comando @@ -2015,58 +2260,58 @@ Token de início de sessão gerado a %2. ControllerMacroEditWidget - + Binds/Buttons Binds/Botões - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Selecione os botões que você deseja acionar com esta macro. Todos os botões são ativados simultaneamente. - + Pressure Pressão - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Para botões que são sensíveis à pressão, este controlo deslizante controla quanta força será simulada quando a macro estiver ativa. - - + + 100% 100% - + Trigger Gatilho - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Selecione o gatilho para ativar esta macro. Este pode ser um único botão, ou a combinação de botões. Clique Shift para múltiplos gatilhos. - + Deadzone: Zona morta: - + Frequency Frequência - + Macro will toggle every N frames. O Macro ativará cada N frames. - + Set... Definir... @@ -2126,7 +2371,7 @@ Not Configured/Buttons configured Mouse Mapping Settings - Configurações de Mapeamento do Rato + Definições de Mapeamento do Rato @@ -2169,174 +2414,173 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings Configurações do comando PCSX2 - + Editing Profile: - A Editar o Perfil: + Editando Perfil: - + New Profile Novo Perfil - + Load Profile - Carregar perfil + Carregar Perfil - + Delete Profile Eliminar Perfil - - + + Restore Defaults - Restaurar Padrões + Restaurar Predefinições - - + + Create Input Profile Criar perfil de entrada - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - Os perfis de entrada personalizados são utilizados para substituir o perfil de entrada partilhado para jogos específicos. -Para aplicar um perfil de entrada personalizado a um jogo, aceda às respectivas Propriedades do jogo e, em seguida, altere o 'Perfil de entrada' no separador Resumo. + Custom input profiles are used to override the Shared input profile for specific games. +To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. -Introduza o nome para o novo perfil de entrada: +Enter the name for the new input profile: - - - - + + + + Error Erro - + A profile with the name '%1' already exists. - Um perfil de mesmo nome '%1' já existe. + A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - Quer copiar todas as binds do perfil atualmente selecionado para o novo perfil? Selecionar "Não" irá criar um perfil completamente vazio. + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. - Falha ao salvar o novo perfil em '%1'. + Failed to save the new profile to '%1'. - + Load Input Profile - Carregar perfil de entrada + Carregar Perfil de Entrada - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - Tem a certeza que deseja carregar o perfil de entrada '%1'? + Are you sure you want to load the input profile named '%1'? -Todas as ligações globais atuais serão removidas e o perfil será carregado. +All current global bindings will be removed, and the profile bindings loaded. -Não pode desfazer esta ação. +You cannot undo this action. - + Delete Input Profile - Eliminar perfil de entrada + Apagar Perfil de Entrada - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - Tem certeza que deseja excluir o perfil de entrada '%1'? + Are you sure you want to delete the input profile named '%1'? -Não é possível desfazer esta ação. +You cannot undo this action. - + Failed to delete '%1'. - Falha ao excluir '%1'. + Falha ao excluir '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - Tem a certeza que deseja restaurar a configuração padrão do comando? + Are you sure you want to restore the default controller configuration? -Todos os vínculos compartilhados e configurações serão perdidos, mas os seus perfis de entrada permanecerão. +All shared bindings and configuration will be lost, but your input profiles will remain. -Não pode desfazer essa ação. +You cannot undo this action. - + Global Settings - Definições Globais + Configurações Globais - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Porta do Comando %1%2 + Porta do Controle %1%2 %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Porta do Comando %1 + Controller Port %1 %2 - - + + USB Port %1 %2 - Porta USB %1 -%2 + Porta USB %1 %2 - + Hotkeys - Teclas de atalho + Hotkeys - + Shared "Shared" refers here to the shared input profile. - Partilhado + Compartilhado - + The input profile named '%1' cannot be found. - O perfil de entrada '%1' não foi encontrado. + The input profile named '%1' cannot be found. @@ -2344,22 +2588,22 @@ Não pode desfazer essa ação. Download Covers - Descarregar capas + Transferir capas PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 pode baixar automaticamente capas para jogos que atualmente não têm um capa. Nós não hospedamos nenhuma imagem de capa, o utilizador deve fornecer a sua própria fonte de imagens. + O PCSX2 pode transferir automaticamente capas para jogos que atualmente não têm um capa. Nós não hospedamos nenhuma imagem de capa, o utilizador deve fornecer a sua própria fonte de imagens. <html><head/><body><p>In the box below, specify the URLs to download covers from, with one template URL per line. The following variables are available:</p><p><span style=" font-style:italic;">${title}:</span> Title of the game.<br/><span style=" font-style:italic;">${filetitle}:</span> Name component of the game's filename.<br/><span style=" font-style:italic;">${serial}:</span> Serial of the game.</p><p><span style=" font-weight:700;">Example:</span> https://www.example-not-a-real-domain.com/covers/${serial}.jpg</p></body></html> - <html><head/><body><p>Na caixa abaixo, especifique os URLs para descarregar as capas, com um modelo de URL por linha. As seguintes variáveis estão disponíveis:</p><p><span style=" font-style:italic;">${title}:</span> Título do jogo.<br/><span style=" font-style:italic;">${filetitle}:</span> Nome dos componentes do nome de ficheiro do jogo.<br/><span style=" font-style:italic;">${serial}:</span> Serial do jogo.</p><p><span style=" font-weight:700;">Exemplo:</span> https://www.example-not-a-real-domain.com/covers/${serial}.jpg</p></body></html> + <html><head/><body><p>Na caixa abaixo, especifique os URLs para transferir as capas, com um modelo de URL por linha. As seguintes variáveis estão disponíveis:</p><p><span style=" font-style:italic;">${title}:</span> Título do jogo.<br/><span style=" font-style:italic;">${filetitle}:</span> Nome dos componentes do nome de ficheiro do jogo.<br/><span style=" font-style:italic;">${serial}:</span> Serial do jogo.</p><p><span style=" font-weight:700;">Exemplo:</span> https://www.example-not-a-real-domain.com/covers/${serial}.jpg</p></body></html> By default, the downloaded covers will be saved with the game's title. If this is not desired, you can check the "Use Serial File Names" box below. Using serials instead of game titles will prevent conflicts when multiple regions of the same game are used. - Por defeito, as capas transferidas são guardadas com o nome do jogo. Se isso não for pretendido, deve selecionar a caixa "Usar Nomes de Arquivo" abaixo. Utilizar nomes de arquivo em vez do nome do jogo irá prevenir conflitos quando existem versões de regiões diferentes do mesmo jogo. + Por defeito, as capas transferidas são guardadas com o nome do jogo. Se tal não for pretendido, deve selecionar a caixa "Usar Nomes de Ficheiro" abaixo. Utilizar nomes de ficheiro em vez do nome do jogo irá prevenir conflitos quando existem versões de regiões diferentes do mesmo jogo. @@ -2369,7 +2613,7 @@ Não pode desfazer essa ação. Waiting to start... - Esperando para começar... + À espera para começar... @@ -2406,204 +2650,242 @@ Não pode desfazer essa ação. Funções - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Atualizar - + Filter Filtro - + Memory Search Pesquisa de Memória - + End Fim - + Value Valor - + Start Iniciar - + Type Tipo - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Duplo - + String - Fio + String - + Array of byte Array de bytes - + Hex Hex - + Search Procurar - + Memory Memória - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Pilha de chamadas ativa - + Breakpoint List Context Menu Menu de contexto da lista de Breakpoint - + New Novo - + Edit Editar - - - + + + Copy Copiar - + Delete Apagar - + + + + Copy all as CSV + Copiar tudo como CSV + + + + Paste from CSV + Colar de CSV + + + Thread List Context Menu Menu de Contexto da Lista Thread - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copiar Nome da Função - + + Copy Function Address Copiar Endereço da Função - + + Go to in Disassembly Ir para no Disassembly - + + Go to in Memory View Ir para na Exibição de Memória - + + + Module Tree + Module Tree + + + Stack List Context Menu Menu de Contexto da Lista de Pilha - - - - - + + + + + Debugger Depurador - + Invalid start address Endereço de início inválido - + Invalid end address Endereço de fim inválido - + Start address can't be equal to or greater than the end address O endereço inicial não pode ser igual ou maior que o endereço final - + Invalid search value Valor de pesquisa inválido - + Value is larger than type O valor é maior que o tipo @@ -2659,22 +2941,22 @@ Não pode desfazer essa ação. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Dispositivo Ethernet: - + Ethernet Device Type: Tipo de Dispositivo Ethernet: - + Intercept DHCP Intercetar DHCP @@ -2684,135 +2966,130 @@ Não pode desfazer essa ação. Ativado - + Enabled InterceptDHCP Ativado - + Subnet Mask: Máscara de sub-rede: - + Gateway Address: Endereço de Gateway: - - + + Auto Automático - + Intercept DHCP: Intercetar DHCP: - + PS2 Address: Endereço PS2: - + DNS1 Address: Endereço DNS1: - + DNS2 Address: Endereço DNS2: - + Internal DNS DNS Interno - + Add Adicionar - + Delete Eliminar - + Export Exportar - + Import Importar - + Per game Por jogo - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 O DNS interno pode ser selecionado usando o menu DNS1/2, ou definindo-os como 192.0.2.1 - + Enabled InternalDNSTable Ativado - + Hard Disk Drive Disco rígido - + HDD File: - Arquivo HDD: + Ficheiro HDD: - + 40 40 - + 120 120 - + HDD Size (GiB): Tamanho do HDD (GB): - + Enabled HDD Ativado - + Browse Procurar - + Create Image Criar imagem - - - - - PCAP Bridged @@ -2831,7 +3108,7 @@ Não pode desfazer essa ação. Sockets - Sockets + Soquetes @@ -2845,7 +3122,7 @@ Não pode desfazer essa ação. - + Use Global Setting [%1] Usar Definição Global [%1] @@ -2865,100 +3142,100 @@ Não pode desfazer essa ação. Endereço - - + + Hosts File Ficheiro hosts - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts Anfitriões DNS - + Exported Successfully Exportado com sucesso - + Failed to open file Falha ao abrir o ficheiro - + No Hosts in file Nenhum Anfitrião no Ficheiro - + Imported Successfully Importado com sucesso - - + + Per Game Host list - Per Game Host list + Lista de Anfitriões por Jogo - + Copy global settings? Copiar configurações globais? - + Delete per game host list? Eliminar Lista de Anfitriões por Jogo? - + HDD Image File Ficheiro de imagem HDD - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Sobrescrever Ficheiro? - + HDD image "%1" already exists? Do you want to overwrite? Imagem HDD "%1" já existe? - + HDD Creator Criador de HDD - + HDD image created Imagem de HDD criada - + Use Global Usar Global - + Override Sobrepor @@ -2966,69 +3243,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Guardar RT - + Save Frame Guardar Frame - + Save Texture Guardar Textura - + Save Depth Salvar profundidade - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Diretório de Captura de Hardware: - + Software Dump Directory: Diretório de Captura de Software: - - + + Browse... Procurar... - - + + Open... Abrir... @@ -3041,29 +3318,53 @@ Do you want to overwrite? Depurador PCSX2 - - - + + Run Executar - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift + F11 + + + + Always On Top + Sempre visível + + + + Show this window on top + Show this window on top + + + Pause Pausa @@ -3076,149 +3377,174 @@ Do you want to overwrite? Desmontagem - + Copy Address Copiar endereço - + Copy Instruction Hex Copiar instrução Hex - + Copy Instruction Text Copiar Texto de Instrução - + Assemble new Instruction(s) Designar novas Instruções - + NOP Instruction(s) Instruções NOP - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Ir para Endereço - + Go to in Memory View - Go to in Memory View + Ir para a Visualização de Memória - - + + Add Function Adicionar Função - - + + Rename Function Renomear Função - + Remove Function Remover função - - + + Assemble Error Erro na montagem - + Unable to change assembly while core is running Não é possível alterar o assembly enquanto o núcleo é executado - + Assemble Instruction Assemble Instruction - + Go to address Ir para Endereço - + Go to address error Ir para erro de endereço - + Invalid address Endereço inválido - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Nome da função - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. - Function name cannot be nothing. + O nome da função não pode ser vazia. - + No function / symbol is currently selected. Nenhuma função / símbolo atualmente selecionados. - + + Restore Function Error + Restaurar erro de Função + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restaurar Instrução(ões) + + + + Restore Function + Restaurar Função + + + + Stub (NOP) Function + Função Stub (NOP) + + + %1 NOT VALID ADDRESS %1 ENDEREÇO NÃO VÁLIDO @@ -3226,17 +3552,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Nenhum jogo encontrado nos formatos suportados.</span></p><p>Por favor adicione um diretório com jogos para começar.</p><p>Serão verificados e listados os "dumps" de jogos nos seguintes formatos:</p></body></html> - + Add Game Directory... Adicionar Diretório do Jogo... - + Scan For New Games Procurar Por Novos Jogos @@ -3244,241 +3570,237 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Jogo: %1 FPS - + Video: %1 FPS (%2%) Vídeo: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - ID do Jogo: %1 -Título do Jogo: %2 -Conquistas: %5 (%6) - + Jogo: %1 (%2) - - - %n points - - %n ponto - %n pontos - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. - Game not loaded or no RetroAchievements available. + Jogo não carregado ou sem RetroAchievements disponíveis. EmulationSettingsWidget - + Speed Control Controlo de Velocidade - + Normal Speed: Velocidade Normal: - + Enable Speed Limiter Habilitar limitador de velocidade - + System Settings Configurações do Sistema - + Enable Instant VU1 Ativar VU1 Instantâneo - + Enable Cheats Permitir cheats - + Slow-Motion Speed: Velocidade de Câmera Lenta: - + Fast-Forward Speed: Velocidade de Aceleração: - + Enable Multithreaded VU1 (MTVU) Ativar VU1 multi-threaded (MTVU) - + Enable Host Filesystem Ativar sistema de ficheiro do Host - + Enable Fast CDVD Ativar CDVD Rápido - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled Desativado - + Mild Underclock - Mild Underclock + Underclock Leve - + Moderate Underclock - Moderate Underclock + Underclock Moderado - + Maximum Underclock - Maximum Underclock + Underclock Máximo - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Velocidade Normal) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Controle de Afinidade: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3496,7 +3818,7 @@ Conquistas: %5 (%6) Sets the target emulation speed. It is not guaranteed that this speed will be reached, and if not, the emulator will run as fast as it can manage. - Sets the target emulation speed. It is not guaranteed that this speed will be reached, and if not, the emulator will run as fast as it can manage. + Define a velocidade alvo da emulação. Não há garantias que esta velocidade será atingida, e caso não seja, o emulador funcionará o mais rápido possível. @@ -3566,11 +3888,21 @@ Conquistas: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" - Fast-Forward Speed + Velocidade de Aceleração + + + + 100% + 100% @@ -3581,7 +3913,7 @@ Conquistas: %5 (%6) Slow-Motion Speed The "User Preference" string will appear after the text "Recommended Value:" - Slow-Motion Speed + Velocidade de Câmara Lenta @@ -3635,45 +3967,40 @@ Conquistas: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Usar Definições Globais[%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Ilimitado - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Personalizado - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Personalizado [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Velocidade Personalizada - + Enter Custom Speed Inserir Velocidade Personalizada @@ -3681,79 +4008,79 @@ Conquistas: %5 (%6) FolderSettingsWidget - + Cache Directory Diretório da Cache - - - - - + + + + + Browse... Procurar... - - - - - + + + + + Open... Abrir... - - - - - + + + + + Reset Repor - + Used for storing shaders, game list, and achievement data. Usado para armazenar shaders, listas de jogos e dados de conquistas. - + Cheats Directory Diretório de Batotas - + Used for storing .pnach files containing game cheats. Usado para guardar ficheiros .pnach que contêm batotas. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3761,2082 +4088,2102 @@ Conquistas: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Não foi possível encontrar nenhum dispositivo de CD/DVD-ROM. Por favor certifique-se de que tem uma drive conectada e permissões suficientes para acessá-la. - + Use Global Setting Usar Definição Global - + Automatic binding failed, no devices are available. Falha na vinculação automática, não há dispositivos disponíveis. - + Game title copied to clipboard. Título do jogo copiado para área de transferência. - + Game serial copied to clipboard. Serial de jogo copiado para área de transferência. - + Game CRC copied to clipboard. CRC do jogo copiado para área de transferência. - + Game type copied to clipboard. Tipo de jogo copiado para área de transferência. - + Game region copied to clipboard. Região de jogo copiada para área de transferência. - + Game compatibility copied to clipboard. Compatibilidade do jogo copiada para área de transferência. - + Game path copied to clipboard. Caminho do jogo copiado para área de transferência. - + Per-game controller configuration initialized with global settings. Configuração do controlador por jogo inicializada com configurações globais. - + Controller settings reset to default. Configurações do controlador redefinidas para o padrão. - + No input profiles available. Nenhum perfil de entrada disponível. - + Create New... Criar novo... - + Enter the name of the input profile you wish to create. Digite o nome do perfil de entrada que deseja criar. - + Are you sure you want to restore the default settings? Any preferences will be lost. Tem certeza de que deseja restaurar as configurações padrão? Quaisquer preferências serão perdidas. - + Settings reset to defaults. Configurações redefinidas para o padrão. - - Quick Save Slot - Slot de salvamento rápido - - - + No save present in this slot. Não existem saves guardados neste slot. - + No save states found. - No save states found. + Não foram encontrados estados guardados. - + Failed to delete save state. - Failed to delete save state. + Falha ao apagar estado guardado. - + Failed to copy text to clipboard. - Failed to copy text to clipboard. + Falha ao copiar texto para a área de transferência. - + This game has no achievements. Este jogo não tem conquistas. - + This game has no leaderboards. Este jogo não tem tabela de classificações. - + Reset System Reiniciar Sistema - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? O modo de Hardcore não será ativo até que o sistema seja reiniciado. Deseja reiniciar o sistema agora? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Inicia um jogo selecionando um ficheiro ou um disco. - + Start the console without any disc inserted. - Start the console without any disc inserted. + Inicia a consola sem nenhum disco inserido. - + Start a game from a disc in your PC's DVD drive. - Start a game from a disc in your PC's DVD drive. + Inicie um jogo a partir de um disco no leitor DVD do seu PC. - + Change settings for the emulator. - Change settings for the emulator. + Alterar as configurações do emulador. - + Exits the program. Sair do programa. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Pressione agora um botão de controlo ou eixo. - + Timing out in %.0f seconds... Tempo limite em %.0f segundos... - + Unknown - Unknown + Desconhecido - + OK - OK + Aceitar - + Select Device - Select Device + Selecionar dispositivo - + Details - Details + Detalhes - + Options Opções - + Copies the current global settings to this game. - Copies the current global settings to this game. + Copia as definições globais atuais para este jogo. - + Clears all settings set for this game. - Clears all settings set for this game. + Limpa todas as definições definidas para este jogo. - + Behaviour - Behaviour + Comportamento - + Prevents the screen saver from activating and the host from sleeping while emulation is running. - Prevents the screen saver from activating and the host from sleeping while emulation is running. + Impede que o protetor de ecrã se ative e o anfitrião de dormir enquanto a emulação estiver a decorrer. - + Shows the game you are currently playing as part of your profile on Discord. - Shows the game you are currently playing as part of your profile on Discord. + Mostra o jogo que está a jogar como parte do seu perfil no Discord. - + Pauses the emulator when a game is started. Pausa o emulador quando um jogo é iniciado. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. + Pausa o emulador quando minimiza a janela ou troca para outro programa, e cancela quando volta. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Oculta o ponteiro/cursor do rato quando o emulador está no modo de ecrã inteiro. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic - Automatic + Automático + + + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} - + + Default + Padrão + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display - On-Screen Display + On-Screen Display + + + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Mostra a resolução do jogo no canto superior direito do ecrã. - + BIOS Configuration - BIOS Configuration + Configuração da BIOS - + BIOS Selection - BIOS Selection + Seleção da BIOS - + Options and Patches - Options and Patches + Opções e Correções - + Skips the intro screen, and bypasses region checks. - Skips the intro screen, and bypasses region checks. + Ignora o ecrã inicial e ignora verificações da região. - + Speed Control - Speed Control + Controlo de Velocidade - + Normal Speed - Normal Speed + Velocidade Normal - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter - Enable Speed Limiter + Ativar o limitador de velocidade - + When disabled, the game will run as fast as possible. - When disabled, the game will run as fast as possible. + Quando desativado, o jogo será executado o mais rápido possível. - + System Settings - System Settings + Definições do Sistema - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode - Affinity Control Mode + Modo de Controlo de Afinidade - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer - Renderer + Renderizador - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display - Display + Ecrã - + Aspect Ratio - Aspect Ratio + Proporção do Ecrã - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing - Deinterlacing + Desentrelaçamento - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - Selects the algorithm used to convert the PS2's interlaced output to progressive for display. + Seleciona o algoritmo usado para converter a saída interlaçada da PS2 em progressiva para exibição. - + Screenshot Size - Screenshot Size + Tamanho da Captura de Ecrã - + Determines the resolution at which screenshots will be saved. - Determines the resolution at which screenshots will be saved. + Determina a resolução em que capturas de ecrã serão guardadas. - + Screenshot Format - Screenshot Format + Formato da Captura de Ecrã - + Selects the format which will be used to save screenshots. - Selects the format which will be used to save screenshots. + Seleciona o formato que será usado para guardar as capturas de ecrã. - + Screenshot Quality - Screenshot Quality + Qualidade da captura de ecrã - + Selects the quality at which screenshots will be compressed. - Selects the quality at which screenshots will be compressed. + Seleciona a qualidade de compressão das capturas de ecrã. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. - Increases or decreases the virtual picture size vertically. + Aumenta ou diminui o tamanho da imagem virtual verticalmente. - + Crop - Crop + Cortar - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches - Enable Widescreen Patches + Ativar Patches de Widescreen - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering - Rendering + Renderização - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Half-Pixel Offset + Correções de Upscaling - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement - Texture Replacement + Substituição de Texturas - + Load Textures - Load Textures + Carregar Texturas - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders - Folders + Pastas - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA - FXAA + FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters - Filters + Filtros - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced - Advanced + Avançado - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (média) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations - Settings and Operations + Definições e Operações - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card - Create Memory Card + Criar Cartão de Memória - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: - Card Name: + Nome do Cartão: - + Configuration - Configuration + Configuração - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected - No Buttons Selected + Nenhum Botão Selecionado - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging - Logging + Registos - + System Console - System Console + Consola do Sistema - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics - Graphics + Gráficos - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings - Settings + Definições - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadrifónico - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. - + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5845,2223 +6192,2124 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: - Region: + Região: - + Compatibility: - Compatibility: + Compatibilidade: - + No Game Selected - No Game Selected + Nenhum Jogo Selecionado - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings - List Settings + Definições de Listas - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Seleciona onde o filtro anisotrópico é utilizado quando renderiza texturas. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + Usar método alternativo para calcular FPS interno para evitar leituras falsas em alguns jogos. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers - Download Covers - - - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names + Transferir Capas - + About PCSX2 - About PCSX2 + Sobre o PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements + PlayStation 2 e PS2 são marcas registadas da Sony Interactive Entertainment. Esta aplicação não está de qualquer forma associada com a Sony Interactive Entertainment. - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account - Account + Conta - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game - Current Game - - - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: + Jogo Atual - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} - Console Port {} + Porta da Consola {} - + {} (Current) - {} (Current) + {} (Atual) - + {} (Folder) - {} (Folder) + {} (Pasta) - + Memory card name '{}' is not valid. - Memory card name '{}' is not valid. + O nome do cartão de memória '{}' não é válido. - + Memory Card '{}' created. - Memory Card '{}' created. + Cartão de memória '{}' criado. - + Failed to create memory card '{}'. - Failed to create memory card '{}'. + Falha ao criar o cartão de memória '{}'. - + A memory card with the name '{}' already exists. - A memory card with the name '{}' already exists. + Um cartão de memória com o nome '{}' já existe. - + Failed to load '{}'. - Failed to load '{}'. + Falha ao carregar '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} - This Session: {} + Esta Sessão: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} - File: {} + Ficheiro: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} - Time Played: {} + Tempo de Jogo: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points + + Left: + Left: - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Top: + Top: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Right: + Right: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. - - - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings - Controller Settings + Definições do Comando - + Hotkey Settings - Hotkey Settings + Definições de Atalhos - + Achievements Settings - Achievements Settings + Definições de Conquistas - + Folder Settings Folder Settings - + Advanced Settings - Advanced Settings + Definições Avançadas - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] - 2% [1 FPS (NTSC) / 1 FPS (PAL)] + 2% [1FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - 10% [6 FPS (NTSC) / 5 FPS (PAL)] + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - 25% [15 FPS (NTSC) / 12 FPS (PAL)] + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - 50% [30 FPS (NTSC) / 25 FPS (PAL)] + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - 75% [45 FPS (NTSC) / 37 FPS (PAL)] + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - 90% [54 FPS (NTSC) / 45 FPS (PAL)] + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - 100% [60 FPS (NTSC) / 50 FPS (PAL)] + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - 110% [66 FPS (NTSC) / 55 FPS (PAL)] + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - 120% [72 FPS (NTSC) / 60 FPS (PAL)] + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - 150% [90 FPS (NTSC) / 75 FPS (PAL)] + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - 175% [105 FPS (NTSC) / 87 FPS (PAL)] + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - 200% [120 FPS (NTSC) / 100 FPS (PAL)] + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - 300% [180 FPS (NTSC) / 150 FPS (PAL)] + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - 400% [240 FPS (NTSC) / 200 FPS (PAL)] + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - 500% [300 FPS (NTSC) / 250 FPS (PAL)] + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - 1000% [600 FPS (NTSC) / 500 FPS (PAL)] + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed - 50% Speed + 50% de Velocidade - + 60% Speed - 60% Speed + 60% de Velocidade - + 75% Speed - 75% Speed + 75% de Velocidade - + 100% Speed (Default) - 100% Speed (Default) + 100% de Velocidade (Padrão) - + 130% Speed - 130% Speed + 130% de Velocidade - + 180% Speed - 180% Speed + 180% de Velocidade - + 300% Speed - 300% Speed + 300% de Velocidade - + Normal (Default) - Normal (Default) + Normal (Padrão) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled - Disabled + Desativado - + EE > VU > GS - EE > VU > GS + EE > VU > GS - + EE > GS > VU - EE > GS > VU + EE > GS > VU - + VU > EE > GS - VU > EE > GS + VU > EE > GS - + VU > GS > EE - VU > GS > EE + VU > GS > EE - + GS > EE > VU - GS > EE > VU + GS > EE > VU - + GS > VU > EE - GS > VU > EE + GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame - 1 Frame + 1 Frame - + 2 Frames - 2 Frames + 2 Frames - + 3 Frames - 3 Frames + 3 Frames - + None - None + Nenhum - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra - Extra + Extra - + Automatic (Default) - Automatic (Default) + Automático (Padrão) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) - Off (None) + Desligado (Nenhum) - + Trilinear (PS2) - Trilinear (PS2) + Trilinear (PS2) - + Trilinear (Forced) - Trilinear (Forced) + Trilinear (forçado) - + Scaled - Scaled + Escalado - + Unscaled (Default) - Unscaled (Default) + Não Escalado (Padrão) - + Minimum - Minimum + Mínimo - + Basic (Recommended) - Basic (Recommended) + Básico (Recomendado) - + Medium - Medium + Médio - + High - High + Alto - + Full (Slow) Full (Slow) - + Maximum (Very Slow) - Maximum (Very Slow) + Máximo (Muito Lento) - + Off (Default) - Off (Default) + Desligado (Padrão) - + 2x - 2x + 2x - + 4x - 4x + 4x - + 8x - 8x + 8x - + 16x - 16x + 16x - + Partial - Partial + Parcial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Modo de Espetador - + PNG - PNG + PNG - + JPEG - JPEG + JPEG - + 0 (Disabled) - 0 (Disabled) + 0 (Desativado) - + 1 (64 Max Width) - 1 (64 Max Width) + 1 (64 Largura Máxima) - + 2 (128 Max Width) - 2 (128 Max Width) + 2 (128 Largura Máxima) - + 3 (192 Max Width) - 3 (192 Max Width) + 3 (192 Largura Máxima) - + 4 (256 Max Width) - 4 (256 Max Width) + 4 (256 Largura Máxima) - + 5 (320 Max Width) - 5 (320 Max Width) + 5 (320 Largura Máxima) - + 6 (384 Max Width) - 6 (384 Max Width) + 6 (384 Largura Máxima) - + 7 (448 Max Width) - 7 (448 Max Width) + 7 (448 Largura Máxima) - + 8 (512 Max Width) - 8 (512 Max Width) + 8 (512 Largura Máxima) - + 9 (576 Max Width) - 9 (576 Max Width) + 9 (576 Largura Máxima) - + 10 (640 Max Width) - 10 (640 Max Width) + 10 (640 Largura Máxima) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) - 1 (Normal) + 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 - XAudio2 + XAudio2 - + PS2 (8MB) - PS2 (8MB) + PS2 (8MB) - + PS2 (16MB) - PS2 (16MB) + PS2 (16MB) - + PS2 (32MB) - PS2 (32MB) + PS2 (32MB) - + PS2 (64MB) - PS2 (64MB) + PS2 (64MB) - + PS1 - PS1 + PS1 - + 8 MB [Most Compatible] - 8 MB [Most Compatible] + 8 MB [Mais Compatível] - + 16 MB - 16 MB + 16 MB - + 32 MB - 32 MB + 32 MB - + 64 MB - 64 MB + 64 MB - + Folder [Recommended] - Folder [Recommended] + Pasta [Recommended] - + 128 KB [PS1] - 128 KB [PS1] + 128 KB [PS1] + + + + Negative + Negativo - + + Positive + Positivo + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List - Game List + Lista de Jogos - + Game List Settings - Game List Settings + Definições da Lista de Jogos - + Type Type - + Serial Serial - + Title - Title + Título - + File Title - File Title + Nome do Ficheiro - + CRC CRC - + Time Played - Time Played + Tempo de Jogo - + Last Played - Last Played + Última Vez Jogado - + Size - Size + Tamanho - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File - Start File + Iniciar Ficheiro - + Start BIOS Start BIOS - + Start Disc - Start Disc + Iniciar Disco - + Exit - Exit + Sair - + Set Input Binding Set Input Binding - + Region - Region + Região - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings - Clear Settings + Limpar Definições - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu - Pause On Menu + Pausar no Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create - Create + Criar - + Cancel - Cancel + Cancelar - + Load Profile - Load Profile + Carregar Perfil - + Save Profile - Save Profile + Guardar Perfil - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons - Buttons + Botões - + Frequency - Frequency + Frequência - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} - USB Port {} + Porta USB {} - + Device Type - Device Type + Tipo de Dispositivo - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings - {} Settings + {} Definições - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements - Achievements + Conquistas - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By - Sort By + Ordenar Por - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website - Website + Website - + Support Forums - Support Forums + Fóruns de Ajuda - + GitHub Repository - GitHub Repository + Repositório GitHub - + License - License + Licença - + Close - Close + Fechar - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements - Enable Achievements - - - - Rich Presence - Rich Presence + Ativar Conquistas - + Hardcore Mode - Hardcore Mode + Modo Difícil - - Show Notifications - Show Notifications - - - + Sound Effects - Sound Effects - - - - Show Challenge Indicators - Show Challenge Indicators + Efeitos Sonoros - + Test Unofficial Achievements - Test Unofficial Achievements - - - - Test Mode - Test Mode + Testar Conquistas Não Oficiais - + Username: {} - Username: {} + Usuário: {} - + Login token generated on {} Login token generated on {} - + Logout - Logout - - - - Not Logged In - Not Logged In - - - - Login - Login - - - - Achievements are disabled. - Achievements are disabled. + Logout - - Game ID: {} - Game ID: {} + + Not Logged In + Not Logged In - - Game Title: {} - Game Title: {} + + Login + Login - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Jogo: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled - Card Enabled + Cartão Ativado - + Card Name - Card Name + Nome do Cartão - + Eject Card - Eject Card + Ejetar Cartão @@ -8072,7 +8320,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8127,12 +8375,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8188,7 +8436,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8199,266 +8447,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never - Never + Nunca - + Today - Today + Hoje - + Yesterday - Yesterday + Ontem - + {}h {}m - {}h {}m + {}h {}m - + {}h {}m {}s - {}h {}m {}s + {}h {}m {}s - + {}m {}s - {}m {}s + {}m {}s - + {}s - {}s + {}s - + {} hours - {} hours + {} horas - + {} minutes - {} minutes + {} minutos + + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... GameListModel - + Type Tipo - + Code Código - + Title Título - + File Title Título do ficheiro - + CRC CRC - + Time Played Tempo de Jogo - + Last Played Última vez jogado - + Size Tamanho - + Region Região - + Compatibility Compatibilidade @@ -8466,74 +8856,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Pesquisar diretórios (procurar pelos jogos) - + Add... Adicionar... - - - + + + Remove Remover - + Search Directory Procurar Pasta - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Pasta... - + File... Ficheiro... - + Scan For New Games Procurar Novos Jogos - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Abrir Pasta... - + Select Search Directory Select Search Directory - + Scan Recursively? Procurar Recursivamente? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8542,12 +8958,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Procurar recursivamente leva mais tempo, mas irá identificar arquivos em subpastas. - + Select File Selecionar Ficheiro - + Select Directory Selecionar pasta @@ -8555,32 +8971,32 @@ Procurar recursivamente leva mais tempo, mas irá identificar arquivos em subpas GameListWidget - + Game List Lista de Jogos - + Game Grid Grelha de Jogos - + Show Titles Mostrar Títulos - + All Types Todos os Tipos - + All Regions Todas as regiões - + Search... Procurar... @@ -8606,17 +9022,17 @@ Procurar recursivamente leva mais tempo, mas irá identificar arquivos em subpas <html><head/><body><p><span style=" font-weight:700;">Autor: </span>Autor da Atualização</p><p>A descrição seria aqui</p></body></html> - + <strong>Author: </strong>%1<br>%2 - <strong>Author: </strong>%1<br>%2 + <strong>Autor: </strong>%1<br>%2 - + Unknown Desconhecido - + No description provided. No description provided. @@ -8634,7 +9050,7 @@ Procurar recursivamente leva mais tempo, mas irá identificar arquivos em subpas Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8653,399 +9069,410 @@ Procurar recursivamente leva mais tempo, mas irá identificar arquivos em subpas - + Restore Restaurar + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Localização: - + Serial: Número de Série: - + CRC: CRC: - + Type: Tipo: - + PS2 Disc Disco de PS2 - + PS1 Disc Disco de PS1 - + ELF (PS2 Executable) ELF (Executável PS2) - + Region: Região: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brasil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japão) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Coreia) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (EUA) - + Other Outros - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Austrália) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (África do Sul) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Bélgica) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europa/Austrália) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (França) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finlândia) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Alemanha) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Grécia) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Itália) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (Índia) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europa/Austrália) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Países Baixos) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Noruega) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Polónia) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Rússia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Espanha) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Escandinávia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Suécia) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Suíça) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Reino Unido) - + Compatibility: Compatibilidade: - + Unknown Desconhecido - + Not Bootable Não inicializável - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game Dentro Do Jogo - + Playable Jogável - + Perfect Perfeito - + Input Profile: Perfil de entrada: - + Shared Refers to the shared settings profile. Partilhados - + Disc Path: Localização do Disco: - + Browse... Pesquisar... - + Clear Limpar - + Verify Verifique - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Selecione a Localização do Disco - + Game is not a CD/DVD. O jogo não é um CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Modo - - + + Start Começar - - + + Sectors Setores - - + + Size Tamanho - - + + MD5 MD5 - - + + Status Estado - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Erro - + Cannot verify image while a game is running. Não é possível verificar a imagem enquanto um jogo é executado. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verificado como %1 [%2] (Versão %3). - + Verified as %1 [%2]. Verificado como %1 [%2]. @@ -9053,62 +9480,62 @@ Procurar recursivamente leva mais tempo, mas irá identificar arquivos em subpas GraphicsSettingsWidget - + Renderer: Renderizador: - + Adapter: Adaptador: - + Display Ecrã - + Fullscreen Mode: Modo Tela Cheia: - + Aspect Ratio: Proporção do ecrã: - + Fit to Window / Fullscreen Ajustar à Janela / Tela cheia - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Padrão Automático (4:3 Interpelado / 3:2 Progressivo) - - + + Standard (4:3) Padrão (4:3) - - + + Widescreen (16:9) Tela larga (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9118,12 +9545,12 @@ Procurar recursivamente leva mais tempo, mas irá identificar arquivos em subpas Desligado (Padrão) - - - - - - + + + + + + @@ -9134,92 +9561,92 @@ Procurar recursivamente leva mais tempo, mas irá identificar arquivos em subpas Automático (Padrão) - + None (Interlaced, also used by Progressive) Nenhum (Entrelaçado, também usado pelo Progressivo) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None Nenhum - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9227,355 +9654,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Cortar: - + Left: Warning: short space constraints. Abbreviate if necessary. Esquerda: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Cima: - + Right: Warning: short space constraints. Abbreviate if necessary. Direita: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Baixo: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Crtl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Tamanho da Captura de Ecrã: - + Screen Resolution Resolução do Ecrã - + Internal Resolution Resolução interna - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Qualidade: - - + + Rendering Renderização - + Internal Resolution: Resolução interna: - + Mipmapping: Mipmapping: - - + + Off Desligado - + Basic (Generated Mipmaps) Básico (Mipmaps Gerados) - + Full (PS2 Mipmaps) Inteiro (PS2 Mipmaps) - - + + Texture Filtering: Filtro de Texturas: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forçado) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Filtro Trilinear: - + Off (None) Desligar (nenhum) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (forçado) - + Anisotropic Filtering: Filtro anisotrópico: - + Dithering: Dithering: - + Scaled Escalado - + Unscaled (Default) Não escalado (Padrão) - + Blending Accuracy: Blending Accuracy: - + Minimum Mínimo - + Basic (Recommended) Básico (recomendado) - + Medium Médio - + High Alto - + Full (Slow) Completo (lento) - + Maximum (Very Slow) Máximo (muito lento) - + Texture Preloading: Pré-carregamento de Texturas: - + Partial Parcial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9583,79 +10015,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Desativado) - + 1 (64 Max Width) 1 (64 Largura Máxima) - + 2 (128 Max Width) 2 (128 Largura Máxima) - + 3 (192 Max Width) 3 (192 Largura Máxima) - + 4 (256 Max Width) 4 (256 Largura Máxima) - + 5 (320 Max Width) 5 (320 Largura Máxima) - + 6 (384 Max Width) 6 (384 Largura Máxima) - + 7 (448 Max Width) 7 (448 Largura Máxima) - + 8 (512 Max Width) 8 (512 Largura Máxima) - + 9 (576 Max Width) 9 (576 Largura Máxima) - + 10 (640 Max Width) 10 (640 Largura Máxima) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9666,606 +10093,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Agressivo) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Desativado (Padrão) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Especial (Textura) - + Special (Texture - Aggressive) Especial (Textura - Agressiva) - + Round Sprite: Round Sprite: - + Half Metade - + Full Completo - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Forçar Bilinear - + Force Nearest Forçar Aproximado - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Procurar... - - + + Open... Abrir... - - + + Reset Redefinir - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Definições - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Carregar Texturas - + Precache Textures Precache Textures - + Post-Processing Pós-processamento - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) Nenhum (Padrão) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Nitidez: - + FXAA FXAA - + Filters Filtros - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Filtro Diagonal - + Triangular Filter Filtro Triangular - + Wave Filter Filtro Ondular - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brilho: - + Contrast: Contraste: - Saturation Saturação - + OSD OSD - + On-Screen Display Apresentação no Ecrã - + OSD Scale: Escala OSD: - + Show Indicators Mostrar Indicadores - + Show Resolution Mostrar Resolução - + Show Inputs Mostrar Comandos - + Show GPU Usage Exibir Uso da GPU - + Show Settings Exibir Configurações - + Show FPS Exibir FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Desativar Cache de Shader - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Exibir Estatísticas - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturação: + + + Show CPU Usage Exibir Uso do CPU - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording A Gravar - + Video Dumping Directory Video Dumping Directory - + Capture Setup Configuração de Captura - + Container: Recipiente: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capturar Áudio - + Resolution: Resolução: - + x x - + Auto Automático - + Capture Video Capturar Vídeo - + Advanced Advanced here refers to the advanced graphics options. Avançado - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Preciso (Recomendado) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Desativado (Ignorar Transferências) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10275,69 +10712,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Não Permitido - + Allowed Permitido - + Debugging Options Opções de Depuração - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10406,8 +10837,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Usar Definição Global [%1] @@ -10459,6 +10890,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Não Verificado @@ -10518,11 +10950,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10574,6 +11016,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10589,11 +11086,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10631,7 +11123,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10720,8 +11212,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10863,11 +11355,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10918,11 +11405,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11040,7 +11522,7 @@ Swap chain: see Microsoft's Terminology Portal. Escala OSD - + Show OSD Messages Show OSD Messages @@ -11080,6 +11562,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11133,29 +11620,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Preciso - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Padrão - - + + (Default) (Padrão) @@ -11163,405 +11660,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Gráficos - + Save Screenshot Guardar captura de ecrã - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Silenciado - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System Sistema - + Open Pause Menu Abrir Menu de Pausa - + Open Achievements List Abrir Lista de Conquistas - + Open Leaderboards List Abrir Lista de Classificações - + Toggle Pause Alternar Pausa - + Toggle Fullscreen Alternar Ecrã Inteiro - + Toggle Frame Limit Alternar Limite de Frames - + Toggle Turbo / Fast Forward Alternar Turbo / Avançar Rápido - + Toggle Slow Motion Alternar Câmara Lenta - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Aumentar o Volume - + Decrease Volume Diminuir o Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11719,6 +12216,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11746,137 +12333,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Comportamento - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pausar ao Iniciar - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Ativar Presença do Discord - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Iniciar em Ecrã Inteiro - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferências - + Language: Idioma: - + Theme: Tema: - + Automatic Updater Atualizações Automáticas - + Update Channel: Canal de Atualização: - + Current Version: Versão Atual: - + Enable Automatic Update Check Ativar Atualizações Automáticas - + Check for Updates... Procurar Atualizações... @@ -12069,7 +12656,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] Idioma do Sistema [Default] @@ -12126,14 +12713,14 @@ Right click to clear binding - - + + Change Disc Alterar Disco - + Load State Load State @@ -12638,13 +13225,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12656,7 +13243,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12667,7 +13254,7 @@ Right click to clear binding - + Video Capture Captura de Vídeo @@ -12682,27 +13269,27 @@ Right click to clear binding Editar Patches... - + Internal Resolution Internal Resolution - + %1x Scale Escala %1x - + Select location to save block dump: Select location to save block dump: - + Do not show again Não voltar a mostrar - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12715,168 +13302,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Erro - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Propriedades... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Definir Imagem de Capa... - + Exclude From List Excluir da Lista - + Reset Play Time Reiniciar Tempo de Jogo - + Default Boot Arranque Padrão - + Fast Boot Arranque Rápido - + Full Boot Arranque Completo - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Iniciar Ficheiro - + Start Disc Iniciar Disco - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirmar criação do ficheiro - + The pnach file '%1' does not currently exist. Do you want to create it? O ficheiro pnach '%1' não existe. Quer criar? - + Failed to create '%1'. Falha a criar '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Em pausa - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? O novo ELF não pode ser carregado sem reiniciar a máquina virtual. Deseja redefinir a máquina virtual agora? - + Cannot change from game to GS dump without shutting down first. Não é possível mudar do jogo para o dump de GS sem desligar primeiro. - + Failed to get window info from widget Failed to get window info from widget @@ -12891,97 +13483,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Parar Modo de Imagem Grande - + Exit Big Picture In Toolbar Sair da Imagem Grande - + Game Properties Propriedades do Jogo - + Game properties is unavailable for the current game. As propriedades do jogo não estão disponíveis para o jogo atual. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Selecionar Imagem de Capa - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? Já existe uma imagem de capa para este jogo, deseja substituí-la? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Falha ao remover '%1' - - + + Confirm Reset Confirmar Reinício - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. Deve selecionar um ficheiro diferente da imagem de capa atual. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12990,12 +13582,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13008,70 +13600,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Retomar (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13080,42 +13672,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Vazio - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirmar Alteração de Disco - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Alterar de Disco - + Reset Reiniciar @@ -13123,8 +13715,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13205,6 +13797,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13255,11 +13848,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Não é possível converter o Cartão de Memória - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x maior que um Cartão de Memória padrão. Pode conter problemas de incompatibilidade. - MemoryCardCreateDialog @@ -13385,103 +13973,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Portas da Consola - + Memory Cards Cartões de Memória - + Folder: Pasta: - + Browse... Procurar... - + Open... Abrir... - + Reset Reiniciar - + Name Nome - + Type Tipo - + Formatted Formatado - + Last Modified Última Modificação - + Refresh Atualizar - + + Create Criar - + Duplicate Duplicar - + Rename Renomear - + Convert Converter - + Delete Eliminar - + Settings Definições - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13651,58 +14240,58 @@ Esta ação não pode ser revertida, e irá perder tudo o que foi guardado no ca Memória - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Mostrar como 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Colar @@ -13752,10 +14341,15 @@ Esta ação não pode ser revertida, e irá perder tudo o que foi guardado no ca Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Selecione um ficheiro + Pad @@ -13951,6 +14545,16 @@ Esta ação não pode ser revertida, e irá perder tudo o que foi guardado no ca Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13967,14 +14571,14 @@ Esta ação não pode ser revertida, e irá perder tudo o que foi guardado no ca Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14021,13 +14625,6 @@ Esta ação não pode ser revertida, e irá perder tudo o que foi guardado no ca DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14098,40 +14695,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitarra + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} estão ativos. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14149,13 +14769,13 @@ The URL was: %1 O URL foi: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14360,7 +14980,6 @@ Caso contrário, apague o savestate e inicie de novo. SettingWidgetBinder - @@ -14410,222 +15029,243 @@ Deseja criar este diretório? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Usar Definição Global [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Usar Definição Global [Disabled] + + + + + Use Global Setting [%1] + Usar Definição Global [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings - Definições do PCSX2 + PCSX2 Settings - + Restore Defaults - Restaurar Padrões + Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close - Fechar - - - - - Summary - Resumo + Close - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. - Resumo não disponível para ficheiros não presentes na lista de jogos. + Summary is unavailable for files not present in game list. - + Interface - Interface + Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Lista de Jogos - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation - Emulação + Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics - Gráficos + Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio - Áudio + Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards - Cartões de Memória + Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD - Rede e HDD + Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders - Pastas + Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements - Conquistas + Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced - Avançado + Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug - Depurar + Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings - Repor Configurações da Interface + Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14638,12 +15278,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14656,32 +15296,14 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value - Valor Recomendado - - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Usar Definição Global [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Usar Definição Global [Disabled] - - - - - Use Global Setting [%1] - Usar Definição Global [%1] + Recommended Value @@ -14768,8 +15390,8 @@ Do you want to continue? - Open in Explorer... - Abrir no Navegador... + Open BIOS Folder... + Open BIOS Folder... @@ -15036,97 +15658,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. MAU - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. PRONTO - + WAIT Refers to a Thread State in the Debugger. ESPERAR - + SUSPEND Refers to a Thread State in the Debugger. SUSPENDER - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. DORMIR - + DELAY Refers to a Thread Wait State in the Debugger. ATRASO - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15332,6 +15954,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Escala a imagem de mira definida acima. + + + %.0f%% + %.0f%% + Cursor Color @@ -15363,6 +15990,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Dimensiona a posição para simular a curvatura CRT. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15378,6 +16011,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15398,6 +16037,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15453,6 +16098,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15653,6 +16307,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15663,6 +16337,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16162,117 +16842,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Dicas - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right - Right + Direita - + L1 L1 - + L2 L2 - + Brake Travão - + Steering Left - Steering Left + A Virar à Esquerda - + Steering Right - Steering Right + A Virar à Direita - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Círculo - + Cross X - + Triangle Triângulo - + Square Quadrado - + R1 R1 - + R2 R2 - + Accelerator Acelerador @@ -16280,67 +16960,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Dicas - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. + Para mapear a direção para a maioria dos volantes modernos de 900 graus, vire a roda uma rotação na direção desejada, e depois volte novamente ao centro. - + Force Feedback - Force Feedback + Feedback de Força - + X X - + A A - + Brake Travão - + Steering Left - Steering Left + A Virar à Esquerda - + Steering Right - Steering Right + A Virar à Direita - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Acelerador @@ -16348,71 +17028,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Botões - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Baixo - - + + Left Esquerda - - + + Up Cima - - + + Right Direita - + Pointer Setup Configuração do ponteiro - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16421,29 +17101,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>Se quiseres usar um comando, ou lightgun que simula um comando ao invés de um rato, então deves mapear a Mira Relativa. De outra forma, a Mira Relativa deve ficar <strong>sem mapeamento</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Mira Relativa - - + + Trigger Trigger - + Shoot Offscreen Deslocamento de tiro - + Calibration Shot Calibração de Tiro - + Calibration shot is required to pass the setup screen in some games. A calibração é necessária para passar a tela de configuração em alguns jogos. @@ -16451,90 +17131,90 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Tipo de Dispositivo - + Bindings - Bindings + Mapeamentos - + Settings Configurações - + Automatic Mapping - Automatic Mapping + Mapeamento Automático - + Clear Mapping - Clear Mapping + Limpar Mapeamento USB Port %1 - USB Port %1 + Porta USB %1 No devices available - No devices available + Nenhum dispositivo disponível Clear Bindings - Clear Bindings + Limpar Mapeamentos Are you sure you want to clear all bindings for this device? This action cannot be undone. - Are you sure you want to clear all bindings for this device? This action cannot be undone. + Tem a certeza que pretende limpar todos os mapeamentos para este dispositivo? Esta ação não pode ser desfeita. Automatic Binding - Automatic Binding + Mapeamento Automático No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. - No generic bindings were generated for device '%1'. The controller/source may not support automatic mapping. + Nenhum mapeamento genérico foi gerado para o dispositivo '%1'. O comando/fonte pode não suportar mapeamento automático. VMManager - + Failed to back up old save state {}. - Failed to back up old save state {}. + Falha ao fazer backup do save state antigo {}. - + Failed to save save state: {}. Falha ao salvar o estado. - + PS2 BIOS ({}) - PS2 BIOS ({}) + BIOS PS2 ({}) - + Unknown Game Jogo Desconhecido - + Error Erro - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16542,206 +17222,226 @@ For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own Once dumped, this BIOS image should be placed in the bios folder within the data directory (Tools Menu -> Open Data Directory). Please consult the FAQs and Guides for further instructions. - PCSX2 requires a PS2 BIOS in order to run. + O PCSX2 requer uma BIOS da PS2 para executar. -For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). +Por razões legais, *deverá* obter uma BIOS de uma unidade PS2 real que possui (empréstimos não contam). -Once dumped, this BIOS image should be placed in the bios folder within the data directory (Tools Menu -> Open Data Directory). +Uma vez copiada, esta imagem da BIOS deve ser colocada na pasta bios dentro do diretório de dados (Menu Ferramentas -> Abrir Diretório de Dados). -Please consult the FAQs and Guides for further instructions. +Por favor consulte os FAQs e guias para mais instruções. + + + + Resuming state + A retomar estado - + State saved to slot {}. - State saved to slot {}. + Estado guardado no slot {}. - + Failed to save save state to slot {}. - Failed to save save state to slot {}. + Falha ao guardar o estado do save no slot {}. - + + + Loading state + A carregar estado + + + There is no save state in slot {}. - There is no save state in slot {}. + Não há nenhum estado de save no slot {}. - + Loading state from slot {}... - Loading state from slot {}... + A carregar estado do slot {}... - + Saving state to slot {}... - Saving state to slot {}... + A guardar estado no slot {}... - + + Frame advancing + Avanço de frames + + + Disc removed. Disco removido. - + Disc changed to '{}'. - Disc changed to '{}'. + Disco alterado para '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Falha ao abrir a nova imagem de disco '{}'. A reverter para a imagem anterior. +O erro foi: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Falha ao mudar para a imagem de disco anterior. A remover o disco. +O erro foi: {} - + Cheats have been disabled due to achievements hardcore mode. - Cheats have been disabled due to achievements hardcore mode. + Os cheats foram desativados devido a conquistas no modo hardcore. - + Fast CDVD is enabled, this may break games. - Fast CDVD is enabled, this may break games. + CDVD rápido está ativado, isto pode partir os jogos. - + Cycle rate/skip is not at default, this may crash or make games run too slow. - Cycle rate/skip is not at default, this may crash or make games run too slow. + A taxa/salto dos ciclos não está como padrão, isto poderá bloquear ou deixar os jogos muito lentos. - + Audio is using async mix, expect desynchronization in FMVs. - Audio is using async mix, expect desynchronization in FMVs. + O áudio está a usar o mix assíncrono, espere dessincronização nas FMVs. - + Upscale multiplier is below native, this will break rendering. - Upscale multiplier is below native, this will break rendering. + Multiplicador de upscale abaixo do nativo, isto poderá quebrar a renderização. - + Mipmapping is not set to automatic. This may break rendering in some games. - Mipmapping is not set to automatic. This may break rendering in some games. + O Mipmapping não está definido como automático. Isto pode quebrar a renderização nalguns jogos. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. + A filtragem de texturas não está definida como Bilinear (PS2). Isto poderá quebrar a renderização nalguns jogos. - + Trilinear filtering is not set to automatic. This may break rendering in some games. - Trilinear filtering is not set to automatic. This may break rendering in some games. + A filtragem trilinear não está definida como automática. Isto poderá quebrar a renderização nalguns jogos. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_ro-RO.ts b/pcsx2-qt/Translations/pcsx2-qt_ro-RO.ts index 894c5753f4b60b..2630490444cda4 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_ro-RO.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_ro-RO.ts @@ -80,32 +80,38 @@ Gata... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. - + &Login &Autentificare - + Logging in... În curs de autentificare... - + Login Error Eroare de autentificare - - Login failed. Please check your username and password, and try again. - Autentificare eșuată. Te rugăm să verifici numele de utilizator și parola, apoi încearcă din nou. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login failed. +Error: %1 + +Please check your username and password, and try again. - + Login failed. Autentificare eșuată. @@ -113,268 +119,500 @@ AchievementSettingsWidget - - Global Settings - Setări globale - - - - + + Enable Achievements Activează achievement-urile - - - Show Challenge Indicators - Arată indicatorii provocărilor - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Activează modul Rich Presence al lui RA - - - - + + Enable Hardcore Mode Activează modul Hardcore - - - Enable Leaderboards - Activează clasamentele - - - + Test Unofficial Achievements Testează achievement-urile neoficiale - - - Enable Test Mode - Activează modul de testare - - - - + + Enable Sound Effects Activează efectele sonore - + Notifications - Notifications - - - - - Show Notifications - Afișează notificările - - - - Duration - Duration + Notificări - - - - + + 5 seconds - 5 seconds + 5 secunde - + Account Cont - - + + Login... Autentificare... - + View Profile... Vizualizează profilul... - + + Settings + Settings + + + + + Enable Spectator Mode + Enable Spectator Mode + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Show Achievement Notifications + + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info Informații despre joc - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + - seconds - seconds - - - - + + - - Unchecked Nebifat - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Când este activat și logat, PCSX2 va scana achievement-urile la încărcarea jocului. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Când este activat, PCSX2 va presupune că toate achievement-urile sunt blocate și nu va trimite nicio notificare de deblocare către server. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Când este activat, PCSX2 va lista achievement-urile din seturile neoficiale. Vă rugăm să rețineți că aceste achievement-uri nu sunt urmărite de RetroAchievements, așa că ele vor fi deblocate de fiecare dată. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Când opțiunea este activată, informațiile cu privire la prezența bogată vor fi colectate și trimise către serverele RetroAchievements care sunt suportate. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. Modul "Provocare" pentru realizări, incluzând urmărirea clasamentului. Dezactivează salvarea stării, trișarea și funcțiile de încetinire. - - - - + + + + Checked bifat - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Permite urmărirea și depunerea de clasamente în jocurile suportate. Dacă clasamentele sunt dezactivate, vei putea vedea în continuare clasamentul și scorurile, dar nici un scor nu va fi încărcat. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Afișează mesaje popup la evenimente cum ar fi deblocarea de realizări și depunerea de clasamente. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Redă efecte sonore pentru evenimente cum ar fi deblocarea de realizări și depunerea de clasamente. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Afișează iconițe în colțul din dreapta jos al ecranului când o provocare/realizare amorsată este activă. - - - - Notification Duration - Notification Duration + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - The duration, in seconds, an achievement popup notification will remain on screen. + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Reset System Resetează sistemul - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Modul hardcore nu va fi activat până când sistemul nu va fi resetat. Doriți să resetați sistemul acum? + + + + %n seconds + + %n seconds + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Nume utilizator: %1 Token de autentificare generat pe data de %2. - + Logout Deconectare - + Not Logged In. Nu ești autentificat(ă). - - - %1 seconds - %1 seconds - Achievements - + Hardcore mode will be enabled on system reset. Hardcore mode will be enabled on system reset. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - + Hardcore mode is now enabled. Hardcore mode is now enabled. - + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Unofficial) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. Hardcore mode is now disabled. - + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (Mod hardcore) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Ai obținut {0} din {1} realizări, și {2} din {3} puncte. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - Acest joc nu are realizări. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Unknown + + + + Locked + Locked + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + Unofficial + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Unlocked: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Name + + + + Time + Time + + + + Score + Score + + + + Value + Value + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... - - Leaderboard submission is enabled. - Depunerea de clasament este activă. + + + Loading... + Loading... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + Acest joc nu are realizări. - + Failed to read executable from disc. Achievements disabled. Nu s-a putut citi executabilul de pe disc. Realizările au fost dezactivate. @@ -578,220 +816,220 @@ Token de autentificare generat pe data de %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Rounding Mode: - - - + + + Nearest Nearest - - - + + + Negative Negative - - - + + + Positive Positive - - - + + + Chop / Zero (Default) Chop / Zero (Default) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Clamping Mode: - - + + None None - - - + + + Normal (Default) Normal (Default) - + None ClampMode None - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preserve Sign - + Full Full - + Wait Loop Detection Wait Loop Detection - - + + Enable Recompiler Enable Recompiler - + Enable Fast Memory Access Enable Fast Memory Access - + Enable Cache (Slow) Enable Cache (Slow) - + INTC Spin Detection INTC Spin Detection - + Pause On TLB Miss Pause On TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: VU1 Rounding Mode: - + mVU Flag Hack mVU Flag Hack - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - - + + Extra Extra - + VU0 Clamping Mode: VU0 Clamping Mode: - + VU0 Rounding Mode: VU0 Rounding Mode: - + VU1 Clamping Mode: VU1 Clamping Mode: - + I/O Processor (IOP, MIPS-I) I/O Processor (IOP, MIPS-I) - + Game Settings Game Settings - + Enable Game Fixes Enable Game Fixes - + Enable Compatibility Patches Enable Compatibility Patches - + Frame Rate Control Frame Rate Control - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL Frame Rate: - + NTSC Frame Rate: NTSC Frame Rate: - + PINE Settings PINE Settings - + Slot: Slot: - + Enable Enable @@ -799,182 +1037,182 @@ Token de autentificare generat pe data de %2. AudioSettingsWidget - + Timestretch Settings Timestretch Settings - + Sequence Length: Sequence Length: - + 30 30 - + Seekwindow Size: Seekwindow Size: - + 20 20 - + Overlap: Overlap: - + 10 10 - + Restore Defaults Restore Defaults - + Volume Volume - + 100% 100% - + Mixing Settings Mixing Settings - + Synchronization: Synchronization: - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Expansion: Expansion: - + Stereo (None, Default) Stereo (None, Default) - + Quadraphonic Quadraphonic - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Level: - + None (Default) None (Default) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Decoding (basic) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II Decoding (gigaherz) - + Target Latency: Target Latency: - + 60 ms 60 ms - + Output Settings Output Settings - + Output Module: Output Module: - + Output Latency: Output Latency: - + 20 ms 20 ms - + Minimal Minimal - + Output Backend: Output Backend: - + Maximum Latency: Maximum Latency: - + Output Device: Output Device: @@ -1162,17 +1400,22 @@ Token de autentificare generat pe data de %2. New Version: - + + Download Size: + Download Size: + + + Download and Install... Download and Install... - + Skip This Update Skip This Update - + Remind Me Later Remind Me Later @@ -1182,17 +1425,17 @@ Token de autentificare generat pe data de %2. Updater Error - + <h2>Changes:</h2> <h2>Changes:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> @@ -1233,6 +1476,11 @@ Token de autentificare generat pe data de %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... Loading... @@ -1240,63 +1488,63 @@ Token de autentificare generat pe data de %2. BIOSSettingsWidget - + BIOS Directory BIOS Directory - + PCSX2 will search for BIOS images in this directory. PCSX2 will search for BIOS images in this directory. - + Browse... Browse... - + Reset Reset - + BIOS Selection BIOS Selection - - Open in Explorer... - Open in Explorer... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List Refresh List - + Filename Filename - + Version Version - + Options and Patches Options and Patches - + Fast Boot Fast Boot - + Fast Forward Boot Fast Forward Boot @@ -1424,91 +1672,84 @@ Token de autentificare generat pe data de %2. BreakpointModel - + Execute Execute - - No Condition - No Condition - - - - + + -- -- - - + Enabled Enabled - - + Disabled Disabled - + Read Read - + Write(C) (C) = changes, as in "look for changes". Write(C) - + Write Write - + TYPE Warning: limited space available. Abbreviate if needed. TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. SIZE / LABEL - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCTION - + CONDITION Warning: limited space available. Abbreviate if needed. CONDITION - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1519,7 +1760,7 @@ Token de autentificare generat pe data de %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - + Saving CDVD block dump to '{}'. Saving CDVD block dump to '{}'. @@ -1555,32 +1796,32 @@ Token de autentificare generat pe data de %2. ControllerBindingWidget - + Virtual Controller Type Virtual Controller Type - + Bindings Bindings - + Settings Settings - + Macros Macros - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -1620,146 +1861,146 @@ Token de autentificare generat pe data de %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. D-Pad - - - + + + Down Down - - - + + + Left Left - - - + + + Up Up - - - + + + Right Right - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Left Analog - + Large Motor Large Motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Face Buttons - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cross - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Square - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangle - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Circle - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Right Analog - + Small Motor Small Motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Pressure Modifier - + Analog Analog @@ -1767,77 +2008,72 @@ Token de autentificare generat pe data de %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow Yellow - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start Start - + Red Red - + Green Green - + Orange Orange - + Select Select - + Strum Up Strum Up - + Strum Down Strum Down - + Blue Blue - + Whammy Bar Whammy Bar - + Tilt Tilt @@ -1863,123 +2099,133 @@ Token de autentificare generat pe data de %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL Input Source - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - + Enable SDL Input Source Enable SDL Input Source - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense Enhanced Mode - + XInput Source XInput Source - + Enable XInput Input Source Enable XInput Input Source - + DInput Source DInput Source - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - + Enable DInput Input Source Enable DInput Input Source - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Profile Settings - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - + Use Per-Profile Hotkeys Use Per-Profile Hotkeys - - + + Controller LED Settings Controller LED Settings - + Enable SDL Raw Input Enable SDL Raw Input - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - + Controller Multitap Controller Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - + Multitap on Console Port 1 Multitap on Console Port 1 - + Multitap on Console Port 2 Multitap on Console Port 2 - + Mouse/Pointer Source Mouse/Pointer Source - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 allows you to use your mouse to simulate analog stick movement. - + Settings... Settings... - + Enable Mouse Mapping Enable Mouse Mapping - + Detected Devices Detected Devices @@ -2015,58 +2261,58 @@ Token de autentificare generat pe data de %2. ControllerMacroEditWidget - + Binds/Buttons Binds/Buttons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - + Pressure Pressure - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - - + + 100% 100% - + Trigger Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: Deadzone: - + Frequency Frequency - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Set... @@ -2169,46 +2415,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller Settings - + Editing Profile: Editing Profile: - + New Profile New Profile - + Load Profile Load Profile - + Delete Profile Delete Profile - - + + Restore Defaults Restore Defaults - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2465,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Error - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2506,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2520,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2538,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2552,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2561,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2406,204 +2652,242 @@ You cannot undo this action. Functions - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Refresh - + Filter Filter - + Memory Search Memory Search - + End End - + Value Value - + Start Start - + Type Type - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Search - + Memory Memory - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New New - + Edit Edit - - - + + + Copy Copy - + Delete Delete - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2659,22 +2943,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet Device: - + Ethernet Device Type: Ethernet Device Type: - + Intercept DHCP Intercept DHCP @@ -2684,135 +2968,130 @@ You cannot undo this action. Enabled - + Enabled InterceptDHCP Enabled - + Subnet Mask: Subnet Mask: - + Gateway Address: Gateway Address: - - + + Auto Auto - + Intercept DHCP: Intercept DHCP: - + PS2 Address: PS2 Address: - + DNS1 Address: DNS1 Address: - + DNS2 Address: DNS2 Address: - + Internal DNS Internal DNS - + Add Add - + Delete Delete - + Export Export - + Import Import - + Per game Per game - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Enabled - + Hard Disk Drive Hard Disk Drive - + HDD File: HDD File: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD Enabled - + Browse Browse - + Create Image Create Image - - - - - PCAP Bridged @@ -2845,7 +3124,7 @@ You cannot undo this action. - + Use Global Setting [%1] Use Global Setting [%1] @@ -2865,78 +3144,78 @@ You cannot undo this action. Address - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Exported Successfully - + Failed to open file Failed to open file - + No Hosts in file No Hosts in file - + Imported Successfully Imported Successfully - - + + Per Game Host list Per Game Host list - + Copy global settings? Copy global settings? - + Delete per game host list? Delete per game host list? - + HDD Image File HDD Image File - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Overwrite File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3224,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2968,69 +3247,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Browse... - - + + Open... Open... @@ -3043,29 +3322,53 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run Run - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Pause @@ -3078,149 +3381,174 @@ Do you want to overwrite? Disassembly - + Copy Address Copy Address - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3228,17 +3556,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games Scan For New Games @@ -3246,49 +3574,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3296,192 +3619,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled Disabled - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3569,12 +3892,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3638,45 +3971,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3684,79 +4012,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3764,2082 +4092,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection BIOS Selection - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Half-Pixel Offset + Upscaling Fixes - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5848,2221 +6196,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot - Default Boot - - - - Slow Boot - Slow Boot + Default Boot - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8075,7 +8324,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8130,12 +8379,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8191,7 +8440,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8202,266 +8451,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8469,74 +8860,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8545,12 +8962,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8558,32 +8975,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8609,17 +9026,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8637,7 +9054,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8656,399 +9073,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9056,62 +9484,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9121,12 +9549,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9137,92 +9565,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9230,355 +9658,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9586,79 +10019,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9669,606 +10097,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10278,69 +10716,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10409,8 +10841,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10462,6 +10894,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10521,11 +10954,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10577,6 +11020,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10592,11 +11090,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10634,7 +11127,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10723,8 +11216,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10866,11 +11359,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10921,11 +11409,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11043,7 +11526,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11083,6 +11566,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11136,29 +11624,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11166,405 +11664,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11723,6 +12221,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11750,137 +12338,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12073,7 +12661,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12130,14 +12718,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12642,13 +13230,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12660,7 +13248,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12671,7 +13259,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12686,27 +13274,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12719,168 +13307,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12895,97 +13488,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12994,12 +13587,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13012,70 +13605,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13084,42 +13677,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13127,8 +13720,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13209,6 +13802,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13259,11 +13853,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13389,103 +13978,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13655,58 +14245,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13756,10 +14346,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13955,6 +14550,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13971,14 +14576,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14025,13 +14630,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14102,40 +14700,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14153,13 +14774,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14364,7 +14985,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14414,222 +15034,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14642,12 +15283,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14660,33 +15301,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14772,8 +15395,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15040,97 +15663,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15336,6 +15959,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15367,6 +15995,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15382,6 +16016,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15402,6 +16042,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15457,6 +16103,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15657,6 +16312,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15667,6 +16342,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16166,117 +16847,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16284,67 +16965,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16352,71 +17033,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16425,29 +17106,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16455,27 +17136,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings Settings - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16513,32 +17194,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16555,197 +17236,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_ru-RU.ts b/pcsx2-qt/Translations/pcsx2-qt_ru-RU.ts index 5d428bdf90de75..6dfec576f45af9 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_ru-RU.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_ru-RU.ts @@ -22,7 +22,7 @@ <html><head/><body><p>PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment.</p></body></html> - <html><head/><body><p>PlayStation 2 и PS2 являются зарегистрированными торговыми марками Sony Interactive Entertainment. Данное приложение никоим образом не связано с Sony Interactive Entertainment.</p></body></html> + <html><head/><body><p>PlayStation 2 и PS2 являются зарегистрированными торговыми марками компании Sony Interactive Entertainment. Данное приложение не связано с компанией Sony Interactive Entertainment.</p></body></html> @@ -62,7 +62,7 @@ Please enter user name and password for retroachievements.org below. Your password will not be saved in PCSX2, an access token will be generated and used instead. - Пожалуйста, введите имя пользователя и пароль для retroachievements.org ниже. Ваш пароль не будет сохранен в PCSX2, вместо него будет сгенерирован и использован токен доступа. + Пожалуйста, введите имя пользователя и пароль от retroachievements.org ниже. Ваш пароль не будет сохранен в PCSX2, вместо него будет сгенерирован и использован токен доступа. @@ -77,35 +77,41 @@ Ready... - Готов... + Готовность... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. - <strong>Ваш токен RetroAchievements больше не работает.</strong> Вам необходимо снова ввести свои данные, чтобы включить достижения. Ваш пароль не будет сохранён в PCSX2, вместо него будет сгенерирован и использован токен доступа. + <strong>Ваш токен входа RetroAchievements больше не действителен.</strong> Вы должны повторно ввести свои данные от учетной записи, чтобы отслеживать достижения. Ваш пароль не будет сохранен в PCSX2, вместо него будет сгенерирован и использован токен доступа. - + &Login &Вход - + Logging in... Авторизация... - + Login Error Ошибка авторизации - - Login failed. Please check your username and password, and try again. - Ошибка авторизации. Пожалуйста, проверьте имя пользователя и пароль и повторите попытку. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Ошибка авторизации. +Ошибка: %1 + +Пожалуйста, проверьте имя пользователя и пароль и повторите попытку. - + Login failed. Ошибка авторизации. @@ -113,268 +119,501 @@ AchievementSettingsWidget - - Global Settings - Глобальные настройки - - - - + + Enable Achievements Включить достижения - - - Show Challenge Indicators - Показывать индикаторы испытаний - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Включить статус активности в RA - - - - + + Enable Hardcore Mode Включить хардкорный режим - - - Enable Leaderboards - Включить таблицы лидеров - - - + Test Unofficial Achievements Тестировать неофициальные достижения - - - Enable Test Mode - Включить тестовый режим - - - - + + Enable Sound Effects Включить звуковые эффекты - + Notifications Уведомления - - - Show Notifications - Показывать уведомления - - - - Duration - Длительность - - - - - - + + 5 seconds 5 секунд - + Account Учётная запись - - + + Login... Авторизация... - + View Profile... Посмотреть профиль... - - Game Info - Информация об игре + + Settings + Настройки - - <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> - <html><head/><body><p align="justify">PCSX2 использует RetroAchievements в качестве базы данных для достижений и отслеживания прогресса. Чтобы пользоваться достижениями, пожалуйста, зарегистрируйте учетную запись на <a href="https://retroachievements.org/"><span style=" text-decoration: underline; color:#4169e1;">retroachievements.org</span></a>.</p><p align="justify">Для просмотра списка достижений во время игры, нажмите горячую клавишу <span style=" font-weight:600;">Открыть меню паузы</span> и выберите <span style=" font-weight:600;">Достижения</span> из перечня меню.</p></body></html> + + + Enable Spectator Mode + Включить режим наблюдателя - - seconds - секунд(ы) + + + Enable Encore Mode + Включить режим "Encore" (новая игра) + + + Show Achievement Notifications + Показывать уведомления о достижениях + + + + Show Leaderboard Notifications + Показывать уведомления о таблице лидеров + + + - - - - Unchecked - Не отмечено + Enable In-Game Overlays + Включить игровые оверлеи - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Если включено и выполнен вход в учётную запись, PCSX2 будет искать достижения при загрузке игр. + + Username: +Login token generated at: + Имя пользователя: +Токен входа, сгенерированный на: + + + + Game Info + Информация об игре + + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + <html><head/><body><p align="justify">PCSX2 использует RetroAchievements в качестве базы данных для достижений и отслеживания прогресса. Чтобы пользоваться достижениями, пожалуйста, зарегистрируйте учетную запись на <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Для просмотра списка достижений во время игры, нажмите горячую клавишу <span style=" font-weight:600;">Открыть меню паузы</span> и выберите <span style=" font-weight:600;">Достижения</span> из перечня меню.</p></body></html> + + + + - When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - Если включено, PCSX2 будет считать все достижения закрытыми и не будет отправлять уведомления о получении на сервер. + + + Unchecked + Деактивировано - - When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. - Когда включено, PCSX2 будет отображать список достижений из неофициальных наборов. Пожалуйста, обратите внимание, что эти достижения не отслеживаются RetroAchieves, поэтому они открываются каждый раз. + + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. + Если эта опция включена, PCSX2 будет считать, что все достижения заблокированы, и не будет отправлять на сервер уведомления о разблокировке. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Собирать и отправлять на сервер RetroAchievements информацию о статусе активности, если поддерживается. + + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. + Если эта опция включена, то в PCSX2 будут отображаться достижения из неофициальных наборов. Обратите внимание, что RetroAchievements не отслеживает эти достижения, поэтому они могут быть разблокированы более одного раза. - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - "Соревновательный" режим достижений с отслеживанием списков лидеров. Отключает сохранения, читы и возможность замедления. + Режим "челленджа", включающий в себя достижения и таблицу лидеров. Отключает функции быстрого сохранения, читов и замедления. - - - - + + + + Checked - Отмечено + Активировано - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Позволяет отслеживать и отправлять таблицы лидеров в поддерживаемых играх. Если таблицы лидеров отключены, вы по-прежнему сможете просматривать таблицу лидеров и результаты, но результаты не будут загружены. + + Plays sound effects for events such as achievement unlocks and leaderboard submissions. + Воспроизведение звуковых эффектов в определенных ситуациях, например, при разблокировке достижений и отправке результатов в таблицу лидеров. - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Отображает всплывающие сообщения о таких событиях, как разблокировка достижений и появление в таблице лидеров. + + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. + Отображает значки в правом нижнем углу экрана при наличии активного достижения или задачи. - - Plays sound effects for events such as achievement unlocks and leaderboard submissions. - Проигрывать звуковые эффекты для таких событий как открытие достижений и отправка списка лидеров. + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Если эта опция включена и вы подключены к RetroAchievements, то при запуске PCSX2 будет сканировать на наличие достижений. - - Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - Отображает иконки в правом нижнем углу экрана, когда активно испытание/доступное достижение. + + Displays popup messages on events such as achievement unlocks and game completion. + Отображает всплывающие уведомления в определенных ситуациях, например при разблокировке достижений или прохождении игры. - - - - Notification Duration - Длительность уведомления + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Отображает всплывающие уведомления при запуске, отправке или провале вызова в таблице лидеров. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Время, в секундах, в течение которого всплывающее уведомление о достижении будет оставаться на экране. + + When enabled, each session will behave as if no achievements have been unlocked. + При включении этой опции каждая игровая сессия будет вести себя так, как будто ни одно достижение не было разблокировано. - + Reset System - Сброс системы + Перезагрузить систему - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - Хардкорный режим не будет включён до перезагрузки системы. Хотите ли вы перезагрузить систему сейчас? + Хардкорный режим не будет активирован до перезагрузки системы. Хотите ли вы перезагрузить систему сейчас? + + + + + %n seconds + + %n секунд(ы) + %n seconds + %n seconds + %n seconds + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Имя пользователя: %1 -Токен для входа сгенерирован на %2. +Токен доступа сгенерирован на %2. - + Logout Выйти - + Not Logged In. Не авторизован. - - - %1 seconds - %1 секунд(ы) - Achievements - + Hardcore mode will be enabled on system reset. - При сбросе системы будет включен хардкорный режим. + При перезагрузке будет активирован хардкорный режим. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - {0} нельзя выполнить, пока активен хардкорный режим. Вы хотите отключить хардкорный режим? {0} будет отменено, если вы выберете Нет. + {0} невозможно выполнить при включённом хардкорном режиме. Хотите ли вы отключить хардкорный режим? "{0}" будет отменено, если вы выберете Нет. - + Hardcore mode is now enabled. Хардкорный режим включен. - + + {} (Hardcore Mode) + {} (Хардкорный режим) + + + + {} (Unofficial) + {} (неофициальный) + + + + Mastered {} + Пройдены {} в хардкорном режиме + + + + Leaderboard attempt started. + Попытка занесения данных в таблицу лидеров. + + + + Leaderboard attempt failed. + Занесение данных в таблицу лидеров не удалось. + + + + Your Time: {}{} + Ваше время: {}{} + + + + Your Score: {}{} + Ваш счет: {}{} + + + + Your Value: {}{} + Ваше значение: {}{} + + + + (Submitting) + (Заносим данные) + + + + Achievements Disconnected + Отключено от RetroAchievements + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Не удалось выполнить запрос на разблокировку достижений. Запрос будет отправлен повторно. + + + + Achievements Reconnected + Подключено к RetroAchievements + + + + All pending unlock requests have completed. + Все запросы на разблокировку достижений завершены. + + + Hardcore mode is now disabled. Хардкорный режим отключен. - + + Confirm Hardcore Mode + Подтверждение хардкорного режима + + + + Active Challenge Achievements + Активные достижения + + + (Hardcore Mode) (Хардкорный режим) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Вы получили {0} из {1} достижений, и {2} из {3} баллов. + + You have unlocked all achievements and earned {} points! + Вы разблокировали все достижения и заработали {} очков! - - This game has no achievements. - Достижения в этой игре не поддерживаются. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Вы разблокировали {0} из {1} достижений и заработали {2} из {3} очков. + + + + {0} achievements, {1} points + {0} достижений, {1} очков + + + + Your Time: {0} (Best: {1}) + Ваше время: {0} (Лучшее: {1}) + + + + Your Score: {0} (Best: {1}) + Ваш результат: {0} (Лучшее: {1}) + + + + Your Value: {0} (Best: {1}) + Ваше значение: {0} (Лучшее: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Позиция в таблице лидеров: {1} из {2} + + + + Server error in {0}: +{1} + Ошибка сервера в {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Результат: {0} ({1} в стандартном режиме) +Непрочитанные сообщения: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Вы разблокировали {0} из {1} достижений, заработав {2} из {3} очков. + + + + Unknown + Неизвестно + + + + Locked + Заблокировано + + + + Unlocked + Разблокировано + + + + Unsupported + Не поддерживается + + + + Unofficial + Неофициальное + + + + Recently Unlocked + Недавно разблокировано + + + + Active Challenges + Активные испытания + + + + Almost There + Осталось совсем немного... + + + + {} points + {} очков + + + + {} point + {} очков + + + + XXX points + XXX очков + + + + Unlocked: {} + Разблокировано: {} - - Leaderboard submission is enabled. - Включен режим отображения списка лидеров. + + This game has {} leaderboards. + Данная игра поддерживает {} таблицы лидеров. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Отправка результатов отключена, так как хардкорный режим выключен. Таблица лидеров доступна только в режиме просмотра. - + + Show Best + Показать топ рейтинга + + + + Show Nearby + Отображать вокруг своей позиции + + + + Rank + Ранг + + + + Name + Имя + + + + Time + Время + + + + Score + Счет + + + + Value + Значение + + + + Date Submitted + Дата отправки в таблицу лидеров + + + + Downloading leaderboard data, please wait... + Загрузка данных таблицы лидеров, пожалуйста, подождите... + + + + + Loading... + Загрузка... + + + + + Leaderboard download failed + Не удалось загрузить таблицу лидеров + + + + This game has no achievements. + Достижения в этой игре не поддерживаются. + + + Failed to read executable from disc. Achievements disabled. Не удалось прочитать исполняемый файл с диска. Достижения отключены. @@ -391,7 +630,7 @@ Login token generated on %2. Rounding Mode - Режим округления + Режим раундинга @@ -403,7 +642,7 @@ Login token generated on %2. Clamping Mode - Режим захвата + Режим клемпинга @@ -416,7 +655,7 @@ Login token generated on %2. Enable Recompiler - Вкл. рекомпилятор + Включить рекомпилятор @@ -435,23 +674,23 @@ Login token generated on %2. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to x86. - Выполняет двоичную JIT-трансляцию 64-битного машинного кода MIPS-IV в x86. + Выполняет своевременный бинарный перевод 64-битного машинного кода MIPS-IV в x86. Wait Loop Detection Wait loop: When the game makes the CPU do nothing (loop/spin) while it waits for something to happen (usually an interrupt). - Обнаружение цикла ожидания + Определение циклов ожидания Moderate speedup for some games, with no known side effects. - Умеренное ускорение некоторых игр, без побочных эффектов. + Умеренно повышает скорость некоторых игр без известных побочных эффектов. Enable Cache (Slow) - Включить кэш (медленно) + Включить кэширование (медленно) @@ -462,7 +701,7 @@ Login token generated on %2. Interpreter only, provided for diagnostic. - Только Интерпретатор, предусмотрено для диагностики. + Только для интерпретатора, используется в диагностических целях. @@ -473,7 +712,7 @@ Login token generated on %2. Huge speedup for some games, with almost no compatibility side effects. - Огромное ускорение для некоторых игр, почти без побочных эффектов. + Значительно повышает производительность некоторых игр, практически не оказывая негативного влияния на совместимость. @@ -484,37 +723,37 @@ Login token generated on %2. Uses backpatching to avoid register flushing on every memory access. "Backpatching" = To edit previously generated code to change what it does (in this case, we generate direct memory accesses, then backpatch them to jump to a fancier handler function when we realize they need the fancier handler function) - Использует обратную выборку, чтобы избежать сброса регистра при каждом обращении к памяти. + Использует "бэкпетчинг", чтобы не очищать регистры при каждом обращении к памяти. Pause On TLB Miss - Приостановка из-за потери TLB + Пауза при сбое TLB Pauses the virtual machine when a TLB miss occurs, instead of ignoring it and continuing. Note that the VM will pause after the end of the block, not on the instruction which caused the exception. Refer to the console to see the address where the invalid access occurred. - Приостанавливает виртуальную машину при пропущенном TLB, вместо того, чтобы проигнорировать и продолжить. Обратите внимание, что виртуальная машина будет в паузе после окончания блока, а не в инструкции, вызвавшей исключение. Обратитесь к консоли, чтобы увидеть адрес, где появился некорректный доступ. + Ставит виртуальную машину на паузу, при возникновении ошибки выполнения TLB, вместо того, чтобы игнорировать ошибку и продолжать работу. Обратите внимание, что виртуальная машина приостанавливает работу в конце блока, а не на инструкции, вызвавшей ошибку. Чтобы узнать адрес, по которому произошел некорректный доступ, перейдите в консоль. VU0 Rounding Mode - Режим округления VU0 + Режим раундинга VU0 VU1 Rounding Mode - Режим округления VU1 + Режим раундинга VU1 VU0 Clamping Mode - Режим захвата VU0 + Режим клемпинга VU0 VU1 Clamping Mode - Режим захвата VU1 + Режим клемпинга VU1 @@ -547,12 +786,12 @@ Login token generated on %2. Good speedup and high compatibility, may cause graphical errors. - Хорошая скорость и высокая совместимость, может привести к графическим ошибкам. + Значительно повышает скорость работы и обладает высокой совместимостью, но может вызывать графические ошибки. Performs just-in-time binary translation of 32-bit MIPS-I machine code to x86. - Выполняет двоичную JIT-трансляцию 32-битного машинного кода MIPS-I в x86. + Выполняет своевременный бинарный перевод 32-битного машинного кода MIPS-I в x86. @@ -562,7 +801,7 @@ Login token generated on %2. Automatically loads and applies fixes to known problematic games on game start. - Автоматически загружает и применяет исправления к известным проблемным играм при запуске. + Автоматически загружает и применяет исправления при запуске для всех известных игр. @@ -572,226 +811,226 @@ Login token generated on %2. Automatically loads and applies compatibility patches to known problematic games. - Автоматически загружает и применяет исправление совместимости к известным проблемным играм. + Автоматически загружает и применяет исправления совместимости для всех известных игр. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Изменение этих параметров может привести к неработоспособности игр. Вносите изменения на свой страх и риск, команда PCSX2 не будет оказывать поддержку конфигураций с измененными настройками. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. - Режим округления: + Режим раундинга: - - - + + + Nearest Ближайший - - - + + + Negative - Отрицательный + Негативный - - - + + + Positive - Положительный + Позитивный - - - + + + Chop / Zero (Default) Chop / Zero (по умолчанию) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. - Режим захвата: + Режим клемпинга: - - + + None Не использовать - - - + + + Normal (Default) Стандартный (по умолчанию) - + None ClampMode Не использовать - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). - Дополнительный + Сохранять знак + Дополнительный с сохранением знака - + Full Полный - + Wait Loop Detection Обнаружение цикла ожидания - - + + Enable Recompiler Включить рекомпилятор - + Enable Fast Memory Access Включить быстрый доступ к памяти - + Enable Cache (Slow) - Включить кэш (медленный) + Включить кэширование (медленно) - + INTC Spin Detection Обнаружение зацикливания INTC - + Pause On TLB Miss - Приостановка из-за потери TLB + Пауза при сбое TLB - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. - Векторные блоки (VU) + Векторные единицы (VU) - + VU1 Rounding Mode: - Режим округления VU1: + Режим раундинга VU1: - + mVU Flag Hack Хак флага mVU - + Enable VU1 Recompiler Включить рекомпилятор VU1 - + Enable VU0 Recompiler (Micro Mode) Включить рекомпилятор VU0 (микрорежим) - - + + Extra Дополнительный - + VU0 Clamping Mode: - Режим захвата VU0: + Режим клемпинга VU0: - + VU0 Rounding Mode: - Режим округления VU0: + Режим раундинга VU0: - + VU1 Clamping Mode: - Режим захвата VU1: + Режим клемпинга VU1: - + I/O Processor (IOP, MIPS-I) Процессор ввода/вывода (IOP, MIPS-I) - + Game Settings Настройки игры - + Enable Game Fixes Включить исправления игр - + Enable Compatibility Patches Включить патчи совместимости - + Frame Rate Control - Управление скоростью кадров + Управление частотой кадров - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. гц - + PAL Frame Rate: Частота кадров PAL: - + NTSC Frame Rate: Частота кадров NTSC: - + PINE Settings Настройки PINE - + Slot: Слот: - + Enable Включить @@ -799,182 +1038,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings - Настройки растяжения времени + Настройки Timestretch - + Sequence Length: Длина последовательности: - + 30 30 - + Seekwindow Size: - Размер окна поиска: + Продолжительность окна поиска: - + 20 20 - + Overlap: Перекрытие: - + 10 10 - + Restore Defaults Восстановить по умолчанию - + Volume Громкость - + 100% 100% - + Mixing Settings Настройки микширования - + Synchronization: Синхронизация: - + TimeStretch (Recommended) - Растяжение по времени (рекомендуется) + TimeStretch (рекомендуется) - + Async Mix (Breaks some games!) Асинхронное микширование (ломает некоторые игры!) - + None (Audio can skip.) Не использовать (звук может пропускаться.) - + Expansion: Расширение: - + Stereo (None, Default) Стерео (не использовать, по умолчанию) - + Quadraphonic - Quadraphonic + Квадрафонический - + Surround 5.1 Объёмный 5.1 - + Surround 7.1 Объёмный 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Уровень ProLogic: - + None (Default) Не использовать (по умолчанию) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Декодирование ProLogic (базовое) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Декодирование ProLogic II (gigaherz) - + Target Latency: Целевая задержка: - + 60 ms 60 мс - + Output Settings Настройки вывода - + Output Module: Модуль вывода: - + Output Latency: Задержка вывода: - + 20 ms 20 мс - + Minimal - Минимальная + Минимальный - + Output Backend: Вывод бэкэнда: - + Maximum Latency: Максимальная задержка: - + Output Device: Устройство вывода: @@ -1001,7 +1240,7 @@ Login token generated on %2. When running outside of 100% speed, adjusts the tempo on audio instead of dropping frames. Produces much nicer fast-forward/slowdown audio. - При работе эмулятора на скорости выше 100% звук подстраивается под частоту кадров, вместо принудительного пропуска кадров. Создает намного более приятное ускорение/замедление звука. + Когда скорость эмуляции отличается от 100%, звук подстраивается под частоту кадров, вместо принудительного пропуска кадров. Это позволяет получить более качественный звук при изменении скорости эмуляции. @@ -1011,7 +1250,7 @@ Login token generated on %2. Determines how the stereo output from the emulated system is upmixed into a greater number of the output speakers. - Определяет, как стерео выход эмулятора направляется в большее количество динамиков. + Определяет, как стерео выход эмулируемой системы будет ремикширован на большее число динамиков. @@ -1022,7 +1261,7 @@ Login token generated on %2. Selects the library to be used for audio output. - Выбирает библиотеку для аудио вывода. + Выбирает библиотеку, которая будет использоваться для вывода звука. @@ -1041,7 +1280,7 @@ Login token generated on %2. When the sound output module supports multiple audio backends, determines the API to be used for audio output to the system. - Если модуль вывода поддерживает несколько аудио-бекэндов, выбирается используемый API. + Если модуль вывода поддерживает несколько аудио бекэндов, этот параметр определяет, какой API будет использоваться для передачи звука в систему. @@ -1061,7 +1300,7 @@ Login token generated on %2. Determines the buffer size which the time stretcher will try to keep filled. It effectively selects the average latency, as audio will be stretched/shrunk to keep the buffer size within check. - Определяет размер буфера, который растяжение времени будет пытаться сохранить заполненным. Он эффективно выбирает среднюю задержку, так как звук будет растягиваться / сжиматься, чтобы сохранить размер буфера в пределах допустимого. + Определяет размер буфера, который растяжитель времени (TimeStretch) будет пытаться сохранять заполненным. Она практически выбирает среднюю задержку, поскольку звук будет растягиваться / сжиматься, чтобы сохранить размер буфера в пределах ограничений. @@ -1071,7 +1310,7 @@ Login token generated on %2. Determines the latency from the buffer to the host audio output. This can be set lower than the target latency to reduce audio delay. - Определяет задержку от буфера до аудиовыхода хоста. Это значение может быть установлено ниже целевого значения задержки, чтобы уменьшить задержку звука. + Определяет задержку между буфером и аудиовыходом устройства. Это значение может быть установлено ниже целевого значения, чтобы минимизировать задержку аудиосигнала. @@ -1087,7 +1326,7 @@ Login token generated on %2. Seek Window Size Seek Window: the region of samples (window) the audio stretching algorithm is allowed to search. - Размер окна поиска + Продолжительность окна поиска @@ -1102,7 +1341,7 @@ Login token generated on %2. Pre-applies a volume modifier to the game's audio output before forwarding it to your computer. - Предварительно примените модификатор громкости к аудиовыходу игры' перед отправкой его на ваш компьютер. + Предварительно применяет модификатор громкости к игровому аудиовыходу перед выводом на звуковое устройство. @@ -1144,7 +1383,7 @@ Login token generated on %2. Automatic Updater - Автоматические обновления + Автоматическое обновление @@ -1162,19 +1401,24 @@ Login token generated on %2. Новая версия: - + + Download Size: + Размер загружаемого файла: + + + Download and Install... Загрузить и установить... - + Skip This Update - Пропустить это обновление + Пропустить обновление - + Remind Me Later - Напомнить мне позже + Напомнить позже @@ -1182,29 +1426,29 @@ Login token generated on %2. Ошибка при обновлении - + <h2>Changes:</h2> <h2>Изменения:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - <h2>Предупреждение сохраненного состояния</h2><p>Установка этого обновления сделает ваши сохраненные состояния <b>несовместимыми</b>. Пожалуйста, убедитесь, что вы сохранили свои игры на карту памяти перед установкой этого обновления, иначе вы потеряете прогресс.</p> + <h2>Предупреждение о сохраненных состояниях</h2><p>Установка данного обновления приведет к тому, что ваши сохранения станут <b>несовместимы</b>. Убедитесь, что вы сохранили свои игры на карту памяти перед установкой данного обновления, иначе вы потеряете прогресс;</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Предупреждение о настройках</h2><p>Установка этого обновления приведет к сбросу конфигурации вашей программы. Пожалуйста, обратите внимание, что вам придется перенастроить свои настройки после этого обновления.</p> Savestate Warning - Предупреждение сохранения состояния + Предупреждение о быстрых сохранениях <h1>WARNING</h1><p style='font-size:12pt;'>Installing this update will make your <b>save states incompatible</b>, <i>be sure to save any progress to your memory cards before proceeding</i>.</p><p>Do you wish to continue?</p> - <h1>ВНИМАНИЕ</h1><p style='font-size:12pt;'>Установка этого обновления сделает ваши <b>сохраненные состояния несовместимыми</b>, <i>убедитесь, что вы сохранили весь прогресс на ваши карты памяти, прежде чем продолжить</i>.</p><p>Желаете продолжить?</p> + <h1>ВНИМАНИЕ</h1><p style='font-size:12pt;'>Установка данного обновления приведет к тому, что ваши <b>сохранения станут несовместимы</b>, <i>убедитесь, что вы сохранили свои игры на карту памяти, прежде чем продолжить</i>.</p><p>Вы уверены, что хотите продолжить?</p> @@ -1219,7 +1463,7 @@ Login token generated on %2. No updates are currently available. Please try again later. - В настоящее время нет доступных обновлений. Пожалуйста, повторите попытку позже. + Обновлений пока нет. Пожалуйста, повторите попытку позже. @@ -1233,6 +1477,11 @@ Login token generated on %2. + Download Size: %1 MB + Размер загружаемого файла: %1 МБ + + + Loading... Загрузка... @@ -1240,81 +1489,81 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory Папка BIOS - + PCSX2 will search for BIOS images in this directory. PCSX2 будет искать образы BIOS в этой папке. - + Browse... - Выбрать... + Обзор... - + Reset Сбросить - + BIOS Selection Выбор BIOS - - Open in Explorer... - Открыть в проводнике... + + Open BIOS Folder... + Открыть папку BIOS... - + Refresh List Обновить список - + Filename Имя файла - + Version Версия - + Options and Patches Настройки и патчи - + Fast Boot - Быстрая загрузка + Быстрый запуск - + Fast Forward Boot - Ускоренная загрузка + Ускоренный запуск Checked - Отмечено + Активировано Patches the BIOS to skip the console's boot animation. - Исправляет BIOS, чтобы пропустить анимацию загрузки консоли'. + Патчит BIOS, чтобы пропустить анимацию загрузки консоли. Unchecked - Не отмечено + Деактивировано @@ -1327,7 +1576,7 @@ Login token generated on %2. Create / Modify Breakpoint - Создать / изменить точку прерывания + Создать / Изменить точку останова @@ -1413,7 +1662,7 @@ Login token generated on %2. Invalid condition "%1" - Неверное условие "%1" + Недопустимое состояние "%1" @@ -1424,91 +1673,84 @@ Login token generated on %2. BreakpointModel - + Execute Выполнить - - No Condition - Нет условий - - - - + + -- -- - - + Enabled Включено - - + Disabled Выключено - + Read Читать - + Write(C) (C) = changes, as in "look for changes". Записать(изменить) - + Write Записать - + TYPE Warning: limited space available. Abbreviate if needed. ТИП - + OFFSET Warning: limited space available. Abbreviate if needed. СМЕЩЕНИЕ - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. РАЗМЕР / МЕТКА - + INSTRUCTION Warning: limited space available. Abbreviate if needed. ИНСТРУКЦИЯ - + CONDITION Warning: limited space available. Abbreviate if needed. СОСТОЯНИЕ - + HITS Warning: limited space available. Abbreviate if needed. СРАБАТЫВАНИЯ - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ВКЛЮЧЕНО + X @@ -1519,7 +1761,7 @@ Login token generated on %2. Диск расположен на съемном носителе, в связи с чем могут возникнуть проблемы с производительностью, такие как возникновение джиттеров и зависание игры. - + Saving CDVD block dump to '{}'. Сохранение дампа CDVD блока в '{}'. @@ -1555,32 +1797,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type Тип виртуального контроллера - + Bindings Привязка клавиш - + Settings Настройки - + Macros Макрос - + Automatic Mapping Автоматические привязки - + Clear Mapping Очистить привязки @@ -1620,146 +1862,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Крестовина - - - + + + Down Вниз - - - + + + Left Влево - - - + + + Up Вверх - - - + + + Right Вправо - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Левый аналоговый стик - + Large Motor Крупный мотор - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - Лицевые Кнопки + Лицевые кнопки - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Крестик - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Квадрат - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Треугольник - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Круг - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Правый аналоговый стик - + Small Motor Малый мотор - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Модификатор силы нажатия - + Analog Аналог @@ -1767,77 +2009,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - Форма - - - + Yellow Желтый - - - - - - - - - - - + + + + + + + + + + + PushButton Нажмите кнопку - + Start Start - + Red Красный - + Green Зеленый - + Orange Оранжевый - + Select Select - + Strum Up Струна вверх - + Strum Down Струна вниз - + Blue Синий - + Whammy Bar Рычаг тремоло - + Tilt Наклон @@ -1863,123 +2100,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source Источник ввода SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). Источник ввода SDL поддерживает большинство контроллеров, и обеспечивает расширенную функциональность для контроллеров DualShock 4 / DualSense в режиме Bluetooth (вибрация / светодиод). - + Enable SDL Input Source Включить источник ввода SDL - + DualShock 4 / DualSense Enhanced Mode Расширенный режим DualShock 4 / DualSense - + XInput Source Источник ввода XInput - + Enable XInput Input Source Включить источник ввода XInput - + DInput Source Источник ввода DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. Источник DInput обеспечивает поддержку устаревших контроллеров, которые не поддерживают XInput. Рекомендуется использовать эти контроллеры через SDL, но DirectInput можно использовать, если они не совместимы с SDL. - + Enable DInput Input Source Включить источник ввода XInput - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Некоторые сторонние контроллеры неправильно отмечают свои аналоговые стики как инвертированные по положительной составляющей, но не по отрицательной.</p><p>В результате аналоговый стик будет &quot;застревать&quot; даже в нейтральном положении. </p><p>Включение этой настройки позволит PCSX2 игнорировать флаги инверсии при создании сопоставлений, что позволит таким контроллерам нормально функционировать.</p></body></html> + + + + Ignore Inversion + Игнорировать инверсию + + + Profile Settings Настройки профиля - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Когда эта опция включена, горячие клавиши могут быть установлены в этом профиле ввода и будут использоваться вместо глобальных горячих клавиш. По умолчанию горячие клавиши всегда являются общими для всех профилей. - + Use Per-Profile Hotkeys Использовать для каждого профиля горячие клавиши - - + + Controller LED Settings Настройка подсветки контроллера - + Enable SDL Raw Input Включить SDL Raw Input - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. Источник XInput обеспечивает поддержку контроллеров XBox 360 / XBox One / XBox Series и других контроллеров, которые поддерживают этот протокол. - + Controller Multitap Мультитап контроллера - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Мультитап позволяет подключить к консоли до 8 контроллеров. Каждый мультитап обеспечивает 4 порта. Мультитап поддерживается не всеми играми. - + Multitap on Console Port 1 Мультитап на консольный порт 1 - + Multitap on Console Port 2 Мультитап на консольный порт 2 - + Mouse/Pointer Source Источник мыши/указателя - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 позволяет использовать мышь для симуляции управления аналоговым стиком. - + Settings... Настройки... - + Enable Mouse Mapping - Включить отображение мыши + Включить сопоставление мыши - + Detected Devices Обнаруженные устройства @@ -2015,58 +2262,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons Привязки/кнопки - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Выберите кнопки, которые вы хотите активировать с помощью этого макроса. Все кнопки активируются одновременно. - + Pressure - Давление + Сила нажатия - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Этот ползунок позволяет настроить силу нажатия кнопок при активации макроса (для чувствительных к силе нажатия кнопок). - - + + 100% 100% - + Trigger Курок - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Выберите триггер, чтобы активировать этот макрос. Это может быть как одна кнопка, так и комбинация кнопок (аккорд). Щелчок Shift для нескольких триггеров. - + Deadzone: Мёртвая зона: - + Frequency Частота - + Macro will toggle every N frames. Макрос будет включаться каждые N кадров. - + Set... Набор... @@ -2126,7 +2373,7 @@ Not Configured/Buttons configured Mouse Mapping Settings - Настройка мыши + Настройки сопоставления мыши @@ -2150,7 +2397,7 @@ Not Configured/Buttons configured <html><head/><body><p><span style=" font-weight:700;">Mouse Mapping Settings</span><br/>These settings fine-tune the behavior when mapping a mouse to the emulated controller.</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">Настройка мыши</span><br/>Эти настройки необходимы для тонкой отстройки поведения мыши при эмуляции контроллера.</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Настройки сопоставления мыши</span><br/>Эти настройки позволяют точно настроить поведение мыши при сопоставлении с эмулируемым контроллером.</p></body></html> @@ -2169,103 +2416,103 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings Настройки контроллера PCSX2 - + Editing Profile: - Редактирование профиля: + Редактируемый профиль: - + New Profile Новый профиль - + Load Profile Загрузить профиль - + Delete Profile Удалить профиль - - + + Restore Defaults - Сбросить настройки + Восстановить по умолчанию - - + + Create Input Profile Создать профиль ввода - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - Пользовательские профили ввода используются для замены общего профиля ввода для определенных игр. -Чтобы применить пользовательский профиль ввода к игре, перейдите в свойства игры, а затем измените 'Профиль ввода' на вкладке Сводка. + Пользовательские профили ввода используются для того, чтобы переназначить настройки ввода по умолчанию для конкретных игр. +Чтобы применить пользовательский профиль к игре, откройте её Свойства и выберите 'Профиль ввода' в общей вкладке -Введите название для нового профиля ввода: +Введите имя нового профиля ввода: - - - - + + + + Error Ошибка - + A profile with the name '%1' already exists. Профиль с именем '%1' уже существует. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - Вы хотите скопировать все привязки из выбранного в данный момент профиля в новый профиль? Выбрав "Нет", вы создадите полностью пустой профиль. + Вы хотите скопировать все привязки из выбранного профиля в новый профиль? При выборе "Нет" будет создан полностью пустой профиль. - + Failed to save the new profile to '%1'. - Не удалось сохранить новый профиль в '%1'. + Не удалось сохранить профиль ввода '%1'. - + Load Input Profile - Загрузка профиля ввода + Загрузить профиль входа - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - Вы уверены, что хотите загрузить профиль ввода '%1'? + Вы уверены, что хотите загрузить профиль '%1'? Все текущие глобальные привязки будут удалены, а привязки профиля загружены. Вы не можете отменить это действие. - + Delete Input Profile Удалить профиль ввода - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2521,12 @@ You cannot undo this action. Это действие нельзя отменить. - + Failed to delete '%1'. Не удалось удалить '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2539,13 @@ You cannot undo this action. Вы не можете отменить это действие. - + Global Settings Глобальные настройки - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2553,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2562,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB-порт %1 %2 - + Hotkeys Горячие клавиши - + Shared "Shared" refers here to the shared input profile. Общий - + The input profile named '%1' cannot be found. Невозможно найти профиль ввода '%1'. @@ -2354,7 +2601,7 @@ You cannot undo this action. <html><head/><body><p>In the box below, specify the URLs to download covers from, with one template URL per line. The following variables are available:</p><p><span style=" font-style:italic;">${title}:</span> Title of the game.<br/><span style=" font-style:italic;">${filetitle}:</span> Name component of the game's filename.<br/><span style=" font-style:italic;">${serial}:</span> Serial of the game.</p><p><span style=" font-weight:700;">Example:</span> https://www.example-not-a-real-domain.com/covers/${serial}.jpg</p></body></html> - <html><head/><body><p>В поле ниже укажите URL-адреса для загрузки обложек, по одному URL-адресу шаблона в строке. Доступны следующие переменные:</p><p><span style=" font-style:italic;">${title}:</span> Название игры.<br/><span style=" font-style:italic;">${filetitle}:</span> Название компонента в имени файла игры.<br/><span style=" font-style:italic;">${serial}:</span> Серийный номер игры.</p><p><span style=" font-weight:700;">Пример:</span> https://www.example-not-a-real-domain.com/covers/${serial}.jpg</p></body></html> + <html><head/><body><p>В поле ниже укажите URL-адреса для загрузки обложек, по одному URL-адресу шаблона в каждой строке. Доступны следующие переменные:</p><p><span style=" font-style:italic;">${title}:</span> Название игры.<br/><span style=" font-style:italic;">${filetitle}:</span> Название компонента в имени файла игры.<br/><span style=" font-style:italic;">${serial}:</span> Серийный номер игры.</p><p><span style=" font-weight:700;">Пример:</span> https://www.example-not-a-real-domain.com/covers/${serial}.jpg</p></body></html> @@ -2406,204 +2653,242 @@ You cannot undo this action. Функции - + + Module + Модуль + + + + Version + Версия + + + + Count + Количество + + + Refresh Обновить - + Filter Фильтр - + Memory Search Поиск по памяти - + End Конец - + Value Значение - + Start Начало - + Type Тип - + 1 Byte (8 bits) 1 байт (8 бит) - + 2 Bytes (16 bits) 2 байта (16 бит) - + 4 Bytes (32 bits) 4 байта (32 бит) - + 8 Bytes (64 bits) 8 байт (64 бита) - + Float С плавающей точкой - + Double Двойная точность - + String Строка - + Array of byte Массив байтов - + Hex Шестнадцатеричный - + Search Поиск - + Memory Память - + Breakpoints Точки останова - + Threads Потоки - + Active Call Stack Активный стек вызовов - + Breakpoint List Context Menu Контекстное меню списка точек останова - + New Новый - + Edit Редактировать - - - + + + Copy Копировать - + Delete Удалить - + + + + Copy all as CSV + Скопировать все как CSV + + + + Paste from CSV + Вставить из CSV + + + Thread List Context Menu Контекстное меню списка потоков - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Раскодировка символов - + + Copy Function Name Копировать имя функции - + + Copy Function Address Копировать адрес функции - + + Go to in Disassembly Перейти к дизассемблированному коду - + + Go to in Memory View Перейти в режим просмотра памяти - + + + Module Tree + Древо Модулей + + + Stack List Context Menu Контекстное меню списка стеков - - - - - + + + + + Debugger Отладчик - + Invalid start address Недопустимый начальный адрес - + Invalid end address Недопустимый конечный адрес - + Start address can't be equal to or greater than the end address Начальный адрес не может' быть равен или больше конечного адреса - + Invalid search value Недопустимое значение поиска - + Value is larger than type Значение больше, чем тип @@ -2659,22 +2944,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Интернет - + Ethernet Device: Устройство Ethernet: - + Ethernet Device Type: Тип устройства Ethernet: - + Intercept DHCP Перехват DHCP @@ -2684,135 +2969,130 @@ You cannot undo this action. Включено - + Enabled InterceptDHCP Включено - + Subnet Mask: Маска подсети: - + Gateway Address: IP-адрес шлюза: - - + + Auto Авто - + Intercept DHCP: Перехват DHCP: - + PS2 Address: Адрес PS2: - + DNS1 Address: Адрес DNS1: - + DNS2 Address: Адрес DNS2: - + Internal DNS Внутренний DNS - + Add Добавить - + Delete Удалить - + Export Экспорт - + Import Импорт - + Per game За игру - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Внутренний DNS можно выбрать с помощью выпадающих списков DNS1/2 или путем установки значения 192.0.2.1 - + Enabled InternalDNSTable Включено - + Hard Disk Drive Жесткий диск - + HDD File: Файл жесткого диска: - + 40 40 - + 120 120 - + HDD Size (GiB): Размер HDD (ГиБ): - + Enabled HDD Включено - + Browse Выбрать - + Create Image Создать образ - - - - - PCAP Bridged @@ -2845,7 +3125,7 @@ You cannot undo this action. - + Use Global Setting [%1] Использовать глобальные настройки [%1] @@ -2865,78 +3145,78 @@ You cannot undo this action. Адрес - - + + Hosts File Hosts файл - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS хосты - + Exported Successfully Успешно экспортировано - + Failed to open file Не удалось открыть файл - + No Hosts in file Нет хостов в файле - + Imported Successfully Успешно импортирован - - + + Per Game Host list Список хостов для игры - + Copy global settings? Копировать глобальные настройки? - + Delete per game host list? Удалить список хостов для игры? - + HDD Image File Образ жёсткого диска - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Перезаписать файл? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3225,22 @@ Do you want to overwrite? Вы хотите перезаписать? - + HDD Creator Создание HDD - + HDD image created Образ жёсткого диска создан - + Use Global Использовать глобальную настройку - + Override Переписать @@ -2968,69 +3248,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Дамп прорисовки - + Dump GS Draws Дамп GS прорисовки - + Save RT Сохранить RT - + Save Frame Сохранить кадр - + Save Texture Сохранить текстуру - + Save Depth Сохранить глубину - + Start Draw Number: Номер начальной прорисовки: - + Draw Dump Count: Количество дампов прорисовок: - + Hardware Dump Directory: Папка дампа оборудования: - + Software Dump Directory: Папка программного дампа: - - + + Browse... Выбрать... - - + + Open... Открыть... @@ -3043,29 +3323,53 @@ Do you want to overwrite? Отладчик PCSX2 - - - + + Run Запуск - + Step Into Вступить - + + F11 + F11 + + + Step Over Переступить - + + F10 + F10 + + + Step Out Отступить - + + Shift+F11 + Shift+F11 + + + + Always On Top + Поверх всех окон + + + + Show this window on top + Показывать это окно сверху + + + Pause Пауза @@ -3078,149 +3382,174 @@ Do you want to overwrite? Дизассемблирование - + Copy Address Копировать адрес - + Copy Instruction Hex Копировать Hex инструкции - + Copy Instruction Text Копировать текст инструкции - + Assemble new Instruction(s) Ассемблировать новую инструкцию (инструкции) - + NOP Instruction(s) NOP Инструкция (инструкции) - + Run to Cursor Запустить курсор - + Jump to Cursor Перейти к курсору - + Toggle Breakpoint Вкл/выкл точки останова - + Follow Branch Следите за филиалом - + Go to Address Перейти к адресу - + Go to in Memory View Перейти в режим просмотра памяти - - + + Add Function Добавить функцию - - + + Rename Function Переименовать функцию - + Remove Function Удалить функцию - - + + Assemble Error Ошибка ассемблирования - + Unable to change assembly while core is running Невозможно изменить сборку во время работы ядра - + Assemble Instruction Ассемблировать инструкцию - + Go to address Перейти к адресу - + Go to address error Ошибка перехода к адресу - + Invalid address Неправильный адрес - + Add Function Error Ошибка добавления функции - + A function entry point already exists here. Consider renaming instead. Пункт ввода функции уже существует здесь. Рассмотрите возможность переименования. - - + + Function will be (0x%1) instructions long. Enter function name Функция будет в (0x%1) инструкций длиной. Введите имя функции - + Function name Имя функции - - + + Rename Function Error Ошибка переименования функции - + Function name cannot be nothing. Название функции не может быть пустым. - + No function / symbol is currently selected. Функция / символ не выбраны. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Не удалось изолировать текущий адрес. + + + + Restore Instruction(s) + Восстановить инструкции + + + + Restore Function + Восстановить функцию + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 НЕВЕРНЫЙ АДРЕС @@ -3228,17 +3557,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">Игры в поддерживаемых форматах не найдены.</span></p><p>Пожалуйста, добавьте папку с играми для начала.</p><p>Игровые дампы в следующих форматах будут отсканированы и перечислены в списке:</p></body></html> - + Add Game Directory... Добавить каталог игры... - + Scan For New Games Поиск новых игр @@ -3246,50 +3575,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Слот: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Слот: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Игра: %1 FPS - + Video: %1 FPS (%2%) Видео: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - ID игры: %1 -Название игры: %2 -Достижения: %5 (%6) - + Игра: %1 (%2) - - - %n points - - %n балл - %n балла - %n баллов - %n баллы - - - + Rich presence inactive or unsupported. Статус активности неактивен или не поддерживается. - + Game not loaded or no RetroAchievements available. Игра не загружена или RetroAchievements не доступны. @@ -3297,192 +3620,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Настройка скорости - + Normal Speed: Нормальная скорость: - + Enable Speed Limiter Включить ограничение скорости - + System Settings Настройки системы - + Enable Instant VU1 Включить мгновенный VU1 - + Enable Cheats Включить читы - + Slow-Motion Speed: Скорость замедления: - + Fast-Forward Speed: Скорость перемотки: - + Enable Multithreaded VU1 (MTVU) Включить многопоточный VU1 (MTVU) - + Enable Host Filesystem Включить файловую систему хоста - + Enable Fast CDVD Включить быстрый CDVD - + EE Cycle Skipping: Пропуск цикла EE: - - + + Disabled Выключен - + Mild Underclock Незначительный разгон - + Moderate Underclock Умеренный разгон - + Maximum Underclock Максимальный разгон - + EE Cycle Rate: Частота циклов EE: - + 50% (Underclock) 50% (замедление) - + 60% (Underclock) 60% (замедление) - + 75% (Underclock) 75% (замедление) - + 100% (Normal Speed) 100% (нормальная скорость) - + 130% (Overclock) 130% (ускорение) - + 180% (Overclock) 180% (ускорение) - + 300% (Overclock) 300% (ускорение) - + Affinity Control: Распределение потоков: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Темп кадра / управление задержкой - + frames This string will appear next to the amount of frames selected, in a dropdown box. кадров - + Maximum Frame Latency: Максимальная задержка кадра: - + Optimal Frame Pacing Оптимальный темп кадра - + Scale To Host Refresh Rate Масштабирование до частоты обновления хоста @@ -3518,7 +3841,7 @@ Achievements: %5 (%6) Checked - Отмечено + Активировано @@ -3553,7 +3876,7 @@ Achievements: %5 (%6) Unchecked - Не отмечено + Деактивировано @@ -3570,12 +3893,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Позволяет играм и homebrew получать доступ к файлам / папкам непосредственно на главном компьютере. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Ускоряет эмуляцию таким образом, чтобы частота обновления консоли была равна частоте обновления компьютера. Это позволит улучшить плавность анимации за счет снижения скорости эмуляции до 1%. Данная опция не будет применяться, если частота обновления консоли слишком сильно отличается от частоты обновления компьютера. Пользователям, использующим мониторы с переменной частотой обновления (VRR), следует отключить эту опцию. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Скорость перемотки + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3639,45 +3972,40 @@ Achievements: %5 (%6) Устанавливает максимальное количество кадров, которое может быть поставлено в очередь до GS, прежде чем поток процессора подождет завершения одного из них, прежде чем продолжить. Более высокие значения могут помочь при сглаживании нерегулярного времени кадра, но добавить дополнительную задержку ввода. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Настраивает скорость эмуляции таким образом, 'чтобы частота обновления консоли соответствовала частоте обновления хоста', когда включены настройки как VSync, так и повторной дискретизации звука. Это приводит к максимально плавной анимации за счет потенциального увеличения скорости эмуляции менее чем на 1%. Масштабирование в соответствии с частотой обновления хоста не вступит в силу, 'если частота обновления консоли слишком далека от частоты обновления хоста'. Пользователям с дисплеями с переменной частотой обновления следует отключить эту опцию. - - - + Use Global Setting [%1%] Использовать глобальные настройки [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Неограниченна - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Настраиваемая - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Настраиваемая [%1% / %2 к/c (NTSC) / %3 к/c (PAL)] - + Custom Speed Настраиваемая скорость - + Enter Custom Speed Введите собственную скорость @@ -3685,79 +4013,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Папка кэша - - - - - + + + + + Browse... Выбрать... - - - - - + + + + + Open... Открыть... - - - - - + + + + + Reset Сбросить - + Used for storing shaders, game list, and achievement data. Используется для хранения шейдеров, списка игр и данных о достижениях. - + Cheats Directory Папка читов - + Used for storing .pnach files containing game cheats. Используется для хранения файлов .pnach, содержащих игровые читы. - + Covers Directory Папка обложек - + Used for storing covers in the game grid/Big Picture UIs. Используется для хранения обложек в интерфейсе Big Picture/игровой сетке. - + Snapshots Directory Папка снимков - + Used for screenshots and saving GS dumps. Используется для создания скриншотов и сохранения дампов GS. - + Save States Directory Папка сохраненных состояний - + Used for storing save states. Используется для сохранения состояния. @@ -3765,2082 +4093,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Не удалось найти устройства CD/DVD-ROM. Пожалуйста, убедитесь, что у вас есть подключенные устройства и достаточные права доступа к ним. - + Use Global Setting Использовать глобальные настройки - + Automatic binding failed, no devices are available. Автоматическая привязка не удалась, нет доступных устройств. - + Game title copied to clipboard. Название игры скопировано в буфер обмена. - + Game serial copied to clipboard. Серийный номер игры скопирован в буфер обмена. - + Game CRC copied to clipboard. CRC игры скопирован в буфер обмена. - + Game type copied to clipboard. Тип игры скопирован в буфер обмена. - + Game region copied to clipboard. Регион игры скопирован в буфер обмена. - + Game compatibility copied to clipboard. Совместимость игры скопирована в буфер обмена. - + Game path copied to clipboard. Путь к игре скопирован в буфер обмена. - + Per-game controller configuration initialized with global settings. Глобальные настройки скопированы в конфигурацию управления для игры. - + Controller settings reset to default. Настройки контроллера сброшены к настройкам по умолчанию. - + No input profiles available. Нет доступных профилей ввода. - + Create New... Создать новый... - + Enter the name of the input profile you wish to create. Введите имя профиля, который вы хотите создать. - + Are you sure you want to restore the default settings? Any preferences will be lost. Вы уверены, что хотите восстановить настройки по умолчанию? Все настройки будут потеряны. - + Settings reset to defaults. Настройки сброшены по умолчанию. - - Quick Save Slot - Ячейка для быстрого сохранения - - - + No save present in this slot. Отсутствует сохранение в слоте. - + No save states found. Сохраненные состояния не найдены. - + Failed to delete save state. Не удалось удалить сохраненное состояние. - + Failed to copy text to clipboard. Не удалось скопировать текст в буфер обмена. - + This game has no achievements. Достижения в этой игре не поддерживаются. - + This game has no leaderboards. - Для игры нет списка лидеров. + Данная игра не имеет таблиц лидеров. - + Reset System Перезагрузить систему - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Хардкорный режим не будет включён до перезагрузки системы. Хотите ли вы перезагрузить систему сейчас? - + Launch a game from images scanned from your game directories. Запуск игр из образов, отсканированных из папок с играми. - + Launch a game by selecting a file/disc image. Запустить игру, выбрав файл/образ диска. - + Start the console without any disc inserted. Запустить консоль без вставленного диска. - + Start a game from a disc in your PC's DVD drive. Запуск игр с диска, находящегося в DVD-приводе компьютера. - + Change settings for the emulator. Изменить настройки для эмулятора. - + Exits the program. Выход из программы. - + No Binding Нет привязки - + Setting %s binding %s. Настройка %s для привязки на %s. - + Push a controller button or axis now. Нажмите на кнопку или ось контроллера. - + Timing out in %.0f seconds... Время ожидания %.0f секунд(ы)... - + Unknown Неизвестно - + OK ОК - + Select Device Выбрать устройство - + Details Сведения - + Options Опции - + Copies the current global settings to this game. Копирует текущие глобальные настройки для данной игры. - + Clears all settings set for this game. Сбрасывает все установленные настройки для данной игры. - + Behaviour Действия - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Предотвращает включение экранной заставки (скринсейвер) и переход хоста в спящий режим во время работы эмуляции. - + Shows the game you are currently playing as part of your profile on Discord. Отображает игру, в которую вы сейчас играете, как часть вашего профиля в Discord. - + Pauses the emulator when a game is started. Ставит эмулятор на паузу при запуске игры. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Приостанавливает эмулятор при сворачивании окна или переходе к другому приложению, и возобновляет работу при возвращении к окну. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Приостанавливает эмулятор при открытии быстрого меню и снимает паузу при его закрытии. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Определяет, будет ли отображаться запрос на подтверждение завершения работы эмулятора/игры при нажатии горячей клавиши. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Автоматически сохраняет состояние эмулятора при выключении или выходе. В следующий раз вы сможете продолжить прямо с того места, где остановились. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Включает загрузку ini из настроек игры или пользовательских настроек для каждой игры. - - - + Uses a light coloured theme instead of the default dark theme. Использует светлую цветную тему вместо темной темы по умолчанию. - + Game Display Игровой экран - - Automatically switches to fullscreen mode when the program is started. - Автоматически переключается в полноэкранный режим при запуске программы. - - - + Switches between full screen and windowed when the window is double-clicked. Переключение между полноэкранным и оконным режимом при двойном клике по экрану. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Скрывает указатель/курсор мыши в полноэкранном режиме. - + Determines how large the on-screen messages and monitor are. Определяет размер экранных сообщений и монитора. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Выводит на экран сообщения о системных событиях, таких как создание/загрузка сохраненных состояний, сделанные снимки экрана и т.д. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Отображает в процентах текущую скорость эмуляции системы в правом верхнем углу экрана. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Отображать в правом верхнем углу экрана количество кадров (синхронизаций), выводимых системой в секунду. - + Shows the CPU usage based on threads in the top-right corner of the display. Отображает нагрузку на потоки ЦП в правом верхнем углу экрана. - + Shows the host's GPU usage in the top-right corner of the display. Отображает использование графического процессора хоста в правом верхнем углу экрана. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Отображает разрешение визуализации игры в правом верхнем углу экрана. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Отображает статистику о GS (примитивы, вызовы рисования) в правом верхнем углу дисплея. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Отображает индикаторы при активной перемотке вперед, паузе и других ненормальных состояниях. - + Shows the current configuration in the bottom-right corner of the display. Отображает текущую конфигурацию в правом нижнем углу экрана. - + Shows the current controller state of the system in the bottom-left corner of the display. Отображает текущее состояние контроллера системы в нижнем левом углу экрана. - + Shows a visual history of frame times in the upper-left corner of the display. Отображает визуальную историю времени кадров в левом верхнем углу экрана. - + Displays warnings when settings are enabled which may break games. Отображает предупреждения, когда включены настройки, которые могут сломать игру. - + Resets configuration to defaults (excluding controller settings). Сбрасывает конфигурацию по умолчанию (за исключением настроек контроллера). - + Changes the BIOS image used to start future sessions. Изменяет образ BIOS, используемый для запуска последующих сессий. - + Automatic Автоматически - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + По умолчанию + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + Включение этой опции приводит к применению индивидуальных настроек для каждой игры. Отключите эту опцию, чтобы всегда использовать глобальные настройки. + + + + Automatically switches to fullscreen mode when a game is started. + Автоматическое переключение в полноэкранный режим при запуске игры. + + + On-Screen Display - On-Screen Display + Индикация на экране - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Отображает разрешение игры в правом верхнем углу дисплея. + + + BIOS Configuration - BIOS Configuration + Конфигурация BIOS - + BIOS Selection Выбор BIOS - + Options and Patches - Options and Patches + Настройки и патчи - + Skips the intro screen, and bypasses region checks. Пропускает вступительный экран и обходит проверку региона. - + Speed Control Настройка скорости - + Normal Speed Нормальная скорость - + Sets the speed when running without fast forwarding. Устанавливает скорость при работе без перемотки вперед. - + Fast Forward Speed Скорость перемотки - + Sets the speed when using the fast forward hotkey. Устанавливает скорость при использовании горячей клавиши перемотки вперед. - + Slow Motion Speed Скорость замедления - + Sets the speed when using the slow motion hotkey. Устанавливает скорость при использовании горячей клавиши замедления. - + Enable Speed Limiter Включить ограничение скорости - + When disabled, the game will run as fast as possible. Когда выключено, игра будет работать на максимально возможной скорости. - + System Settings Настройки системы - + EE Cycle Rate Частота циклов EE - + Underclocks or overclocks the emulated Emotion Engine CPU. Понижает или повышает разгон эмулируемого процессора Emotion Engine. - + EE Cycle Skipping Пропуск цикла EE - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Применяет ограничение Emulated Emotion Engine для выполнения VU-программ. - - - + Affinity Control Mode Режим распределения потоков - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Прикрепляет потоки эмуляции к ядрам ЦП, чтобы потенциально улучшить производительность и разброс времени кадра. - + Enable MTVU (Multi-Threaded VU1) Включить MTVU (многопоточный VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Использует второй поток для микропрограмм VU1. Обеспечивает ощутимый прирост скорости. - - - + Enable Instant VU1 Включить мгновенный VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Уменьшает временной разрыв между рекомпиляторами VU1 и EE, обеспечивая эффективную работу VU1 на бесконечной тактовой частоте. - - - + Enable Cheats Включить читы - + Enables loading cheats from pnach files. Позволяет загружать читы из pnach файлов. - + Enable Host Filesystem Включить файловую систему хоста - + Enables access to files from the host: namespace in the virtual machine. Включает доступ к файлам из пространства имен host: на виртуальной машине. - + Enable Fast CDVD Включить быстрый CDVD - + Fast disc access, less loading times. Not recommended. Быстрый доступ к диску, снижение времени загрузок. Не рекомендуется. - + Frame Pacing/Latency Control Темп кадра/управление задержкой - + Maximum Frame Latency Максимальная задержка кадра - + Sets the number of frames which can be queued. Устанавливает количество кадров, которые могут быть поставлены в очередь. - + Optimal Frame Pacing Оптимальный темп кадра - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Синхронизирует потоки EE и GS после каждого кадра. Наименьшая входная задержка, но повышаются системные требования. - - Adjust To Host Refresh Rate - Регулировка частоты обновления хоста - - - + Speeds up emulation so that the guest refresh rate matches the host. Ускоряет эмуляцию, чтобы частота обновления гостевого устройства соответствовала хосту. - + Renderer Средство визуализации - + Selects the API used to render the emulated GS. Выбор API, используемого для визуализации эмулируемого GS. - + Sync To Host Refresh (VSync) Синхронизировать с обновлением хоста (VSync) - + Synchronizes frame presentation with host refresh. Синхронизирует вывод кадров с частотой обновления хоста. - + Display Экран - + Aspect Ratio Соотношение сторон - + Selects the aspect ratio to display the game content at. Выбор соотношения сторон для отображения игрового контента. - + FMV Aspect Ratio Соотношение сторон FMV - + Selects the aspect ratio for display when a FMV is detected as playing. Выбор соотношения сторон для отображения при обнаружении воспроизведения FMV. - + Deinterlacing Устранение чересстрочности - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Выбор алгоритма, используемого для преобразования чересстрочного вывода PS2 в прогрессивный для отображения на экране. - + Screenshot Size Размер снимка экрана - + Determines the resolution at which screenshots will be saved. Определяет разрешение, с которым будут сохраняться снимки экрана. - + Screenshot Format Формат снимка экрана - + Selects the format which will be used to save screenshots. Выбор формата, который будет использоваться для сохранения снимков экрана. - + Screenshot Quality Качество снимка экрана - + Selects the quality at which screenshots will be compressed. Выбор качества сжатия снимков экрана. - + Vertical Stretch Растягивание по вертикали - + Increases or decreases the virtual picture size vertically. Увеличивает или уменьшает размер виртуального изображения по вертикали. - + Crop Обрезание - + Crops the image, while respecting aspect ratio. Обрезает изображение с соблюдением соотношения сторон. - + + %dpx + %d px + + + Enable Widescreen Patches Включить широкоэкранные патчи - + Enables loading widescreen patches from pnach files. Позволяет загружать широкоэкранные патчи из pnach файлов. - + Enable No-Interlacing Patches Включить патчи устранения чересстрочности - + Enables loading no-interlacing patches from pnach files. Позволяет загружать патчи устранения чересстрочности из pnach файлов. - + Bilinear Upscaling Билинейный апскейлинг - + Smooths out the image when upscaling the console to the screen. Сглаживает изображение при масштабировании с консоли на экран. - + Integer Upscaling Целочисленное масштабирование - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Добавляет заполнение к области отображения, чтобы соотношение между пикселями на хосте и пикселями в консоли было целочисленным. Может привести к более резкому изображению в некоторых 2D-играх. - + Screen Offsets Смещение экрана - + Enables PCRTC Offsets which position the screen as the game requests. Включает функцию смещения PCRTC, которая позиционирует экран в соответствии с запросами игры. - + Show Overscan Показывать область за пределами сканирования - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Включает опцию отображения области за пределами сканирования в играх, которые рисуют больше, чем безопасная область экрана. - + Anti-Blur Анти-размытие - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Включает хаки анти-размытия. Менее точно соответствует визуализации PS2, но позволяет многим играм выглядеть менее размытыми. - + Rendering Визуализация - + Internal Resolution Внутреннее разрешение - + Multiplies the render resolution by the specified factor (upscaling). Умножает разрешение визуализации на заданный коэффициент (апскейлинг). - + Mipmapping MIP-текстурирование - + Determines how mipmaps are used when rendering textures. Определяет, как использовать MIP-карты при отрисовке текстур. - + Bilinear Filtering Билинейная фильтрация - + Selects where bilinear filtering is utilized when rendering textures. - Выбирает, где будет использоваться билинейная фильтрация при отрисовке текстур. + Выбирает, где будет использоваться билинейная фильтрация при визуализации текстур. - + Trilinear Filtering Трилинейная фильтрация - + Selects where trilinear filtering is utilized when rendering textures. - Выбирает, где будет использоваться трилинейная фильтрация при отрисовке текстур. + Выбирает, где будет использоваться трилинейная фильтрация при визуализации текстур. - + Anisotropic Filtering Анизотропная фильтрация - - Selects where anistropic filtering is utilized when rendering textures. - Выбирает, где будет использоваться анистропическая фильтрация при отрисовке текстур. - - - + Dithering Дизеринг - + Selects the type of dithering applies when the game requests it. Выбирает тип дизеринга, который применяется, когда игра его запрашивает. - + Blending Accuracy Точность смешивания - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Определяет уровень точности при эмуляции режимов наложения, не поддерживаемых графическим API хоста. - + Texture Preloading Предзагрузка текстур - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Загружает в ГП полный объём используемых текстур вместо отдельных областей. Может улучшать производительность в ряде игр. - + Software Rendering Threads Поточность программной визуализации - + Number of threads to use in addition to the main GS thread for rasterization. Число потоков, которое надлежит использовать в дополнение к главному потоку GS для растеризации. - + Auto Flush (Software) Автоочистка (программная) - + Force a primitive flush when a framebuffer is also an input texture. Принудительная очистка примитивов, когда кадровый буфер также является входной текстурой. - + Edge AA (AA1) Сглаживание кромки (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Включает эмуляцию сглаживания краев GS (AA1). - + Enables emulation of the GS's texture mipmapping. Включает эмуляцию текстурного мипмапинга. - + Hardware Fixes Аппаратные исправления - + Manual Hardware Fixes Ручной выбор аппаратных исправлений - + Disables automatic hardware fixes, allowing you to set fixes manually. Отключает автоматические аппаратные исправления, позволяя задавать исправления вручную. - + CPU Sprite Render Size Размер визуализации спрайтов ЦП - + Uses software renderer to draw texture decompression-like sprites. Использует программный визуализатор для отрисовки спрайтов с распаковкой текстур. - + CPU Sprite Render Level Уровень визуализации спрайтов ЦП - + Determines filter level for CPU sprite render. Определяет уровень фильтрации для визуализации спрайтов ЦП. - + Software CLUT Render Программная визуализация CLUT - + Uses software renderer to draw texture CLUT points/sprites. Использует программный визуализатор для отрисовки точек CLUT/спрайтов. - + Skip Draw Start Начало пропуска отрисовки - + Object range to skip drawing. Диапазон объектов для пропуска рисования. - + Skip Draw End Конец пропуска отрисовки - + Auto Flush (Hardware) Автоочистка (аппаратная) - + CPU Framebuffer Conversion Преобразование кадрового буфера ЦП - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Преобразовывать 4-х и 8-ми битные буферы кадра средствами ЦП вместо ГП. - - Disable Depth Support - Отключить поддержку глубины - - - - Disable the support of depth buffer in the texture cache. - Отключить поддержку буфера глубины в текстурном кэше. - - - + Disable Safe Features Отключить безопасные функции - + This option disables multiple safe features. Данная опция отключает некоторые безопасные функции. - - Disable Render Features - Выключить функции визуализации - - - + This option disables game-specific render fixes. Эта опция отключает специфичные для игры исправления визуализации. - - Preload Frame - Предзагрузка кадра - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Загружает данные GS при визуализации нового кадра для более точного воспроизведения некоторых эффектов. - + Disable Partial Invalidation Отключить частичную проверку - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Удаляет элементы текстурного кэша для любых пересечений, а не только для пересекающихся областей. - - Texture Inside Render Target - Текстура внутри объекта визуализации - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Позволяет текстурному кэшу повторно использовать в качестве входной текстуры внутреннюю часть предыдущего буфера кадра. - + Read Targets When Closing Считывать объекты при закрытии - + Flushes all targets in the texture cache back to local memory when shutting down. Сбрасывает все объекты в кэше текстур обратно в локальную память при завершении работы. - + Estimate Texture Region Оценка области текстуры - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Пытается уменьшить размер текстуры, когда игры сами его не устанавливают (например, игры на движке Snowblind). - + GPU Palette Conversion Преобразование палитры ГП - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Применяет палитры к текстурам на ГП, а не на ЦП. Может привести к увеличению скорости в некоторых играх. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Смещение полупикселя + Исправления масштабирования - + Adjusts vertices relative to upscaling. Регулирует вершины относительно масштабирования. - + Round Sprite Округление спрайтов - + Adjusts sprite coordinates. Регулирует координаты спрайта. - + Bilinear Upscale Билинейный апскейлинг - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Позволяет сглаживать текстуры с помощью билинейной фильтрации при масштабировании. Например, лучи света в Brave. - - TC Offset X - Смещение текстуры X - - - + Adjusts target texture offsets. Регулирует смещение целевой текстуры. - - TC Offset Y - Смещение текстуры Y - - - + Align Sprite Выравнивать спрайты - + Fixes issues with upscaling (vertical lines) in some games. Исправляет проблемы апскейлинга (вертикальные полосы) в ряде игр. - + Merge Sprite Объединять спрайты - + Replaces multiple post-processing sprites with a larger single sprite. Заменяет множество спрайтов пост-обработки одним большим спрайтом. - + Wild Arms Hack Хак Wild Arms - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Уменьшает точность GS во избежание разрыва между пикселями при масштабировании. Исправляет отображение текста в играх Wild Arms. - + Unscaled Palette Texture Draws Визуализация палитровых текстур без масштабирования - + Can fix some broken effects which rely on pixel perfect precision. Может исправить некоторые неработающие эффекты, основанные на идеальной точности пикселей. - + Texture Replacement Замена текстур - + Load Textures Загрузка текстур - + Loads replacement textures where available and user-provided. Загружает заменяющие текстуры, если они доступны и предоставлены пользователем. - + Asynchronous Texture Loading Асинхронная загрузка текстур - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Загружает заменяющие текстуры в рабочий поток, уменьшая микрозадержки, когда замены включены. - + Precache Replacements Прекешировать замены - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Предварительно загружает все заменяющие текстуры в память. Не требуется при асинхронной загрузке. - + Replacements Directory Папка замен - + Folders Папки - + Texture Dumping Дамп текстур - + Dump Textures Дамп текстур - - Dumps replacable textures to disk. Will reduce performance. - Дамп заменяемых текстур на диск. Снижает производительность. - - - + Dump Mipmaps Дамп MIP-карт - + Includes mipmaps when dumping textures. Включает MIP-карты при дампе текстур. - + Dump FMV Textures Дамп текстур FMV - + Allows texture dumping when FMVs are active. You should not enable this. Разрешает дамп текстур при активных FMV. Не следует включать эту функцию. - + Post-Processing Постобработка - + FXAA FXAA - + Enables FXAA post-processing shader. Включает шейдер постобработки FXAA. - + Contrast Adaptive Sharpening Контрастно-адаптивная резкость (CAS) - + Enables FidelityFX Contrast Adaptive Sharpening. Включает контрастно-адаптивную резкость FidelityFX. - + CAS Sharpness Резкость CAS - + Determines the intensity the sharpening effect in CAS post-processing. Определяет интенсивность эффекта повышения резкости в постобработке CAS. - + Filters Фильтры - + Shade Boost Усиление оттенков - + Enables brightness/contrast/saturation adjustment. Включает регулировку яркости/контрастности/насыщенности. - + Shade Boost Brightness Усиление оттенков яркости - + Adjusts brightness. 50 is normal. Регулирует яркость. Нормальный - 50. - + Shade Boost Contrast Усиление оттенков контрастности - + Adjusts contrast. 50 is normal. Регулирует контрастность. Нормальный - 50. - + Shade Boost Saturation Усиление оттенков насыщенности - + Adjusts saturation. 50 is normal. Регулирует насыщенность. Нормальный - 50. - + TV Shaders Шейдеры ТВ - - Selects post-processing TV shader. - Выбирает шейдер телевизора для постобработки. - - - + Advanced Дополнительно - + Skip Presenting Duplicate Frames - Пропускать повторяющиеся кадры - - - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Пропускает отображение кадров, которые не меняются в играх со скоростью 25/30fps. Может повысить скорость, но увеличивает задержку ввода/ухудшает синхронизацию кадров. + Пропускать повторяющиеся кадры - + Disable Threaded Presentation Отключить многопоточное отображение - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Отображает кадры в рабочем потоке, а не в потоке GS. Может улучшить время кадра в некоторых системах за счет потенциально худшего темпа формирования кадров. - - - + Hardware Download Mode Режим аппаратной загрузки - + Changes synchronization behavior for GS downloads. Изменяет поведение синхронизации для загрузок GS. - + Allow Exclusive Fullscreen Разрешить эксклюзивный полноэкранный режим - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Переопределяет эвристику драйвера для включения эксклюзивного полноэкранного режима или direct flip/scanout. - + Override Texture Barriers Переопределение барьеров текстур - + Forces texture barrier functionality to the specified value. Принудительно устанавливает функциональность текстурного барьера на указанное значение. - + GS Dump Compression Сжатие дампа GS - + Sets the compression algorithm for GS dumps. Устанавливает алгоритм сжатия дампов GS. - + Disable Framebuffer Fetch Отключить выборку буфера кадров - + Prevents the usage of framebuffer fetch when supported by host GPU. Предотвращает использование выборки из кадрового буфера, если это поддерживается ГП хоста. - + Disable Dual-Source Blending Отключить двухисточниковое смешивание - + Prevents the usage of dual-source blending when supported by host GPU. Предотвращает использование двухисточникового смешивания, если это поддерживается ГП хоста. - + Disable Shader Cache Отключить кэш шейдеров - + Prevents the loading and saving of shaders/pipelines to disk. Предотвращает загрузку и сохранение шейдеров/конвейеров на диск. - + Disable Vertex Shader Expand Отключить расширение вертексных шейдеров - + Falls back to the CPU for expanding sprites/lines. Возвращается к ЦП для расширения спрайтов/линий. - + Runtime Settings Настройки во время работы - + Applies a global volume modifier to all sound produced by the game. Применяет глобальный модификатор громкости ко всем звукам, издаваемыми игрой. - + Mixing Settings Настройки микширования - + Changes when SPU samples are generated relative to system emulation. Изменяет время генерации образцов SPU относительно эмуляции системы. - + Determines how the stereo output is transformed to greater speaker counts. Определяет, как стереовыход преобразуется для большего количества динамиков. - + Output Settings Настройки вывода - + Determines which API is used to play back audio samples on the host. Определяет, какой API использовать для воспроизведения аудиосэмплов на хосте. - + Sets the average output latency when using the cubeb backend. Устанавливает среднюю задержку вывода при использовании бэкенда cubeb. - + + %d ms (avg) + %d мс (среднее значение) + + + Timestretch Settings Настройки растяжения времени - + Affects how the timestretcher operates when not running at 100% speed. Влияет на работу растягивателя времени, когда он не работает на 100% скорости. - + + %d ms + %d мс + + + Settings and Operations Настройки и операции - + Creates a new memory card file or folder. Создает новый файл карты памяти или папку. - + Simulates a larger memory card by filtering saves only to the current game. Имитирует карту памяти большего объема путем фильтрации сохранений только для текущей игры. - + Automatically ejects Memory Cards when they differ after loading a state. Автоматическое извлечение карт памяти при их расхождении после загрузки состояния. - + If not set, this card will be considered unplugged. Если выключено, данная карта будет считаться неподключенной. - + The selected memory card image will be used for this slot. Выбранный образ карты памяти будет использоваться для данного слота. - + Resets the card name for this slot. Сбрасывает название карты для данного слота. - + Create Memory Card Создать карту памяти - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Введите имя карты памяти и выберите ее размер. Мы рекомендуем использовать карты памяти объемом 8 Мб или папку с картами памяти для наилучшей совместимости. - + Card Name: Название карты: - + Configuration Конфигурация - + Uses game-specific settings for controllers for this game. Использует специальные настройки контроллеров для этой игры. - + Copies the global controller configuration to this game. Копирует глобальную конфигурацию контроллера в эту игру. - + Resets all configuration to defaults (including bindings). Сбрасывает всю конфигурацию на значения по умолчанию (включая привязки). - + Replaces these settings with a previously saved input profile. Заменяет эти настройки ранее сохраненным профилем ввода. - + Stores the current settings to an input profile. Сохраняет текущие настройки в профиле ввода. - + Input Sources Источники ввода - + The SDL input source supports most controllers. Источник ввода SDL поддерживает большинство контроллеров. - + Provides vibration and LED control support over Bluetooth. Обеспечивает поддержку вибрации и управления светодиодами через Bluetooth. - + Allow SDL to use raw access to input devices. Разрешить SDL использовать необработанный доступ к устройствам ввода. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. Источник XInput обеспечивает поддержку контроллеров XBox 360/XBox One/XBox Series. - + Multitap Мультитап - + Enables an additional three controller slots. Not supported in all games. Включает дополнительные три слота контроллера. Поддерживается не во всех играх. - + Attempts to map the selected port to a chosen controller. Пытается сопоставить выбранный порт с выбранным контроллером. - + No Buttons Selected Нет выбранных кнопок - + Determines how much pressure is simulated when macro is active. - Определяет, какое давление моделируется при активном макросе. + Определяет, какая сила нажатия симулируется при активном макросе. - + Determines the pressure required to activate the macro. - Определяет давление, необходимое для активации макроса. + Определяет силу нажатия, необходимую для активации макроса. - + Toggle every %d frames Переключать каждый %d кадр - + Clears all bindings for this USB controller. Сброс всех привязок для текущего USB-контроллера. - + Data Save Locations Места сохранения данных - + Show Advanced Settings Показывать дополнительные настройки - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Изменение этих параметров может привести к неработоспособности игр. Вносите изменения на свой страх и риск, команда PCSX2 не будет оказывать поддержку конфигураций с измененными настройками. - + Logging - Logging + Ведение журнала - + System Console Системная консоль - + Writes log messages to the system console (console window/standard output). Записывает сообщения журнала в системную консоль (окно консоли/стандартный вывод). - + File Logging Ведение файлового журнала - + Writes log messages to emulog.txt. Записывает сообщения журнала в файл emulog.txt. - + Verbose Logging Ведение подробного журнала - + Writes dev log messages to log sinks. Записывает сообщения журнала разработки в sinks журнал. - + Log Timestamps Временные метки в журнале - + Writes timestamps alongside log messages. Записывает временные метки вместе с сообщениями в журнале. - + EE Console Консоль EE - + Writes debug messages from the game's EE code to the console. Записывает в консоль отладочные сообщения из EE-кода игры. - + IOP Console Консоль IOP - + Writes debug messages from the game's IOP code to the console. Записывает в консоль отладочные сообщения из IOP-кода игры. - + CDVD Verbose Reads Подробное чтение CDVD - + Logs disc reads from games. Ведет журнал чтения дисков из игр. - + Emotion Engine Emotion Engine - + Rounding Mode Режим округления - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Определяет, как будут округляться результаты операций с плавающей точкой. Некоторые игры требуют определенных настроек. - + Clamping Mode Режим захвата - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Определяет, как будут обрабатываться числа с плавающей точкой, выходящих за пределы диапазона. Некоторые игры требуют определенных настроек. - + Enable EE Recompiler Включить рекомпилятор EE - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Выполняет двоичную JIT-трансляцию 64-битного машинного кода MIPS-IV в нативный код. - + Enable EE Cache Включить кэш EE - + Enables simulation of the EE's cache. Slow. Включает симуляцию кэша EE. Медленный. - + Enable INTC Spin Detection Включить обнаружение зацикливания INTC - + Huge speedup for some games, with almost no compatibility side effects. Огромное ускорение для некоторых игр, почти без побочных эффектов. - + Enable Wait Loop Detection Включить обнаружение цикла ожидания - + Moderate speedup for some games, with no known side effects. Умеренное ускорение некоторых игр, без побочных эффектов. - + Enable Fast Memory Access Включить быстрый доступ к памяти - + Uses backpatching to avoid register flushing on every memory access. Использует обратную выборку, чтобы избежать сброса регистра при каждом обращении к памяти. - + Vector Units Векторные блоки - + VU0 Rounding Mode Режим округления VU0 - + VU0 Clamping Mode Режим захвата VU0 - + VU1 Rounding Mode Режим округления VU1 - + VU1 Clamping Mode Режим захвата VU1 - + Enable VU0 Recompiler (Micro Mode) Включить рекомпилятор VU0 (микрорежим) - + New Vector Unit recompiler with much improved compatibility. Recommended. Новый рекомпилятор векторного блока, с улучшенной совместимостью. Рекомендуется. - + Enable VU1 Recompiler Включить рекомпилятор VU1 - + Enable VU Flag Optimization Включить оптимизацию флага VU - + Good speedup and high compatibility, may cause graphical errors. Хорошая скорость и высокая совместимость, может привести к графическим ошибкам. - + I/O Processor Процессор ввода/вывода - + Enable IOP Recompiler Включить рекомпилятор IOP - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Выполняет двоичную JIT-трансляцию 32-битного машинного кода MIPS-I в родной код. - + Graphics Графика - + Use Debug Device Использовать устройство отладки - - Enables API-level validation of graphics commands - Обеспечивает проверку графических команд на уровне API - - - + Settings Настройки - + No cheats are available for this game. Читы для этой игры отсутствуют. - + Cheat Codes Чит-коды - + No patches are available for this game. Патчи для этой игры отсутствуют. - + Game Patches Игровые патчи - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Активация читов может привести к непредсказуемому поведению, сбоям, программным блокировкам или поломке сохраненных игр. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Активация игровых патчей может привести к непредсказуемому поведению, сбоям, программным блокировкам или поломке сохраненных игр. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Используйте патчи на свой страх и риск, команда PCSX2 не будет оказывать поддержку пользователям, включившим игровые патчи. - + Game Fixes Исправления игр - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Не следует вносить изменения в исправления игр, если вы не знаете, что делает каждая из опций и каковы ее последствия. - + FPU Multiply Hack Хак умножения FPU - + For Tales of Destiny. Для Tales of Destiny. - + FPU Negative Div Hack Хак отрицательного деления FPU - + For Gundam games. Для игр Gundam. - + Preload TLB Hack Хак предварительной загрузки TLB - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Переключаться на программный визуализатор для FMV. - - - + Needed for some games with complex FMV rendering. Требуется для некоторых игр со сложной визуализацией FMV. - + Skip MPEG Hack Хак пропуска MPEG - + Skips videos/FMVs in games to avoid game hanging/freezes. Пропускает видео/FMV в играх, чтобы избежать зависаний игры. - + OPH Flag Hack Хак флага OPH - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Известно, что это влияет на следующие игры: Bleach Blade Battler, Growlanser II и III, Wizardry. - - - + EE Timing Hack Хак тайминга EE - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Известно, что это влияет на следующие игры: Digital Devil Saga (исправляет FMV и сбои), SSX (исправляет плохую графику и сбои). - - - + Instant DMA Hack Хак мгновенного DMA - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Известно, что это влияет на следующие игры: Fire Pro Wrestling Z (плохая графика ринга). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Известно, что это влияет на следующие игры: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Обработка записей DMAC если он занят. + + For SOCOM 2 HUD and Spy Hunter loading hang. + Для SOCOM 2 HUD и зависания загрузки Spy Hunter. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Известно, что это влияет на следующие игры: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + Хак добавления VU - - Force GIF PATH3 transfers through FIFO - Принудительная передача GIF PATH3 через FIFO + + Full VU0 Synchronization + Полная синхронизация VU0 - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Принудительная синхронизация VU0 для каждой инструкции COP2. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Симулировать опережающее чтение VIF1 FIFO. Исправляет медленную загрузку игр. + + VU Overflow Hack + Хак переполнения VU - - Known to affect following games: Test Drive Unlimited, Transformers. - Известно, что это влияет на следующие игры: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + Для проверки возможных переполнений чисел с плавающей точкой (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Задержка остановки VIF1 (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Использовать точное время для VU XGKicks (медленнее). - - For SOCOM 2 HUD and Spy Hunter loading hang. - Для SOCOM 2 HUD и зависания загрузки Spy Hunter. + + Quadraphonic + Квадрафонический - - VU Add Hack - Хак добавления VU + + Load State + Загрузить состояние - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Игры, которые нуждаются в данном хаке для загрузки: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Пропуск циклов в эмулируемом движке Emotion Engine. Эта опция может помочь ограниченному числу игр, например, SOTC. В большинстве случаев включение этой опции приводит к снижению производительности. - - VU I bit Hack avoid constant recompilation in some games - Хак VU I bit позволяющий избегать постоянной перекомпиляции в некоторых играх + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Ускорение обычно достигается на процессорах с 4 и более ядрами. Безопасен для большинства игр, но некоторые из них несовместимы и могут зависать. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Мгновенное выполнение VU1. Обеспечивает незначительное повышение скорости в большинстве игр. Безопасен для большинства игр, но в некоторых играх могут наблюдаться графические ошибки. - - Full VU0 Synchronization - Полная синхронизация VU0 + + Scale To Host Refresh Rate + Масштабирование в соответствии с частотой обновления компьютера - - Forces tight VU0 sync on every COP2 instruction. - Принудительная синхронизация VU0 для каждой инструкции COP2. + + Disable Depth Emulation + Отключить эмуляцию глубины - - VU Sync (Run behind) - Синхронизация VU (Run behind) + + Disable the support of depth buffers in the texture cache. + Отключить поддержку буферов глубины в текстурном кэше. - - To avoid sync problems when reading or writing VU registers. - Чтобы избежать проблем с синхронизацией при чтении или записи регистров VU. + + Disable Render Fixes + Отключить исправления рендеринга - - VU Overflow Hack - Хак переполнения VU + + Preload Frame Data + Предварительная загрузка данных кадра - - To check for possible float overflows (Superman Returns). - Для проверки возможных переполнений чисел с плавающей точкой (Superman Returns). + + Texture Inside RT + Текстура внутри объекта визуализации - - VU XGkick Sync - Синхронизация VU XGkick + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + При включении ГП преобразует колормап-текстуры, в противном случае это делает ЦП. Это компромисс между ГП и ЦП. - - Use accurate timing for VU XGKicks (slower). - Использовать точное время для VU XGKicks (медленнее). + + Half Pixel Offset + Смещение полупикселя - - Use Blit for internal FPS - Использовать Blit для внутреннего FPS + + Texture Offset X + Смещение текстур по оси Х - - Quadraphonic - Quadraphonic + + Texture Offset Y + Смещение текстур по оси Y - - Load State - Загрузить состояние + + Dumps replaceable textures to disk. Will reduce performance. + Дамп заменяемых текстур на диск. Снижает производительность. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Применяет шейдер, который стилизует визуальные эффекты под разные телевизоры. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Пропускать отображение идентичных кадров в играх поддерживающих 25/30 кадров в секунду. Может улучшить производительность, но вызвать задержку ввода и/или ухудшить фреймпейсинг. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Включает проверку графических команд на уровне API. + + + + Use Software Renderer For FMVs + Использовать программный рендер для видеороликов + + + + To avoid TLB miss on Goemon. + Для предотвращения ошибок TLB в играх Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Универсальный тайм-хак. Известно, что это влияет на следующие игры: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Хорошо подходит для проблем с эмуляцией кэша. Известно, что это влияет на следующие игры: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Известно, что это влияет на следующие игры: Bleach Blade Battlers, Growlanser II и III, Wizardry. + + + + Emulate GIF FIFO + Эмулировать GIF FIFO - + + Correct but slower. Known to affect the following games: Fifa Street 2. + Корректнее, но медленнее. Известно, что это влияет на следующие игры: Fifa Street 2. + + + + DMA Busy Hack + Хак занятости DMA + + + + Delay VIF1 Stalls + Откладывать приостановки VIF1 + + + + Emulate VIF FIFO + Эмулировать VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Имитировать опережающее чтение VIF1 FIFO. Известно, что это влияет на следующие игры: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + Хак VU I Bit + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Позволяет избежать постоянной рекомпиляции в некоторых играх. Известно, что это влияет на следующие игры: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Для игр Tri-Ace: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + Синхронизация VU + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Задержка выполнения. Чтобы избежать проблем с синхронизацией при чтении или записи регистров VU. + + + + VU XGKick Sync + Синхронизация VU XGkick + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Сохранить состояние - + Load Resume State Загрузить состояние для продолжения - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5849,2221 +6197,2122 @@ Do you want to load this save and continue? Хотите ли вы загрузить это сохранение и продолжить? - + Region: Регион: - + Compatibility: Совместимость: - + No Game Selected Игра не выбрана - + Search Directories Папки поиска - + Adds a new directory to the game search list. Добавляет новую папку в список для поиска игр. - + Scanning Subdirectories Сканировать подпапки - + Not Scanning Subdirectories Не сканировать подпапки - + List Settings Настройки cписка - + Sets which view the game list will open to. Устанавливает, в каком виде будет открываться список игр. - + Determines which field the game list will be sorted by. Определяет, по какому полю будет сортироваться список игр. - + Reverses the game list sort order from the default (usually ascending to descending). - Reverses the game list sort order from the default (usually ascending to descending). + Изменить порядок сортировки списка игр по умолчанию (обычно: по возрастанию > по убыванию). - + Cover Settings Настройки обложки - + Downloads covers from a user-specified URL template. Загрузка обложек из пользовательского URL-шаблона. - + Operations Операции - + + Selects where anisotropic filtering is utilized when rendering textures. + Выбирает, где будет использоваться анизотропная фильтрация при визуализации текстур. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + Использовать альтернативный метод для расчета внутреннего FPS, чтобы избежать ложных показаний в некоторых играх. - + Identifies any new files added to the game directories. Определяет любые новые файлы, добавленные в папку с играми. - + Forces a full rescan of all games previously identified. - Forces a full rescan of all games previously identified. + Принудительно сканировать все ранее идентифицированные игры. - + Download Covers Загрузка обложек - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 может автоматически загружать обложки для игр, в которых в настоящее время нет обложки. Мы не размещаем никаких обложек, пользователь должен предоставить свой собственный источник для изображений. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Название игры. -${filetitle}: Именной компонент имени файла игры. -${serial}: Серийный номер игры. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Пример: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Использовать серийный номер для имени файла - - - + About PCSX2 О программе PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 - это бесплатный эмулятор PlayStation 2 (PS2) с открытым исходным кодом. Его цель - эмулировать аппаратное обеспечение PS2, используя комбинацию интерпретаторов процессора MIPS, рекомпиляторов и виртуальной машины, которая управляет состояниями оборудования и системной памятью PS2. Это позволяет вам играть в игры PS2 на вашем ПК со множеством дополнительных функций и преимуществ. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 и PS2 являются зарегистрированными торговыми марками компании Sony Interactive Entertainment. Данное приложение никоим образом не связано с Sony Interactive Entertainment. - - XXX points - XXX очков - - - - Unlocked Achievements - Разблокированные достижения - - - - Locked Achievements - Заблокированные достижения - - - - Active Challenge Achievements - Активные достижения испытаний - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Ранг - - - - Name - Имя - - - - Time - Время - - - - Score - Счет - - - - Downloading leaderboard data, please wait... - Загрузка данных таблицы лидеров, пожалуйста, подождите... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. Если включено и выполнен вход в учётную запись, PCSX2 будет искать достижения при запуске. - - When enabled, rich presence information will be collected and sent to the server where supported. - Собирать и отправлять на сервер информацию о статусе активности, если поддерживается. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Соревновательный" режим достижений с отслеживанием списков лидеров. Отключает сохранения, читы и возможность замедления. - - Enables tracking and submission of leaderboards in supported games. - Позволяет отслеживать и отправлять таблицы лидеров в поддерживаемых играх. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Отображает всплывающие сообщения о таких событиях, как разблокировка достижений и появление в таблице лидеров. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Проигрывать звуковые эффекты для таких событий как открытие достижений и отправка списка лидеров. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Отображает иконки в правом нижнем углу экрана, когда активно испытание/доступное достижение. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. Когда включено, PCSX2 будет отображать достижения из неофициальных наборов. Эти достижения не отслеживаются RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Если включено, PCSX2 будет считать все достижения закрытыми и не будет отправлять уведомления о получении на сервер. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Отображает всплывающие уведомления при запуске, отправке или провале вызова в таблице лидеров. + + + + When enabled, each session will behave as if no achievements have been unlocked. + При включении этой опции каждая игровая сессия будет вести себя так, как будто ни одно достижение не было разблокировано. + + + Account - Account + Аккаунт - + Logs out of RetroAchievements. Выход из RetroAchieves. - + Logs in to RetroAchievements. Войти в RetroAchievements. - + Current Game - Current Game - - - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Пожалуйста, введите ваше имя пользователя и пароль для retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Ваш пароль не будет сохранен в PCSX2, вместо него будет сгенерирован и использован токен доступа. - - - - User Name: - Имя пользователя: - - - - Password: - Пароль: + Текущая игра - + {} is not a valid disc image. {} не является допустимым образом диска. - + Automatic mapping completed for {}. - Automatic mapping completed for {}. + Автоматическое сопоставление выполнено для {}. - + Automatic mapping failed for {}. - Automatic mapping failed for {}. + Не удалось выполнить автоматическое сопоставление для {}. - + Game settings initialized with global settings for '{}'. - Game settings initialized with global settings for '{}'. + Настройки игры инициализированы глобальными настройками для '{}'. - + Game settings have been cleared for '{}'. - Game settings have been cleared for '{}'. + Настройки игры для '{}' были очищены. - + Console Port {} - Console Port {} + Порт консоли {} - + {} (Current) {} (Текущий) - + {} (Folder) {} (Папка) - + Memory card name '{}' is not valid. - Memory card name '{}' is not valid. + Имя карты памяти '{}' недействительно. - + Memory Card '{}' created. Карта памяти '{}' создана. - + Failed to create memory card '{}'. Не удалось создать карту памяти '{}'. - + A memory card with the name '{}' already exists. Карта памяти с именем '{}' уже существует. - + Failed to load '{}'. Не удалось загрузить '{}'. - + Input profile '{}' loaded. - Input profile '{}' loaded. + Профиль ввода '{}' загружен. - + Input profile '{}' saved. - Input profile '{}' saved. + Профиль ввода '{}' сохранен. - + Failed to save input profile '{}'. - Failed to save input profile '{}'. + Не удалось сохранить профиль ввода '{}'. - + Port {} Controller Type Порт {} Тип контроллера - + Select Macro {} Binds Выберите макрос {} привязок - + + Macro {} Frequency + Макрочастота {} + + + Macro will toggle every {} frames. Макро будет действовать каждые {} кадра(-ов). - + Port {} Device Порт {} Устройство - + Port {} Subtype Порт {} Подтип - + {} unlabelled patch codes will automatically activate. - {} unlabelled patch codes will automatically activate. + Автоматически активируется {} немаркированный(ых) патч-код(ов). - + {} unlabelled patch codes found but not enabled. - {} unlabelled patch codes found but not enabled. + {} Код(ов) исправления найден(о), но не активирован(о). - + This Session: {} Текущая сессия: {} - + All Time: {} Всего времени: {} - + Save Slot {0} Ячейка сохранения {0} - + Saved {} Сохранено {} - + {} does not exist. - {} does not exist. + {} не существует. - + {} deleted. {} удален. - + Failed to delete {}. Не удалось удалить {}. - + File: {} Файл: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Времени в игре: {} - + Last Played: {} Последняя игра: {} - + Size: {:.2f} MB Размер: {:.2f} МБ - - {} points - {} очков - - - - {} (Hardcore Mode) - {} (Хардкорный режим) + + Left: + Лев: - - You have unlocked all achievements and earned {} points! - Вы разблокировали все достижения и заработали {} очков! + + Top: + Верх: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - Вы разблокировали {} из {} достижений, заработав {} из {} возможных очков. + + Right: + Прав: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Низ: - + Summary Содержание - + Interface Settings Настройки интерфейса - + BIOS Settings Настройки BIOS - + Emulation Settings Настройки эмуляции - + Graphics Settings Настройки графики - + Audio Settings Настройки аудио - + Memory Card Settings Настройки карт памяти - + Controller Settings Настройки контроллера - + Hotkey Settings Настройки горячих клавиш - + Achievements Settings Настройки достижений - + Folder Settings Настройки папок - + Advanced Settings Дополнительные настройки - + Patches Патчи - + Cheats Читы - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed Скорость 50% - + 60% Speed Скорость 60% - + 75% Speed Скорость 75% - + 100% Speed (Default) Скорость 100% (по умолчанию) - + 130% Speed Скорость 130% - + 180% Speed Скорость 180% - + 300% Speed Скорость 300% - + Normal (Default) Стандартный (по умолчанию) - + Mild Underclock Незначительный разгон - + Moderate Underclock Умеренный разгон - + Maximum Underclock Максимальный разгон - + Disabled Отключено - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 кадров (жесткая синхронизация) - + 1 Frame 1 кадр - + 2 Frames 2 кадра - + 3 Frames 3 кадра - + None Не использовать - + Extra + Preserve Sign Дополнительный + Сохранять знак - + Full Полный - + Extra Дополнительный - + Automatic (Default) Автоматическое (по умолчанию) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Программный - + Null Нуль - + Off Выкл - + On Вкл - + Adaptive Адаптивно - + Bilinear (Smooth) Билинейная (сглажено) - + Bilinear (Sharp) Билинейная (резко) - + Weave (Top Field First, Sawtooth) Волновое (сначала верхнее поле, пилообразное) - + Weave (Bottom Field First, Sawtooth) Волновое (сначала нижнее поле, пилообразное) - + Bob (Top Field First) Bob (сначала верхнее поле) - + Bob (Bottom Field First) Bob (сначала нижнее поле) - + Blend (Top Field First, Half FPS) Смешанное (сначала верхнее поле, половина FPS) - + Blend (Bottom Field First, Half FPS) Смешанное (сначала нижнее поле, половина FPS) - + Adaptive (Top Field First) Адаптивное (сначала верхнее поле) - + Adaptive (Bottom Field First) Адаптивное (сначала нижнее поле) - + Native (PS2) Родное (PS2) - + 1.25x Native 1.25x Родное - + 1.5x Native 1.5x Родное - + 1.75x Native 1.75x Родное - + 2x Native (~720p) 2x Родное (~720p) - + 2.25x Native 2.25x Родное - + 2.5x Native 2.5x Родное - + 2.75x Native 2.75x Родное - + 3x Native (~1080p) 3x Родное (~1080p) - + 3.5x Native 3.5x Родное - + 4x Native (~1440p/2K) 4x Родное (~1440p/2K) - + 5x Native (~1620p) 5x Родное (~1620p) - + 6x Native (~2160p/4K) 6x Родное (~2160p/4K) - + 7x Native (~2520p) 7x Родное (~2520p) - + 8x Native (~2880p) 8x Родное (~2880p) - + Basic (Generated Mipmaps) Базовое (сгенерированные MIP-карты) - + Full (PS2 Mipmaps) Полное (MIP-карты PS2) - + Nearest Ближайший - + Bilinear (Forced) Билинейная (принудительно) - + Bilinear (PS2) Билинейная (PS2) - + Bilinear (Forced excluding sprite) Билинейная (принудительно, исключая спрайты) - + Off (None) Выключено (не использовать) - + Trilinear (PS2) Трилинейная (PS2) - + Trilinear (Forced) Трилинейная (принудительно) - + Scaled С масштабированием - + Unscaled (Default) Без масштабирования (по умолчанию) - + Minimum Минимальная - + Basic (Recommended) Базовая (рекомендуется) - + Medium Средняя - + High Высокая - + Full (Slow) Полная (медленно) - + Maximum (Very Slow) Максимальная (очень медленное) - + Off (Default) Отключено (по умолчанию) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Частичная - + Full (Hash Cache) Полная (хешировать кэш) - + Force Disabled Принудительно отключено - + Force Enabled Принудительно включено - + Accurate (Recommended) Точный (рекомендуется) - + Disable Readbacks (Synchronize GS Thread) Отключить обратные считывания (синхронизировать поток GS) - + Unsynchronized (Non-Deterministic) Несинхронизированный (неопределённый) - + Disabled (Ignore Transfers) Отключено (игнорировать переводы) - + Screen Resolution Разрешение экрана - - Internal Resolution (Uncorrected) - Внутреннее разрешение (без корректировки) + + Internal Resolution (Aspect Uncorrected) + Внутреннее разрешение (без исправления соотношения сторон) + + + + Cannot show details for games which were not scanned in the game list. + Невозможно отобразить сведения об играх, которые не были отсканированы в списке игр. + + + + Full Boot + Полная загрузка + + + + Achievement Notifications + Уведомления о достижениях + + + + Leaderboard Notifications + Уведомления о таблице лидеров + + + + Enable In-Game Overlays + Включить внутриигровые оверлеи + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Режим наблюдателя - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (отключено) - + 1 (64 Max Width) 1 (макс. ширина 64) - + 2 (128 Max Width) 2 (макс. ширина 128) - + 3 (192 Max Width) 3 (макс. ширина 192) - + 4 (256 Max Width) 4 (макс. ширина 256) - + 5 (320 Max Width) 5 (макс. ширина 320) - + 6 (384 Max Width) 6 (макс. ширина 384) - + 7 (448 Max Width) 7 (макс. ширина 448) - + 8 (512 Max Width) 8 (макс. ширина 512) - + 9 (576 Max Width) 9 (макс. ширина 576) - + 10 (640 Max Width) 10 (макс. ширина 640) - + Sprites Only Только спрайты - + Sprites/Triangles Спрайты/треугольники - + Blended Sprites/Triangles Смешанные спрайты/треугольники - + 1 (Normal) 1 (нормально) - + 2 (Aggressive) 2 (агрессивно) - + Inside Target Внутри объекта - + Merge Targets Объединять объекты - + Normal (Vertex) Нормальное (вершины) - + Special (Texture) Специальное (текстуры) - + Special (Texture - Aggressive) Специальное (текстуры - агрессивно) - + Half Половина - + Force Bilinear Принудительно билинейная - + Force Nearest Принудительно близко - + Disabled (Default) Отключено (по умолчанию) - + Enabled (Sprites Only) Включено (только спрайты) - + Enabled (All Primitives) Включено (все примитивы) - + None (Default) Не использовать (по умолчанию) - + Sharpen Only (Internal Resolution) Только резкость (внутреннее разрешение) - + Sharpen and Resize (Display Resolution) Повышать резкость и увеличивать (разрешение экрана) - + Scanline Filter Чересстрочный фильтр - + Diagonal Filter Диагональный фильтр - + Triangular Filter Треугольный фильтр - + Wave Filter Волновой фильтр - + Lottes CRT Лоттес ЭЛТ - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Без сжатия - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) Растяжение по времени (рекомендуется) - + Async Mix (Breaks some games!) Асинхронное микширование (ломает некоторые игры!) - + None (Audio can skip.) Не использовать (звук может пропускаться.) - + Stereo (None, Default) Стерео (не использовать, по умолчанию) - + Surround 5.1 Объёмный 5.1 - + Surround 7.1 Объёмный 7.1 - + No Sound (Emulate SPU2 only) Без звука (только эмуляция SPU2) - + Cubeb (Cross-platform) Cubeb (кроссплатформенный) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8МБ) - + PS2 (16MB) PS2 (16 МБ) - + PS2 (32MB) PS2 (32 МБ) - + PS2 (64MB) PS2 (64МБ) - + PS1 PS1 - + 8 MB [Most Compatible] 8 МБ [Наиболее совместимый] - + 16 MB 16 МБ - + 32 MB 32 МБ - + 64 MB 64 МБ - + Folder [Recommended] Папка [Recommended] - + 128 KB [PS1] 128 КБ [PS1] - + + Negative + Отрицательный + + + + Positive + Положительный + + + + Chop/Zero (Default) + Chop/Zero (по умолчанию) + + + Game Grid Сетка игр - + Game List Список игр - + Game List Settings Настройки списка игр - + Type Тип - + Serial Серийный номер - + Title Название - + File Title Название файла - + CRC CRC - + Time Played Времени в игре - + Last Played Последняя игра - + Size Размер - + Select Disc Image Выберите образ диска - + Select Disc Drive Выберите дисковод - + Start File Запустить файл - + Start BIOS Запустить BIOS - + Start Disc Запустить диск - + Exit Выход - + Set Input Binding Установка привязки на нажатие - + Region Регион - + Compatibility Rating Оценка совместимости - + Path Путь - + Disc Path Путь к диску - + Select Disc Path Выбрать путь к диску - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Копировать настройки - + Clear Settings Очистить настройки - + Inhibit Screensaver Запретить экранную заставку - + + Enable Discord Presence + Включить статус активности в Discord + + + Pause On Start Пауза при запуске - + Pause On Focus Loss Пауза при потере фокуса - + Pause On Menu Пауза в меню - + Confirm Shutdown Подтверждение отключения - + Save State On Shutdown Сохранять состояние при отключении - + Enable Per-Game Settings Включить отдельные настройки для игр - + Use Light Theme Использовать светлую тему - + Start Fullscreen Запускать в полноэкранном режиме - + Double-Click Toggles Fullscreen Двойной клик для переключения полноэкранного режима - + Hide Cursor In Fullscreen Скрывать курсор в полноэкранном режиме - + OSD Scale Масштаб индикации на экране - + Show Messages Показывать сообщения - + Show Speed Показывать скорость - + Show FPS Показывать частоту кадров - + Show CPU Usage Показывать нагрузку ЦП - + Show GPU Usage Показывать нагрузку ГП - + Show Resolution Показывать разрешение - + Show GS Statistics Показывать статистику GS - + Show Status Indicators Показывать индикаторы состояния - + Show Settings Показывать настройки - + Show Inputs Показывать нажатия кнопок - + Show Frame Times Показывать время кадров - + Warn About Unsafe Settings Предупреждать о небезопасных настройках - + Reset Settings Сбросить настройки - + Change Search Directory Изменить папку поиска - + Fast Boot Быстрая загрузка - + Output Volume Громкость вывода - + Synchronization Mode Режим синхронизации - + Expansion Mode Режим расширения - + Output Module Модуль вывода - + Latency Задержка - + Sequence Length Длина последовательности - + Seekwindow Size Размер окна поиска - + Overlap Перекрытие - + Memory Card Directory Папка карты памяти - + Folder Memory Card Filter Фильтр карт памяти в папках - + Auto Eject When Loading Автоматическое извлечение при загрузке - + Create Создать - + Cancel Отмена - + Load Profile Загрузить профиль - + Save Profile Сохранить профиль - + Per-Game Configuration Конфигурация отдельной игры - + Copy Global Settings Копировать глобальные настройки - + Enable SDL Input Source Включить источник ввода SDL - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / расширенный режим DualSense - + SDL Raw Input - SDL Raw Input + Прямой ввод через SDL - + Enable XInput Input Source Включить источник ввода XInput - + Enable Console Port 1 Multitap Включить консольный порт 1 Мультитап - + Enable Console Port 2 Multitap Включить консольный порт 2 Мультитап - + Controller Port {}{} Порт контроллера {}{} - + Controller Port {} Порт контроллера {} - + Controller Type Тип контроллера - + Automatic Mapping Автоматические привязки - + Controller Port {}{} Macros - Controller Port {}{} Macros + Порт контроллера {}{} Макросы - + Controller Port {} Macros - Controller Port {} Macros + Порт контроллера {} Макросы - + Macro Button {} Кнопка макроса {} - + Buttons Кнопки - + Frequency Частота - + Pressure - Pressure + Сила нажатия - + Controller Port {}{} Settings - Настройки порта контроллера {}{} + Порт контроллера {}{} Настройки - + Controller Port {} Settings - Настройки порта контроллера {} + Порт контроллера {} Настройки - + USB Port {} USB-порт {} - + Device Type Тип устройства - + Device Subtype Подтип устройства - + {} Bindings {} Привязки - + Clear Bindings Очистить привязки - + {} Settings {} Настройки - + Cache Directory Папка кэша - + Covers Directory Папка обложек - + Snapshots Directory Папка снимков - + Save States Directory Папка сохраненных состояний - + Game Settings Directory Папка настроек игры - + Input Profile Directory Папка входных профилей - + Cheats Directory Папка читов - + Patches Directory Папка патчей - + Texture Replacements Directory Папка замен текстур - + Video Dumping Directory Папка дампов видео - + Resume Game Продолжить игру - + Toggle Frame Limit Вкл/выкл ограничение кадров - + Game Properties Свойства игры - + Achievements Достижения - + Save Screenshot Сохранить снимок экрана - + Switch To Software Renderer Переключиться на программный визуализатор - + Switch To Hardware Renderer Переключиться на аппаратный визуализатор - + Change Disc Сменить диск - + Close Game Закрыть игру - + Exit Without Saving Выйти без сохранения - + Back To Pause Menu Вернуться в меню паузы - + Exit And Save State Выйти и сохранить состояние - + Leaderboards - Списки лидеров + Таблицы лидеров - + Delete Save Удалить сохранение - + Close Menu Закрыть меню - - Clean Boot - Чистая загрузка - - - + Delete State Удалить сохранение - + Default Boot Загрузка по умолчанию - - Slow Boot - Медленная загрузка - - - + Reset Play Time Сбросить время игры - + Add Search Directory Добавить папку поиска - + Open in File Browser Открыть в проводнике - + Disable Subdirectory Scanning Отключить сканирование подпапок - + Enable Subdirectory Scanning Включить сканирование подпапок - + Remove From List Удалить из списка - + Default View Вид по умолчанию - + Sort By Сортировать по - + Sort Reversed Обратная сортировка - + Scan For New Games Поиск новых игр - + Rescan All Games Повторить сканирование всех игр - - Start Download - Начать загрузку - - - + Website Веб-сайт - + Support Forums Форумы поддержки - + GitHub Repository Репозиторий на GitHub - + License Лицензия - + Close Закрыть - + RAIntegration is being used instead of the built-in achievements implementation. - RAIntegration is being used instead of the built-in achievements implementation. + Вместо встроенной реализации достижений используется RAIntegration. - + Enable Achievements Включить достижения - - Rich Presence - Статус активности - - - + Hardcore Mode Хардкорный режим - - Show Notifications - Показывать уведомления - - - + Sound Effects Звуковые эффекты - - Show Challenge Indicators - Показывать индикаторы испытаний - - - + Test Unofficial Achievements Тестировать неофициальные достижения - - Test Mode - Тестовый режим - - - + Username: {} Имя пользователя: {} - + Login token generated on {} - Login token generated on {} + Токен для входа сгенерирован на {} - + Logout Выйти - + Not Logged In - Вход не выполнен - - - - Login - Войти - - - - Achievements are disabled. - Достижения отключены. - - - - Game ID: {} - ID игры: {} + Вход не выполнен - - Game Title: {} - Название игры: {} + + Login + Войти - - Achievements: {} ({} points) - Достижения: {} ({} очков) + + Game: {0} ({1}) + Игра: {0} ({1}) - + Rich presence inactive or unsupported. Статус активности неактивен или не поддерживается. - + Game not loaded or no RetroAchievements available. Игра не загружена или RetroAchievements не доступны. - + Card Enabled Карта включена - + Card Name Название карты - + Eject Card Извлечь карту @@ -8076,7 +8325,7 @@ ${serial}: Серийный номер игры. Не удалось переоткрыть, восстановление старой конфигурации. - + Upscale multiplier set to {}x. Множитель апскейла {}x. @@ -8131,12 +8380,12 @@ ${serial}: Серийный номер игры. Отключение автосгенерированных мипмапов на одной или нескольких сжатых заменяемых текстур. Пожалуйста, сгенерируйте мипмапы во время сжатия собственных текстур. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Буферы трафарета и текстурные барьеры недоступны, это нарушит некоторые графические эффекты. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Нагрузка ГП при простое включена, но откалиброванные временные метки недоступны. Это может привести к значительному замедлению. @@ -8192,7 +8441,7 @@ ${serial}: Серийный номер игры. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8203,265 +8452,405 @@ graphical quality, but this will increase system requirements. чтобы улучшить качество графики, но это увеличит системные требования. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Ручные исправления аппаратного визуализатора GS включены, автоматические исправления не будут применены: - + No tracks provided. Треки не предоставлены. - + Hash {} is not in database. Хэша {} нет в базе данных. - + Data track number does not match data track in database. Номер трека не совпадает с данными трека в базе данных. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Трек {} с хэшем {} не найден в базе данных. - + Дорожка {0} с хэшем {1} не найдена в базе данных. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Трек {} с хэшем {} предназначен для другой игры ({}). + Дорожка {0} с хэшем {1} предназначена для другой игры ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Трек {} с хешем {} не совпадает с треком базы данных. - + Дорожка {0} с хэшем {1} не соответствует дорожке в базе данных. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Исправления игр (НЕ рекомендуется изменять глобально) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - Хак отрицательного деления FPU (для игр Gundam) + Хак отрицательного деления FPU - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - Хак умножения FPU (для Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Использовать программный визуализатор для FMV + Хак умножения FPU - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Хак пропуска MPEG (пропускает видео/FMV) + Хак пропуска MPEG - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Хак предварительной загрузки TLB (для Goemon) + Хак предварительной загрузки TLB - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - Хак тайминга EE (хак тайминга общего назначения) + Хак тайминга EE - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Хак мгновенного DMA (хорошо подходит для решения проблем эмуляции кэша) + Хак мгновенного DMA - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - Хак флага OPH (для Bleach Blade Battlers) + Хак флага OPH - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Эмулировать GIF FIFO (точнее, но медленнее) + Эмулировать GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy хак (запрещается записывать когда занят) + Хак занятости DMA - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Задержка остановки VIF1 (для SOCOM 2 HUD/Spy Hunter) + Откладывать приостановки VIF1 - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Эмулировать VIF FIFO (точнее, но медленнее) + Эмулировать VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Полная синхронизация VU0 (точнее, но медленнее) + Полная синхронизация VU0 - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit хак (для Scarface The World is Yours/Crash Tag Team Racing) + Хак VU I Bit - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - Хак добавления VU (для игр Tri-Ace) + Хак добавления VU - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - Хак переполнения VU (Superman Returns) + Хак переполнения VU - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, для игр с M-Bit) + Синхронизация VU - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - Синхронизация VU XGKick (точнее, но медленнее) + Синхронизация VU XGkick - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Принудительное определение внутреннего FPS через Blit (при сбое автоматического определения) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Использовать программный визуализатор для FMV + + + + + + + + + + + + + + + + + + + + + + Unchecked + Деактивировано + + + + For Tales of Destiny. + Для Tales of Destiny. + + + + For Gundam Games. + Для игр Gundam. + + + + To avoid TLB miss on Goemon. + Для предотвращения ошибок TLB в играх Goemon. + + + + Needed for some games with complex FMV rendering. + Требуется для некоторых игр со сложной визуализацией FMV. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Пропускает видео/FMV в играх, чтобы избежать зависаний игры. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Известно, что это влияет на следующие игры: Bleach Blade Battlers, Growlanser II и III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + Универсальный тайм-хак. Известно, что это влияет на следующие игры: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Хорошо подходит для проблем с эмуляцией кэша. Известно, что это влияет на следующие игры: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Известно, что это влияет на следующие игры: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Корректнее, но медленнее. Известно, что это влияет на следующие игры: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Имитировать опережающее чтение VIF1 FIFO. Известно, что это влияет на следующие игры: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + Для SOCOM 2 HUD и зависания загрузки Spy Hunter. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + Для игр Tri-Ace: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Позволяет избежать постоянной рекомпиляции в некоторых играх. Известно, что это влияет на следующие игры: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Принудительная синхронизация VU0 для каждой инструкции COP2. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Задержка выполнения. Чтобы избежать проблем с синхронизацией при чтении или записи регистров VU. + + + + To check for possible float overflows (Superman Returns). + Для проверки возможных переполнений чисел с плавающей точкой (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Использовать точное время для VU XGKicks (медленнее). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Использовать альтернативный метод для расчета внутреннего FPS, чтобы избежать ложных показаний в некоторых играх. GameList - + Never Никогда - + Today Сегодня - + Yesterday Вчера - + {}h {}m {}ч {}м - + {}h {}m {}s {}ч {}м {}с - + {}m {}s {}м {}с - + {}s {}с - + {} hours {} часов - + {} minutes - {} минут + {} минут(ы) + + + + Downloading cover for {0} [{1}]... + Идет загрузка обложки для {0} [{1}]... GameListModel - + Type Тип - + Code Код - + Title Название - + File Title Название файла - + CRC Контрольная сумма - + Time Played Времени в игре - + Last Played Последняя игра - + Size Размер файла - + Region Регион - + Compatibility Совместимость @@ -8469,74 +8858,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Сканирование игр + + + Search Directories (will be scanned for games) Папки поиска (будут проверяться на наличие игр) - + Add... Добавить... - - - + + + Remove Удалить - + Search Directory Директория поиска - + Scan Recursively Рекурсивный - + Excluded Paths (will not be scanned) - Исключенные пути (не будут сканироваться) + Исключенные папки (не будут сканироваться) - + Directory... Папка... - + File... Файл... - + Scan For New Games Поиск новых игр - + Rescan All Games Повторить сканирование всех игр - + + Display + Отображение + + + + + Prefer English Titles + Предпочтение английским названиям + + + + Unchecked + Деактивировано + + + + For games with both a title in the game's native language and one in English, prefer the English title. + Для игр, имеющих название как на родном, так и на английском языке, отдавать предпочтение английскому названию. + + + Open Directory... Открыть папку... - + Select Search Directory Выберите папку поиска - + Scan Recursively? Сканировать повторно? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8545,12 +8960,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Это займёт больше времени, но будут определены файлы в подпапках. - + Select File Выберите файл - + Select Directory Выберите папку @@ -8558,32 +8973,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Список игр - + Game Grid Сетка игр - + Show Titles Показать названия - + All Types Все типы - + All Regions Все регионы - + Search... Поиск... @@ -8609,17 +9024,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Автор: </span>Автор патча</p><p>Описание будет здесь</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Автор: </strong>%1<br>%2 - + Unknown Неизвестно - + No description provided. Описание отсутствует. @@ -8637,7 +9052,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Перезагрузить патчи - + There are no patches available for this game. Нет доступных патчей для этой игры. @@ -8656,399 +9071,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Восстановить + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Сортировочное название: + + + + English Title: + Английское название: + + + Path: Путь: - + Serial: Серийный номер: - + CRC: Контрольная сумма: - + Type: Тип: - + PS2 Disc Диск PS2 - + PS1 Disc Диск PS1 - + ELF (PS2 Executable) ELF (PS2 Исполняемый) - + Region: Регион: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Бразилия) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (Китай) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Гонконг) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Япония) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Корея) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Тайвань) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (США) - + Other Другой - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Австралия) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (Южная Африка) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-A (Австралия) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Бельгия) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Европа/Австралия) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (Франция) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Финляндия) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Германия) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Греция) - + PAL-I (Italy) Leave the code as-is, translate the country's name. ПАЛ-I (Италия) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (Индия) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Европа/Австралия) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Нидерланды) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Норвегия) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Португалия) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Польша) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Россия) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Испания) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Скандинавия) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Швеция) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Швейцария) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Соединенное Королевство) - + Compatibility: Совместимость: - + Unknown Неизвестна - + Not Bootable Не загружается - + Reaches Intro Доходит до вступления - + Reaches Menu Доходит до меню - + In-Game В игре - + Playable Играбельно - + Perfect Превосходно - + Input Profile: Профиль ввода: - + Shared Refers to the shared settings profile. Общий - + Disc Path: Путь к диску: - + Browse... Выбрать... - + Clear Очистить - + Verify Проверить - + Search on Redump.org... Поиск на Redump.org... - + Select Disc Path Выбрать путь к диску - + Game is not a CD/DVD. Игра не является CD/DVD. - + Track list unavailable while virtual machine is running. Список треков недоступен во время работы виртуальной машины. - + # # - + Mode Режим - - + + Start Start - - + + Sectors Сектора - - + + Size Размер - - + + MD5 MD5 - - + + Status Статус - - - - - - + + + + + + %1 %1 - - + + <not computed> <не вычислено> - + Error Ошибка - + Cannot verify image while a game is running. Невозможно проверить изображение во время работы игры. - + One or more tracks is missing. Отсутствует один или более треков. - + Verified as %1 [%2] (Version %3). Верифицировано как %1 [%2] (версия %3). - + Verified as %1 [%2]. Верифицировано как %1 [%2]. @@ -9056,62 +9482,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Средство визуализации: - + Adapter: Видеокарта: - + Display Отображение - + Fullscreen Mode: Полноэкранный режим: - + Aspect Ratio: Соотношение сторон: - + Fit to Window / Fullscreen По размеру окна / Полноэкранный - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Авто стандартное (4:3 чересстрочная / 3:2 прогрессивная) - - + + Standard (4:3) Стандартное (4:3) - - + + Widescreen (16:9) Широкоэкранное (16:9) - + FMV Aspect Ratio: Соотношение сторон FMV: - - - + + + @@ -9121,12 +9547,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Отключено (по умолчанию) - - - - - - + + + + + + @@ -9137,92 +9563,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Автоматическое (по умолчанию) - + None (Interlaced, also used by Progressive) Не использовать (Чересстрочная, также используется Прогрессивная) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Волновое (сначала верхнее поле, пилообразное) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Волновое (сначала нижнее поле, пилообразное) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (сначала верхнее поле, полные кадры) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Сначала нижнее поле, Полные кадры) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Смешанное (сначала верхнее поле, объединить 2 поля) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Смешанное (сначала нижнее поле, объединить 2 поля) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Адаптивное (сначала верхнее поле, аналогично Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Адаптивное (сначала нижнее поле, аналогично Bob + Weave) - + Bilinear Filtering: Билинейная фильтрация: - - + + None Не использовать - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Билинейная (сглажено) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Билинейная (резко) - + Vertical Stretch: Растягивание по вертикали: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9230,355 +9656,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Обрезка: - + Left: Warning: short space constraints. Abbreviate if necessary. Слева: - - - - + + + + px - пикс. + пикс - + Top: Warning: short space constraints. Abbreviate if necessary. Сверху: - + Right: Warning: short space constraints. Abbreviate if necessary. Справа: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Снизу: - + Screen Offsets Смещение экрана - + VSync Вертикальная синхронизация - + Show Overscan Показывать область за пределами сканирования - + Enable Widescreen Patches Включить широкоэкранные патчи - + Enable No-Interlacing Patches Включить патчи устранения чересстрочности - + Anti-Blur Анти-размытие - + Ctrl+S Ctrl+S - + Disable Interlace Offset Выключить смещение чересстрочности - + Screenshot Size: Размер снимка экрана: - + Screen Resolution Разрешение экрана - + Internal Resolution Внутреннее разрешение - + Internal Resolution (Aspect Uncorrected) Внутреннее разрешение (без коррекции соотношения сторон) - + PNG PNG - + JPEG JPEG - + Quality: Качество: - - + + Rendering Визуализация - + Internal Resolution: Внутреннее разрешение: - + Mipmapping: Мипмаппинг (MIP-текстурирование): - - + + Off Выключено - + Basic (Generated Mipmaps) Базовое (сгенерированные MIP-карты) - + Full (PS2 Mipmaps) Полное (MIP-карты PS2) - - + + Texture Filtering: Сглаживание текстур: - - + + Nearest Ближайшее - - + + Bilinear (Forced) - Билинейная (принудительно) + Билинейная (принудительная) - - + + Bilinear (PS2) Билинейная (PS2) - - + + Bilinear (Forced excluding sprite) - Билинейная (принудительно, исключая спрайты) + Белинейная (принудительная, без спрайтов) - + Trilinear Filtering: Трелинейная фильтрация: - + Off (None) Выключено (не использовать) - + Trilinear (PS2) Трилинейная (PS2) - + Trilinear (Forced) Трилинейная (принудительно) - + Anisotropic Filtering: Анизотропная фильтрация: - + Dithering: Дизеринг: - + Scaled С масштабированием - + Unscaled (Default) Без масштабирования (по умолчанию) - + Blending Accuracy: Точность смешивания: - + Minimum Минимальная - + Basic (Recommended) Базовая (рекомендуется) - + Medium Средняя - + High Высокая - + Full (Slow) Полная (медленно) - + Maximum (Very Slow) Максимальная (очень медленное) - + Texture Preloading: Предзагрузка текстур: - + Partial Частичная - + Full (Hash Cache) Полная (хешировать кэш) - + + Software Rendering Threads: + Поточность программной визуализации: + + + + Skip Draw Range: + Диапазон пропуска прорисовки: + + + GPU Palette Conversion Преобразование палитры ГП - + Manual Hardware Renderer Fixes Ручные исправления аппаратного визуализатора - + Spin GPU During Readbacks Поддерживать нагрузку ГП во время простоя - + Spin CPU During Readbacks Поддерживать нагрузку ЦП во время простоя - - Extra Rendering Threads: - Дополнительные потоки визуализации: - - - + threads потоков - + Mipmapping Мипмаппинг (MIP-текстурирование) - + Auto Flush Автоочистка - + Hardware Fixes Аппаратные исправления - + Force Disabled Принудительно отключено - + Force Enabled Принудительно включено - + CPU Sprite Render Size: Размер визуализации спрайтов ЦП: - - - + + + 0 (Disabled) @@ -9586,79 +10017,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (отключено) - + 1 (64 Max Width) 1 (макс. ширина 64) - + 2 (128 Max Width) 2 (макс. ширина 128) - + 3 (192 Max Width) 3 (макс. ширина 192) - + 4 (256 Max Width) 4 (макс. ширина 256) - + 5 (320 Max Width) 5 (макс. ширина 320) - + 6 (384 Max Width) 6 (макс. ширина 384) - + 7 (448 Max Width) 7 (макс. ширина 448) - + 8 (512 Max Width) 8 (макс. ширина 512) - + 9 (576 Max Width) 9 (макс. ширина 576) - + 10 (640 Max Width) 10 (макс. ширина 640) - - Skipdraw Range: - Диапазон пропусков: - - - + Frame Buffer Conversion Преобразование буфера кадров - + Disable Depth Emulation Отключить эмуляцию глубины - + Disable Safe Features Отключить безопасные функции - + Preload Frame Data Предзагрузка данных кадра @@ -9669,606 +10095,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Текстура внутри объекта визуализации - + 1 (Normal) 1 (нормально) - + 2 (Aggressive) 2 (агрессивно) - + Software CLUT Render: Программная визуализация CLUT: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Отключено (по умолчанию) - + Enabled (Exact Match) Включено (точное соответствие) - + Enabled (Check Inside Target) Включено (проверить внутри объекта) - + Upscaling Fixes Исправления масштабирования - + Half Pixel Offset: Смещение полупикселя: - + Normal (Vertex) Нормальный (вершины) - + Special (Texture) Специальный (текстуры) - + Special (Texture - Aggressive) Специальный (текстуры - агрессивно) - + Round Sprite: Округление спрайтов: - + Half Половина - + Full Полное - + Texture Offsets: Смещение текстур: - + X: X: - + Y: Y: - + Merge Sprite Объединять спрайты - + Align Sprite Выравнивать спрайты - + Deinterlacing: Устранение чересстрочности: - + Sprites Only Только спрайты - + Sprites/Triangles Спрайты/треугольники - + Blended Sprites/Triangles Смешанные спрайты/треугольники - + Auto Flush: Автоочистка: - + Enabled (Sprites Only) Включено (только спрайты) - + Enabled (All Primitives) Включено (все примитивы) - + Texture Inside RT: Текстура внутри объекта визуализации: - + Inside Target Внутри объекта - + Merge Targets Объединять объекты - + Disable Partial Source Invalidation Отключить частичную проверку источника - + Read Targets When Closing Считывать объекты при закрытии - + Estimate Texture Region Оценка области текстуры - + Disable Render Fixes Выключить исправления визуализации - + Unscaled Palette Texture Draws Визуализация палитровых текстур без масштабирования - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Хак Wild Arms - + Bilinear Dirty Upscale: Билинейный "грязный" апскейлинг: - + Force Bilinear Принудительно билинейная - + Force Nearest Принудительно близко - + Texture Replacement Замена текстур - + Search Directory Папка поиска - - + + Browse... Выбрать... - - + + Open... Открыть... - - + + Reset Сбросить - + PCSX2 will dump and load texture replacements from this directory. PCSX2 будет производить дамп и загрузку замены текстур из этой папки. - + Options Настройки - + Dump Textures Дамп текстур - + Dump Mipmaps Дамп мипмапов - + Dump FMV Textures Дамп текстур FMV - - - Async Texture Loading - Асинхронная загрузка текстур - - - + Load Textures Загрузка текстур - + Precache Textures Прекешировать текстуры - + Post-Processing Постобработка - + Sharpening/Anti-Aliasing - Усиление резкости/Сглаживание + Усиление резкости/сглаживание - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Контрастно-адаптивная резкость (CAS): - - + + None (Default) Не использовать (по умолчанию) - + Sharpen Only (Internal Resolution) Только резкость (внутреннее разрешение) - + Sharpen and Resize (Display Resolution) Повышать резкость и увеличивать (разрешение экрана) - + Sharpness: Резкость: - + FXAA FXAA - + Filters Фильтры - + TV Shader: Шейдер ТВ: - + Scanline Filter Чересстрочный фильтр - + Diagonal Filter Диагональный фильтр - + Triangular Filter Треугольный фильтр - + Wave Filter Волновой фильтр - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Лоттес ЭЛТ - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS снижение дискретизации (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) Уменьшение дискретизации NxAGSS (Nx Automatic Grid SuperSampling) - + Shade Boost Усиление оттенков - + Brightness: Яркость: - + Contrast: Контрастность: - Saturation Насыщенность - + OSD Индикация - + On-Screen Display Индикация на экране - + OSD Scale: Масштаб индикации на экране: - + Show Indicators Показывать индикаторы - + Show Resolution Показывать разрешение - + Show Inputs Показывать нажатия кнопок - + Show GPU Usage Показывать нагрузку ГП - + Show Settings Показывать настройки - + Show FPS Показывать частоту кадров - + + + Disable Dual-Source Blending + Отключить двухисточниковое смешивание + + + Disable Shader Cache Отключить кэш шейдеров - + Disable Vertex Shader Expand Отключить расширение вертексных шейдеров - + Show Statistics Показывать статистику - + + + Asynchronous Texture Loading + Асинхронная загрузка текстур + + + + Saturation: + Насыщенность: + + + Show CPU Usage Показывать нагрузку ЦП - + Warn About Unsafe Settings Предупреждать о небезопасных настройках - + Show Frame Times Показывать время кадров - + Recording Запись - + Video Dumping Directory Папка дампов видео - + Capture Setup Настройка захвата - + Container: Контейнер: - - + + Codec: Кодек: - - + + Extra Arguments Дополнительные аргументы - + Capture Audio Захват звука - + Resolution: Разрешение: - + x x - + Auto Авто - + Capture Video Захват видео - + Advanced Advanced here refers to the advanced graphics options. Расширенные - + Advanced Options Расширенные настройки - + Hardware Download Mode: Режим аппаратной загрузки: - + Accurate (Recommended) Точный (рекомендуется) - + Disable Readbacks (Synchronize GS Thread) Отключить обратные считывания (синхронизировать поток GS) - + Unsynchronized (Non-Deterministic) Несинхронизированный (неопределённый) - + Disabled (Ignore Transfers) Отключено (игнорировать переводы) - + GS Dump Compression: Сжатие дампа GS: - + Uncompressed Без сжатия - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Пропускать повторяющиеся кадры - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10278,69 +10714,63 @@ Swap chain: see Microsoft's Terminology Portal. Использовать Blit Swap Chain - + Disable Threaded Presentation Отключить многопоточное отображение - - + + Bitrate: Битрейт: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. кбит/с - + Allow Exclusive Fullscreen: Разрешить эксклюзивный полноэкранный режим: - + Disallowed Запрещено - + Allowed Разрешено - + Debugging Options Настройки отладки - + Override Texture Barriers: Сместить барьеры текстур: - + Use Debug Device Использовать устройство отладки - - - Disable Dual Source Blending - Отключить двухисточниковое смешивание - - - + Show Speed Percentages Показывать процентные показатели скорости - + Disable Framebuffer Fetch Отключить выборку буфера кадров @@ -10409,8 +10839,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Использовать глобальные настройки [%1] @@ -10462,8 +10892,9 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked - Не отмечено + Деактивировано @@ -10521,11 +10952,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Контролирует уровень точности эмуляции модуля смешивания GS.<br> Чем выше значение, тем точнее смешивание эмулируется в шейдере и тем выше будет ухудшение скорости эмуляции.<br> Обратите внимание, что возможность смешивания в Direct3D ограничена, в отличие от OpenGL/Vulkan. + + + Software Rendering Threads + Поточность программной визуализации + Software CLUT Render Программная визуализация CLUT + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Отключение поддержки буферов глубины в кэше текстур. Это может увеличить скорость, но, вероятно, вызовет различные глюки. + This option disables game-specific render fixes. @@ -10577,6 +11018,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Исправляет проблемы с апскейлом (вертикальными линиями) в играх от Namco, например Ace Combat, Tekken, Soul Calibur и т.д. + + + Dumps replaceable textures to disk. Will reduce performance. + Дамп заменяемых текстур на диск. Снижает производительность. + + + + Includes mipmaps when dumping textures. + Включает MIP-карты при дампе текстур. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Разрешает дамп текстур при активных FMV. Не следует включать эту функцию. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Загружает заменяющие текстуры в рабочий поток, уменьшая микрозадержки, когда заменяющие текстуры включены. + + + + Loads replacement textures where available and user-provided. + Загружает заменяющие текстуры, если они доступны и предоставлены пользователем. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Предварительно загружает все заменяющие текстуры в память. Не требуется при асинхронной загрузке. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Включает контрастно-адаптивную резкость FidelityFX. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Определяет интенсивность эффекта повышения резкости в постобработке CAS. + + + + Adjusts brightness. 50 is normal. + Регулирует яркость. Нормальный - 50. + + + + Adjusts contrast. 50 is normal. + Регулирует контрастность. Нормальный - 50. + + + + Adjusts saturation. 50 is normal. + Регулирует насыщенность. Нормальный - 50. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10592,11 +11088,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Отображает различные настройки и текущие значения этих настроек, полезно для отладки. - - - Shows the current controller state of the system in the bottom left corner of the display. - Отображает текущее состояние контроллера системы в нижнем левом углу экрана. - Displays a graph showing the average frametimes. @@ -10621,7 +11112,7 @@ Swap chain: see Microsoft's Terminology Portal. Checked - Отмечено + Активировано @@ -10634,7 +11125,7 @@ Swap chain: see Microsoft's Terminology Portal. Включите этот параметр, чтобы частота обновления PCSX2' соответствовала текущему монитору или экрану. Вертикальная синхронизация автоматически отключается, когда это невозможно (например, при работе со скоростью выше 100%). - + Integer Scaling Целочисленное масштабирование @@ -10723,8 +11214,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Безрамочный полноэкранный @@ -10744,7 +11235,7 @@ Swap chain: see Microsoft's Terminology Portal. 0px - 0 пикс. + 0пикс @@ -10866,11 +11357,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Отправляет бесполезную работу на ГП во время операций считывания, чтобы предотвратить переход в режим энергосбережения. Это может улучшить производительность, но с существенным увеличением энергопотребления. - - - Extra Rendering Threads - Дополнительные потоки визуализации - 2 threads @@ -10921,11 +11407,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Конец диапазона пропуска кадров - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Отключение поддержки буфера глубины в кэше текстур. Это может увеличить скорость, но, вероятно, вызовет различные глюки. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11044,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. Масштаб индикации на экране - + Show OSD Messages Показывать сообщения индикации на экране @@ -11084,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Отображает счетчики для внутреннего графического использования, полезные для отладки. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Отображает текущее состояние системного контроллера в левом нижнем углу экрана. + Displays warnings when settings are enabled which may break games. @@ -11136,30 +11622,40 @@ Swap chain: see Microsoft's Terminology Portal. Отображает кадры в основном потоке GS вместо рабочего потока. Используется для отладки проблем с временем отображения кадров. Может уменьшить вероятность пропуска кадра или уменьшить разрыв изображения за счет более непостоянного времени отображения кадров. Применяется только к Vulkan-визуализатору. - + + Enable Debug Device + Включить отладочное устройство + + + + Enables API-level validation of graphics commands. + Включает проверку графических команд на уровне API. + + + GS Download Mode Режим загрузки GS - + Accurate Точный - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Пропускает синхронизацию с потоком GS и ГП хоста для загрузок GS. Может привести к значительному увеличению скорости на более медленных системах, но с потерей множества визуальных эффектов. Если игры выводятся с дефектами, и эта опция активирована, пожалуйста, сначала отключите её. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. По умолчанию - - + + (Default) (по умолчанию) @@ -11167,405 +11663,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Графика - + Save Screenshot Сохранить снимок экрана - + Toggle Video Capture Вкл/выкл захват видео - + Save Single Frame GS Dump Сохранить дамп одного кадра GS - + Save Multi Frame GS Dump Сохранить мультикадровый дамп GS - + Toggle Software Rendering Вкл/выкл программную визуализацию - + Increase Upscale Multiplier Увеличить множитель апскейла - + Decrease Upscale Multiplier Уменьшить множитель апскейла - + Toggle On-Screen Display Вкл/выкл индикацию на экране - + Cycle Aspect Ratio Задать соотношение сторон - + Aspect ratio set to '{}'. Соотношение сторон установлено на '{}'. - + Cycle Hardware Mipmapping Циклический аппаратный мипмаппинг (MIP-текстурирование) - + Hardware mipmapping set to '{}'. Аппаратный мипмаппинг (MIP-текстурирование) установлен на '{}'. - + Cycle Deinterlace Mode Задать режим деинтерлейса - + Deinterlace mode set to '{}'. Режим деинтерлейсинга установлен на '{}'. - + Toggle Texture Dumping Вкл/выкл дамп текстур - + Texture dumping is now enabled. Дампинг текстур включён. - + Texture dumping is now disabled. Дампинг текстур отключен. - + Toggle Texture Replacements Вкл/выкл замену текстур - + Texture replacements are now enabled. Замена текстур включена. - + Texture replacements are now disabled. Замена текстур отключена. - + Reload Texture Replacements Перезагрузить замены текстур - + Texture replacements are not enabled. Замена текстур не включена. - + Reloading texture replacements... Перезагрузка замененных текстур... - + Target speed set to {:.0f}%. Целевая скорость установлена на {:.0f}%. - + Volume: Muted Громкость: Выкл - + Volume: {}% Громкость: {}% - - Save slot {} selected (last save: {}). - Выбран слот сохранения {} (последнее сохранение: {}). + + Save slot {0} selected (last save: {1}). + Выбран слот сохранения {0} (последнее сохранение: {1}). - + Save slot {} selected (no save yet). Выбран слот сохранения {} (пока сохранения нет). - + No save state found in slot {}. Не найдено сохраненного состояния в слоте {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System Система - + Open Pause Menu Открыть меню паузы - + Open Achievements List Открыть список достижений - + Open Leaderboards List - Открыть список лидеров + Открыть список таблицы лидеров - + Toggle Pause Вкл/выкл паузу - + Toggle Fullscreen Вкл/выкл полноэкранный режим - + Toggle Frame Limit Вкл/выкл ограничение кадров - + Toggle Turbo / Fast Forward Вкл/выкл турбо / перемотка вперед - + Toggle Slow Motion Вкл/выкл замедление - + Turbo / Fast Forward (Hold) - Турбо / Быстрая перемотка вперед (удержание) + Турбо / Перемотка вперед (удержание) - + Increase Target Speed Увеличить целевую скорость - + Decrease Target Speed Уменьшит целевую скорость - + Increase Volume Увеличить громкость - + Decrease Volume Уменьшить громкость - + Toggle Mute Вкл/выкл звук - + Frame Advance Покадровый запуск - + Shut Down Virtual Machine Выключить виртуальную машину - + Reset Virtual Machine Сбросить виртуальную машину - + Toggle Input Recording Mode Вкл/выкл режим записи ввода - - - - + + + + Save States Сохраненные состояния - + Select Previous Save Slot Выбрать предыдущий слот сохранения - + Select Next Save Slot Выбрать следующий слот сохранения - + Save State To Selected Slot Сохранить состояние в выбранном слоте - + Load State From Selected Slot Загрузить состояние из выбранного слота - + Save State To Slot 1 Сохранить состояние в слот 1 - + Load State From Slot 1 Загрузить состояние из слота 1 - + Save State To Slot 2 Сохранить состояние в слот 2 - + Load State From Slot 2 Загрузить состояние из слота 2 - + Save State To Slot 3 Сохранить состояние в слот 3 - + Load State From Slot 3 Загрузить состояние из слота 3 - + Save State To Slot 4 Сохранить состояние в слот 4 - + Load State From Slot 4 Загрузить состояние из слота 4 - + Save State To Slot 5 Сохранить состояние в слот 5 - + Load State From Slot 5 Загрузить состояние из слота 5 - + Save State To Slot 6 Сохранить состояние в слот 6 - + Load State From Slot 6 Загрузить состояние из слота 6 - + Save State To Slot 7 Сохранить состояние в слот 7 - + Load State From Slot 7 Загрузить состояние из слота 7 - + Save State To Slot 8 Сохранить состояние в слот 8 - + Load State From Slot 8 Загрузить состояние из слота 8 - + Save State To Slot 9 Сохранить состояние в слот 9 - + Load State From Slot 9 Загрузить состояние из слота 9 - + Save State To Slot 10 Сохранить состояние в слот 10 - + Load State From Slot 10 Загрузить состояние из слота 10 @@ -11725,6 +12221,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Левый аналоговый стик + + + + Right Analog + Правый аналоговый стик + + + + Cross + Крестик + + + + Square + Квадрат + + + + Triangle + Треугольник + + + + Circle + Круг + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + Крестовина вниз + + + + D-Pad Right️ + Крестовина вправо️ + + + + D-Pad Up️ + Крестовина вверх️ + + + + D-Pad Left️ + Крестовина влево️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11752,137 +12338,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Действия - + Pause On Focus Loss Пауза при потере фокуса - + Inhibit Screensaver Запретить экранную заставку - + Save State On Shutdown Сохранять состояние при отключении - + Pause On Start Пауза при запуске - + Confirm Shutdown Подтверждение отключения - + Create Save State Backups Создание резервных копий сохраненных состояний - + Enable Discord Presence Включить статус активности в Discord - + Enable Per-Game Settings Включить отдельные настройки для игр - + Game Display Игровой экран - + Start Fullscreen Запускать в полноэкранном режиме - + Double-Click Toggles Fullscreen Двойной клик для переключения полноэкранного режима - + Render To Separate Window Рендеринг в отдельном окне - + Hide Main Window When Running Скрывать главное окно при запуске - + Disable Window Resizing Отключить изменение размера окна - + Hide Cursor In Fullscreen Скрывать курсор в полноэкранном режиме - + Preferences Предпочтения - + Language: Язык: - + Theme: Тема: - + Automatic Updater Автоматическое обновление - + Update Channel: Канал обновлений: - + Current Version: Текущая версия: - + Enable Automatic Update Check Включить автоматическую проверку обновлений - + Check for Updates... Проверить наличие обновлений... @@ -11971,7 +12557,7 @@ Right click to clear binding Checked - Отмечено + Активировано @@ -12002,7 +12588,7 @@ Right click to clear binding When enabled, custom per-game settings will be applied. Disable to always use the global configuration. - При включении будут применяться пользовательские настройки для каждой игры. При отключении будут использоваться глобальные настройки. + Включение этой опции приводит к применению индивидуальных настроек для каждой игры. Отключите эту опцию, чтобы всегда использовать глобальные настройки. @@ -12025,7 +12611,7 @@ Right click to clear binding Unchecked - Не отмечено + Деактивировано @@ -12062,7 +12648,7 @@ Right click to clear binding Renders the game to a separate window, instead of the main window. If unchecked, the game will display over the top of the game list. - Отображает игру в отдельном окне, вместо главного окна. Если флажок снят, игра будет отображаться поверх списка игр. + Отображает игру в отдельном окне, вместо главного окна. Если флажок деактивирован, игра будет отображаться поверх списка игр. @@ -12075,7 +12661,7 @@ Right click to clear binding Отображает игру, в которую вы сейчас играете, как часть вашего профиля в Discord. - + System Language [Default] Язык системы [Default] @@ -12132,14 +12718,14 @@ Right click to clear binding - - + + Change Disc Сменить диск - + Load State Загрузить состояние @@ -12644,13 +13230,13 @@ Right click to clear binding - + Start Big Picture Mode Запустить режим Big Picture - + Big Picture In Toolbar Big Picture @@ -12662,7 +13248,7 @@ Right click to clear binding - + Show Advanced Settings Показать расширенные настройки @@ -12673,7 +13259,7 @@ Right click to clear binding - + Video Capture Запись видео @@ -12688,27 +13274,27 @@ Right click to clear binding Редактировать патчи... - + Internal Resolution Внутреннее разрешение - + %1x Scale Масштаб %1x - + Select location to save block dump: Выберите место, чтобы сохранить дамп блоков: - + Do not show again Больше не показывать - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12721,168 +13307,173 @@ Are you sure you want to continue? Вы уверены, что хотите продолжить? - + %1 Files (*.%2) %1 файлов (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Вход выполнен как %1 (%2, %3 softcore). %4 непрочитанных сообщений. + + + Confirm Shutdown Подтверждение отключения - + Are you sure you want to shut down the virtual machine? Вы уверены, что хотите выключить виртуальную машину? - + Save State For Resume Сохранить состояние для дальнейшего запуска - - - - - - + + + + + + Error Ошибка - + You must select a disc to change discs. Необходимо выбрать диск для изменения дисков. - + Properties... Свойства... - + Open Containing Directory... Refers to the directory where a game is contained. Открыть расположение содержимого... - + Set Cover Image... Установить обложку... - + Exclude From List Исключить из списка - + Reset Play Time Сбросить время игры - + Default Boot Загрузка по умолчанию - + Fast Boot Быстрая загрузка - + Full Boot Полная загрузка - + Boot and Debug Загрузка и отладка - + Add Search Directory... Добавить папку поиска... - + Start File Запустить файл - + Start Disc Запустить диск - + Select Disc Image Выберите образ диска - + Updater Error Ошибка при обновлении - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>К сожалению, вы пытаетесь обновить версию PCSX2, которая не является официальным релизом с GitHub. Для предотвращения несовместимостей, автообновление включено только в официальных сборках.</p><p>Чтобы получить официальную сборку, пожалуйста, загрузите ее по ссылке ниже:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Автоматическое обновление не поддерживается на текущей платформе. - + Confirm File Creation Подтвердить создание файла - + The pnach file '%1' does not currently exist. Do you want to create it? Файл pnach '%1' в настоящее время не существует. Хотите ли вы создать его? - + Failed to create '%1'. Не удалось создать '%1'. - + Input Recording Files (*.p2m2) Файлы записи ввода (*.p2m2) - + Paused Пауза - + Load State Failed Не удалось загрузить состояние - + Cannot load a save state without a running VM. Невозможно загрузить сохраненное состояние без запущенной виртуальной машины. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? Новый ELF не может быть загружен без перезагрузки виртуальной машины. Хотите ли вы перезагрузить виртуальную машину сейчас? - + Cannot change from game to GS dump without shutting down first. Невозможно перейти из игры в дамп GS без предварительного выключения. - + Failed to get window info from widget Не удалось получить информацию о новом окне от виджета @@ -12897,97 +13488,97 @@ Are you sure you want to continue? Все типы файлов (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Остановить режим Big Picture - + Exit Big Picture In Toolbar Выйти из Big Picture - + Game Properties Свойства игры - + Game properties is unavailable for the current game. Свойства игры недоступны для текущей игры. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Не удалось найти устройства CD/DVD-ROM. Пожалуйста, убедитесь, что у вас есть подключенные устройства и достаточные права доступа к ним. - + Select disc drive: Выберите дисковод: - + This save state does not exist. Данного сохраненного состояния не существует. - + Select Cover Image Выберите изображение обложки - - All Cover Image Types (*.jpg *.jpeg *.png) - Все типы изображений для обложек (*.jpg *.jpeg *.png) - - - + Cover Already Exists Обложка уже существует - + A cover image for this game already exists, do you wish to replace it? Обложка для этой игры уже существует, хотите ее заменить? - - - - + + + + Copy Error Ошибка копирования - + Failed to remove existing cover '%1' Не удалось удалить существующую обложку '%1' - + Failed to copy '%1' to '%2' Не удалось скопировать '%1' в '%2' - + Failed to remove '%1' Не удалось убрать '%1' - - + + Confirm Reset Подтвердите сброс - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + Все типы изображений для обложек (*.jpg *.jpeg *.png *.png *.webp) + + + You must select a different file to the current cover image. Вы должны выбрать другой файл для текущего изображения обложки. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12996,12 +13587,12 @@ This action cannot be undone. Это действие нельзя отменить. - + Load Resume State Загрузить состояние для продолжения - + A resume save state was found for this game, saved at: %1. @@ -13014,70 +13605,70 @@ Do you want to load this state, or start from a fresh boot? Хотите ли вы загрузить это состояние или начать с новой загрузки? - + Fresh Boot Новая загрузка - + Delete And Boot Удалить и загрузить - + Failed to delete save state file '%1'. Не удалось удалить файл сохранения состояния '%1'. - + Load State File... Загрузить файл состояния... - + Load From File... Загрузить из файла... - - + + Select Save State File Выберите файл сохраненного состояния - - + + Save States (*.p2s) Сохраненные состояния (*.p2s) - + Delete Save States... Удалить сохраненные состояния... - + Undo Load State Отменить загрузку состояния - + Resume (%2) Возобновить (%2) - + Load Slot %1 (%2) Загрузить ячейку %1 (%2) - - + + Delete Save States Удалить сохраненные состояния - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13086,42 +13677,42 @@ The saves will not be recoverable. Сохранения нельзя будет восстановить. - + %1 save states deleted. Удалено %1 сохраненных состояний. - + Save To File... Сохранить в файл... - + Empty Пусто - + Save Slot %1 (%2) Ячейка сохранения %1 (%2) - + Confirm Disc Change Подтвердить смену диска - + Do you want to swap discs or boot the new image (via system reset)? Хотите поменять местами диски или загрузить новый образ (через сброс системы)? - + Swap Disc Поменять диск - + Reset Перезагрузить @@ -13129,8 +13720,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Карта памяти '{}' была сохранена в память устройства. @@ -13211,6 +13802,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. В 2 раза больше стандартной карты памяти. Возможны некоторые проблемы с совместимостью. @@ -13261,11 +13853,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Невозможно преобразовать карту памяти - - - 2x larger as a standard Memory Card. May have some compatibility issues. - В 2 раза больше стандартной карты памяти. Возможны некоторые проблемы с совместимостью. - MemoryCardCreateDialog @@ -13391,103 +13978,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Консольные порты - + Memory Cards Карты памяти - + Folder: Папка: - + Browse... Выбрать... - + Open... Открыть... - + Reset Сбросить - + Name Имя - + Type Тип - + Formatted Форматированный - + Last Modified Последнее изменение - + Refresh Обновить - + + Create Создать - + Duplicate Дублировать - + Rename Переименовать - + Convert Преобразовать - + Delete Удалить - + Settings Настройки - + Automatically manage saves based on running game Автоматическое управление сохранениями в зависимости от запущенной игры - + Auto-eject Memory Cards when loading save states Автоматическое извлечение карт памяти при загрузке сохраненных состояний @@ -13496,7 +14084,7 @@ The saves will not be recoverable. Checked - Отмечено + Активировано @@ -13657,58 +14245,58 @@ This action cannot be reversed, and you will lose any saves on the card.Память - + Copy Address Копировать адрес - + Go to in disassembly Перейти к дизассемблированию - - + + Go to address Перейти к адресу - + Show as 1 byte Показать как 1 байт - + Show as 2 bytes Показать как 2 байт - + Show as 4 bytes Показать как 4 байт - + Show as 8 bytes Показать как 8 байт - + Copy Byte Копировать байт - + Copy Segment Копировать сегмент - + Copy Character Копировать символ - + Paste Вставить @@ -13758,10 +14346,15 @@ This action cannot be reversed, and you will lose any saves on the card.Введите имя автора - + Input Recording Files (*.p2m2) Файлы записи ввода (*.p2m2) + + + Select a File + Выберите файл + Pad @@ -13855,7 +14448,7 @@ This action cannot be reversed, and you will lose any saves on the card. Apply Pressure - Применить давление + Применить силу нажатия @@ -13957,6 +14550,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Устанавливает мертвую зону аналогового стика, т.е. долю движения стика, которая будет игнорироваться. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13965,7 +14568,7 @@ This action cannot be reversed, and you will lose any saves on the card. Button/Trigger Deadzone - Кнопка/Мёртвая зона триггера + Кнопка/мёртвая зона триггера @@ -13973,14 +14576,14 @@ This action cannot be reversed, and you will lose any saves on the card.Устанавливает мертвую зону для активации кнопок/триггеров, то есть долю триггера, которая будет игнорироваться. - - Analog light is now on for port {} / slot {} - Индикатор аналогового режима включён на порте {} / слоте {} + + Analog light is now on for port {0} / slot {1} + На порту {0} / слоте {1} активирован индикатор аналогового режима. - - Analog light is now off for port {} / slot {} - Индикатор аналогового режима выключен на порте {} / слоте {} + + Analog light is now off for port {0} / slot {1} + На порту {0} / слоте {1} отключен индикатор аналогового режима. @@ -14010,12 +14613,12 @@ This action cannot be reversed, and you will lose any saves on the card. Modifier Pressure - Модификатор давления + Модификатор силы нажатия Sets the pressure when the modifier button is held. - Задает давление при удерживании кнопки модификатора. + Задает силу нажатия при удерживании кнопки модификатора. @@ -14027,13 +14630,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Порт контроллера {}, слот {} подключен, но сохраненное состояние содержит {}. -Оставляем исходный тип контроллера подключенным, но это может вызвать проблемы. - Strum Up @@ -14104,40 +14700,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Гитара + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Порт контроллера {0}, слот {1} подключён {2}, но сохранение связано с другим контроллером {3}. +Первоначально подключенный тип контроллера будет продолжать использоваться, но могут возникнуть проблемы. + Patch - + Failed to open {}. Built-in game patches are not available. Не удалось открыть {}. Встроенные игровые патчи недоступны. - + {} GameDB patches {} GameDB патчей - + {}{} game patches {}{} игровых патчей - + {}{} cheat patches {}{} чит патчи - + {} are active. {} активно. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. Никаких читов или патчей (широкоэкранных, совместимости или других) не найдено / не включено. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 использует вашу камеру для эмуляции камеры EyeToy, подключенной к виртуальной PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 использует ваш микрофон для эмуляции микрофона, подключенного к виртуальной PS2 + + QObject @@ -14155,13 +14774,13 @@ The URL was: %1 URL-адрес: %1 - + HDD Creator Создание HDD - + Failed to create HDD image Не удалось создать образ HDD @@ -14366,7 +14985,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14416,222 +15034,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Использовать глобальные настройки [Включено] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Использовать глобальные настройки [Отключено] + + + + + Use Global Setting [%1] + Использовать глобальные настройки [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings Настройки PCSX2 - + Restore Defaults - Сбросить настройки + Восстановить по умолчанию - + Copy Global Settings Копировать глобальные настройки - + Clear Settings Очистить настройки - + Close Закрыть - - - Summary - Содержание - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Содержание</strong><hr>Эта страница показывает подробности выбранной игры. Изменение профиля ввода установит схему привязки контроллера для этой игры на выбраный профиль, а не конфигурацию по умолчанию (общий). Список треков и проверка дампа могут использоваться для определения соответствия образа диска известному хорошему дампу. Если он не совпадает, игра может быть сломанна. - + + + Summary + Содержание + + + Summary is unavailable for files not present in game list. - Сводка недоступна для файлов, которых нет в списке игр. + Содержание недоступно для файлов, отсутствующих в списке игр. - + Interface Интерфейс - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Настройки интерфейса</strong><hr>Эти параметры управляют внешним видом и поведением программы.<br><br>Наведите курсор мыши на параметр, чтобы получить дополнительную информацию. - + Game List Список игр - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Настройки списка игр</strong><hr>В приведенном выше списке показаны папки, в которых PCSX2 будет выполнять поиск для заполнения списка игр. Папки поиска можно добавлять, удалять и переключать на рекурсивные/нерекурсивные. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>Настройки BIOS</strong><hr>Настройте свой BIOS здесь.<br><br>Наведите курсор мыши на параметр, чтобы получить дополнительную информацию. - + Emulation Эмуляция - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Настройки эмуляции</strong><hr>Эти параметры влияют на конфигурацию частоты кадров и настройки игры.<br><br>Наведите курсор мыши на параметр, чтобы получить дополнительную информацию. - + Patches Патчи - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - <strong>Патчи</strong><hr>Этот раздел позволяет выбирать дополнительные патчи, применимые к игре, которые могут обеспечить улучшение игрового процесса, производительности или качества визуальных эффектов. + <strong>Патчи</strong><hr>Этот раздел позволяет выбрать дополнительные патчи, применимые к игре, которые могут обеспечить улучшение игрового процесса, производительности или качества визуальных эффектов. - + Cheats Читы - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - <strong>Читы</strong><hr>В этом разделе вы можете выбрать, какие читы вы хотите включить. Вы не можете включить/выключить читы без лейблов для pnach-файлов старого формата, они будут автоматически активированы, если включена опция "Включить читы". + <strong>Читы</strong><hr>В этом разделе вы можете выбрать, какие читы вы хотите включить. Вы не можете включать/отключать читы без меток для pnach-файлов старого формата, они будут автоматически активированы, если включена опция "Включить читы". - + Game Fixes Исправления игр - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - <strong>Настройки исправлений игр</strong><hr>Исправления могут помочь обойти неправильную эмуляцию в некоторых играх.<br>Однако они также могут вызывать проблемы в играх при неправильном использовании.<br> Лучше всего оставить их все отключенными, если не указано иное. + <strong>Настройки исправления игр</strong><hr>Исправления игр могут помочь обойти неправильную эмуляцию в некоторых играх.<br>Однако они также могут вызывать проблемы в играх при неправильном использовании.<br>Лучше всего оставить их все отключенными, если нет каких-либо рекомендаций. - + Graphics Графика - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Настройки графики</strong><hr>Эти параметры определяют конфигурацию графического вывода.<br><br>Наведите курсор мыши на параметр, чтобы получить дополнительную информацию. - + Audio - Звук + Аудио - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Настройки аудио</strong><hr>Эти параметры управляют выводом звука консоли.<br><br>Наведите курсор мыши на параметр, чтобы получить дополнительную информацию. - + Memory Cards Карты памяти - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Настройки карт памяти</strong><hr>Здесь можно создавать и настраивать карты памяти.<br><br>Наведите курсор мыши на параметр, чтобы получить дополнительную информацию. - + Network & HDD Сеть и HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Настройки сети и HDD</strong><hr>Эти параметры управляют сетевым подключением и внутренним HDD-хранилищем консоли.<br><br>Наведите курсор мыши на параметр, чтобы получить дополнительную информацию. - + Folders Папки - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Настройки папок</strong><hr>Эти параметры управляют тем, где PCSX2 будет сохранять файлы данных во время работы. - + Achievements Достижения - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Настройки достижений</strong><hr>Эти параметры управляют реализацией RetroAchievements в PCSX2, позволяя получать достижения в играх. - + RAIntegration is being used, built-in RetroAchievements support is disabled. Используется RAIntegration, встроенная поддержка RetroAchievements отключена. - + Advanced - Расширенные + Продвинутые - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Дополнительные настройки</strong><hr>Это дополнительные параметры, определяющие конфигурацию эмулируемой консоли.<br><br>Наведите курсор мыши на параметр, чтобы получить дополнительную информацию. - + Debug Отладка - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Настройки отладки</strong><hr>Это параметры, которые могут быть использованы для регистрации внутренней информации о приложении. <strong>Не изменяйте их, если не знаете, что делаете</strong>, это приведет к значительному замедлению работы и может привести к потере большого количества дискового пространства. - + Confirm Restore Defaults - Подтвердить восстановление по умолчанию + Подтвердить сброс по умолчанию - + Are you sure you want to restore the default settings? Any preferences will be lost. Вы уверены, что хотите восстановить настройки по умолчанию? Все настройки будут потеряны. - + Reset UI Settings Сбросить настройки интерфейса - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14644,12 +15283,12 @@ Do you want to continue? Вы хотите продолжить? - + Per-game configuration copied from global settings. Конфигурация игры скопирована из глобальных настроек. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14662,33 +15301,15 @@ Do you want to continue? Вы хотите продолжить? - + Per-game configuration cleared. - Конфигурация игры удалена. + Конфигурация игры очищена. - + Recommended Value Рекомендуемое значение - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Использовать глобальные настройки [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Использовать глобальные настройки [Disabled] - - - - - Use Global Setting [%1] - Использовать глобальные настройки [%1] - SetupWizardDialog @@ -14774,8 +15395,8 @@ Do you want to continue? - Open in Explorer... - Открыть в проводнике... + Open BIOS Folder... + Открыть папку BIOS... @@ -15042,97 +15663,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. ТИП ОЖИДАНИЯ - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. ГОТОВ - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. - WAIT SUSPEND + ПРИОСТАНОВКА РАБОТЫ - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. - NONE + НЕТ - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. - WAKEUP REQUEST + ВОЗОБНОВЛЕНИЕ РАБОТЫ - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. ЗАДЕРЖКА - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15338,6 +15959,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Масштабирует изображение перекрестия, заданное выше. + + + %.0f%% + %.0f%% + Cursor Color @@ -15369,6 +15995,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Масштабирует положение для имитации кривизны ЭЛТ-телевизора. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15384,6 +16016,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Устанавливает положение горизонтального центра эмулируемого экрана. + + + + %.0fpx + %.0fпикс + Center Y @@ -15404,6 +16042,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Устанавливает ширину эмулируемого экрана. + + + + %dpx + %dпикс + Screen Height @@ -15459,6 +16103,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Определяет задержку входного устройства хоста. + + + + + + + %dms + %dмс + Output Latency @@ -15659,6 +16312,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Выкл + + + + Low + Низкая + + + + Medium + Средняя + + + + High + Высокая + Steering Smoothing @@ -15669,6 +16342,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Сглаживает повороты руля при каждом опросе на заданный процент. Требуется при использовании клавиатуры. + + + + %d%% + %d%% + Steering Deadzone @@ -15682,12 +16361,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Steering Damping - Steering Damping + Демпфирование руля Applies power curve filter to steering axis values. Dampens small inputs. - Applies power curve filter to steering axis values. Dampens small inputs. + Применяет фильтр кривой мощности к значениям оси рулевого управления. Гасит малые входные сигналы. @@ -16168,117 +16847,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Подсказки - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Чтобы привязать управление для большинства современных рулей с углом поворота 900 градусов, поверните руль на один оборот в желаемом направлении, затем верните его в центр. - + Force Feedback Тактильная обратная связь - + D-Pad Крестовина - + Down Вниз - + Left Влево - + Up Вверх - + Right Вправо - + L1 L1 - + L2 L2 - + Brake Тормоз - + Steering Left Руль влево - + Steering Right Руль вправо - + Select Select - + Start Start - + Face Buttons Лицевые кнопки - + Circle Круг - + Cross Крестик - + Triangle Треугольник - + Square Квадрат - + R1 R1 - + R2 R2 - + Accelerator Газ @@ -16286,67 +16965,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Подсказки - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Чтобы привязать управление для большинства современных рулей с углом поворота 900 градусов, поверните руль на один оборот в желаемом направлении, затем верните его в центр. - + Force Feedback Тактильная обратная связь - + X X - + A A - + Brake Тормоз - + Steering Left Руль влево - + Steering Right Руль вправо - + Left Paddle Левая педаль - + Right Paddle Правая педаль - + Y Y - + B В - + Accelerator Газ @@ -16354,71 +17033,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Кнопки - + A A - + C C - + Start Start - + Select Select - + B В - + D-Pad Крестовина - - + + Down Вниз - - + + Left Влево - - + + Up Вверх - - + + Right Вправо - + Pointer Setup Настройка указателя - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16427,29 +17106,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>Если вы хотите использовать контроллер или светопушку, которая эмулирует контроллер вместо мышки, то вам следует привязать его к относительному наведению. В противном случае относительное наведение следует <strong>оставить несвязанным</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Относительное наведение - - + + Trigger Курок - + Shoot Offscreen Стрельба за пределы экрана - + Calibration Shot Калибровочный выстрел - + Calibration shot is required to pass the setup screen in some games. Для прохождения экрана настроек в некоторых играх требуется калибровочный выстрел. @@ -16457,27 +17136,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Тип устройства - + Bindings Привязка клавиш - + Settings Настройки - + Automatic Mapping Автоматические привязки - + Clear Mapping Очистить привязки @@ -16515,32 +17194,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Не удалось создать резервную копию старого сохраненного состояния {}. - + Failed to save save state: {}. - Ошибка при сохранении состояния сохранения: {}. + Не удалось сохранить сохраненное состояние: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Неизвестная игра - + Error Ошибка - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16557,197 +17236,217 @@ Please consult the FAQs and Guides for further instructions. Для получения более подробной информации обратитесь к FAQ и руководствам. - + + Resuming state + Возобновление состояния + + + State saved to slot {}. Состояние сохранено в слот {}. - + Failed to save save state to slot {}. Не удалось сохранить состояние в слот {}. - + + + Loading state + Состояние загрузки + + + There is no save state in slot {}. В слоте {} нет сохранного состояния. - + Loading state from slot {}... Загрузка состояния из слота {}... - + Saving state to slot {}... Сохранение состояния в слот {}... - + + Frame advancing + Frame advancing + + + Disc removed. Диск извлечен. - + Disc changed to '{}'. Диск изменен на '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Не удалось открыть новый образ диска '{}'. Возврат к старому образу. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Не удалось открыть новый образ диска "{}". Возврат к предыдущему образу. +Сообщение об ошибке: {} - - Failed to switch back to old disc image. Removing disc. - Не удалось переключиться обратно на старый образ диска. Извлечение диска. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Невозможно вернуться к предыдущему образу диска. Извлечение диска. +Сообщение об ошибке: {} - + Cheats have been disabled due to achievements hardcore mode. Читы были отключены из-за режима хардкорных достижений. - + Fast CDVD is enabled, this may break games. Быстрый CDVD включен, это может ломать игры. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Частота циклов/пропусков не заданы по умолчанию, это может привести к сбою или сделает игры слишком медленными. - + Audio is using async mix, expect desynchronization in FMVs. Для аудио используется асинхронное микширование, ожидайте десинхронизацию звука в FMV. - + Upscale multiplier is below native, this will break rendering. Множитель масштабирования меньше родного, это приведёт к нарушению визуализации. - + Mipmapping is not set to automatic. This may break rendering in some games. Мипмаппинг (MIP-текстурирование) не установлен в автоматическом режиме. Это может нарушить визуализацию в некоторых играх. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Сглаживание текстур не установлено на Билинейная (PS2). Это может нарушить визуализацию в некоторых играх. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Трилинейная фильтрация не установлена в автоматическом режиме. Это может нарушить визуализацию в некоторых играх. - + Blending is below basic, this may break effects in some games. Смешивание ниже базового уровня, это может сломать эффекты в некоторых играх. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Режим аппаратной загрузки не установлен в точный режим, это может нарушить визуализацию в некоторых играх. - + EE FPU Round Mode is not set to default, this may break some games. Режим округления EE FPU не установлен по умолчанию, это может привести к поломке некоторых игр. - + EE FPU Clamp Mode is not set to default, this may break some games. Режим ограничения EE FPU не установлен по умолчанию, это может привести к поломке некоторых игр. - + VU Round Mode is not set to default, this may break some games. Режим округления VU не установлен по умолчанию, это может привести к поломке некоторых игр. - + VU Clamp Mode is not set to default, this may break some games. Режим клеммпинга VU не установлен по умолчанию, это может сломать некоторые игры. - + Game Fixes are not enabled. Compatibility with some games may be affected. Исправления игр не включено. Совместимость с некоторыми играми может быть нарушена. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Патчи совместимости не включены. Это может повлиять на совместимость с некоторыми играми. - + Frame rate for NTSC is not default. This may break some games. Частота кадров для NTSC не является стандартной. Это может привести к поломке некоторых игр. - + Frame rate for PAL is not default. This may break some games. Частота кадров для PAL не является стандартной. Это может привести к поломке некоторых игр. - + EE Recompiler is not enabled, this will significantly reduce performance. Рекомпилятор EE не включен, это значительно снизит производительность. - + VU0 Recompiler is not enabled, this will significantly reduce performance. Рекомпилятор VU0 не включен, это значительно снизит производительность. - + VU1 Recompiler is not enabled, this will significantly reduce performance. Рекомпилятор VU0 не включен, это значительно снизит производительность. - + IOP Recompiler is not enabled, this will significantly reduce performance. Рекомпилятор IOP не включен, это значительно снизит производительность. - + EE Cache is enabled, this will significantly reduce performance. EE Cache включен, это значительно снизит производительность. - + EE Wait Loop Detection is not enabled, this may reduce performance. Обнаружение цикла ожидания EE не включено, это может снизить производительность. - + INTC Spin Detection is not enabled, this may reduce performance. Обнаружение зацикливания INTC не включено, это может снизить производительность. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 отключен, это может снизить производительность. - + mVU Flag Hack is not enabled, this may reduce performance. Хак флага mVU не включен, это может снизить производительность. - + GPU Palette Conversion is enabled, this may reduce performance. Конвертация ГП палитры включена, это может снизить производительность. - + Texture Preloading is not Full, this may reduce performance. Предварительная загрузка текстур не является полной, что может снизить производительность. - + Estimate texture region is enabled, this may reduce performance. Включена оценка области текстуры, это может снизить производительность. diff --git a/pcsx2-qt/Translations/pcsx2-qt_sr-SP.ts b/pcsx2-qt/Translations/pcsx2-qt_sr-SP.ts index 515a3a66023ef9..83524b432e4545 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_sr-SP.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_sr-SP.ts @@ -17,12 +17,12 @@ <html><head/><body><p>PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits.</p></body></html> - <html><head/><body><p>PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits.</p></body></html> + <html><head/><body><p>PCSX2 је бесплатан емулатор отвореног кода за Плејстејшн 2 (ПС2). Постоји како би емулирао ПС2 хардвер комбинацијом интерпретера МИПС ЦПУ-а, рекомпилатора и виртуелне машине која руководи стањима хардвера и системском меморијом. Ово Вам омогућава да играте ПС2 игрице на свом рачунару, уз многобројне додатне функције и бенефите.</p></body></html> <html><head/><body><p>PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment.</p></body></html> - <html><head/><body><p>PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment.</p></body></html> + <html><head/><body><p>Плејстејшн 2 и ПС2 су регистровани заштитни знаци Сони Интерактив Ентертејнмента. Ова апликација није ни на који начин повезана са Сони Интерактив Ентертејментом.</p></body></html> @@ -51,18 +51,18 @@ RetroAchievements Login Window title - RetroAchievements Login + Пријављивање на RetroAchievements RetroAchievements Login Header text - RetroAchievements Login + Пријављивање на RetroAchievements Please enter user name and password for retroachievements.org below. Your password will not be saved in PCSX2, an access token will be generated and used instead. - Please enter user name and password for retroachievements.org below. Your password will not be saved in PCSX2, an access token will be generated and used instead. + Унесите испод корисничко име и лозинку за retroachievements.org. Ваша лозинка се неће чувати у PCSX2; генерисаће се приступни токен који ће бити коришћен уместо ње. @@ -80,32 +80,38 @@ Спремно... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. - <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. + <strong>Ваш RetroAchievements токен за пријављивање није више валидан.</strong> Морате поново унети своје приступне податке како би вам се евидентирала достигнућа. Ваша лозинка се неће чувати у PCSX2; генерисаће се приступни токен који ће бити коришћен уместо ње. - + &Login Пријави се - + Logging in... Пријављивање... - + Login Error Грешка при пријави - - Login failed. Please check your username and password, and try again. - Пријава неуспешна. Молимо проверите ваше име и лозинку, па покушајте поново. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Пријава неуспешна. +Грешка: %1 + +Молимо, проверите корисничко име и лозинку па покушајте поново. - + Login failed. Пријава неуспешна. @@ -113,268 +119,500 @@ AchievementSettingsWidget - - Global Settings - Општа подешавања - - - - + + Enable Achievements Омогућите Достигнућа (Achievements) - - - Show Challenge Indicators - Show Challenge Indicators - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Enable RA's Rich Presence - - - - + + Enable Hardcore Mode Омогући Hardcore режим - - - Enable Leaderboards - Омогући ранг листу - - - + Test Unofficial Achievements Тестирајте неофицијална достигнућа - - - Enable Test Mode - Омогући тест режим - - - - + + Enable Sound Effects Омогући звучне ефекте - + Notifications Обавештења - - - Show Notifications - Прикажи обавештења - - - - Duration - Трајање - - - - - - + + 5 seconds 5 секунди - + Account Налог - - + + Login... Улогујте се... - + View Profile... Прикажи профил... - + + Settings + Подешавања + + + + + Enable Spectator Mode + Укључи Режим гледаоца + + + + + Enable Encore Mode + Укључи Бис режим + + + + + Show Achievement Notifications + Прикажи обавештења о достигнућима + + + + + Show Leaderboard Notifications + Прикажи обавештења о ранг листи + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info Подаци о игрици - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + - seconds - секунди - - - - + + - - Unchecked Unchecked - - When enabled and logged in, PCSX2 will scan for achievements on game load. - When enabled and logged in, PCSX2 will scan for achievements on game load. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - - - + + + + Checked Checked - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - - - - Notification Duration - Notification Duration + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - The duration, in seconds, an achievement popup notification will remain on screen. + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? + + + + %n seconds + + %n seconds + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Username: %1 Login token generated on %2. - + Logout Logout - + Not Logged In. Not Logged In. - - - %1 seconds - %1 seconds - Achievements - + Hardcore mode will be enabled on system reset. Hardcore mode will be enabled on system reset. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - + Hardcore mode is now enabled. Hardcore mode is now enabled. - + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Unofficial) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. Hardcore mode is now disabled. - + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (Hardcore Mode) - - You have earned {0} of {1} achievements, and {2} of {3} points. - You have earned {0} of {1} achievements, and {2} of {3} points. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - This game has no achievements. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Unknown + + + + Locked + Locked + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + Unofficial + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Unlocked: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Name + + + + Time + Time + + + + Score + Score + + + + Value + Value + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... - - Leaderboard submission is enabled. - Leaderboard submission is enabled. + + + Loading... + Loading... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + This game has no achievements. - + Failed to read executable from disc. Achievements disabled. Failed to read executable from disc. Achievements disabled. @@ -578,220 +816,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Rounding Mode: - - - + + + Nearest Nearest - - - + + + Negative Negative - - - + + + Positive Positive - - - + + + Chop / Zero (Default) Chop / Zero (Default) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Clamping Mode: - - + + None None - - - + + + Normal (Default) Normal (Default) - + None ClampMode None - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preserve Sign - + Full Full - + Wait Loop Detection Wait Loop Detection - - + + Enable Recompiler Enable Recompiler - + Enable Fast Memory Access Enable Fast Memory Access - + Enable Cache (Slow) Enable Cache (Slow) - + INTC Spin Detection INTC Spin Detection - + Pause On TLB Miss Pause On TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: VU1 Rounding Mode: - + mVU Flag Hack mVU Flag Hack - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - - + + Extra Extra - + VU0 Clamping Mode: VU0 Clamping Mode: - + VU0 Rounding Mode: VU0 Rounding Mode: - + VU1 Clamping Mode: VU1 Clamping Mode: - + I/O Processor (IOP, MIPS-I) I/O Processor (IOP, MIPS-I) - + Game Settings Game Settings - + Enable Game Fixes Enable Game Fixes - + Enable Compatibility Patches Enable Compatibility Patches - + Frame Rate Control Frame Rate Control - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL Frame Rate: - + NTSC Frame Rate: NTSC Frame Rate: - + PINE Settings PINE Settings - + Slot: Slot: - + Enable Enable @@ -799,182 +1037,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings Timestretch Settings - + Sequence Length: Sequence Length: - + 30 30 - + Seekwindow Size: Seekwindow Size: - + 20 20 - + Overlap: Overlap: - + 10 10 - + Restore Defaults Restore Defaults - + Volume Volume - + 100% 100% - + Mixing Settings Mixing Settings - + Synchronization: Synchronization: - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Expansion: Expansion: - + Stereo (None, Default) Stereo (None, Default) - + Quadraphonic Quadraphonic - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Level: - + None (Default) None (Default) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Decoding (basic) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II Decoding (gigaherz) - + Target Latency: Target Latency: - + 60 ms 60 ms - + Output Settings Output Settings - + Output Module: Output Module: - + Output Latency: Output Latency: - + 20 ms 20 ms - + Minimal Minimal - + Output Backend: Output Backend: - + Maximum Latency: Maximum Latency: - + Output Device: Output Device: @@ -1162,17 +1400,22 @@ Login token generated on %2. New Version: - + + Download Size: + Download Size: + + + Download and Install... Download and Install... - + Skip This Update Skip This Update - + Remind Me Later Remind Me Later @@ -1182,17 +1425,17 @@ Login token generated on %2. Updater Error - + <h2>Changes:</h2> <h2>Changes:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> @@ -1233,6 +1476,11 @@ Login token generated on %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... Loading... @@ -1240,63 +1488,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory BIOS Directory - + PCSX2 will search for BIOS images in this directory. PCSX2 will search for BIOS images in this directory. - + Browse... Browse... - + Reset Reset - + BIOS Selection BIOS Selection - - Open in Explorer... - Open in Explorer... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List Refresh List - + Filename Filename - + Version Version - + Options and Patches Options and Patches - + Fast Boot Fast Boot - + Fast Forward Boot Fast Forward Boot @@ -1424,91 +1672,84 @@ Login token generated on %2. BreakpointModel - + Execute Execute - - No Condition - No Condition - - - - + + -- -- - - + Enabled Enabled - - + Disabled Disabled - + Read Read - + Write(C) (C) = changes, as in "look for changes". Write(C) - + Write Write - + TYPE Warning: limited space available. Abbreviate if needed. TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. SIZE / LABEL - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCTION - + CONDITION Warning: limited space available. Abbreviate if needed. CONDITION - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1519,7 +1760,7 @@ Login token generated on %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - + Saving CDVD block dump to '{}'. Saving CDVD block dump to '{}'. @@ -1555,32 +1796,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type Virtual Controller Type - + Bindings Bindings - + Settings Settings - + Macros Macros - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -1620,146 +1861,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. D-Pad - - - + + + Down Down - - - + + + Left Left - - - + + + Up Up - - - + + + Right Right - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Left Analog - + Large Motor Large Motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Face Buttons - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cross - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Square - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangle - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Circle - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Right Analog - + Small Motor Small Motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Pressure Modifier - + Analog Analog @@ -1767,77 +2008,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow Yellow - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start Start - + Red Red - + Green Green - + Orange Orange - + Select Select - + Strum Up Strum Up - + Strum Down Strum Down - + Blue Blue - + Whammy Bar Whammy Bar - + Tilt Tilt @@ -1863,123 +2099,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL Input Source - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - + Enable SDL Input Source Enable SDL Input Source - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense Enhanced Mode - + XInput Source XInput Source - + Enable XInput Input Source Enable XInput Input Source - + DInput Source DInput Source - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - + Enable DInput Input Source Enable DInput Input Source - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Profile Settings - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - + Use Per-Profile Hotkeys Use Per-Profile Hotkeys - - + + Controller LED Settings Controller LED Settings - + Enable SDL Raw Input Enable SDL Raw Input - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - + Controller Multitap Controller Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - + Multitap on Console Port 1 Multitap on Console Port 1 - + Multitap on Console Port 2 Multitap on Console Port 2 - + Mouse/Pointer Source Mouse/Pointer Source - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 allows you to use your mouse to simulate analog stick movement. - + Settings... Settings... - + Enable Mouse Mapping Enable Mouse Mapping - + Detected Devices Detected Devices @@ -2015,58 +2261,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons Binds/Buttons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - + Pressure Pressure - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - - + + 100% 100% - + Trigger Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: Deadzone: - + Frequency Frequency - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Set... @@ -2169,46 +2415,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller Settings - + Editing Profile: Editing Profile: - + New Profile New Profile - + Load Profile Load Profile - + Delete Profile Delete Profile - - + + Restore Defaults Restore Defaults - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2465,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Error - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2506,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2520,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2292,13 +2538,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2552,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2561,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2406,204 +2652,242 @@ You cannot undo this action. Functions - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Refresh - + Filter Filter - + Memory Search Memory Search - + End End - + Value Value - + Start Start - + Type Type - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Search - + Memory Memory - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New New - + Edit Edit - - - + + + Copy Copy - + Delete Delete - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2659,22 +2943,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet Device: - + Ethernet Device Type: Ethernet Device Type: - + Intercept DHCP Intercept DHCP @@ -2684,135 +2968,130 @@ You cannot undo this action. Enabled - + Enabled InterceptDHCP Enabled - + Subnet Mask: Subnet Mask: - + Gateway Address: Gateway Address: - - + + Auto Auto - + Intercept DHCP: Intercept DHCP: - + PS2 Address: PS2 Address: - + DNS1 Address: DNS1 Address: - + DNS2 Address: DNS2 Address: - + Internal DNS Internal DNS - + Add Add - + Delete Delete - + Export Export - + Import Import - + Per game Per game - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Enabled - + Hard Disk Drive Hard Disk Drive - + HDD File: HDD File: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD Enabled - + Browse Browse - + Create Image Create Image - - - - - PCAP Bridged @@ -2845,7 +3124,7 @@ You cannot undo this action. - + Use Global Setting [%1] Use Global Setting [%1] @@ -2865,78 +3144,78 @@ You cannot undo this action. Address - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Exported Successfully - + Failed to open file Failed to open file - + No Hosts in file No Hosts in file - + Imported Successfully Imported Successfully - - + + Per Game Host list Per Game Host list - + Copy global settings? Copy global settings? - + Delete per game host list? Delete per game host list? - + HDD Image File HDD Image File - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Overwrite File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3224,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2968,69 +3247,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Browse... - - + + Open... Open... @@ -3043,29 +3322,53 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run Run - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Pause @@ -3078,149 +3381,174 @@ Do you want to overwrite? Disassembly - + Copy Address Copy Address - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3228,17 +3556,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games Scan For New Games @@ -3246,49 +3574,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3296,192 +3619,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled Disabled - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3569,12 +3892,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3638,45 +3971,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3684,79 +4012,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3764,2082 +4092,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection BIOS Selection - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Half-Pixel Offset + Upscaling Fixes - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5848,2221 +6196,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot - Default Boot - - - - Slow Boot - Slow Boot + Default Boot - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8075,7 +8324,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8130,12 +8379,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8191,7 +8440,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8202,266 +8451,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8469,74 +8860,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8545,12 +8962,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8558,32 +8975,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8609,17 +9026,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8637,7 +9054,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8656,399 +9073,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9056,62 +9484,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9121,12 +9549,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9137,92 +9565,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9230,355 +9658,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9586,79 +10019,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9669,606 +10097,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10278,69 +10716,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10409,8 +10841,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10462,6 +10894,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10521,11 +10954,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10577,6 +11020,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10592,11 +11090,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10634,7 +11127,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10723,8 +11216,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10866,11 +11359,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10921,11 +11409,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11043,7 +11526,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11083,6 +11566,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11136,29 +11624,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11166,405 +11664,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11723,6 +12221,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11750,137 +12338,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12073,7 +12661,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12130,14 +12718,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12642,13 +13230,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12660,7 +13248,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12671,7 +13259,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12686,27 +13274,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12719,168 +13307,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12895,97 +13488,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12994,12 +13587,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13012,70 +13605,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13084,42 +13677,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13127,8 +13720,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13209,6 +13802,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13259,11 +13853,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13389,103 +13978,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13655,58 +14245,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13756,10 +14346,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13955,6 +14550,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13971,14 +14576,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14025,13 +14630,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14102,40 +14700,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14153,13 +14774,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14364,7 +14985,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14414,222 +15034,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14642,12 +15283,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14660,33 +15301,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14772,8 +15395,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15040,97 +15663,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15336,6 +15959,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15367,6 +15995,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15382,6 +16016,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15402,6 +16042,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15457,6 +16103,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15657,6 +16312,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15667,6 +16342,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16166,117 +16847,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16284,67 +16965,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16352,71 +17033,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16425,29 +17106,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16455,27 +17136,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings Settings - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16513,32 +17194,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16555,197 +17236,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_sv-SE.ts b/pcsx2-qt/Translations/pcsx2-qt_sv-SE.ts index da97f3357965ee..f83fadf1d34ba6 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_sv-SE.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_sv-SE.ts @@ -80,32 +80,38 @@ Redo... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Din inloggningstoken för RetroAchievements är inte längre giltig.</strong> Du måste ange dina inloggningsuppgifter för att prestationer ska spåras. Ditt lösenord kommer inte sparas i PCSX2, en åtkomsttoken kommer genereras och användas istället. - + &Login &Logga in - + Logging in... Loggar in... - + Login Error Inloggningsfel - - Login failed. Please check your username and password, and try again. - Inloggningen misslyckades. Kontrollera ditt användarnamn och/eller lösenord och försök igen. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Inloggningen misslyckades. +fel: %1 + +Kontrollera ditt användarnamn och lösenord och försök igen. - + Login failed. Inloggningen misslyckades. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Globala inställningar - - - - + + Enable Achievements Aktivera prestationer - - - Show Challenge Indicators - Visa utmaningsindikatorer - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Aktivera RA:s rika närvaro - - - - + + Enable Hardcore Mode Aktivera Hardcore-läge - - - Enable Leaderboards - Aktivera topplistor - - - + Test Unofficial Achievements Testa inofficiella prestationer - - - Enable Test Mode - Aktivera testläge - - - - + + Enable Sound Effects Aktivera ljudeffekter - + Notifications Aviseringar - - - Show Notifications - Visa aviseringar - - - - Duration - Varaktighet - - - - - - + + 5 seconds 5 sekunder - + Account Konto - - + + Login... Logga in... - + View Profile... Visa profil... - + + Settings + Inställningar + + + + + Enable Spectator Mode + Aktivera Spectator-läge + + + + + Enable Encore Mode + Aktivera Encore läge + + + + + Show Achievement Notifications + Visa Prestationsnotifikationer + + + + + Show Leaderboard Notifications + Visa Topplists-notifikationer + + + + + Enable In-Game Overlays + Aktivera Överlägg i Spel + + + + Username: +Login token generated at: + Användarnamn: +inloggningstoken genererad på: + + + Game Info Spelinfo - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 använder RetroAchievements som en prestationsdatabas och för att spåra framsteg. För att använda prestationer, registrera ett konto på <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">För att se prestationslistan när du spelar, tryck på snabbtangenten för <span style=" font-weight:600;">Öppna Pausmenyn</span> och välj <span style=" font-weight:600;">Prestationer</span> från menyn.</p></body></html> + - seconds - sekunder - - - - + + - - Unchecked Avmarkerat - - When enabled and logged in, PCSX2 will scan for achievements on game load. - När detta är aktiverat och du är inloggad kommer PCSX2 leta efter prestationer när spelet laddas. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. När detta är aktiverat kommer PCSX2 anta att alla prestationer är låsta och inte skicka några upplåsningsmeddelanden till servern. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. När detta är aktiverat kommer PCSX2 att lista prestationer från inofficiella uppsättningar. Observera att dessa prestationer inte spåras av RetroAchievements, så de låses upp varje gång. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - När detta är aktiverat kommer information om rik närvaro att samlas och skickas till RetroAchievements servrar där det stöds. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Utmaningsläge" för prestationer, inklusive spårning för topplistor. Inaktiverar snabbsparning, fusk, och nedsaktningsfunktioner. - - - - + + + + Checked Markerat - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Aktiverar spårning och inskickning av topplistor i spel som stöds. Om topplistor är inaktiverade kommer du fortfarande kunna se topplistan och poängen, men inga poäng kommer laddas upp. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Visar popup-meddelanden vid händelser såsom upplåsning av prestationer och inskickning av topplistor. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Spelar ljudeffekter vid händelser såsom upplåsning av prestationer och inskickning av topplistor. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Visar ikoner i det lägre högra hörnet av skärmen när en utmaningsprestation är aktiv. - - - - Notification Duration - Varaktighet För Aviseringar + + When enabled and logged in, PCSX2 will scan for achievements on startup. + När detta är aktiverat och du är inloggad kommer PCSX2 leta efter prestationer när spelet laddas. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Visar popup-meddelanden vid händelser såsom upplåsning av prestationer och inskickning av topplistor. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Visar popup-meddelanden när du startar, skickar in eller misslyckas med en leaderboard-utmaning. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Varaktigheten, i sekunder, som popup-aviseringar för prestationer kommer finnas kvar på skärmen. + + When enabled, each session will behave as if no achievements have been unlocked. + När detta är aktiverat kommer varje session att bete sig som om inga prestationer har låsts upp. - + Reset System Återställ systemet - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore-läget kommer inte att aktiveras förrän systemet har återställts. Vill du återställa systemet nu? + + + + %n seconds + + %n sekunder + %n sekunder + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Användarnamn: %1 Inloggningstoken genererad %2. - + Logout Logga ut - + Not Logged In. Ej inloggad. - - - %1 seconds - %1 sekunder - Achievements - + Hardcore mode will be enabled on system reset. Hardcore-läge kommer aktiveras när systemet återställs. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} kan inte utföras medan hardcore-läget är aktivt. Vill du inaktivera hardcore-läget? {0} kommer att avbrytas om du väljer Nej. - + Hardcore mode is now enabled. Hardcore-läge är nu aktiverat. - + + {} (Hardcore Mode) + {} (Hardcore-läge) + + + + {} (Unofficial) + {} (Inofficiell) + + + + Mastered {} + Bemästrat {} + + + + Leaderboard attempt started. + Topplists-försök startat. + + + + Leaderboard attempt failed. + Topplists-försök misslyckats. + + + + Your Time: {}{} + Din Tid: {}{} + + + + Your Score: {}{} + Dina Poäng: {}{} + + + + Your Value: {}{} + Ditt Värde: {}{} + + + + (Submitting) + (Skickar in) + + + + Achievements Disconnected + Prestationer Frånkopplade + + + + An unlock request could not be completed. We will keep retrying to submit this request. + En upplåsningsbegäran kunde inte slutföras. Vi kommer att fortsätta försöka skicka in denna begäran. + + + + Achievements Reconnected + Prestationer Återkopplade + + + + All pending unlock requests have completed. + Alla väntande upplåsningsförfrågningar har slutförts. + + + Hardcore mode is now disabled. Hardcore-läge är nu inaktiverat. - + + Confirm Hardcore Mode + Bekräfta Hardcore-läge + + + + Active Challenge Achievements + Aktiva Utmaningsprestationer + + + (Hardcore Mode) (Hardcore-läge) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Du har tjänat {0} av {1} prestationer, och {2} av {3} poäng. + + You have unlocked all achievements and earned {} points! + Du har låst upp alla prestationer och tjänat {} poäng! - - This game has no achievements. - Det här spelet har inga prestationer. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + Du har låst upp {0} av {1} prestationer och tjänat {2} av {3} poäng. + + + + {0} achievements, {1} points + {0} prestationer, {1} poäng + + + + Your Time: {0} (Best: {1}) + Din Tid: {0} (Bästa: {1}) + + + + Your Score: {0} (Best: {1}) + Dina Poäng: {0} (Bästa: {1}) + + + + Your Value: {0} (Best: {1}) + Ditt Värde: {0} (Bästa: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Topplists-Position: {1} av {2} + + + + Server error in {0}: +{1} + Serverfel i {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Poäng: {0} ({1} softcore) +Olästa meddelanden: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + Du har låst upp {0} av {1} prestationer och tjänat {2} av {3} poäng. + + + + Unknown + Okänd + + + + Locked + Låst + + + + Unlocked + Upplåst + + + + Unsupported + Stöds ej + + + + Unofficial + Inofficiell + + + + Recently Unlocked + Nyligen upplåsta - - Leaderboard submission is enabled. - Inskickning av topplista är aktiverat. + + Active Challenges + Aktiva utmaningar - + + Almost There + Nästan Där + + + + {} points + {} Poäng + + + + {} point + {} Poäng + + + + XXX points + {} Poäng + + + + Unlocked: {} + Upplåst: {} + + + + This game has {} leaderboards. + Det här spelet har {} topplistor. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Namn + + + + Time + Time + + + + Score + Score + + + + Value + Value + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + Laddar... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + Det här spelet har inga prestationer. + + + Failed to read executable from disc. Achievements disabled. Kunde inte läsa den körbara filen från disken. Prestationer är inaktiverade. @@ -578,220 +815,220 @@ Inloggningstoken genererad %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Att ändra dessa alternativ kan få spel att sluta fungera. Gör ändringar på egen risk, PCSX2-teamet kommer inte att ge support för konfigurationer där dessa inställningar har ändrats. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Avrundningsläge: - - - + + + Nearest Närmaste - - - + + + Negative Negativ - - - + + + Positive Positiv - - - + + + Chop / Zero (Default) Chop / Zero (standard) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Clamping-läge: - - + + None Inga - - - + + + Normal (Default) Normal (standard) - + None ClampMode Inga - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Bevara tecken - + Full Full - + Wait Loop Detection Upptäckt av vänteloop - - + + Enable Recompiler Aktivera omkompilerare - + Enable Fast Memory Access Aktivera snabb minnesåtkomst - + Enable Cache (Slow) Aktivera cache (långsam) - + INTC Spin Detection Upptäckt av INTC Spin - + Pause On TLB Miss Pausa vid TLB-miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: Avrundningsläge för VU1: - + mVU Flag Hack mVU Flag-hack - + Enable VU1 Recompiler Aktivera VU1-omkompilerare - + Enable VU0 Recompiler (Micro Mode) Aktivera VU0-omkompilerare (mikroläge) - - + + Extra Extra - + VU0 Clamping Mode: Clamping-läge för VU0: - + VU0 Rounding Mode: Avrundningsläge för VU0: - + VU1 Clamping Mode: Clamping-läge för VU1: - + I/O Processor (IOP, MIPS-I) I/O-processor (IOP, MIPS-I) - + Game Settings Spelinställningar - + Enable Game Fixes Aktivera spelfixar - + Enable Compatibility Patches Aktivera kompatibilitetspatcher - + Frame Rate Control Kontroll av bildhastighet - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. Hz - + PAL Frame Rate: PAL-bildhastighet: - + NTSC Frame Rate: NTSC-bildhastighet: - + PINE Settings PINE-inställningar - + Slot: Plats: - + Enable Aktivera @@ -799,182 +1036,182 @@ Inloggningstoken genererad %2. AudioSettingsWidget - + Timestretch Settings Tidssträckningsinställningar - + Sequence Length: Sekvenslängd: - + 30 30 - + Seekwindow Size: Sökfönsterstorlek: - + 20 20 - + Overlap: Överlappning: - + 10 10 - + Restore Defaults Återställ standardinställningar - + Volume Volym - + 100% 100 % - + Mixing Settings Mixningsinställningar - + Synchronization: Synkronisering: - + TimeStretch (Recommended) Tidssträckning (rekommenderas) - + Async Mix (Breaks some games!) Asynkron mixning (bryter vissa spel!) - + None (Audio can skip.) Ingen (ljud kan hoppa.) - + Expansion: Utvidgning: - + Stereo (None, Default) Stereo (ingen, standard) - + Quadraphonic Quadraphonic - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic-nivå: - + None (Default) Ingen (Standard) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic-avkodning (grundläggande) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II-avkodning (gigaherz) - + Target Latency: Fördröjningsmål: - + 60 ms 60 ms - + Output Settings Utdatainställningar - + Output Module: Utdatamodul: - + Output Latency: Utdatafördröjning: - + 20 ms 20 ms - + Minimal Minimal - + Output Backend: Utdata-backend: - + Maximum Latency: Maximal fördröjning: - + Output Device: Utdataenhet: @@ -1162,17 +1399,22 @@ Inloggningstoken genererad %2. Ny version: - + + Download Size: + Nedladdningsstorlek: + + + Download and Install... Ladda ner och installera... - + Skip This Update Hoppa över den här uppdateringen - + Remind Me Later Påminn mig senare @@ -1182,17 +1424,17 @@ Inloggningstoken genererad %2. Uppdateringsfel - + <h2>Changes:</h2> <h2>Ändringar:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Snabbsparningsvarning</h2><p>Att installera den här uppdateringen kommer göra dina snabbsparningar <b>inkompatibla</b>. Se till att du har sparat dina spel till ett minneskort innan du installerar uppdateringen för att inte förlora dina framsteg.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Inställningsvarning</h2><p>Att installera den här uppdateringen kommer att återställa din programkonfiguration. Observera att du kommer behöva återkonfigurera dina inställningar efter uppdateringen.</p> @@ -1233,6 +1475,11 @@ Inloggningstoken genererad %2. + Download Size: %1 MB + Nedladdningsstorlek: %1 MB + + + Loading... Laddar... @@ -1240,63 +1487,63 @@ Inloggningstoken genererad %2. BIOSSettingsWidget - + BIOS Directory BIOS-katalog - + PCSX2 will search for BIOS images in this directory. PCSX2 kommer söka efter BIOS-avbilder i denna katalog. - + Browse... Bläddra... - + Reset Återställ - + BIOS Selection Val av BIOS - - Open in Explorer... - Öppna i Utforskaren... + + Open BIOS Folder... + Öppna BIOS-mappen... - + Refresh List Uppdatera listan - + Filename Filnamn - + Version Version - + Options and Patches Alternativ och patcher - + Fast Boot Snabb uppstart - + Fast Forward Boot Snabbspola uppstarten @@ -1424,91 +1671,84 @@ Inloggningstoken genererad %2. BreakpointModel - + Execute Exekvera - - No Condition - Inget villkor - - - - + + -- -- - - + Enabled Aktiverad - - + Disabled Inaktiverad - + Read Läs - + Write(C) (C) = changes, as in "look for changes". Skriv(C) - + Write Skriv - + TYPE Warning: limited space available. Abbreviate if needed. TYP - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. STL. / ETIKETT - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUKTION - + CONDITION Warning: limited space available. Abbreviate if needed. VILLKOR - + HITS Warning: limited space available. Abbreviate if needed. TRÄFFAR - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - AKTIVERAD + X @@ -1519,7 +1759,7 @@ Inloggningstoken genererad %2. Speldisken är placerad på en flyttbar enhet, prestandaproblem såsom jitter och frysning kan uppstå. - + Saving CDVD block dump to '{}'. Sparar block-dump från CDVD till '{}'. @@ -1555,32 +1795,32 @@ Inloggningstoken genererad %2. ControllerBindingWidget - + Virtual Controller Type Typ av virtuell kontroll - + Bindings Bindningar - + Settings Inställningar - + Macros Makron - + Automatic Mapping Automatisk mappning - + Clear Mapping Rensa mappning @@ -1620,146 +1860,146 @@ Inloggningstoken genererad %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Riktningsknappar - - - + + + Down Ned - - - + + + Left Vänster - - - + + + Up Upp - - - + + + Right Höger - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Vänster analog styrspak - + Large Motor Stor motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. START - + Select Leave this button name as-is or uppercase it entirely. SELECT - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Handlingsknappar - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kryss - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kvadrat - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangel - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cirkel - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Höger analog styrspak - + Small Motor Liten motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Tryckmodifierare - + Analog Analog @@ -1767,77 +2007,72 @@ Inloggningstoken genererad %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow Gul - - - - - - - - - - - + + + + + + + + + + + PushButton Tryckknapp - + Start Start - + Red Röd - + Green Grön - + Orange Orange - + Select Select - + Strum Up Spela Uppåt - + Strum Down Spela Nedåt - + Blue Blå - + Whammy Bar Svajarm - + Tilt Lutning @@ -1863,123 +2098,133 @@ Inloggningstoken genererad %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL-inmatningskälla - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). SDL-inmatningskällan stöder de flesta kontrollerna, och ger avancerade funktioner åt DualShock 4 / DualSense-kontroller i Bluetooth-läge (Vibration / LED-kontroll). - + Enable SDL Input Source Aktivera SDL-inmatningskälla - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense förbättrat läge - + XInput Source XInput-inmatningskälla - + Enable XInput Input Source Aktivera XInput-inmatningskälla - + DInput Source DInput-inmatningskälla - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. DInput-källan ger stöd för äldre kontroller som inte stöder XInput. Att komma åt dessa kontroller via SDL rekommenderas istället, men DirectInput kan användas om de inte är kompatibla med SDL. - + Enable DInput Input Source Aktivera DInput-inmatningskälla - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Profilinställningar - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. När det här alternativet är aktiverat kan snabbtangenter ställas in i den här inmatningsprofilen, och kommer att användas istället för de globala snabbtangenterna. Som standard delas snabbtangenter alltid mellan alla profiler. - + Use Per-Profile Hotkeys Använd Snabbtangenter Per Profil - - + + Controller LED Settings LED-inställningar För Kontroller - + Enable SDL Raw Input Aktivera SDL Råinmatning - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. XInput-källan ger stöd för Xbox 360-/Xbox One-/Xbox Series-kontroller, och tredjepartskontroller som använder XInput protokollet. - + Controller Multitap Kontroller Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Multitap gör det möjligt att ansluta upp till 8 kontroller till konsolen. Varje multitap har 4 portar. Multitap stöds inte av alla spel. - + Multitap on Console Port 1 Multitap på Konsolport 1 - + Multitap on Console Port 2 Multitap på Konsolport 2 - + Mouse/Pointer Source Mus-/Pekarkälla - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 låter dig använda din mus för att simulera rörelser på analoga styrspaker. - + Settings... Inställningar... - + Enable Mouse Mapping Aktivera Musmappning - + Detected Devices Upptäckta Enheter @@ -2015,58 +2260,58 @@ Inloggningstoken genererad %2. ControllerMacroEditWidget - + Binds/Buttons Bindningar/Knappar - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Välj knapparna du vill aktivera med denna makro. Alla knappar aktiveras samtidigt. - + Pressure Tryck - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. För knappar som är tryckkänsliga styr detta reglage hur mycket kraft som kommer simuleras när makrot är aktivt. - - + + 100% 100 % - + Trigger Utlösare - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Välj utlösaren som aktiverar detta makro. Det kan vara en knapp, eller en kombination av knappar (ackord). Skift-klicka för flera utlösare. - + Deadzone: Dödzon: - + Frequency Frekvens - + Macro will toggle every N frames. Makrot kommer växla varje N bilder. - + Set... Ställ in... @@ -2169,174 +2414,174 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - PCSX2-kontrollerinställningar + PCSX2 Controller Settings - + Editing Profile: - Redigerar Profil: + Editing Profile: - + New Profile Ny Profil - + Load Profile - Läs In Profil + Ladda profil - + Delete Profile - Radera Profil + Delete Profile - - + + Restore Defaults - Återställ standardinställningar + Restore Defaults - - + + Create Input Profile - Skapa Inmatningsprofil + Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - Anpassade inmatningsprofiler används för att åsidosätta Delade inmatningsprofiler för specifika spel. -För att tillämpa en anpassad inmatningsprofil på ett spel, gå till dess Spelegenskaper, ändra sedan 'Inmatningsprofil' på Sammanfattningsfliken. + Custom input profiles are used to override the Shared input profile for specific games. +To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. -Ange namnet för den nya inmatningsprofilen: +Enter the name for the new input profile: - - - - + + + + Error Fel - + A profile with the name '%1' already exists. En profil med namnet '%1' finns redan. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - Vill du kopiera alla bindningar från den aktuella profilen till den nya profilen? Att välja Nej kommer att skapa en helt tom profil. + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. - Kunde inte spara den nya profilen till '%1'. + Failed to save the new profile to '%1'. - + Load Input Profile - Läs In Inmatningsprofil + Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - Är du säker på att du vill ladda inmatningsprofilen '%1'? + Are you sure you want to load the input profile named '%1'? -Alla nuvarande globala bindningar kommer att tas bort, och profilbindningarna kommer laddas. +All current global bindings will be removed, and the profile bindings loaded. -Du kan inte ångra denna åtgärd. +You cannot undo this action. - + Delete Input Profile - Radera Inmatningsprofil + Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - Är du säker på att du vill radera inmatningsprofilen '%1'? + Are you sure you want to delete the input profile named '%1'? -Du kan inte ångra åtgärden. +You cannot undo this action. - + Failed to delete '%1'. - Kunde inte ta bort '%1'. + Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - Är du säker på att du vill återställa standardkonfigurationen för kontrollen? + Are you sure you want to restore the default controller configuration? -Alla delade bindningar och konfiguration kommer att gå förlorade, men dina inmatningsprofiler kommer att finnas kvar. +All shared bindings and configuration will be lost, but your input profiles will remain. -Du kan inte ångra denna åtgärd. +You cannot undo this action. - + Global Settings - Globala Inställningar + Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Kontrolluttag %1%2 + Controller Port %1%2 %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Kontrolluttag %1 + Controller Port %1 %2 - - + + USB Port %1 %2 - USB-port %1 + USB Port %1 %2 - + Hotkeys - Snabbtangenter + Hotkeys - + Shared "Shared" refers here to the shared input profile. - Delad + Shared - + The input profile named '%1' cannot be found. - Inmatningsprofilen '%1' kunde inte hittas. + The input profile named '%1' cannot be found. @@ -2406,204 +2651,242 @@ Du kan inte ångra denna åtgärd. Funktioner - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Uppdatera - + Filter Filter - + Memory Search Minnessökning - + End Slut - + Value Värde - + Start Starta - + Type Typ - + 1 Byte (8 bits) 1 Byte (8 bitar) - + 2 Bytes (16 bits) 2 Byte (16 bitar) - + 4 Bytes (32 bits) 4 Byte (32 bitar) - + 8 Bytes (64 bits) 8 Byte (64 bitar) - + Float Flyttal - + Double Double - + String Sträng - + Array of byte Array av byte - + Hex Hex - + Search Sök - + Memory Minne - + Breakpoints Brytpunkter - + Threads Trådar - + Active Call Stack Aktiv Call Stack - + Breakpoint List Context Menu Kontextmeny För Brytpunktslista - + New Ny - + Edit Redigera - - - + + + Copy Kopiera - + Delete Radera - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Kontextmeny För Trådlista - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangla Symboler - + + Copy Function Name Kopiera Funktionsnamn - + + Copy Function Address Kopiera Funktionsadress - + + Go to in Disassembly Gå till Disassembly - + + Go to in Memory View Gå till Minnesvy - + + + Module Tree + Module Tree + + + Stack List Context Menu Kontextmeny För Stacklista - - - - - + + + + + Debugger Felsökare - + Invalid start address Ogiltig startadress - + Invalid end address Ogiltig slutadress - + Start address can't be equal to or greater than the end address Startadress kan inte vara lika med eller större än slutadressen - + Invalid search value Ogiltigt sökvärde - + Value is larger than type Värdet är större än typen @@ -2659,22 +2942,22 @@ Du kan inte ångra denna åtgärd. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet-enhet: - + Ethernet Device Type: Ethernet-enhetstyp: - + Intercept DHCP Avskär DHCP @@ -2684,134 +2967,129 @@ Du kan inte ångra denna åtgärd. Aktiverad - + Enabled InterceptDHCP Aktiverad - + Subnet Mask: Subnätmask: - + Gateway Address: Gateway-adress: - - + + Auto Auto - + Intercept DHCP: Avskär DHCP: - + PS2 Address: PS2-adress: - + DNS1 Address: DNS1-adress: - + DNS2 Address: DNS2-adress: - + Internal DNS Intern DNS - + Add Lägg till - + Delete Radera - + Export Exportera - + Import Importera - + Per game Per spel - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Intern DNS kan väljas med hjälp av DNS1/2 rullgardiner, eller genom att ställa in dem till 192.0.2.1 - + Enabled InternalDNSTable Aktiverad - + Hard Disk Drive Hårddiskenhet - + HDD File: - HDD File: + HDD fil: - + 40 - 40 + 40 - + 120 - 120 + 120 - + HDD Size (GiB): - HDD Size (GiB): + HDD Storlek (GiB): - + Enabled HDD - Enabled + Aktiverad - + Browse - Browse + Bläddra - + Create Image - Create Image - - - - - + Skapa bild @@ -2831,112 +3109,112 @@ Du kan inte ångra denna åtgärd. Sockets - Sockets + Sockets Manual - Manual + Manual Internal - Internal + Intern - + Use Global Setting [%1] - Use Global Setting [%1] + Använd global Inställning [%1] Name - Name + Namn Url - Url + Url Address - Address + Adress - - + + Hosts File Hosts File - - + + ini (*.ini) - ini (*.ini) + ini (*.ini) + - - - + + DNS Hosts - DNS Hosts + DNS-värdar - + Exported Successfully - Exported Successfully + Export Lyckades - + Failed to open file - Failed to open file + Kunde inte öppna filen - + No Hosts in file - No Hosts in file + Inga värdar i filen - + Imported Successfully - Imported Successfully + Importen lyckades - - + + Per Game Host list Per Game Host list - + Copy global settings? - Copy global settings? + Kopiera globala inställningar? - + Delete per game host list? Delete per game host list? - + HDD Image File - HDD Image File + HDD-avbildnings fil - + HDD (*.raw) - HDD (*.raw) + HDD (*.raw) - + Overwrite File? - Overwrite File? + Skriv över fil? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,94 +3223,94 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator - HDD Creator + HDD Skapare - + HDD image created - HDD image created + HDD-avbildning skapad - + Use Global - Use Global + Använd global - + Override - Override + Undantag DebugSettingsWidget - + GS - GS + GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT - Save RT + Spara RT - + Save Frame - Save Frame + Spara Ram - + Save Texture - Save Texture + Spara textur - + Save Depth - Save Depth + Spara djup - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: - Hardware Dump Directory: + Hårdvarudumpningskatalog: - + Software Dump Directory: - Software Dump Directory: + Mjukvarudumpningskatalog: - - + + Browse... - Browse... + Bläddra... - - + + Open... - Open... + Öppna... @@ -3043,29 +3321,53 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run - Run + Kör - + Step Into Stega in i - + + F11 + F11 + + + Step Over Stega förbi - + + F10 + F10 + + + Step Out Stega ut - + + Shift+F11 + Skift+F11 + + + + Always On Top + Alltid överst + + + + Show this window on top + Show this window on top + + + Pause Pausa @@ -3078,149 +3380,174 @@ Do you want to overwrite? Demontering - + Copy Address Kopiera adress - + Copy Instruction Hex Kopiera instruktions-hex - + Copy Instruction Text Kopiera instruktionstext - + Assemble new Instruction(s) Montera ny(a) instruktion(er) - + NOP Instruction(s) NOP Instruktion(er) - + Run to Cursor Kör till markören - + Jump to Cursor Hoppa till markören - + Toggle Breakpoint Växla brytpunkt - + Follow Branch Följ grenen - + Go to Address Gå till adressen - + Go to in Memory View Gå till Minnesvy - - + + Add Function Lägg till funktion - - + + Rename Function Byt namn på funktion - + Remove Function Radera funktion - - + + Assemble Error Fel vid montering - + Unable to change assembly while core is running Det går inte att ändra assembly medan kärnan körs - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3228,66 +3555,62 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games - Scan For New Games + Skanna för nya spel EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3295,233 +3618,233 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats - Enable Cheats + Aktivera fusk - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled - Disabled + Inaktiverad - + Mild Underclock - Mild Underclock + Mild Underklockning - + Moderate Underclock - Moderate Underclock + Måttlig Underklockning - + Maximum Underclock - Maximum Underclock + Maximal Underklockning - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) - 50% (Underclock) + 50% (Underklockning) - + 60% (Underclock) - 60% (Underclock) + 60% (Underklockning) - + 75% (Underclock) - 75% (Underclock) + 75% (Underklockning) - + 100% (Normal Speed) - 100% (Normal Speed) + 100% (Normal Hastighet) - + 130% (Overclock) - 130% (Overclock) + 130% (Överklockning) - + 180% (Overclock) - 180% (Overclock) + 180% (Överklockning) - + 300% (Overclock) - 300% (Overclock) + 300% (Överklockning) - + Affinity Control: - Affinity Control: + Affinitetskontroll: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control - Frame Pacing / Latency Control + Bild Takt / Latens Kontroll - + frames This string will appear next to the amount of frames selected, in a dropdown box. - frames + bildrutor - + Maximum Frame Latency: - Maximum Frame Latency: + Maximal Bild Fördröjning: - + Optimal Frame Pacing - Optimal Frame Pacing + Optimal Bild Fördröjning - + Scale To Host Refresh Rate - Scale To Host Refresh Rate + Skala till Hostens Uppdateringsfrekvens Use Global Setting [%1] - Use Global Setting [%1] + Använd global Inställning [%1] Normal Speed - Normal Speed + Normal Hastighet Sets the target emulation speed. It is not guaranteed that this speed will be reached, and if not, the emulator will run as fast as it can manage. - Sets the target emulation speed. It is not guaranteed that this speed will be reached, and if not, the emulator will run as fast as it can manage. + Ange målets emuleringshastighet. Det är inte säkert att denna hastighet kommer att nås, och om inte, så kommer emulatorn att köra så fort den kan. User Preference - User Preference + Användarinställningar Speed Limiter - Speed Limiter + Fartspärr Checked - Checked + Markerat Limits the emulation to the appropriate framerate for the currently running game. - Limits the emulation to the appropriate framerate for the currently running game. + Begränsa emuleringen till lämplig bildhastighet för det nuvarande pågående spelet. @@ -3568,12 +3891,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3629,7 +3962,7 @@ Achievements: %5 (%6) 2 Frames - 2 Frames + 2 Bildrutor @@ -3637,45 +3970,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. - Unlimited + Obegränsad - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3683,79 +4011,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3763,2082 +4091,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System - Reset System + Återställ systemet - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? + Hardcore-läget kommer inte att aktiveras förrän systemet har återställts. Vill du återställa systemet nu? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK - OK + Okej - + Select Device Select Device - + Details Details - + Options - Options + Inställningar - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. - Changes the BIOS image used to start future sessions. + Ändrar den BIOS-bild som används för att starta framtida sessioner. - + Automatic - Automatic + Automatisk - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Standard + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection BIOS Selection - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats - Enable Cheats + Aktivera fusk - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer - Renderer + Renderare - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display - Display + Skärm - + Aspect Ratio - Aspect Ratio + Bildförhållande - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio - FMV Aspect Ratio + FMV Bildförhållande - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur - Anti-Blur + Anti-Oskärpa - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. + Möjliggör interna Anti-Blur hack. Mindre exakt mot PS2-rendering, men gör att många spel ser mindre suddiga ut. - + Rendering - Rendering + Rendering - + Internal Resolution - Internal Resolution + Intern Upplösning - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping - Mipmapping + Mipmappning - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. - This option disables game-specific render fixes. - - - - Preload Frame - Preload Frame + This option disables game-specific render fixes. - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA - FXAA + FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced - Advanced + Avancerat - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler - Enable EE Recompiler + Aktivera EE omkompilerare - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics - Graphics + Grafik - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings - Settings + Inställningar - + No cheats are available for this game. - No cheats are available for this game. + Inga fusk är tillgängliga för detta spel. - + Cheat Codes - Cheat Codes + Fuskkoder - + No patches are available for this game. - No patches are available for this game. + Inga patchar finns tillgängliga för detta spel. - + Game Patches - Game Patches + Spelpatchar - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes - Game Fixes + Spelfixar - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Halv Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls - + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5847,2221 +6195,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 - About PCSX2 + Om PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. + PCSX2 är en PlayStation 2 (PS2) emulator med fri och öppen källkod. Dess syfte är att emulera PS2's hårdvara med hjälp av en kombination av MIPS-processortolkar, Recompilers och en virtuell maskin som hanterar hårdvarutillstånd och PS2-systemminne. På så sätt kan du spela PS2-spel på din dator med många ytterligare funktioner och fördelar. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. - When enabled and logged in, PCSX2 will scan for achievements on startup. - - - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. + När detta är aktiverat och du är inloggad kommer PCSX2 leta efter prestationer när spelet laddas. - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game - Current Game - - - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. + Nuvarande spel - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} + + Game: {0} ({1}) + Game: {0} ({1}) - - Achievements: {} ({} points) - Achievements: {} ({} points) - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8074,7 +8323,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8129,12 +8378,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8190,7 +8439,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8201,266 +8450,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8468,74 +8859,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8544,12 +8961,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8557,32 +8974,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8608,17 +9025,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8636,7 +9053,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8655,399 +9072,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9055,62 +9483,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9120,12 +9548,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9136,92 +9564,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9229,355 +9657,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9585,79 +10018,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9668,606 +10096,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10277,69 +10715,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10408,8 +10840,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10461,6 +10893,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10520,11 +10953,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10576,6 +11019,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10591,11 +11089,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10633,7 +11126,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10722,8 +11215,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10865,11 +11358,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10920,11 +11408,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11042,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11082,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11135,29 +11623,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11165,405 +11663,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11721,6 +12219,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11748,137 +12336,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12071,7 +12659,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12119,7 +12707,7 @@ Right click to clear binding PCSX2 - PCSX2 + PCSX2 @@ -12128,14 +12716,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12640,13 +13228,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12658,7 +13246,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12669,7 +13257,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12684,27 +13272,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12717,168 +13305,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12893,97 +13486,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12992,12 +13585,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13010,70 +13603,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13082,42 +13675,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13125,8 +13718,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13207,6 +13800,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13257,11 +13851,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13387,103 +13976,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13653,58 +14243,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13754,10 +14344,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13953,6 +14548,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13969,14 +14574,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14023,13 +14628,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14100,40 +14698,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14151,13 +14772,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14362,7 +14983,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14412,222 +15032,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14640,12 +15281,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14658,33 +15299,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14770,8 +15393,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15038,97 +15661,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15334,6 +15957,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15365,6 +15993,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15380,6 +16014,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15400,6 +16040,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15455,6 +16101,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15655,6 +16310,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15665,6 +16340,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16164,117 +16845,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16282,67 +16963,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16350,71 +17031,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16423,29 +17104,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16453,27 +17134,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings Settings - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16511,32 +17192,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16553,197 +17234,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_tr-TR.ts b/pcsx2-qt/Translations/pcsx2-qt_tr-TR.ts index cd2a33bce82b4c..a56209ea4aa6cf 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_tr-TR.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_tr-TR.ts @@ -80,32 +80,38 @@ Hazır... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>RetroAchievements giriş bilgileriniz geçerliliğini yitirmiş.</strong> Başarımların kayıt altına alınması için hesap bilgilerinizi tekrar girmeniz gerekmektedir. Erişim belirteçi oluşturulup kullanılacak, şifreniz PCSX2'e kaydedilmeyecektir. - + &Login &Giriş - + Logging in... Oturum açılıyor... - + Login Error Giriş Hatası - - Login failed. Please check your username and password, and try again. - Oturum açma başarısız oldu. Lütfen kullanıcı adınızı ve şifrenizi kontrol edin. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Oturum açma başarısız. +Hata: %1 + +Lütfen kullanıcı adı ile şifrenizi kontrol ediniz ve tekrar deneyiniz. - + Login failed. Oturum açma başarısız oldu. @@ -113,268 +119,499 @@ AchievementSettingsWidget - - Global Settings - Genel Ayarlar - - - - + + Enable Achievements Başarımları Etkinleştir - - - Show Challenge Indicators - Meydan Okuma Göstergelerini Göster - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - RetroAchievements'ın Zengin İçerik Özelliğini Etkinleştir - - - - + + Enable Hardcore Mode Hardcore Modu Etkinleştir - - - Enable Leaderboards - Lider Tablosunu Etkinleştir - - - + Test Unofficial Achievements Resmi Olmayan Başarımları Test Et - - - Enable Test Mode - Test Modunu Etkinleştir - - - - + + Enable Sound Effects Ses efektlerini etkinleştir - + Notifications Bildirimler - - - Show Notifications - Bildirimleri Göster - - - - Duration - Süre - - - - - - + + 5 seconds 5 saniye - + Account Hesap - - + + Login... Giriş... - + View Profile... Profili Görüntüle... - + + Settings + Ayarlar + + + + + Enable Spectator Mode + İzleyici Modunu Etkinleştir + + + + + Enable Encore Mode + Tekrarlama Modunu Etkinleştir + + + + + Show Achievement Notifications + Başarım Bildirimlerini Göster + + + + + Show Leaderboard Notifications + Liderlik Tablosu Bildirimlerini Göster + + + + + Enable In-Game Overlays + Oyun İçi Arayüzü Etkinleştir + + + + Username: +Login token generated at: + Kullanıcı Adı: +Oturum rozetinin oluşturulduğu zaman: + + + Game Info Oyun hakkında bilgi - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2, başarım veritabanı ve ilerleme takibi için RetroAchievements servisini kullanır. Başarımları kullanmak için, lütfen <a href="https://retroachievements.org/">retroachievements.org</a>adresinden bir hesap oluşturun.</p><p align="justify">Başarımları oyun içerisinde görmek için, <span style=" font-weight:600;">Duraklatma Menüsünü Aç</span> kısayol tuşuna basın ve menüden <span style=" font-weight:600;">Başarımlar</span> seçeneğini seçin.</p></body></html> + - seconds - saniye - - - - + + - - Unchecked İşaretsiz - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Etkinleştirildiğinde ve oturum açıldığında, PCSX2 oyun başlarken başarılarımları kontrol eder. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Etkinleştirildiğinde, PCSX2 bütün başarımları kilitli varsayacak ve sunucuya kilit açma bildirimleri göndermeyecek. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Etkinleştirildiğinde, PCSX2 resmi olmayan setlerden başarımları listeleyecek. Lütfen bu başarıların RetroAchievements tarafından takip edilmediğini, dolayısıyla her seferinde yeniden açıldığını unutmayın. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Etkinleştirildiğinde, zengin içerik bilgileri toplanacak ve desteklendiği yerlerde RetroAchievements sunucularına gönderilecektir. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. Lider tablosu takibini de içeren, başarımlar için "meydan okuma" modu. Durum kaydetmeyi, hileleri ve yavaşlatma fonksiyonlarını devre dışı bırakır. - - - - + + + + Checked İşaretli - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Desteklenen oyunlarda skor tablolarını görmeyi ve sıralamalara katılmayı sağlar. Skor tabloları devre dışı bırakılırsa, skor tablosunu ve puanları görüntülemeye devam edebilirsiniz ancak skorunuz yüklenmez. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Başarı açma ve skor panosu gönderimleri gibi olaylarda pop-up mesaj görüntüler. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Başarı açma ve skor panosu gönderimleri gibi olaylar için ses efekti verir. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Meydan okuma başarımı ya da öncelik verilmiş başarım aktifken, ekranın sağ alt köşesinde simgeleri gösterir. - - - - Notification Duration - Bildirim Süresi + + When enabled and logged in, PCSX2 will scan for achievements on startup. + Etkinleştirildiğinde ve oturum açıldığında, PCSX2 başlangıçta başarımları kontrol edecek. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Başarı açma ve skor panosu gönderimleri gibi olaylarda pop-up mesaj görüntüler. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Bir başarım açılır pencere bildiriminin ekranda kalacağı saniye cinsinden süre. + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - + + When enabled, each session will behave as if no achievements have been unlocked. + Etkinleştirildiğinde, her oturum başlangıcında hiçbir başarının kilidi açılmamış sayılacaktır. + + + Reset System Sistemi Sıfırla - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Sistem sıfırlanana kadar, zor mod etkinleştirilmeyecek. Sistemi şimdi sıfırlamak ister misiniz? + + + + %n seconds + + %n saniye + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Kullanıcı Adı: %1 %2 saatinde giriş belirteci oluşturuldu. - + Logout Çıkış - + Not Logged In. Giriş Yapılmadı. - - - %1 seconds - %1 saniye - Achievements - + Hardcore mode will be enabled on system reset. Hardcore modu sistem yeniden başlatıldığında aktif edilecek. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} Hardcore mod aktifken gerçekleştirilemez. Hardcore modu devre dışı bırakmak istiyor musunuz? Hayır seçeneğini seçerseniz {0} iptal edilecek. - + Hardcore mode is now enabled. Hardcore modu etkinleştirildi. - + + {} (Hardcore Mode) + {} (Ekstrem Mod) + + + + {} (Unofficial) + {} (Gayriresmi) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Skor tablosu denemesi başladı. + + + + Leaderboard attempt failed. + Skor tablosu denemesi başarısız oldu. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Gönderiliyor) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + Bir kazanım isteği tamamlanamadı. Bu isteği göndermeye devam edeceğiz. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + Askıdaki bütün kazanım istekleri tamamlandı. + + + Hardcore mode is now disabled. Hardcore modu devredışı bırakıldı. - + + Confirm Hardcore Mode + Ekstrem Modu Doğrula + + + + Active Challenge Achievements + Aktif Mücadele Başarımları + + + (Hardcore Mode) (Zor Mod) - - You have earned {0} of {1} achievements, and {2} of {3} points. - {1} başarım arasından {0} tanesini, ve {3} puan içerisinden {2} puanı elde ettiniz. + + You have unlocked all achievements and earned {} points! + Bütün başarımları kazandınız ve {} puan elde ettiniz! - - This game has no achievements. - Oyun başarımları desteklemiyor. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + {1} başarımdan {0} tanesini kazandınız ve {3} puandan {2} tanesini elde ettiniz. + + + + {0} achievements, {1} points + {0} başarımlar, {1} puan + + + + Your Time: {0} (Best: {1}) + Süreniz: {0} (En iyisi: {1}) + + + + Your Score: {0} (Best: {1}) + Skorunuz: {0} (En iyisi: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Liderlik Tablosu Sıranız: {2} içinden {1} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + {1} başarımdan {0} tanesini kazandınız ve kazanabileceğiniz {3} puandan {2} tanesini elde ettiniz. + + + + Unknown + Bilinmiyor + + + + Locked + Kilitli + + + + Unlocked + Açık + + + + Unsupported + Desteklenmiyor + + + + Unofficial + Gayriresmi + + + + Recently Unlocked + Yakınlarda Kilidi Açılan + + + + Active Challenges + Aktif Mücadeleler + + + + Almost There + Almost There + + + + {} points + {} puan + + + + {} point + {} puan + + + + XXX points + XXX puan + + + + Unlocked: {} + Kazanıldı: {} + + + + This game has {} leaderboards. + Bu oyunda {} adet liderlik tablosu bulunmakta. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Ekstrem mod kapalı olduğu için skor gönderme devredışı. Liderlik tablosu sadece okunur durumda. + + + + Show Best + En İyisini Göster + + + + Show Nearby + Show Nearby + + + + Rank + Rank - - Leaderboard submission is enabled. - Skor tablosu gönderimi etkin. + + Name + İsim + + + + Time + Süre - + + Score + Skor + + + + Value + Değer + + + + Date Submitted + Gönderilme Tarihi + + + + Downloading leaderboard data, please wait... + Skor tablosu verileri indiriliyor, lütfen bekleyin... + + + + + Loading... + Yükleniyor... + + + + + Leaderboard download failed + Skor tablosu denemesi başarısız oldu + + + + This game has no achievements. + Oyun başarımları desteklemiyor. + + + Failed to read executable from disc. Achievements disabled. Diskten, çalıştırılabilir dosya okuma başarısız oldu. Başarımlar devre dışı bırakıldı. @@ -578,220 +815,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Bu seçeneklerin değiştirilmesi oyunların çalışmamasına neden olabilir. Değişiklik yapma riski size aittir, PCSX2 ekibi bu ayarların değiştirildiği yapılandırmalar için destek sağlamayacaktır. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Yuvarlama Modu: - - - + + + Nearest En yakın - - - + + + Negative Negatif - - - + + + Positive Pozitif - - - + + + Chop / Zero (Default) Kes / Sıfır (Varsayılan) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Sıkıştırma Modu: - - + + None Hiçbiri - - - + + + Normal (Default) Normal (Varsayılan) - + None ClampMode Hiçbiri - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Ekstra + İşareti Koru - + Full Tam - + Wait Loop Detection Bekleme Döngüsü Tespiti - - + + Enable Recompiler Yeniden Derleyiciyi Etkinleştir - + Enable Fast Memory Access Hızlı Bellek Erişimini Aktifleştir - + Enable Cache (Slow) Önbelleği Aktifleştir (Yavaş) - + INTC Spin Detection INTC Döndürme Tespiti - + Pause On TLB Miss ESÖ Iska Durumunda Duraklat - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: VU1 Yuvarlama Modu: - + mVU Flag Hack mVU Flag Hilesi - + Enable VU1 Recompiler VU1 Yeniden Derleyiciyi Etkinleştir - + Enable VU0 Recompiler (Micro Mode) VU0 Yeniden Derleyicisini Etkinleştir (Mikro Mod) - - + + Extra Ekstra - + VU0 Clamping Mode: VU0 Sıkıştırma Modu: - + VU0 Rounding Mode: VU0 Yuvarlama Modu: - + VU1 Clamping Mode: VU1 Sıkıştırma Modu: - + I/O Processor (IOP, MIPS-I) I/O İşlemci (IOP, MIPS-I) - + Game Settings Oyun Ayarları - + Enable Game Fixes Oyun Düzeltmelerini Etkinleştir - + Enable Compatibility Patches Uyumluluk Yamalarını Etkinleştir - + Frame Rate Control Kare Hızı Kontrolü - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL Kare Hızı: - + NTSC Frame Rate: NTSC Kare Hızı: - + PINE Settings PINE Ayarları - + Slot: Slot: - + Enable Etkinleştir @@ -799,182 +1036,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings Süre Esnetme Ayarları - + Sequence Length: Dizi Uzunluğu: - + 30 30 - + Seekwindow Size: Arama Penceresi Boyutu: - + 20 20 - + Overlap: Örtüşme: - + 10 10 - + Restore Defaults Varsayılanları Yükle - + Volume Ses Düzeyi - + 100% %100 - + Mixing Settings Miksaj Ayarları - + Synchronization: Senkronizasyon: - + TimeStretch (Recommended) Süre Esnetme (Önerilen) - + Async Mix (Breaks some games!) Eşzamansız Mix (Bazı oyunları bozar!) - + None (Audio can skip.) Hiçbiri (Ses atlayabilir.) - + Expansion: Genişletme: - + Stereo (None, Default) Stereo (Hiçbiri, Varsayılan) - + Quadraphonic Quadraphonic - + Surround 5.1 Çevresel 5.1 - + Surround 7.1 Çevresel 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Seviyesi: - + None (Default) Hiçbiri (Varsayılan) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Kod Çözüm (temel) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II Kod Çözüm (gigaherz) - + Target Latency: Hedef Gecikme: - + 60 ms 60 ms - + Output Settings Çıkış Ayarları - + Output Module: Çıkış Modülü: - + Output Latency: Çıkış Gecikmesi: - + 20 ms 20 ms - + Minimal En Az - + Output Backend: Çıkış Arkayüz: - + Maximum Latency: Maksimum Gecikme: - + Output Device: Çıkış Cihazı: @@ -1162,17 +1399,22 @@ Login token generated on %2. Yeni Sürüm: - + + Download Size: + İndirme Boyutu: + + + Download and Install... İndir ve Kur... - + Skip This Update Bu Güncellemeyi Atla - + Remind Me Later Daha Sonra Hatırlat @@ -1182,17 +1424,17 @@ Login token generated on %2. Güncelleyici Hatası - + <h2>Changes:</h2> <h2>Değişiklikler:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Durum Kaydı Uyarısı</h2><p>Bu güncellemeyi kurmak, durum kayıtlarınızı <b>uyumsuz</b> yapacaktır. Lütfen bu güncellemeyi kurmadan önce oyunlarınızı bir Hafıza Kartı içerisine kaydettiğinizden emin olun yoksa ilerlemenizi kaybedeceksiniz.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Ayarlar Uyarısı</h2><p>Bu güncellemeyi kurmak, uygulama yapılandırmanızı sıfırlayacaktır. Bu güncelleme sonrasında ayarlarınızı yeniden yapılandırmanız gerektiğini lütfen aklınızda bulundurun.</p> @@ -1233,6 +1475,11 @@ Login token generated on %2. + Download Size: %1 MB + İndirme Boyutu: %1 MB + + + Loading... Yükleniyor... @@ -1240,63 +1487,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory BIOS Dizini - + PCSX2 will search for BIOS images in this directory. PCSX2 bu dizinde BIOS yansımalarını arayacaktır. - + Browse... Göz At... - + Reset Sıfırla - + BIOS Selection BIOS Seçimi - - Open in Explorer... - Dosya Gezgini ile Aç... + + Open BIOS Folder... + BIOS Klasörünü Aç... - + Refresh List Listeyi Yenile - + Filename Dosya Adı - + Version Versiyon - + Options and Patches Ayarlar ve Yamalar - + Fast Boot Hızlı Önyükleme - + Fast Forward Boot Önyüklemeyi İleri Sar @@ -1424,91 +1671,84 @@ Login token generated on %2. BreakpointModel - + Execute Yürüt - - No Condition - Koşul Yok - - - - + + -- -- - - + Enabled Etkin - - + Disabled Devre Dışı - + Read Oku - + Write(C) (C) = changes, as in "look for changes". Yaz(D) - + Write Yaz - + TYPE Warning: limited space available. Abbreviate if needed. TÜR - + OFFSET Warning: limited space available. Abbreviate if needed. Denge - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. BOYUT/ETİKT - + INSTRUCTION Warning: limited space available. Abbreviate if needed. YÖNERGE - + CONDITION Warning: limited space available. Abbreviate if needed. KOŞUL - + HITS Warning: limited space available. Abbreviate if needed. İSABETLER - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ETKİN + X @@ -1519,7 +1759,7 @@ Login token generated on %2. Oyun diski çıkarılabilir bir sürücüde, takılma ve donma gibi performans sorunları ortaya çıkabilir. - + Saving CDVD block dump to '{}'. CDVD blok dökümü şuraya kaydediliyor: '{}'. @@ -1555,32 +1795,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type Sanal Kontrolcü Türü - + Bindings Tuş Atamaları - + Settings Ayarlar - + Macros Makrolar - + Automatic Mapping Otomatik Tuş Atama - + Clear Mapping Atamaları Temizle @@ -1620,146 +1860,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Yön Düğmeleri - - - + + + Down Aşağı - - - + + + Left Sol - - - + + + Up Yukarı - - - + + + Right Sağ - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Sol Çubuk - + Large Motor Büyük Motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start düğmesi - + Select Leave this button name as-is or uppercase it entirely. Select düğmesi - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Eylem Düğmeleri - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Çarpı - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Kare - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Üçgen - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Daire - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Sağ Çubuk - + Small Motor Küçük Motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Baskı Değiştirici - + Analog Analog Tuşu @@ -1767,77 +2007,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow Sarı - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start Start Düğmesi - + Red Kırmızı - + Green Yeşil - + Orange Turuncu - + Select Select Düğmesi - + Strum Up Yukarı Tıngırdat - + Strum Down Aşağı Tıngırdat - + Blue Mavi - + Whammy Bar - Whammy Bar + Tremolo kolu - + Tilt Eğim @@ -1863,123 +2098,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL Giriş Kaynağı - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). SDL giriş kaynağı çoğu kontrolcüyü destekler, ve Bluetooth modunda DualShock 4 / DualSence kontrolcüleri için gelişmiş işlevsellik sağlar (Titreşim / LED Kontrolü). - + Enable SDL Input Source SDL Giriş Kaynağını Etkinleştir - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense Gelişmiş Modu - + XInput Source XInput Kaynağı - + Enable XInput Input Source XInput Giriş Kaynağını Etkinleştir - + DInput Source DInput Kaynağı - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. DInput kaynağı, XInput desteği olmayan eski kontrolcüler için destek sağlar. Bunun yerine bu kontrolcülere SDL aracılığıyla erişilmesi önerilir, ancak SDL ile uyumlu değillerse DirectInput kullanılabilir. - + Enable DInput Input Source DInput Giriş Kaynağını Etkinleştir - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Profil Ayarları - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Bu seçenek etkinleştirildiğinde, bu giriş profilinde kısayol tuşları ayarlanabilir ve genel kısayol tuşları yerine kullanılacaktır. Varsayılan olarak, kısayol tuşları her zaman tüm profiller arasında paylaşılır. - + Use Per-Profile Hotkeys Profil Başına Kısayol Tuşları Kullanın - - + + Controller LED Settings Kontrolcü LED Ayarları - + Enable SDL Raw Input SDL Raw Girişini Etkinleştir - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. XInput kaynağı, Xbox 360 / Xbox One / Xbox Series kontrolcüleri ve XInput protokolünü uygulayan üçüncü taraf kontrolcüler için destek sağlar. - + Controller Multitap Kontrolcü Çoklu Bağlantı - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Çoklu bağlantı, 8 adede kadar kontrolcünün konsola bağlanmasını sağlar. Her çoklu bağlantı 4 bağlantı noktası sağlar. Çoklu bağlantı tüm oyunlar tarafından desteklenmez. - + Multitap on Console Port 1 Konsol Portu 1 için Çoklu Bağlantı - + Multitap on Console Port 2 Konsol Portu 2 için Çoklu Bağlantı - + Mouse/Pointer Source Fare/İşaretçi Kaynağı - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2, analog çubuk hareketini simüle etmek için farenizi kullanmanızı sağlar. - + Settings... Ayarlar... - + Enable Mouse Mapping Fare Atamasını Etkinleştir - + Detected Devices Algılanan Cihazlar @@ -2015,58 +2260,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons Atamalar/Düğmeler - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Bu makro ile tetiklemek istediğiniz düğmeleri seçin. Tüm düğmeler aynı anda etkinleştirilir. - + Pressure Baskı - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Baskıya duyarlı düğmeler için bu kaydırıcı, makro etkinken ne kadar kuvvetle basılacağını simüle edileceğini kontrol eder. - - + + 100% %100 - + Trigger Tetikleyici - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Bu makroyu etkinleştirecek tetikleyiciyi seçin. Bu, tek bir düğme veya düğmelerin kombinasyonu olabilir. Birden fazla tetikleyici için Shift tuşuna basarak tıklayın. - + Deadzone: Kör Nokta: - + Frequency Sıklık - + Macro will toggle every N frames. Makro her N karede bir etkinleşecek. - + Set... Ayarla... @@ -2169,46 +2414,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Kontrolcü Ayarları - + Editing Profile: - Düzenlenen Profil: + Editing Profile: - + New Profile Yeni Profil - + Load Profile Profili Yükle - + Delete Profile Profili Sil - - + + Restore Defaults - Varsayılanları Yükle + Restore Defaults - - + + Create Input Profile - Yeni Giriş Profili Oluştur + Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,86 +2464,86 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Hata - + A profile with the name '%1' already exists. '%1' adında bir profil zaten mevcut. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - Şu anda seçili olan profildeki tüm atamaları yeni profile kopyalamak istiyor musunuz? Hayır'ı seçmek tamamen boş bir profil oluşturacaktır. + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. - '%1' ismine yeni profil kaydedilemedi. + Failed to save the new profile to '%1'. - + Load Input Profile - Giriş Profilini Yükle + Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - '%1' adlı giriş profilini yüklemek istediğinizden emin misiniz? + Are you sure you want to load the input profile named '%1'? -Mevcut tüm genel atamalar kaldırılacak ve profil atamaları yüklenecektir. +All current global bindings will be removed, and the profile bindings loaded. -Bu eylemi geri alamazsınız. +You cannot undo this action. - + Delete Input Profile - Giriş Profilini Sil + Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - '%1' adındaki giriş profilini silmek istediğinize emin misiniz? + Are you sure you want to delete the input profile named '%1'? -Bu eylemi geri alamazsınız. +You cannot undo this action. - + Failed to delete '%1'. '%1' silinemedi. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - Varsayılan kontrolcü yapılandırmasını geri yüklemek istediğinizden emin misiniz? + Are you sure you want to restore the default controller configuration? -Tüm paylaşılan atamalar ve yapılandırma kaybolacak, ancak giriş profilleriniz kalacaktır. +All shared bindings and configuration will be lost, but your input profiles will remain. -Bu eylemi geri alamazsınız. +You cannot undo this action. - + Global Settings - Genel Ayarlar + Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2306,8 +2551,8 @@ Bu eylemi geri alamazsınız. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2315,26 +2560,26 @@ Bu eylemi geri alamazsınız. %2 - - + + USB Port %1 %2 USB Portu %1 %2 - + Hotkeys Kısayol Tuşları - + Shared "Shared" refers here to the shared input profile. - Paylaşılan + Shared - + The input profile named '%1' cannot be found. '%1' adındaki giriş profili bulunamadı. @@ -2406,204 +2651,242 @@ Bu eylemi geri alamazsınız. Fonksiyonlar - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Yenile - + Filter Filtrele - + Memory Search Bellek Arama - + End Bitiş - + Value Değer - + Start Başlangıç - + Type Tür - + 1 Byte (8 bits) 1 Bayt (8 bit) - + 2 Bytes (16 bits) 2 Bayt (16 bit) - + 4 Bytes (32 bits) 4 Bayt (32 bit) - + 8 Bytes (64 bits) 8 Bayt (64 bit) - + Float Float - + Double Double - + String String - + Array of byte Byte düzeni - + Hex Hex - + Search Ara - + Memory Bellek - + Breakpoints Breakpointler - + Threads İş Parçacıkları - + Active Call Stack Aktif Çağrı Yığını - + Breakpoint List Context Menu Breakpoint Listesi Bağlam Menüsü - + New Yeni - + Edit Düzenle - - - + + + Copy Kopyala - + Delete Sil - + + + + Copy all as CSV + Tümünü CSV olarak kopyala + + + + Paste from CSV + CSV olarak yapıştır + + + Thread List Context Menu İş Parçacığı Listesi Bağlam Menüsü - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Sembolleri Çöz - + + Copy Function Name Fonksiyon Adını Kopyala - + + Copy Function Address Fonksiyon Adresini Kopyala - + + Go to in Disassembly Demontaj Kısmında Göster - + + Go to in Memory View Bellek Görünümünde Göster - + + + Module Tree + Module Tree + + + Stack List Context Menu Yığın Listesi Bağlam Menüsü - - - - - + + + + + Debugger Hata Ayıklayıcı - + Invalid start address Geçersiz başlangıç adresi - + Invalid end address Geçersiz bitiş adresi - + Start address can't be equal to or greater than the end address Başlangıç adresi, bitiş adresine eşit ya da ondan büyük olamaz - + Invalid search value Geçersiz arama değeri - + Value is larger than type Değer türden daha büyük @@ -2659,22 +2942,22 @@ Bu eylemi geri alamazsınız. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet Cihazı: - + Ethernet Device Type: Ethernet Cihazı Türü: - + Intercept DHCP DHCP'yi Yakala @@ -2684,135 +2967,130 @@ Bu eylemi geri alamazsınız. Etkin - + Enabled InterceptDHCP Etkin - + Subnet Mask: Alt Ağ Maskesi: - + Gateway Address: Ağ Geçidi Adresi: - - + + Auto Otomatik - + Intercept DHCP: DHCP'yi Yakala: - + PS2 Address: PS2 Adresi: - + DNS1 Address: DNS1 Adresi: - + DNS2 Address: DNS2 Adresi: - + Internal DNS Dahili DNS - + Add Ekle - + Delete Sil - + Export Dışa Aktar - + Import İçe Aktar - + Per game Oyun başına - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Dahili DNS, DNS1/2 açılır listeleri kullanılarak veya onları 192.0.2.1 olarak ayarlayarak seçilebilir. - + Enabled InternalDNSTable Etkin - + Hard Disk Drive Sabit Disk Sürücüsü - + HDD File: HDD Dosyası: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Boyutu (GiB): - + Enabled HDD Etkin - + Browse Göz At - + Create Image Yansıma Oluştur - - - - - PCAP Bridged @@ -2845,7 +3123,7 @@ Bu eylemi geri alamazsınız. - + Use Global Setting [%1] Genelde Seçilmiş Ayarı Kullan [%1] @@ -2865,78 +3143,78 @@ Bu eylemi geri alamazsınız. Adres - - + + Hosts File Ana Bilgisayarlar Dosyası - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Ana Bilgisayarları - + Exported Successfully Başarıyla Dışa Aktarıldı - + Failed to open file Dosya açılamadı - + No Hosts in file Dosyada Ana Bilgisayarlar yok - + Imported Successfully Başarıyla İçe Aktarıldı - - + + Per Game Host list Oyun Başına Ana Bilgisayar listesi - + Copy global settings? Genel ayarları kopyala? - + Delete per game host list? Oyun başına ana bilgisayar listesini sil? - + HDD Image File HDD Yansıma Dosyası - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Dosyanın Üstüne Yaz? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3223,22 @@ Do you want to overwrite? Üstüne yazmak istiyor musunuz? - + HDD Creator HDD Oluşturucu - + HDD image created HDD yansıması oluşturuldu - + Use Global Geneli Kullan - + Override Üstüne Yaz @@ -2968,69 +3246,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Çizim Dökümü - + Dump GS Draws GS Çizimlerini Dök - + Save RT RT'i Kaydet - + Save Frame Kareyi Kaydet - + Save Texture Dokuyu Kaydet - + Save Depth Derinliği Kaydet - + Start Draw Number: Başlangıç Çizim Numarası: - + Draw Dump Count: Çizim Dökümü Sayısı: - + Hardware Dump Directory: Donanım Döküm Dizini: - + Software Dump Directory: Yazılım Döküm Dizini: - - + + Browse... Göz At... - - + + Open... Aç... @@ -3043,29 +3321,53 @@ Do you want to overwrite? PCSX2 Hata Ayıklayıcı - - - + + Run Çalıştır - + Step Into 'e/a adım at - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Duraklat @@ -3078,149 +3380,174 @@ Do you want to overwrite? Demontaj - + Copy Address Adresi Kopyala - + Copy Instruction Hex Yönerge Hexini Kopyala - + Copy Instruction Text Yönerge Metnini Kopyala - + Assemble new Instruction(s) Yeni Yönerge(ler) Oluştur - + NOP Instruction(s) NOP Talimat(lar)ı - + Run to Cursor İmlece Çalıştır - + Jump to Cursor İmlece Atla - + Toggle Breakpoint Breakpointi Aç/Kapa - + Follow Branch Dalı Takip Et - + Go to Address Adrese Git - + Go to in Memory View Bellek Görünümünde Göster - - + + Add Function Fonksiyon Ekle - - + + Rename Function Fonksiyonu Yeniden Adlandır - + Remove Function Fonksiyonu Sil - - + + Assemble Error Oluşturma Hatası - + Unable to change assembly while core is running Çekirdek çalışırken assembly değiştirilemiyor - + Assemble Instruction Yönergeyi Oluştur - + Go to address Adrese git - + Go to address error Adrese git hatası - + Invalid address Geçersiz adres - + Add Function Error Fonksiyon Ekle Hatası - + A function entry point already exists here. Consider renaming instead. Burada zaten bir fonksiyon giriş noktası var. Bunun yerine yeniden adlandırmayı düşünün. - - + + Function will be (0x%1) instructions long. Enter function name Fonksiyon (0x%1) yönerge uzunluğunda olacak. Fonskiyon adını girin - + Function name Fonksiyon adı - - + + Rename Function Error Fonksiyonu Yeniden Adlandırma Hatası - + Function name cannot be nothing. Fonksiyon adı boş olamaz. - + No function / symbol is currently selected. Mevcut seçili fonksiyon / sembol yok. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 GEÇERSİZ ADRES @@ -3228,17 +3555,17 @@ Fonskiyon adını girin EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">Desteklenen formatta oyun bulunamadı.</span></p><p>Başlamak için, lütfen içinde oyun olan bir dizin ekleyin.</p><p>Aşağıdaki biçimlerdeki oyun dökümleri taranacak ve listelenecektir:</p></body></html> - + Add Game Directory... Oyun Dizini Ekle... - + Scan For New Games Yeni Oyunlar İçin Tara @@ -3246,48 +3573,44 @@ Fonskiyon adını girin EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Oyun: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Oyun ID: %1 -Oyun Adı: %2 -Başarımlar: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n puan - %n puan - - - + Rich presence inactive or unsupported. Zengin içerik devre dışı ya da desteklenmiyor. - + Game not loaded or no RetroAchievements available. Oyun yüklenmemiş veya RetroAchievement mevcut değil. @@ -3295,192 +3618,192 @@ Başarımlar: %5 (%6) EmulationSettingsWidget - + Speed Control Hız Kontrolü - + Normal Speed: Normal Hız: - + Enable Speed Limiter Hız Sınırlayıcıyı Etkinleştir - + System Settings Sistem Ayarları - + Enable Instant VU1 Anında VU1'i Etkinleştir - + Enable Cheats Hileleri Etkinleştir - + Slow-Motion Speed: Ağır Çekim Hızı: - + Fast-Forward Speed: İleri Sarma Hızı: - + Enable Multithreaded VU1 (MTVU) Çok İş parçacıklı VU1'i (MTVU) Etkinleştir - + Enable Host Filesystem Ana Bilgisayar Dosya Sistemini Etkinleştir - + Enable Fast CDVD Hızlı CDVD'yi Etkinleştir - + EE Cycle Skipping: EE Döngüsü Atlama: - - + + Disabled Devre Dışı - + Mild Underclock Hafif Hız Azaltma - + Moderate Underclock Orta Hız Azaltma - + Maximum Underclock Maksimum Hız Azaltma - + EE Cycle Rate: EE Döngü Hızı: - + 50% (Underclock) 50% (Hız Azaltma) - + 60% (Underclock) 60% (Hız Azaltma) - + 75% (Underclock) 75% (Hız Azaltma) - + 100% (Normal Speed) 100% (Normal Hız) - + 130% (Overclock) 130% (Hız Aşırtma) - + 180% (Overclock) 180% (Hız Aşırtma) - + 300% (Overclock) 300% (Hız Aşırtma) - + Affinity Control: Yakınlık Kontrolü: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Kare Hızı / Gecikme Kontrolü - + frames This string will appear next to the amount of frames selected, in a dropdown box. kare - + Maximum Frame Latency: Maksimum Kare Gecikmesi: - + Optimal Frame Pacing Optimum Kare Hızı - + Scale To Host Refresh Rate Ana Bilgisayar Yenileme Hızına Ölçeklendirin @@ -3568,12 +3891,22 @@ Başarımlar: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Homebrew ve oyunların doğrudan ana bilgisayardaki dosyalara / klasörlere erişmesine izin verir. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" İleri Sarma Hızı + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3637,45 +3970,40 @@ Başarımlar: %5 (%6) CPU iş parçacığı devam etmeden evvel karelerden birinin tamamlanmasını beklemeden önce, GSye dizilebilecek maksimum kare sayısını ayarlar. Daha yüksek değerler, düzensiz kare sürelerini yumuşatmaya yardımcı olabilir, ancak ek giriş gecikmesine sebep olur. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Hem VSync hem de Ses Yeniden Örnekleme ayarları etkinleştirildiğinde konsolun yenileme hızı ana bilgisayarın yenileme hızıyla eşleşsin diye emülasyon hızını ayarlar. Emülasyon hızını potansiyel olarak %1'den daha az artırma karşılığında, mümkün olan en akıcı animasyonlar elde edilir. Ana Bilgisayar Yenileme Hızına Göre Ölçeklendirme, konsolun yenileme hızı ana bilgisayarın yenileme hızından çok uzaksa etkili olmaz. Değişken yenileme hızlı ekranlara sahip kullanıcılar bu seçeneği devre dışı bırakmalıdır. - - - + Use Global Setting [%1%] Genelde Seçilmiş Ayarı Kullan [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %%1 [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Sınırsız - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Özel - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Özel [%%1 / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Özel Hız - + Enter Custom Speed Özel Hızı Girin @@ -3683,79 +4011,79 @@ Başarımlar: %5 (%6) FolderSettingsWidget - + Cache Directory Önbellek Dizini - - - - - + + + + + Browse... Göz At... - - - - - + + + + + Open... Aç... - - - - - + + + + + Reset Sıfırla - + Used for storing shaders, game list, and achievement data. Gölgelendiricileri, oyun listesini ve başarım verilerini depolamak için kullanılır. - + Cheats Directory Hileler Dizini - + Used for storing .pnach files containing game cheats. Oyun hilelerini içeren .pnach dosyalarını depolamak için kullanılır. - + Covers Directory Kapak Resmi Dizini - + Used for storing covers in the game grid/Big Picture UIs. Oyun ızgarası ve Büyük Resim Arayüzlerinde kullanılan kapak resimlerini depolamak için kullanılır. - + Snapshots Directory Anlık Görüntü Dizini - + Used for screenshots and saving GS dumps. Ekran görüntüleri ve GS dökümlerini kaydetmek için kullanılır. - + Save States Directory Durum Kaydı Dizini - + Used for storing save states. Durum kayıtlarını depolamak için kullanılır. @@ -3763,2082 +4091,2102 @@ Başarımlar: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Herhangi bir CD/DVD-ROM aygıtı bulunamadı. Lütfen bağlı bir sürücünüz ve ona erişmek için yeterli izinleriniz olduğundan emin olun. - + Use Global Setting Genel Ayarları Kullan - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Oyun serisi panoya kopyalandı. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. - Game path copied to clipboard. + Oyunun dizin yolu panoya kopyalandı. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Kontrolör ayarlarını varsayılana geri getirir. - + No input profiles available. - No input profiles available. + Giriş profili yok. - + Create New... - Create New... + Yeni oluştur... - + Enter the name of the input profile you wish to create. - Enter the name of the input profile you wish to create. + Oluşturmak istediğiniz giriş profilinin adını girin. - + Are you sure you want to restore the default settings? Any preferences will be lost. Varsayılan ayarlara geri dönmek istediğinize emin misiniz? Herhangi bir değişiklik sıfırlanacaktır. - + Settings reset to defaults. Ayarlar varsayılana sıfırlanır. - - Quick Save Slot - Hızlı kayıt slotu - - - + No save present in this slot. Bu slotta herhangi bir kayıt bulunmamaktadır. - + No save states found. Herhangi bir anlık kayıt bulunamadı. - + Failed to delete save state. Anlık kayıt silinemedi. - + Failed to copy text to clipboard. Panoya kopyalama başarısız. - + This game has no achievements. Bu oyunda başarımlar desteklenmiyor. - + This game has no leaderboards. Bu oyunda lider sıralaması bulunmamakta. - + Reset System Sistemi Sıfırla - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Zor mod sistem sıfırlanana kadar etkinleştirilmeyecek. Sistemi şimdi sıfırlamak ister misiniz? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. - Launch a game by selecting a file/disc image. + Dosya/disk imajı seçerek bir oyunu başlat. - + Start the console without any disc inserted. Konsolu herhangi bir disk olmadan başlat. - + Start a game from a disc in your PC's DVD drive. - Start a game from a disc in your PC's DVD drive. + Bilgisayarın DVD sürücüsünden bir oyunu başlat. - + Change settings for the emulator. Emülatör için ayarları değiştir. - + Exits the program. Programı kapatır. - + No Binding Tuş ataması bulunmamakta - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK Tamam - + Select Device Cihaz Seç - + Details Ayrıntılar - + Options Ayarlar - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. - Clears all settings set for this game. + Bu oyun için ayarlanmış tüm ayarları siler. - + Behaviour Davranış - + Prevents the screen saver from activating and the host from sleeping while emulation is running. - Prevents the screen saver from activating and the host from sleeping while emulation is running. + Emülasyon çalışırken ekran koruyucunun açılmasını ve uyku moduna geçmeyi önler. - + Shows the game you are currently playing as part of your profile on Discord. Mevcut oynanan oyunu Discord profilinde gösterir. - + Pauses the emulator when a game is started. Oyun başlatıldığında emülatörü duraklatır. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pencereyi simge durumunda küçülttüğünüzde veya başka bir uygulamaya geçtiğinizde emülatörü duraklatır ve geri döndüğünüzde duraklatmayı kaldırır. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Hızlı menüyü açtığınızda emülatörü duraklatır ve kapattığınızda duraklatmayı kaldırır. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Kısayol tuşuna basıldığında emülatörün/oyunun kapatılmasını onaylamak için bir istem görüntülenip görüntülenmeyeceğini belirler. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Bilgisayarınızı kapatırken veya uygulamadan çıkarken emülatör durumunu otomatik olarak kaydeder. Bir dahaki sefere doğrudan kaldığınız yerden devam edebilirsiniz. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Oyun ayarlarından ini kaplamalarının veya oyun başına özel ayarların yüklenmesini sağlar. - - - + Uses a light coloured theme instead of the default dark theme. Varsayılan koyu tema yerine açık renkli bir tema kullanır. - + Game Display - Game Display - - - - Automatically switches to fullscreen mode when the program is started. - Program başladığında otomatik olarak tam ekran moduna geçer. + Oyun Ekranı - + Switches between full screen and windowed when the window is double-clicked. - Switches between full screen and windowed when the window is double-clicked. + Pencereye çift tıklandığında tam ekran ve pencereli ekran arasında geçiş yapar. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - Hides the mouse pointer/cursor when the emulator is in fullscreen mode. + Emülatör tam ekran modundayken fare işaretçisini/imlecini gizler. - + Determines how large the on-screen messages and monitor are. - Determines how large the on-screen messages and monitor are. + Ekrandaki mesajların ve monitörün ne kadar büyük olduğunu belirler. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. + Oluşturulan/yüklenen kaydetme durumları, alınan ekran görüntüleri vb. gibi olaylar meydana geldiğinde ekran mesajlarını gösterir. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - Shows the current emulation speed of the system in the top-right corner of the display as a percentage. + Sistemin mevcut emülasyon hızını ekranın sağ-üst köşesinde yüzde olarak gösterir. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. + Ekranın sağ üst köşesinde sistem tarafından saniyede görüntülenen video karesi (veya v-sync) sayısını gösterir. - + Shows the CPU usage based on threads in the top-right corner of the display. - Shows the CPU usage based on threads in the top-right corner of the display. + Ekranın sağ-üst köşesindeki iş parçacıklarına göre CPU kullanımını gösterir. - + Shows the host's GPU usage in the top-right corner of the display. - Shows the host's GPU usage in the top-right corner of the display. - - - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. + Ekranın sağ-üst köşesinde GPU kullanımını gösterir. - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. - Shows the current configuration in the bottom-right corner of the display. + Geçerli yapılandırmayı ekranın sağ alt köşesinde gösterir. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. - Displays warnings when settings are enabled which may break games. + Oyunu bozabilecek ayarlar etkin iken uyarı mesajı gösterir. - + Resets configuration to defaults (excluding controller settings). - Resets configuration to defaults (excluding controller settings). + Konfigürasyonları varsayılana sıfırlar (kontrolcü ayarları dışında). - + Changes the BIOS image used to start future sessions. - Changes the BIOS image used to start future sessions. + Gelecekteki oturumları başlatmak için kullanılan BIOS görüntüsünü değiştirir. - + Automatic Otomatik - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + Etkinleştirildiğinde, oyun başına özel ayarlar uygulanacaktır. Her zaman genel yapılandırmayı kullanmak için devre dışı bırakın. + + + + Automatically switches to fullscreen mode when a game is started. + Oyun başlatıldığında otomatik olarak tam ekran moduna geçer. + + + On-Screen Display - On-Screen Display + Ekran Üstü Gösterge (OSD) + + + + %d%% + %%%d + + + + Shows the resolution of the game in the top-right corner of the display. + Oyunun çözünürlüğünü ekranın sağ üst köşesinde gösterir. - + BIOS Configuration - BIOS Configuration + BIOS Yapılandırması - + BIOS Selection BIOS Seçimi - + Options and Patches - Options and Patches + Seçenekler ve Yamalar - + Skips the intro screen, and bypasses region checks. - Skips the intro screen, and bypasses region checks. + Giriş ekranını atlar ve bölge kontrollerini atlar. - + Speed Control - Speed Control + Hız Kontrolü - + Normal Speed - Normal Speed + Normal Hız - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed - Fast Forward Speed + İleri Sarma Hızı - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed - Slow Motion Speed + Ağır Çekim Hızı - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter - Enable Speed Limiter + Hız Sınırlayıcıyı Etkinleştir - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings - System Settings + Sistem Ayarları - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats - Enable Cheats + Hileleri Etkinleştir - + Enables loading cheats from pnach files. - Enables loading cheats from pnach files. + .pnach dosyalarından hile yüklemeyi etkinleştirir. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer - Renderer + İşleyici - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Görüntü - + Aspect Ratio En/Boy Oranı - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio Ara Sahne En/Boy Oranı - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size - Screenshot Size + Ekran Görüntüsü Boyutu - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Ekran Görüntüsü Kalitesi - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Kırp - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Geniş Ekran Yamalarını Etkinleştir - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur - Anti-Blur + Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution - Internal Resolution + Dahili Çözünürlük - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering - Anisotropic Filtering - - - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. + Anisotropic Filtering - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes - Hardware Fixes + Donanım Düzeltmeleri - + Manual Hardware Fixes - Manual Hardware Fixes + Manuel Donanım Düzeltmeleri - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA - FXAA + FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. - Adjusts brightness. 50 is normal. + Parlaklığı ayarlar. 50 normal değerdir. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. - Adjusts saturation. 50 is normal. + Doygunluğu ayarlar. 50 normal değerdir. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced - Advanced + Gelişmiş - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card - Create Memory Card + Hafıza Kartı Oluştur - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack + + + + Full VU0 Synchronization + Full VU0 Synchronization + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + VU Overflow Hack + VU Overflow Hack - - (Fifa Street 2). - (Fifa Street 2). + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + Quadraphonic + Quadraphonic - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Load State + Load State - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU Add Hack - VU Add Hack + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Disable Depth Emulation + Disable Depth Emulation - - Full VU0 Synchronization - Full VU0 Synchronization + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Render Fixes + Disable Render Fixes - - VU Sync (Run behind) - VU Sync (Run behind) + + Preload Frame Data + Preload Frame Data - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Texture Inside RT + Texture Inside RT - - VU Overflow Hack - VU Overflow Hack + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Half Pixel Offset + Half Pixel Offset - - VU XGkick Sync - VU XGkick Sync + + Texture Offset X + Texture Offset X - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Texture Offset Y + Texture Offset Y - - Use Blit for internal FPS - Use Blit for internal FPS + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. - - Quadraphonic - Quadraphonic + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. - - Load State - Load State + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack - + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5847,2221 +6195,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode - + + Spectator Mode + Spectator Mode + + + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements - Enable Achievements - - - - Rich Presence - Rich Presence + Enable Achievements - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8074,7 +8323,7 @@ ${serial}: Serial of the game. Yeniden açılamadı, eski yapılandırma geri yükleniyor. - + Upscale multiplier set to {}x. Büyütme çarpanı {}x değerine ayarlandı. @@ -8129,12 +8378,12 @@ ${serial}: Serial of the game. Bir veya daha fazla sıkıştırılmış, değiştirilmiş dokuda otomatik oluşturulan mipmapler devre dışı bırakılıyor. Lütfen dokularınızı sıkıştırırken mipmapler oluşturun. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Şablon arabellekleri ve doku bariyerleri kullanılamaz, bu bazı grafik efektleri bozacaktır. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Geri Okumalar Sırasında GPUyu Döndür etkinleştirilir, ancak kalibre edilmiş zaman damgaları kullanılamaz. Bu gerçekten yavaş olabilir. @@ -8190,7 +8439,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8201,266 +8450,408 @@ Oyun Ayarlarından karıştırma seviyesini ayarlayarak grafik kalitesini arttırabilirsiniz. Bu sistem gereksinimlerini arttıracaktır. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manuel GS donanım oluşturucu düzeltmeleri etkinleştirildi, otomatik düzeltmeler uygulanmadı: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Oyun Düzeltmeleri (Genel ayarlar içerisinde değiştirilmesi ÖNERİLMEZ) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negatif Bölme Hack (Gundam Oyunları İçin) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Çarpma Hack (Tales of Destiny için) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - FMVler için Yazılım Oluşturucuyu Kullan + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - MPEG Atlama Hack (Videoları/FMVleri atlar) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - TLByi Önyükle Hack (Goemon için) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Zamanlama Hack (Genel Amaçlı Zamanlama Hacki) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Anında DMA Hack (Önbellek emülasyonu sorunları için iyi) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Bayrak Hack (Bleach Blade Battlers için) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + FMVler için Yazılım Oluşturucuyu Kullan + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Tür - + Code Kod - + Title Başlık - + File Title Dosya başlığı - + CRC CRC - + Time Played Oynanılan Süre - + Last Played Son Oynanma - + Size Boyut - + Region Bölge - + Compatibility Uyumluluk @@ -8468,74 +8859,100 @@ arttırabilirsiniz. Bu sistem gereksinimlerini arttıracaktır. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Arama Dizinleri (oyunları aramak için) - + Add... Ekle... - - - + + + Remove Kaldır - + Search Directory Aranacak Dizin - + Scan Recursively Yinelemeli Tarama Yap - + Excluded Paths (will not be scanned) Hariç Tutulacak Dizinler (taranmayacak) - + Directory... Dizin... - + File... Dosya... - + Scan For New Games Yeni Oyunları Tara - + Rescan All Games Tüm Oyunları Tekrar Tara - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Dizini Aç... - + Select Search Directory Arama Dizini Seç - + Scan Recursively? Yinelemeli Tarama Yap? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8544,12 +8961,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Yinelemeli tarama daha fazla zaman alır, ancak alt dizinlerdeki dosyaları bulacaktır. - + Select File Dosya Seç - + Select Directory Dizin Seç @@ -8557,32 +8974,32 @@ Yinelemeli tarama daha fazla zaman alır, ancak alt dizinlerdeki dosyaları bula GameListWidget - + Game List Oyun Listesi - + Game Grid Game Grid - + Show Titles Başlığı Göster - + All Types Tüm Türler - + All Regions Tüm Bölgeler - + Search... Ara... @@ -8608,17 +9025,17 @@ Yinelemeli tarama daha fazla zaman alır, ancak alt dizinlerdeki dosyaları bula <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Bilinmiyor - + No description provided. Herhangi bir açıklama belirtilmedi. @@ -8636,7 +9053,7 @@ Yinelemeli tarama daha fazla zaman alır, ancak alt dizinlerdeki dosyaları bula Yamaları Yenile - + There are no patches available for this game. Bu oyun için herhangi bir yama mevcut değil. @@ -8655,399 +9072,410 @@ Yinelemeli tarama daha fazla zaman alır, ancak alt dizinlerdeki dosyaları bula - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Seri No: - + CRC: CRC: - + Type: Tür: - + PS2 Disc PS2 Diski - + PS1 Disc PS1 Diski - + ELF (PS2 Executable) ELF (PS2 Yürütülebiliri) - + Region: Bölge: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brezilya) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (Çin) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japonya) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Kore) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Tayvan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (ABD) - + Other Diğer - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Avustralya) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (Güney Afrika) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Avusturya) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belçika) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Avrupa/Avustralya) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finlandiya) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Almanya) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Yunanistan) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (İtalya) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (Hindistan) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Avrupa/Avustralya) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Hollanda) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norveç) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portekiz) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Polonya) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Rusya) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (İspanya) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Skandinavya) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (İsveç) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (İsviçre) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Birleşik Krallık) - + Compatibility: Uyumluluk: - + Unknown Bilinmiyor - + Not Bootable Çalışmıyor - + Reaches Intro Introya Erişir - + Reaches Menu Menüye Erişir - + In-Game Nispeten Oynanılır Halde - + Playable Oynanılır Halde - + Perfect Mükemmel - + Input Profile: Giriş Profili: - + Shared Refers to the shared settings profile. Paylaşılan - + Disc Path: Disc Path: - + Browse... Göz At... - + Clear Sil - + Verify Doğrula - + Search on Redump.org... Redump.org'ta ara... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Oyun, CD/DVD formatında değil. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mod - - + + Start Başlat - - + + Sectors Sectors - - + + Size Boyut - - + + MD5 MD5 - - + + Status Durum - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Hata - + Cannot verify image while a game is running. Oyun çalıştığı için imajı doğrulamada hata. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9055,62 +9483,62 @@ Yinelemeli tarama daha fazla zaman alır, ancak alt dizinlerdeki dosyaları bula GraphicsSettingsWidget - + Renderer: Oluşturucu: - + Adapter: Bağdaştırıcı: - + Display Ekran - + Fullscreen Mode: Tam Ekran Modu: - + Aspect Ratio: En Boy Oranı: - + Fit to Window / Fullscreen Pencereye Sığdır / Tam Ekran - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Otomatik Standart (4:3/3:2 Oranlı) - - + + Standard (4:3) Standart (4:3) - - + + Widescreen (16:9) Geniş Ekran (16:9) - + FMV Aspect Ratio: FMV En-Boy Oranı: - - - + + + @@ -9120,12 +9548,12 @@ Yinelemeli tarama daha fazla zaman alır, ancak alt dizinlerdeki dosyaları bula Kapalı (Varsayılan) - - - - - - + + + + + + @@ -9136,92 +9564,92 @@ Yinelemeli tarama daha fazla zaman alır, ancak alt dizinlerdeki dosyaları bula Otomatik (Varsayılan) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None Hiçbiri - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9229,355 +9657,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Kırp: - + Left: Warning: short space constraints. Abbreviate if necessary. Sol: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Üst: - + Right: Warning: short space constraints. Abbreviate if necessary. Sağ: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Alt: - + Screen Offsets Ekran Ofsetleri - + VSync Dikey Senkronizasyon - + Show Overscan Fazla Taramayı Göster - + Enable Widescreen Patches Geniş Ekran Yamalarını Etkinleştir - + Enable No-Interlacing Patches Taramasız Yamaları Etkinleştir - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Taramalı Ofseti Devre Dışı Bırak - + Screenshot Size: Ekran Görüntüsü Büyüklüğü: - + Screen Resolution Ekran Çözünürlüğü - + Internal Resolution Dahili Çözünürlük - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Kalite: - - + + Rendering Görüntü Oluşturma - + Internal Resolution: Dahili Çözünürlük: - + Mipmapping: Mipmapping: - - + + Off Kapalı - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Doku Filtreleme: - - + + Nearest En Yakın - - + + Bilinear (Forced) İki Yönlü (Zorla) - - + + Bilinear (PS2) İki Yönlü (PS2) - - + + Bilinear (Forced excluding sprite) İki Yönlü (Sprite hariç zorla) - + Trilinear Filtering: Trilineer Filtreleme: - + Off (None) Kapalı (Hiçbiri) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Üç Yönlü (Zorla) - + Anisotropic Filtering: Eşyönsüz Doku Süzmesi: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Asgari - + Basic (Recommended) Basit(Tavsiye Edilen) - + Medium Orta - + High Yüksek - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Dokuları Önceden Yükle: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Paleti Dönüşümü - + Manual Hardware Renderer Fixes Manuel Donanım Oluşturucu Düzeltmeleri - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Ekstra Oluşturucu İş Parçacıkları: - - - + threads i̇ş Parçacıkları - + Mipmapping Mipmapping - + Auto Flush Auto-Flush - + Hardware Fixes Donanım Düzeltmeleri - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Oluşturma Boyutu: - - - + + + 0 (Disabled) @@ -9585,79 +10018,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Devre dışı) - + 1 (64 Max Width) 1 (64 Maksimum Genişlik) - + 2 (128 Max Width) 2 (128 Maksimum Genişlik) - + 3 (192 Max Width) 3 (192 Maksimum Genişlik) - + 4 (256 Max Width) 4 (256 Maksimum Genişlik) - + 5 (320 Max Width) 5 (320 Maksimum Genişlik) - + 6 (384 Max Width) 6 (384 Maksimum Genişlik) - + 7 (448 Max Width) 7 (448 Maksimum Genişlik) - + 8 (512 Max Width) 8 (512 Maksimum Genişlik) - + 9 (576 Max Width) 9 (576 Maksimum Genişlik) - + 10 (640 Max Width) 10 (640 Maksimum Genişlik) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Derinlik Emülasyonunu Kapat - + Disable Safe Features Güvenli Özellikleri Kapat - + Preload Frame Data Kare Verisini Önceden Yükle @@ -9668,606 +10096,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Agresif) - + Software CLUT Render: Yazılım CLUT Oluşturma: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Devre Dışı (Varsayılan) - + Enabled (Exact Match) Etkin (Tam Eşleşme) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Video Ölçekleme Düzeltmeleri - + Half Pixel Offset: Yarım-Piksel Ofset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Özel (Doku) - + Special (Texture - Aggressive) Özel (Doku - Agresif) - + Round Sprite: Round Sprite: - + Half Yarım - + Full Tam - + Texture Offsets: Doku Ofsetleri: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto-Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Oluşturma Düzeltmelerini Devre Dışı Bırak - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Yaması - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Doku Değişikliği - + Search Directory Aranacak Dizin - - + + Browse... Göz At... - - + + Open... Aç... - - + + Reset Sıfırla - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Ayarlar - + Dump Textures Dokuları Çıkart - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Eşzamanlı Doku Yüklemesi - - - + Load Textures Dokuları Yükle - + Precache Textures Dokuları Önceden Önbellekle - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Keskinleştirme/Kenar Yumuşatma - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Kontrast Uyarlamalı Keskinleştirme: - - + + None (Default) Hiçbiri (Varsayılan) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Keskinlik: - + FXAA FXAA - + Filters Filtreler - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diyagonal Filtre - + Triangular Filter Triangular Filter - + Wave Filter Dalgalı Filtre - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Parlaklık: - + Contrast: Kontrast: - Saturation Doygunluk - + OSD OSD - + On-Screen Display Ekran Üstü Gösterge (OSD) - + OSD Scale: OSD Scale: - + Show Indicators Göstergeleri Göster - + Show Resolution Çözünürlüğü Göster - + Show Inputs Girişleri Göster - + Show GPU Usage GPU Kullanımını Göster - + Show Settings Ayarları Göster - + Show FPS FPS Göster - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Shader Önbelleğini Devre Dışı Bırak - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics İstatistikleri Göster - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage CPU Kullanımını Göster - + Warn About Unsafe Settings Güvenilir Olmayan Ayarlar Hakkında Uyar - + Show Frame Times Kare Süresi - + Recording Kayıt - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Konteyner: - - + + Codec: Kodek: - - + + Extra Arguments Ekstra Argümanlar - + Capture Audio Video Kaydı - + Resolution: Çözünürlük: - + x x - + Auto Otomatik - + Capture Video Video Kaydı - + Advanced Advanced here refers to the advanced graphics options. Gelişmiş - + Advanced Options Gelişmiş Seçenekler - + Hardware Download Mode: Donanım İndirme Modu: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Sıkıştırılmamış - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10277,69 +10715,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bit Hızı: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed İzin verilmedi - + Allowed İzin Verildi - + Debugging Options Ayıklama Seçenekleri - + Override Texture Barriers: Doku Bariyerini Geçersiz Kıl: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10408,8 +10840,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Genelde Seçilmiş Ayarı Kullan [%1] @@ -10461,6 +10893,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked İşaretsiz @@ -10520,11 +10953,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Yazılım CLUT Oluşturma + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10576,6 +11019,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10591,11 +11089,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10633,7 +11126,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10722,8 +11215,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Tam Ekran Kenarlıksız Pencere @@ -10865,11 +11358,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10920,11 +11408,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11042,7 +11525,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11082,6 +11565,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11135,29 +11623,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Varsayılan - - + + (Default) (Varsayılan) @@ -11165,405 +11663,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Grafikler - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Doku Değişikliklerini Tekrar Yükle - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Doku Değişiklikleri Tekrar Yükleniyor... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Ses Düzeyi: Sessiz - + Volume: {}% Ses Düzeyi: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System Sistem - + Open Pause Menu Oyun Menüsünü Aç - + Open Achievements List Başarım Listesini Aç - + Open Leaderboards List Skor Sıralamasını Aç - + Toggle Pause Duraklat - + Toggle Fullscreen Tam Ekran Modunu Aç/Kapat - + Toggle Frame Limit Kare Sınırlayıcıyı Aç/Kapat - + Toggle Turbo / Fast Forward Turbo Modunu Aç/Kapat - + Toggle Slow Motion Ağır Çekim Modunu Aç/Kapat - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Ses Düzeyini Artır - + Decrease Volume Ses Düzeyini Azalt - + Toggle Mute Sesi Aç/Kapat - + Frame Advance Kare İlerlemesi - + Shut Down Virtual Machine Sanal Makineyi Kapat - + Reset Virtual Machine Sanal Makineyi Yeniden Başlat - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Durum Kayıtları - + Select Previous Save Slot Önceki Kayıt Slotunu Seç - + Select Next Save Slot Sonraki Kayıt Slotunu Seç - + Save State To Selected Slot Seçilmiş Slota Durum Kaydını Kaydet - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Durum Kaydını Slot 1'e Kaydet - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Durum Kaydını Slot 2'ye Kaydet - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Durum Kaydını Slot 3'e Kaydet - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Durum Kaydını Slot 4'e Kaydet - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Durum Kaydını Slot 5'e Kaydet - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Durum Kaydını Slot 6'ya Kaydet - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Durum Kaydını Slot 7'ye Kaydet - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Durum Kaydını Slot 8'e Kaydet - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Durum Kaydını Slot 9'a Kaydet - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Durum Kaydını Slot 10'a Kaydet - + Load State From Slot 10 Load State From Slot 10 @@ -11721,6 +12219,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11748,137 +12336,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Odak kaybında Oyunu Durdur - + Inhibit Screensaver Ekran Koruyucunun Çalışmasını Engelle - + Save State On Shutdown Kapatıldığında Durumu Kaydet - + Pause On Start Başlangıçta Duraklat - + Confirm Shutdown Kapatmayı Onayla - + Create Save State Backups Durum Kaydı Yedekleri Oluştur - + Enable Discord Presence Discord Durumunu etkinleştir - + Enable Per-Game Settings Her Oyuna Özel Ayarları Etkinleştir - + Game Display Oyun Ekranı - + Start Fullscreen Tam Ekran Modunda Başlat - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Pencere Boyutlandırmayı Devre Dışı Bırak - + Hide Cursor In Fullscreen Tam Ekranda Fare İmlecini Gizle - + Preferences Tercihler - + Language: Dil: - + Theme: Tema: - + Automatic Updater Otomatik Güncelleyici - + Update Channel: Güncelleme kanalı: - + Current Version: Mevcut Sürüm: - + Enable Automatic Update Check Otomatik Güncelleyici Etkinleştir - + Check for Updates... Güncellemeleri Kontrol Et... @@ -12071,7 +12659,7 @@ Right click to clear binding Mevcut oynanan oyunu Discord profilinde gösterir. - + System Language [Default] Sistem Dili @@ -12128,14 +12716,14 @@ Right click to clear binding - - + + Change Disc Diski Değiştir - + Load State Durum Kaydı Yükle @@ -12640,13 +13228,13 @@ Right click to clear binding - + Start Big Picture Mode Geniş Ekran Moduna Geç - + Big Picture In Toolbar Geniş Ekran Modu @@ -12658,7 +13246,7 @@ Right click to clear binding - + Show Advanced Settings Gelişmiş Ayarları Göster @@ -12669,7 +13257,7 @@ Right click to clear binding - + Video Capture Video Kaydetme @@ -12684,27 +13272,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Dahili Çözünürlük - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Tekrar gösterme - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12717,168 +13305,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Kapatmayı Onayla - + Are you sure you want to shut down the virtual machine? Sanal Makineyi kapatmak istediğinize emin misiniz? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Hata - + You must select a disc to change discs. Disk değiştirmek için önce bir disk seçmelisiniz. - + Properties... Özellikler... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Kapak Resmi Ayarla... - + Exclude From List Listeden Ayrı Tut - + Reset Play Time Reset Play Time - + Default Boot Varsayılan Önyükleme - + Fast Boot Hızlı Önyükleme - + Full Boot Tam Önyükleme - + Boot and Debug Önyükle ve Hata ayıkla - + Add Search Directory... Add Search Directory... - + Start File Dosyayı Başlat - + Start Disc Diskten Başlat - + Select Disc Image Disk İmajı Seç - + Updater Error Güncelleyici Hatası - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Otomatik güncelleme mevcut platformda desteklenmiyor. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Duraklatıldı - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12893,97 +13486,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Oyun Ayarları - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. Durum Kaydı mevcut değil. - + Select Cover Image Kapak Resmi Ayarla - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Kapak Resmi Zaten Mevcut - + A cover image for this game already exists, do you wish to replace it? Bu oyun için halihazırda bir kapak resmi mevcut, değiştirmek istediğinize emin misiniz? - - - - + + + + Copy Error Kopyalama hatası - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Sıfırlamayı Onayla - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12992,12 +13585,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13010,70 +13603,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Temiz Önyükleme - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Dosyadan yükle... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Durum Kayıtlarını Sil... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Durum Kayıtlarını Sil - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13082,42 +13675,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 durum kayıtları silindi. - + Save To File... Dosyaya kaydet... - + Empty Boş - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Diski Değiştir - + Reset Yeniden Başlat @@ -13125,8 +13718,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13207,6 +13800,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13257,11 +13851,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - Standart Hafıza Kartından 2 kat daha büyük, uyumluluk sorunları yaratabilir. - MemoryCardCreateDialog @@ -13387,103 +13976,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Hafıza Kartları - + Folder: Klasör: - + Browse... Göz At... - + Open... Aç... - + Reset Sıfırla - + Name İsim - + Type Tür - + Formatted Biçimlendirildi - + Last Modified Son değiştirilme - + Refresh Yenile - + + Create Oluştur - + Duplicate Çoğalt - + Rename Yeniden adlandır - + Convert Dönüştür - + Delete Sil - + Settings Ayarlar - + Automatically manage saves based on running game Çalıştırılan oyuna göre kayıtları otomatik düzenle - + Auto-eject Memory Cards when loading save states Durum kayıtlarını yüklerken Hafıza Kartlarını otomatik olarak çıkart @@ -13653,58 +14243,58 @@ Bu işlem geri alınamaz. Hafıza Kartındaki bütün kayıtlar silinecek.Bellek - + Copy Address Adresi Kopyala - + Go to in disassembly Go to in disassembly - - + + Go to address Adrese git - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Yapıştır @@ -13754,10 +14344,15 @@ Bu işlem geri alınamaz. Hafıza Kartındaki bütün kayıtlar silinecek.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13953,6 +14548,16 @@ Bu işlem geri alınamaz. Hafıza Kartındaki bütün kayıtlar silinecek.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13969,14 +14574,14 @@ Bu işlem geri alınamaz. Hafıza Kartındaki bütün kayıtlar silinecek.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14023,13 +14628,6 @@ Bu işlem geri alınamaz. Hafıza Kartındaki bütün kayıtlar silinecek.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14100,40 +14698,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Gitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB yamaları - + {}{} game patches {}{} oyun yamaları - + {}{} cheat patches {}{} hileler - + {} are active. {} aktif. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. Hiçbir hile veya yama (geniş ekran, uyumluluk ve diğerleri) bulunamadı / aktif edilemedi. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14151,13 +14772,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Oluşturucu - + Failed to create HDD image HDD imajı oluşturulamadı @@ -14362,7 +14983,6 @@ Aksi durumda durum kaydını silin ve temiz başlatma modunda çalıştırın.SettingWidgetBinder - @@ -14412,222 +15032,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Genelde Seçilmiş Ayarı Kullan [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Genelde Seçilmiş Ayarı Kullan [Disabled] + + + + + Use Global Setting [%1] + Genelde Seçilmiş Ayarı Kullan [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings - PINE Ayarları + PCSX2 Settings - + Restore Defaults - Varsayılanları Yükle + Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close - Kapat - - - - - Summary - Özet + Close - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface - Arayüz + Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List - Oyun Listesi + Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS - BIOS + BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - <strong>BIOS Ayarları</strong><hr>BIOS ayarlarınızı buradan yönetin.<br><br>Daha fazla bilgi için farenizi seçeneğin üstüne getirin. + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation - Emülasyon + Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches - Yamalar + Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats - Hileler + Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - <strong>Hileler</strong><hr>Bu bölüm, etkinleştirmek istediğiniz hileleri seçmenizi sağlar. Eski format pnach dosyaları için etiketler olmadan hileleri etkinleştiremez/devre dışı bırakamazsınız, onlar ana hile etkinleştirme seçeneği işaretlenirse otomatik olarak etkinleştirilir. + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes - Oyun Düzeltmeleri + Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - <strong>Oyun Düzeltmeleri Ayarları</strong><hr>Oyun Düzeltmeleri, bazı oyunlardaki yanlış oluşan emülasyon hatalarını düzeltir.<br>Fakat, yanlış durumlarda kullanıldığında oyunlarda sorunlar yaratabilir.<br>Aksi belirtilmediği sürece, Oyun Düzeltmelerinin kapalı kalması tavsiye edilir. + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics - Grafikler + Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio - Ses + Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards - Hafıza Kartları + Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD - Ağ & HDD + Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders - Klasörler + Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements - Başarımlar + Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - <strong>Başarım Ayarları</strong><hr>Bu seçenekler, PCSX2'deki RetroAchievements entegrasyonuyla oyunlarda başarılar kazanmanızı sağlar. + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. - Şu anda RAIntegration kullanılıyor, yerleşik RetroAchievements desteği devre dışı. + RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced - Gelişmiş + Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug - Hata ayıklama + Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. - Varsayılan ayarlara dönmek istediğinize emin misiniz? Yaptığınız değişiklikler sıfırlanacak. + Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings - Arayüz Ayarlarını Sıfırla + Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14640,12 +15281,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14658,32 +15299,14 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value - Önerilen Değer - - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Genelde Seçilmiş Ayarı Kullan [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Genelde Seçilmiş Ayarı Kullan [Disabled] - - - - - Use Global Setting [%1] - Genelde Seçilmiş Ayarı Kullan [%1] + Recommended Value @@ -14770,8 +15393,8 @@ Do you want to continue? - Open in Explorer... - Dosya Gezgini ile Aç... + Open BIOS Folder... + Open BIOS Folder... @@ -15038,97 +15661,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. ASKIYA AL - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. UYKU - + DELAY Refers to a Thread Wait State in the Debugger. GECİKME - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15334,6 +15957,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15365,6 +15993,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15380,6 +16014,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15400,6 +16040,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15455,6 +16101,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15655,6 +16310,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15665,6 +16340,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16164,117 +16845,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints İpuçları - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Aşağı - + Left Sol - + Up Yukarı - + Right Sağ - + L1 L1 - + L2 L2 - + Brake Fren - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Yuvarlak - + Cross Çarpı - + Triangle Üçgen - + Square Kare - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16282,67 +16963,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints İpuçları - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Fren - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16350,71 +17031,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Tuşlar - + A A - + C C - + Start Start Düğmesi - + Select Select Düğmesi - + B B - + D-Pad Yön Düğmeleri - - + + Down Down - - + + Left Sol - - + + Up Yukarı - - + + Right Sağ - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16423,29 +17104,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Tetik - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16453,27 +17134,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Cihaz türü - + Bindings Bindings - + Settings Ayarlar - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16511,32 +17192,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Bilinmeyen Oyun - + Error Hata - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16553,197 +17234,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. Slot {} Durum Kaydı Barındırmıyor. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Durum kaydı {} slotuna kaydediliyor... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Hızlı CDVD aktif, bu seçenek oyunları bozabilir. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Oyun düzeltmeleri aktif değil. Bazı oyunlarda uyumluluk sorunları yaşanabilir. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Uyumluluk yamaları aktif değil. Bazı oyunlarda uyumluluk sorunları yaşanabilir. - + Frame rate for NTSC is not default. This may break some games. Kare hızı NTSC oyunlar için varsayılan olarak ayarlanmamış. Bu seçenek bazı oyunları bozabilir. - + Frame rate for PAL is not default. This may break some games. Kare hızı PAL oyunlar için varsayılan olarak ayarlanmamış. Bu seçenek bazı oyunları bozabilir. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_uk-UA.ts b/pcsx2-qt/Translations/pcsx2-qt_uk-UA.ts index f9f68995958738..cf82c7a3a36481 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_uk-UA.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_uk-UA.ts @@ -80,32 +80,38 @@ Чекаємо... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Ваш маркер входу RetroAchievements більше не дійсний.</strong> Ви повинні повторно ввести свої облікові дані, щоб відстежувати досягнення. Ваш пароль не буде збережено в PCSX2, замість нього буде згенеровано та використано маркер доступу. - + &Login &Увійти - + Logging in... Здійснюється вхід... - + Login Error Помилка входу - - Login failed. Please check your username and password, and try again. - Помилка входу. Будь ласка, перевірте введені ім'я користувача і пароль та спробуйте ще раз. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Вхід невдалий. +Помилка: %1 + +Будь ласка, перевірте ім'я користувача та пароль і спробуйте знову. - + Login failed. Помилка входу. @@ -113,268 +119,501 @@ AchievementSettingsWidget - - Global Settings - Загальні налаштування - - - - + + Enable Achievements Увімкнути досягнення - - - Show Challenge Indicators - Показувати індикатори челенджів - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Увімкнути насичену присутність RA - - - - + + Enable Hardcore Mode Увімкнути хардкорний режим - - - Enable Leaderboards - Увімкнути таблиці лідерів - - - + Test Unofficial Achievements Тестувати неофіційні досягнення - - - Enable Test Mode - Увімкнути режим тестування - - - - + + Enable Sound Effects Увімкнути звукові ефекти - + Notifications Сповіщення - - - Show Notifications - Показувати сповіщення - - - - Duration - Тривалість - - - - - - + + 5 seconds 5 секунд - + Account Обліковий запис - - + + Login... Увійти... - + View Profile... Переглянути профіль... - + + Settings + Налаштування + + + + + Enable Spectator Mode + Ввімкнути Режим Спостерігача + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Показувати повідомлення про Досягнення + + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info Інформація про гру - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 використовує RetroAchievements як базу даних для досягнень та відстеження прогресу. Щоб користуватися досягненнями, будь ласка, зареєструйте обліковий запис на <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">Для перегляду списку досягнень під час гри, натисніть гарячу клавішу <span style=" font-weight:600;">Відкрити меню паузи</span> і оберіть <span style=" font-weight:600;">Досягнення</span> з переліку меню.</p></body></html> + - seconds - секунд - - - - + + - - Unchecked Без позначки - - When enabled and logged in, PCSX2 will scan for achievements on game load. - Коли увімкнено і здійснено вхід, PCSX2 буде сканувати на наявність досягнень при завантаженні гри. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. Коли увімкнено, PCSX2 вважатиме, що всі досягнення закриті та не буде відсилати сповіщення з розблокуванням досягнень на сервер. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. Коли увімкнено, PCSX2 буде перелічувати досягнення з неофіційних сетів. Зверніть увагу, що ці досягнення не відстежуються серверами RetroAchievements, тому вони розблоковуються щоразу. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - Коли увімкнено, інформація розширеної присутності буде зібрано і відіслано на сервери RetroAchievements, де це підтримується. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. Режим "виклику" для досягнень, у тому числі відстежування таблиці лідерів. Вимикає збережені стани, чіти, функції з пришвидшенням і сповільненням емуляції. - - - - + + + + Checked Позначено - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Вмикає відстеження і подання результатів у таблиці лідерів, в іграх що підтримуються. Якщо ця опція вимкнена, ви зможете переглянути таблицю лідерів з результатами, але результати не будуть зараховуватися. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Вмикає відображення спливних повідомлень про події, такі як розблокування досягнення та подання результатів до таблиці лідерів. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Вмикає відтворення звукових ефектів для таких подій, як розблокування досягнень та подання результатів до таблиці лідерів. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Показує іконки в нижньому правому куті екрана, коли активується челендж/"primed" досягнення з декількома умовами для виконання. - - - - Notification Duration - Тривалість сповіщення + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - Тривалість в секундах, протягом якого спливне повідомлення буде залишатися на екрані. + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - + Reset System Перезавантажити систему - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Хардкорний режим не буде увімкнений до перезапуску системи. Чи хочете ви зробити перезавантаження системи зараз? + + + + %n seconds + + %n секунд + %n seconds + %n seconds + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Ім'я користувача: %1 Токен доступу згенеровано в %2. - + Logout Вихід - + Not Logged In. Вхід не здійснено. - - - %1 seconds - %1 секунд - Achievements - + Hardcore mode will be enabled on system reset. Хардкорний режим буде увімкнено при перезавантаженні системи. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} не може бути виконаний поки хардкорний режим увімкнений. Чи хочете ви вимкнути хардкорний режим? {0} буде скасований якщо ви оберете Ні. - + Hardcore mode is now enabled. Хардкорний режим тепер увімкнено. - + + {} (Hardcore Mode) + {} (Хардкорний режим) + + + + {} (Unofficial) + {} (Неофіційне) + + + + Mastered {} + Подолано {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Ваш час: {}{} + + + + Your Score: {}{} + Ваш рахунок: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. Хардкорний режим тепер вимкнено. - + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (Хардкорний режим) - - You have earned {0} of {1} achievements, and {2} of {3} points. - Ви заробили {0} з {1} досягнень, і {2} з {3} балів. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - Ця гра не має досягнень. + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Unknown + + + + Locked + Locked + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + Unofficial + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Розблоковано: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Ім'я + + + + Time + Час + + + + Score + Рахунок + + + + Value + Значення + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... - - Leaderboard submission is enabled. - Подання результатів до таблиці лідерів увімкнено. + + + Loading... + Завантаження... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + Ця гра не має досягнень. - + Failed to read executable from disc. Achievements disabled. Не вдалося прочитати виконавчий файл з диска. Досягнення вимкнені. @@ -578,220 +817,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Зміна цих опцій можуть призвести до того, що ігри стануть нефункціональними. Редагуйте на власний ризик, команда PCSX2 не буде надавати підтримку з конфігурацією, якщо ці опції були змінені. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Режим раундінгу: - - - + + + Nearest Найближчий - - - + + + Negative Негативний - - - + + + Positive Позитивний - - - + + + Chop / Zero (Default) Chop / Zero (за замовчуванням) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Режим клемпінгу: - - + + None Ніякий - - - + + + Normal (Default) Звичайний (за замовчуванням) - + None ClampMode Ніякий - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Додатковий зі збереженням знаку - + Full Повний - + Wait Loop Detection Детектор лупу очікування - - + + Enable Recompiler Увімкнути рекомпілятор - + Enable Fast Memory Access Включити швидкий доступ до пам'яті - + Enable Cache (Slow) Увімкнути кешування (повільно) - + INTC Spin Detection Детектор кружляння INTC - + Pause On TLB Miss Пауза на TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Векторні процесори (VU) - + VU1 Rounding Mode: Режим раундінгу VU1: - + mVU Flag Hack mVU Flag хак - + Enable VU1 Recompiler Увімкнути рекомпілятор VU1 - + Enable VU0 Recompiler (Micro Mode) Увімкнути рекомпілятор VU0 (мікрорежим) - - + + Extra Додатково - + VU0 Clamping Mode: Режим клемпінгу VU0: - + VU0 Rounding Mode: Режим раундінгу VU0: - + VU1 Clamping Mode: Режим клемпінгу VU1: - + I/O Processor (IOP, MIPS-I) Процесор вводу/виводу (IOP, MIPS-I) - + Game Settings Налаштування гри - + Enable Game Fixes Увімкнути ігрові фікси - + Enable Compatibility Patches Увімкнути патчі сумісності - + Frame Rate Control Керування частотою кадрів - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. гц - + PAL Frame Rate: Частота кадрів PAL: - + NTSC Frame Rate: Частота кадрів NTSC: - + PINE Settings Налаштування PINE - + Slot: Слот: - + Enable Увімкнути @@ -799,182 +1038,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings Налаштування Timestretch - + Sequence Length: Довжина послідовності: - + 30 30 - + Seekwindow Size: Тривалість вікна пошуку: - + 20 20 - + Overlap: Тривалість перекриття: - + 10 10 - + Restore Defaults Скинути до початкових - + Volume Гучність - + 100% 100% - + Mixing Settings Налаштування мікшування - + Synchronization: Синхронізація: - + TimeStretch (Recommended) TimeStretch (Рекомендовано) - + Async Mix (Breaks some games!) Async Mix (Ламає деякі ігри!) - + None (Audio can skip.) Ніяка (Аудіо буде рватися.) - + Expansion: Розширення: - + Stereo (None, Default) Stereo (Ніякий, За замовчуванням) - + Quadraphonic Quadraphonic - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Рівень ProLogic: - + None (Default) Ніякий (За замовчуванням) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. Декодування ProLogic (базове) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. Декодування ProLogic II (gigaherz) - + Target Latency: Цільова затримка: - + 60 ms 60 мс - + Output Settings Налаштування виведення - + Output Module: Модуль виведення: - + Output Latency: Затримка виведення: - + 20 ms 20 мс - + Minimal Мінімальне - + Output Backend: Бекенд виводу: - + Maximum Latency: Максимальна затримка: - + Output Device: Пристрій виводу: @@ -1162,17 +1401,22 @@ Login token generated on %2. Нова версія: - + + Download Size: + Розмір завантаження: + + + Download and Install... Завантажити та встановити... - + Skip This Update Пропустити це оновлення - + Remind Me Later Нагадайте мені пізніше @@ -1182,24 +1426,24 @@ Login token generated on %2. Помилка системи оновлення - + <h2>Changes:</h2> <h2>Зміни:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Попередження щодо збережених станів</h2><p>Інсталяція цього оновлення зроблять ваші збережені стани <b>несумісними</b>. Переконайтеся, що ви збереглися у своїх іграх на карті пам'яті перед цим оновленням, або ви втратите прогрес.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Попередження щодо налаштувань</h2><p>Інсталяція цього оновлення призведе до скидання конфігурації вашої програми. Будь ласка, зверніть увагу, що вам доведеться переналаштовувати ваші параметри після цього оновлення.</p> Savestate Warning - Попередження Savestate + Попередження про стани збереження @@ -1233,6 +1477,11 @@ Login token generated on %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... Завантажується... @@ -1240,63 +1489,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory Директорія BIOS - + PCSX2 will search for BIOS images in this directory. PCSX2 буде шукати образи BIOS в цій директорії. - + Browse... Огляд... - + Reset Скинути - + BIOS Selection Вибір BIOS - - Open in Explorer... - Відкрити в Провіднику... + + Open BIOS Folder... + Відкрити папку BIOS... - + Refresh List Оновити список - + Filename Назва файлу - + Version Версія - + Options and Patches Опції та патчі - + Fast Boot Швидкий запуск - + Fast Forward Boot Запуск з перемоткою вперед @@ -1424,91 +1673,84 @@ Login token generated on %2. BreakpointModel - + Execute Виконати - - No Condition - Умови відсутні - - - - + + -- -- - - + Enabled Увімкнено - - + Disabled Вимкнено - + Read Читати - + Write(C) (C) = changes, as in "look for changes". Запис(змінити) - + Write Записати - + TYPE Warning: limited space available. Abbreviate if needed. ТИП - + OFFSET Warning: limited space available. Abbreviate if needed. ЗМІЩЕННЯ - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. РОЗМІР / ЛЕЙБЛ - + INSTRUCTION Warning: limited space available. Abbreviate if needed. ІНСТРУКЦІЯ - + CONDITION Warning: limited space available. Abbreviate if needed. УМОВА - + HITS Warning: limited space available. Abbreviate if needed. ВИКОНАННЯ - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - УВІМКНЕНО + X @@ -1519,7 +1761,7 @@ Login token generated on %2. Диск гри розташований на змінному диску, можливі проблеми зі швидкодією, такі як відхилення частоти та зависання. - + Saving CDVD block dump to '{}'. Збереження дампу блоку CDVD на '{}'. @@ -1555,32 +1797,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type Тип віртуального контролера - + Bindings Прив'язки - + Settings Налаштування - + Macros Макроси - + Automatic Mapping Автоматичне прив'язування - + Clear Mapping Скинути прив'язки @@ -1620,146 +1862,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Хрестовина - - - + + + Down Вниз - - - + + + Left Вліво - - - + + + Up Вгору - - - + + + Right Вправо - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Лівий стік - + Large Motor Великий вібраційний двигун - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Лицьові кнопки - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Хрест - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Квадрат - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Трикутник - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Коло - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Правий стік - + Small Motor Маленький вібраційний двигун - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Модифікатор сили натискання - + Analog Аналог @@ -1767,77 +2009,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - Форма - - - + Yellow Жовтий - - - - - - - - - - - + + + + + + + + + + + PushButton Наживна Кнопка - + Start Start - + Red Червоний - + Green Зелений - + Orange Помаранчевий - + Select Select - + Strum Up Струнити вгору - + Strum Down Струнити вниз - + Blue Синій - + Whammy Bar Тремоло - + Tilt Нахил вгору @@ -1863,123 +2100,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source Джерело введення SDL - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). SDL підтримує більшість контролерів, та надає розширену функціональність для DualShock 4 / DualSense контролерів в режимі Bluetooth (вібрація / LED). - + Enable SDL Input Source Увімкнути джерело введення SDL - + DualShock 4 / DualSense Enhanced Mode Покращений режим DualShock 4 / DualSense - + XInput Source Джерело введення XInput - + Enable XInput Input Source Увімкнути джерело введення XInput - + DInput Source Джерело введення DInput - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. Джерело введення DInput забезпечує підтримку застарілих контролерів які не підтримують XInput. Рекомендується використовувати джерело SDL для таких контролерів, але DirectInput можна використовувати якщо вони не сумісні з SDL. - + Enable DInput Input Source Увімкнути джерело введення DInput - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Налаштування профілю - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. Коли ця опція увімкнена, гарячі клавіші можуть бути встановлені в цьому профілі вводу, і вони будуть використовуватися замість глобальних гарячих клавіш. За замовчуванням гарячі клавіші завжди є спільними для всіх профілів. - + Use Per-Profile Hotkeys Використовувати гарячі клавіші для окремих профілів - - + + Controller LED Settings Налаштування LED контролера - + Enable SDL Raw Input Увімкнути SDL Raw Input - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - Джерело XInput надає підтримку для контролерів Xbox 360 / Xbox One / Series, а також контролери сторонніх виробників які впроваджують протокол XInput. + Джерело XInput надає підтримку для контролерів Xbox 360 / Xbox One / Xbox Series, а також контролери сторонніх виробників які впроваджують протокол XInput. - + Controller Multitap Контролер Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. Multitap дозволяє підключати до 8 контролерів до консолі. Кожен Multitap має 4 порти. Multitap не підтримується всіма іграми. - + Multitap on Console Port 1 Multitap в першому порті консолі - + Multitap on Console Port 2 Multitap в другому порті консолі - + Mouse/Pointer Source Джерело миші/вказівника - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 дозволяє використовувати мишу для симуляції руху аналогового стіку. - + Settings... Налаштування... - + Enable Mouse Mapping Увімкнути використання миші - + Detected Devices Знайдені пристрої @@ -2015,58 +2262,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons Прив'язки/Кнопки - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Оберіть кнопки які ви хочете активувати за допомогою цього макросу. Всі обрані кнопки будуть активуватися одночасно. - + Pressure Тиск - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. Для кнопок, чутливих до сили натискання, цей слайдер визначає, скільки сили буде симульовано, коли макрос активний. - - + + 100% 100% - + Trigger Тригер - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Оберіть тригер для активації цього макросу. Це може бути окрема кнопка, або комбінація кнопок (акорд). Клацніть утримуючи Shift, щоб додати більше тригерів. - + Deadzone: Мертва зона: - + Frequency Частота - + Macro will toggle every N frames. - Макрос буде активуватися кожні N кадрів. + Макрос буде перемикатися кожні N кадрів. - + Set... Встановити... @@ -2099,7 +2346,7 @@ Login token generated on %2. Macro will toggle buttons every %1 frames. - Макрос буде активувати кнопки кожні %1 кадрів. + Макрос буде перемикати кнопки кожні %1 кадрів. @@ -2169,174 +2416,174 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - Налаштування контролера PCSX2 + PCSX2 Controller Settings - + Editing Profile: - Редагування профілю: + Editing Profile: - + New Profile Новий профіль - + Load Profile - Завантажити профіль + Load Profile - + Delete Profile Видалити профіль - - + + Restore Defaults - Скинути налаштування до початкових + Restore Defaults - - + + Create Input Profile - Створити профіль вводу + Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - Спеціальні профілі введення використовуються для заміни спільного профілю введення для певних ігор. -Щоб застосувати спеціальний профіль введення до гри, перейдіть до її властивостей гри, а потім змініть 'Профіль введення' на вкладці Підсумок. + Custom input profiles are used to override the Shared input profile for specific games. +To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. -Введіть назву для нового профілю введення: +Enter the name for the new input profile: - - - - + + + + Error Помилка - + A profile with the name '%1' already exists. - Профіль з іменем '%1' вже існує. + A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - Чи хочете скопіювати всі прив'язки з поточного профілю у новий профіль? Якщо вибрати "Ні", буде створено повністю порожній профіль. + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. - Не вдалося зберегти новий профіль у '%1'. + Failed to save the new profile to '%1'. - + Load Input Profile - Завантажити профіль вводу + Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - Ви впевнені, що хочете завантажити профіль вводу з назвою '%1'? + Are you sure you want to load the input profile named '%1'? -Всі поточні глобальні прив'язки будуть видалені, і прив'язки з профілю завантажені. +All current global bindings will be removed, and the profile bindings loaded. -Ви не зможете скасувати цю дію. +You cannot undo this action. - + Delete Input Profile - Видалити профіль вводу + Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - Ви впевнені, що хочете видалити профіль вводу з назвою '%1'? + Are you sure you want to delete the input profile named '%1'? -Ви не зможете скасувати цю дію. +You cannot undo this action. - + Failed to delete '%1'. - Не вдалося видалити '%1'. + Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - Ви впевнені, що хочете скинути налаштування контролера до початкових? + Are you sure you want to restore the default controller configuration? -Всі прив'язки та налаштування в спільному профілі будуть втрачені, але ваші інші профілі вводу залишаться. +All shared bindings and configuration will be lost, but your input profiles will remain. -Ви не зможете скасувати цю дію. +You cannot undo this action. - + Global Settings - Загальні опції + Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Порт контролера %1%2 + Controller Port %1%2 %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - Порт контролера %1 + Controller Port %1 %2 - - + + USB Port %1 %2 USB-порт %1 %2 - + Hotkeys Гарячі клавіші - + Shared "Shared" refers here to the shared input profile. - Спільний + Shared - + The input profile named '%1' cannot be found. - Профіль вводу з назвою '%1' неможливо знайти. + The input profile named '%1' cannot be found. @@ -2406,204 +2653,242 @@ You cannot undo this action. Функції - + + Module + Модуль + + + + Version + Версія + + + + Count + Count + + + Refresh Оновити - + Filter Фільтр - + Memory Search Пошук в пам'яті - + End Кінець - + Value Значення - + Start Запуск - + Type Тип - + 1 Byte (8 bits) 1 байт (8 біти) - + 2 Bytes (16 bits) 2 байти (16 біти) - + 4 Bytes (32 bits) 4 байти (32 біти) - + 8 Bytes (64 bits) 8 байтів (64 біти) - + Float З рухомою комою - + Double Двійниковий - + String Рядок - + Array of byte Масив байтів - + Hex Шістн. - + Search Пошук - + Memory Пам’ять - + Breakpoints Точки зупину - + Threads Потоки - + Active Call Stack Активний стек викликів - + Breakpoint List Context Menu Контекстне меню списку точок зупину - + New Новий - + Edit Редагувати - - - + + + Copy Копіювати - + Delete Видалити - + + + + Copy all as CSV + Скопіювати все як CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Контекстне меню списку потоків - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Розкодування символів - + + Copy Function Name Копіювати ім'я функції - + + Copy Function Address Копіювати адресу функції - + + Go to in Disassembly Показати в дизассемблері - + + Go to in Memory View Показати в пам'яті - + + + Module Tree + Module Tree + + + Stack List Context Menu Контекстне меню списку потоків - - - - - + + + + + Debugger Налагоджувач - + Invalid start address Неприпустима початкова адреса - + Invalid end address Неприпустима кінцева адреса - + Start address can't be equal to or greater than the end address Початкова адреса не може дорівнювати або перевищувати кінцеву адресу - + Invalid search value Неприпустиме значення пошуку - + Value is larger than type Значення є більшим за тип @@ -2659,22 +2944,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Пристрій Ethernet: - + Ethernet Device Type: Тип пристрою Ethernet: - + Intercept DHCP Перехоплення DHCP @@ -2684,135 +2969,130 @@ You cannot undo this action. Увімкнено - + Enabled InterceptDHCP Увімкнено - + Subnet Mask: Маска підмережі: - + Gateway Address: Адреса шлюзу: - - + + Auto Авто - + Intercept DHCP: Перехоплення DHCP: - + PS2 Address: Адреса PS2: - + DNS1 Address: Адреса DNS1: - + DNS2 Address: Адреса DNS2: - + Internal DNS Внутрішній DNS - + Add Додати - + Delete Видалити - + Export Експорт - + Import Імпорт - + Per game За грою - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Внутрішній DNS можна обрати за допомогою розкривного меню DNS1/2. або встановивши їх на 192.0.2.1 - + Enabled InternalDNSTable Увімкнено - + Hard Disk Drive Жорсткий диск - + HDD File: Файл жорсткого диска: - + 40 40 - + 120 120 - + HDD Size (GiB): Розмір жорсткого диска (ГіБ): - + Enabled HDD Увімкнено - + Browse Огляд - + Create Image Створити образ - - - - - PCAP Bridged @@ -2845,7 +3125,7 @@ You cannot undo this action. - + Use Global Setting [%1] Застосувати глобальне значення [%1] @@ -2865,78 +3145,78 @@ You cannot undo this action. Адреса - - + + Hosts File Файл hosts - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS хости - + Exported Successfully Експортовано успішно - + Failed to open file Не вдалося відкрити файл - + No Hosts in file Нема хостів у файлі - + Imported Successfully Імпортовано успішно - - + + Per Game Host list Список хостів для гри - + Copy global settings? Копіювати глобальні налаштування? - + Delete per game host list? Видалити список хостів для гри? - + HDD Image File Образ жорсткого диска - + HDD (*.raw) Жорсткий диск (*.raw) - + Overwrite File? Перезаписати файл? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2945,22 +3225,22 @@ Do you want to overwrite? Ви хочете перезаписати? - + HDD Creator Створювач образу - + HDD image created Образ жорсткого диска створено - + Use Global Використовувати глобальний - + Override Перезапис @@ -2968,69 +3248,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Дамп промальовки - + Dump GS Draws Дамп GS промальовок - + Save RT Зберегти RT - + Save Frame Зберегти кадр - + Save Texture Зберегти текстуру - + Save Depth Зберегти глибину - + Start Draw Number: Номер початкової промальовки: - + Draw Dump Count: Кількість дампу промальовок: - + Hardware Dump Directory: Директорія для апаратного дампу: - + Software Dump Directory: Директорія для програмного дампу: - - + + Browse... Огляд... - - + + Open... Відкрити... @@ -3043,29 +3323,53 @@ Do you want to overwrite? Налагоджувач PCSX2 - - - + + Run Запуск - + Step Into Вступити - + + F11 + F11 + + + Step Over Переступити - + + F10 + F10 + + + Step Out Відступити - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Пауза @@ -3078,150 +3382,175 @@ Do you want to overwrite? Дизасемблювання - + Copy Address Скопіювати адресу - + Copy Instruction Hex Копіювати шістнадцяткову цифру інструкції - + Copy Instruction Text Копіювати текст інструкції - + Assemble new Instruction(s) Асемблювати нову(-і) інструкцію(-ї) - + NOP Instruction(s) Встановити NOP інструкції(-ям) - + Run to Cursor Запустіть курсор - + Jump to Cursor Перейти до курсору - + Toggle Breakpoint Перемкнути точку зупину - + Follow Branch Слідкуйте за філією - + Go to Address Перейти до адреси - + Go to in Memory View Перейти до байта в перегляді пам'яті - - + + Add Function Додати функцію - - + + Rename Function Перейменувати функцію - + Remove Function Прибрати функцію - - + + Assemble Error Помилка асемблювання - + Unable to change assembly while core is running Неможливо змінити збірку під час роботи ядра - + Assemble Instruction Асемблювати інструкцію - + Go to address Перейти до адреси - + Go to address error Помилка переходу до адреси - + Invalid address Неприпустима адреса - + Add Function Error Помилка додавання функції - + A function entry point already exists here. Consider renaming instead. Пункт введення функції вже існує тут. Розгляньте можливість перейменування. - - + + Function will be (0x%1) instructions long. Enter function name Функція буде в (0x%1) інструкцій довжиною. Введіть ім'я функції - + Function name Ім'я функції - - + + Rename Function Error Помилка перейменування функції - + Function name cannot be nothing. Назва функції не може бути пустою. - + No function / symbol is currently selected. Наразі не обрано жодної функції / символу. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 НЕ Є ВІРНОЮ АДРЕСОЮ @@ -3229,17 +3558,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">Жодних ігор у форматах які підтримуються не було знайдено.</span></p><p>Будь ласка, додайте директорію з іграми, щоб почати.</p><p>Дампи ігор у наступних форматах буде відскановано і показано:</p></body></html> - + Add Game Directory... Додати директорію з іграми... - + Scan For New Games Сканувати на нові ігри @@ -3247,50 +3576,43 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Гра: %1 FPS - + Video: %1 FPS (%2%) Відео: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - ID гри: %1 -Назва гри: %2 -Досягнення: %5 (%6) - - - - - - %n points - - %n бал - %n балів - %n балів - %n балів - + Гра: %1 (%2) - + Rich presence inactive or unsupported. Розширена присутність неактивна або не підтримується. - + Game not loaded or no RetroAchievements available. Гра не завантажена або немає доступних досягнень для цієї гри. @@ -3298,192 +3620,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Налаштування швидкості - + Normal Speed: Звичайна швидкість: - + Enable Speed Limiter Увімкнути обмежувач швидкості - + System Settings Налаштування системи - + Enable Instant VU1 Увімкнути миттєвий VU1 - + Enable Cheats Увімкнути чіти - + Slow-Motion Speed: Швидкість сповільнення: - + Fast-Forward Speed: Швидкість перемотки вперед: - + Enable Multithreaded VU1 (MTVU) Увімкнути багатопотоковий VU1 (MTVU) - + Enable Host Filesystem Увімкнути файлову систему хоста - + Enable Fast CDVD Увімкнути швидкий CDVD - + EE Cycle Skipping: Пропуск циклів EE: - - + + Disabled Вимкнено - + Mild Underclock Незначний андерклок - + Moderate Underclock Помірний андерклок - + Maximum Underclock Максимальний андерклок - + EE Cycle Rate: Частота циклів EE: - + 50% (Underclock) 50% (андерклок) - + 60% (Underclock) 60% (андерклок) - + 75% (Underclock) 75% (андерклок) - + 100% (Normal Speed) 100% (нормальна швидкість) - + 130% (Overclock) 130% (розгін) - + 180% (Overclock) 180% (розгін) - + 300% (Overclock) 300% (розгін) - + Affinity Control: Налаштування пріоритету: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Налаштування темпу кадрів / затримки - + frames This string will appear next to the amount of frames selected, in a dropdown box. кадри - + Maximum Frame Latency: Максимальна затримка у кадрах: - + Optimal Frame Pacing Оптимальний темп кадрів - + Scale To Host Refresh Rate Підлаштування до частоти оновлення хоста @@ -3571,12 +3893,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Дозволяє іграм та homebrew отримувати доступ до файлів / тек безпосередньо на комп'ютері хоста. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Швидкість перемотки вперед + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3640,45 +3972,40 @@ Achievements: %5 (%6) Встановлює максимальну кількість кадрів які будуть ставати у чергу до GS, перед тим як потік процесора буде чекати, поки один із них не завершиться. Вищі значення можуть допомогти зі згладжуванням нерівномірних тривалостей кадрів, але додає додаткову затримку введення. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Підлаштовує швидкість емуляції так, щоб частота оновлення консолі збігалася з частотою оновлення монітору, коли увімкнені вертикальна синхронізація і ресемплінг звуку. Це сприяє отриманню найплавнішої анімації, ціною потенційного збільшення швидкості емуляції менше ніж 1%. Підлаштування до частоти оновлення хоста не спрацює, якщо частота оновлення консолі занадто сильно відрізняється від частоти оновлення хоста. Користувачам з моніторами з змінною частотою оновлення слід вимкнути цю опцію. - - - + Use Global Setting [%1%] Застосувати глобальне значення [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Необмежена - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Користувацька - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Користувацька [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Користувацька швидкість - + Enter Custom Speed Введіть власну швидкість @@ -3686,79 +4013,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Директорія для кешу - - - - - + + + + + Browse... Огляд... - - - - - + + + + + Open... Відкрити... - - - - - + + + + + Reset Скинути - + Used for storing shaders, game list, and achievement data. Використовується для зберігання шейдерів, списку ігор, та даних про досягнення. - + Cheats Directory Директорія для чітів - + Used for storing .pnach files containing game cheats. Використовується для зберігання файлів у форматі .pnach, що містять чіти для ігор. - + Covers Directory Директорія для обкладинок - + Used for storing covers in the game grid/Big Picture UIs. Використовується для зберігання обкладинок, які зображені на сітці ігор/інтерфейсі Big Picture. - + Snapshots Directory Директорія для знімків - + Used for screenshots and saving GS dumps. Використовується для скриншотів та збереження дампів GS. - + Save States Directory Директорія для збережених станів - + Used for storing save states. Використовується для зберігання збережених станів. @@ -3766,4305 +4093,4226 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Не вдалося знайти жодного CD/DVD-ROM пристрою. Будь ласка, переконайтеся, що у вас є підключений дисковод і дозвіл для доступу до нього. - + Use Global Setting Застосувати глобальне значення - + Automatic binding failed, no devices are available. Помилка автоматичної прив'язки, ніяких пристроїв не доступно. - + Game title copied to clipboard. Назву гри скопійовано в буфер обміну. - + Game serial copied to clipboard. Серійний номер гри скопійовано в буфер обміну. - + Game CRC copied to clipboard. CRC гри скопійовано в буфер обміну. - + Game type copied to clipboard. Тип гри скопійовано в буфер обміну. - + Game region copied to clipboard. Регіон гри скопійовано в буфер обміну. - + Game compatibility copied to clipboard. Сумісність гри скопійовано в буфер обміну. - + Game path copied to clipboard. Шлях до гри скопійовано в буфер обміну. - + Per-game controller configuration initialized with global settings. Окреме налаштування контролера для гри ініціалізовано з глобальними налаштуваннями. - + Controller settings reset to default. Налаштування контролера були скинуті до початкових значень. - + No input profiles available. Немає доступних профілів вводу. - + Create New... Створити новий... - + Enter the name of the input profile you wish to create. Введіть ім'я профілю вводу, який ви хочете створити. - + Are you sure you want to restore the default settings? Any preferences will be lost. Ви впевнені, що хочете скинути налаштування до початкових? Будь-які налаштування, виставлені за уподобанням, буде втрачено. - + Settings reset to defaults. Налаштування було скинуто до початкових значень. - - Quick Save Slot - Слот швидкого збереження - - - + No save present in this slot. В цьому слоті немає збереження. - + No save states found. Станів збереження не знайдено. - + Failed to delete save state. Не вдалося видалити збережений стан. - + Failed to copy text to clipboard. Не вдалося скопіювати текст в буфер обміну. - + This game has no achievements. Ця гра не має досягнень. - + This game has no leaderboards. Ця гра не має таблиць лідерів. - + Reset System Перезавантажити систему - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Хардкорний режим не буде увімкнений до перезапуску системи. Чи хочете ви зробити перезавантаження системи зараз? - + Launch a game from images scanned from your game directories. Запуск гри з образів дисків, сканованих з ваших директорій з іграми. - + Launch a game by selecting a file/disc image. Запуск гри, обравши файл/образ диска. - + Start the console without any disc inserted. Запустити консоль без вставленого диска. - + Start a game from a disc in your PC's DVD drive. Запуск гри з диска, вставленого в DVD дисковод вашого ПК. - + Change settings for the emulator. Змінити налаштування для емулятора. - + Exits the program. Вихід з програми. - + No Binding Нема прив'язки - + Setting %s binding %s. Встановлення %s для прив'язки %s. - + Push a controller button or axis now. - Натисніть кнопку або вісь контролера зараз. + Натисніть кнопку або вісь контролера. - + Timing out in %.0f seconds... В очікуванні %.0f секунд... - + Unknown Невідомо - + OK ОК - + Select Device Оберіть пристрій - + Details Подробиці - + Options Опції - + Copies the current global settings to this game. Копіює поточні глобальні налаштування до цієї гри. - + Clears all settings set for this game. Скидає всі налаштування, встановлені для цієї гри. - + Behaviour Поведінка - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Запобігає збереженню екрану (скринсейвер) і режиму сну від активації, коли триває емуляція. - + Shows the game you are currently playing as part of your profile on Discord. Показує гру, в яку ви зараз граєте, як частину вашого профілю в Discord. - + Pauses the emulator when a game is started. Призупиняє емулятор, коли гра запущена. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Призупиняє емулятор під час згортанні вікна або переходу до іншого додатку, і відновлює роботу при поверненні до вікна. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Призупиняє емулятор, коли ви відкриваєте швидке меню, і відновлює роботу при його закритті. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Визначає, чи буде запит про завершення роботи емулятора/гри, коли натиснута гаряча клавіша. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Автоматично зберігає стан емулятора при вимиканні або виході. Ви можете відновити роботу прямо з місця виходу в наступний раз. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Дозволяє завантаження шаблонів у форматі .ini для ігрових налаштувань. - - - + Uses a light coloured theme instead of the default dark theme. Використовувати світлу тему замість стандартної темної теми. - + Game Display Зображення гри - - Automatically switches to fullscreen mode when the program is started. - Автоматично перемикає на повноекранний режим, коли починається програма. - - - + Switches between full screen and windowed when the window is double-clicked. Перемикає між повноекранним режимом і віконним, коли вікно натискається подвійним натисканням. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Приховує курсор миші, коли емулятор знаходиться в повноекранному режимі. - + Determines how large the on-screen messages and monitor are. Визначає розмір повідомлень та моніторингу на екрані. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Показує повідомлення на екрані, коли відбуваються події, такі як створення/завантаження збереження стану, зняття скриншотів, тощо. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Показує поточну швидкість емуляції системи у правому верхньому куті екрану у відсотках. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Показує кількість відеокадрів (або вертикальної синхронізації) зображених в секунду системою в правому верхньому куті екрану. - + Shows the CPU usage based on threads in the top-right corner of the display. Показує навантаження ЦП на основі потоків в правому верхньому куті екрану. - + Shows the host's GPU usage in the top-right corner of the display. Показує навантаження ГП комп'ютера хоста в правому верхньому куті екрану. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Показує роздільну здатність, у якій зображена гра у правому верхньому куті екрану. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Показує статистику про GS (примітиви, виклики малювання) в правому верхньому куті екрану. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Показує показники коли перемотка вперед, пауза та інші незвичні стани активні. - + Shows the current configuration in the bottom-right corner of the display. Показує поточну конфігурацію в правому нижньому куті екрану. - + Shows the current controller state of the system in the bottom-left corner of the display. Показує поточний стан контролера системи в нижньому лівому куті екрану. - + Shows a visual history of frame times in the upper-left corner of the display. Показує візуальну історію тривалості кадрів у верхньому лівому куті екрану. - + Displays warnings when settings are enabled which may break games. Показує попередження, коли увімкнені налаштування, які можуть ламати ігри. - + Resets configuration to defaults (excluding controller settings). Скидає налаштування до початкових (за винятком налаштувань контролера). - + Changes the BIOS image used to start future sessions. Змінює образ BIOS, який буде використовуватися для наступних сесій. - + Automatic Авто - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + За замовчуванням + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration - BIOS Configuration + Конфігурація BIOS - + BIOS Selection Вибір BIOS - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Пропускає вступний екран і обходить перевірку регіону. - + Speed Control Налаштування швидкості - + Normal Speed Звичайна швидкість - + Sets the speed when running without fast forwarding. Встановлює швидкість під час роботи без перемотки вперед. - + Fast Forward Speed Швидкість перемотки вперед - + Sets the speed when using the fast forward hotkey. Встановлює швидкість роботи, коли натиснута гаряча клавіша перемотки вперед. - + Slow Motion Speed Швидкість сповільнення - + Sets the speed when using the slow motion hotkey. Встановлює швидкість роботи, коли натиснута гаряча клавіша сповільнення. - + Enable Speed Limiter Увімкнути обмежувач швидкості - + When disabled, the game will run as fast as possible. Коли вимкнено, гра буде працювати якомога швидше. - + System Settings Налаштування системи - + EE Cycle Rate Частота циклів EE - + Underclocks or overclocks the emulated Emotion Engine CPU. Андерклокає або розганяє емульований ЦП Emotion Engine. - + EE Cycle Skipping Пропуск циклів EE - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Додає обмеження емульованому Emotion Engine за виконання VU програм. - - - + Affinity Control Mode Налаштування пріоритету - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Призначає потоки емуляції до ядер ЦП, що може сприяти продуктивності/дисперсії тривалості кадрів. - + Enable MTVU (Multi-Threaded VU1) Увімкнути MTVU (Багатопотоковий VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Використовує другий потік для мікропрограм VU1. Значно збільшує швидкість. - - - + Enable Instant VU1 Увімкнути миттєвий VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Зменшує розподіл часу між рекомпіляторами VU1 та EE, що результує в роботі VU1 з нескінченною тактовою частотою. - - - + Enable Cheats Увімкнути чіти - + Enables loading cheats from pnach files. Вмикає завантаження чітів з файлів pnach. - + Enable Host Filesystem Увімкнути файлову систему хоста - + Enables access to files from the host: namespace in the virtual machine. Вмикає доступ до файлів комп'ютера хоста: простір назв у віртуальній машині. - + Enable Fast CDVD Увімкнути швидкий CDVD - + Fast disc access, less loading times. Not recommended. Швидше доступ до диска, менше часу завантаження. Не рекомендується. - + Frame Pacing/Latency Control Налаштування темпу кадрів/затримки - + Maximum Frame Latency Максимальна затримка у кадрах - + Sets the number of frames which can be queued. Встановлює кількість кадрів, які можуть бути поставлені в чергу. - + Optimal Frame Pacing Оптимальний темп кадрів - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Синхронізує потоки EE та GS після кожного кадру. Найнижча затримка вводу, але збільшує системні вимоги. - - Adjust To Host Refresh Rate - Підлаштування до частоти оновлення хоста - - - + Speeds up emulation so that the guest refresh rate matches the host. Прискорює емуляцію, щоб частота оновлення емуляції відповідало монітору. - + Renderer Рендерер - + Selects the API used to render the emulated GS. Обирає API, який використовується для візуалізації емульованого GS. - + Sync To Host Refresh (VSync) Синхронізувати з частотою оновлення хоста (VSync) - + Synchronizes frame presentation with host refresh. Синхронізує показ кадрів з частотою оновлення екрану хоста. - + Display Відображення - + Aspect Ratio Співвідношення сторін - + Selects the aspect ratio to display the game content at. Обирає співвідношення сторін для відображення ігрового вмісту. - + FMV Aspect Ratio Співвідношення сторін FMV - + Selects the aspect ratio for display when a FMV is detected as playing. Обирає співвідношення сторін для відображення при виявленні відтворення FMV. - + Deinterlacing Деінтерлейсинг - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Обирає алгоритм, який використовується для перетворення черезрядковий вихід PS2 у прогресивний. - + Screenshot Size Розмір скриншоту - + Determines the resolution at which screenshots will be saved. Визначає роздільну здатність, за якої буде збережено скриншот. - + Screenshot Format Формат скриншоту - + Selects the format which will be used to save screenshots. Обирає формат, який буде використовуватися для збереження скриншотів. - + Screenshot Quality Якість скриншоту - + Selects the quality at which screenshots will be compressed. Обирає якість, за якої скриншоти будуть стискатися. - + Vertical Stretch Вертикальне розтягування - + Increases or decreases the virtual picture size vertically. Збільшує або зменшує розмір віртуальної картинки вертикально. - + Crop Обрізка - + Crops the image, while respecting aspect ratio. Обрізає зображення, зберігаючи співвідношення сторін. - + + %dpx + %dpx + + + Enable Widescreen Patches Увімкнути широкоекранні патчі - + Enables loading widescreen patches from pnach files. Вмикає завантаження широкоекранних патчей з файлів pnach. - + Enable No-Interlacing Patches Увімкнути патчі видалення інтерлейсингу - + Enables loading no-interlacing patches from pnach files. Вмикає завантаження патчі видалення інтерлейсингу (черезрядковості) з файлів pnach. - + Bilinear Upscaling Білінійний апскейлінг - + Smooths out the image when upscaling the console to the screen. Згладжує зображення при масштабуванні с консолі на екран. - + Integer Upscaling Цілочисельний скейлінг - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Додає відступи до області зображення, щоб переконатися, що співвідношення між пікселями на моніторі хоста до пікселів на консолі є цілим числом. Результує у чіткішому зображенні в деяких 2D іграх. - + Screen Offsets Зміщення екрана - + Enables PCRTC Offsets which position the screen as the game requests. Вмикає PCRTC зміщення, яка вміє позиціювати екран за запитом гри. - + Show Overscan Показати оверскан - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Дозволяє опції відобразити область оверскана (облямівка) на іграх, які малюють більше ніж безпечна область екрана. - + Anti-Blur Антирозмивання - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Вмикає вбудовані хаки антирозмивання. Менш точний у плані рендеру графіки PS2, але багато ігор будуть виглядати менш розмито. - + Rendering - Rendering + Рендеринг - + Internal Resolution - Internal Resolution + Внутрішня роздільна здатність - + Multiplies the render resolution by the specified factor (upscaling). - Multiplies the render resolution by the specified factor (upscaling). + Множить роздільну здатність рендера на вказаний коефіцієнт (апскейлінг). - + Mipmapping - Mipmapping + Міпмаппінг - + Determines how mipmaps are used when rendering textures. - Determines how mipmaps are used when rendering textures. + Визначає, як будуть використовуватися міпмапи при малюванні текстур. - + Bilinear Filtering - Bilinear Filtering + Білінійна фільтрація - + Selects where bilinear filtering is utilized when rendering textures. - Selects where bilinear filtering is utilized when rendering textures. + Обирає де білінійна фільтрація буде використовуватися при малюванні текстур. - + Trilinear Filtering - Trilinear Filtering + Трилінійна фільтрація - + Selects where trilinear filtering is utilized when rendering textures. - Selects where trilinear filtering is utilized when rendering textures. + Обирає де трилінійна фільтрація буде використовуватися при малюванні текстур. - + Anisotropic Filtering - Anisotropic Filtering - - - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. + Анізотропна фільтрація - + Dithering - Dithering + Дитеринг - + Selects the type of dithering applies when the game requests it. - Selects the type of dithering applies when the game requests it. + Обирає, який тип дитерингу буде застосовуватися, коли гра запитує його. - + Blending Accuracy - Blending Accuracy + Точність блендінгу - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - Determines the level of accuracy when emulating blend modes not supported by the host graphics API. + Визначає рівень точності під час емуляції режимів накладання, які не підтримуються графічним API хоста. - + Texture Preloading - Texture Preloading + Передзавантаження текстур - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. + Завантажує повні текстури на ГП при використанні, а не тільки використані частини. Може підвищити продуктивність в деяких іграх. - + Software Rendering Threads - Software Rendering Threads + Потоки для програмного рендереру - + Number of threads to use in addition to the main GS thread for rasterization. - Number of threads to use in addition to the main GS thread for rasterization. + Кількість потоків для використання в додаток до основного потоку GS для растерізації. - + Auto Flush (Software) - Auto Flush (Software) + Автозмив (програмний) - + Force a primitive flush when a framebuffer is also an input texture. - Force a primitive flush when a framebuffer is also an input texture. + Робе примусову промивку примітивів, коли буфер кадру також є вхідною текстурою. - + Edge AA (AA1) - Edge AA (AA1) + Згладжування Edge (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). - Enables emulation of the GS's edge anti-aliasing (AA1). + Вмикає емуляцію згладжування країв GS (AA1). - + Enables emulation of the GS's texture mipmapping. - Enables emulation of the GS's texture mipmapping. + Вмикає емуляцію міпмаппінга текстур GS. - + Hardware Fixes - Hardware Fixes + Апаратні фікси - + Manual Hardware Fixes - Manual Hardware Fixes + Ручні фікси апаратного рендереру - + Disables automatic hardware fixes, allowing you to set fixes manually. - Disables automatic hardware fixes, allowing you to set fixes manually. + Вимикає автоматичні фікси апаратного рендереру, дозволяючи вам обирати фікси вручну. - + CPU Sprite Render Size - CPU Sprite Render Size + Розмір рендеру спрайтів на ЦП - + Uses software renderer to draw texture decompression-like sprites. - Uses software renderer to draw texture decompression-like sprites. + Використовує програмний рендерер для відображення спрайтів, які виглядають ніби вони призначенні для декомпресії текстур. - + CPU Sprite Render Level - CPU Sprite Render Level + Рівень рендеру спрайтів на ЦП - + Determines filter level for CPU sprite render. - Determines filter level for CPU sprite render. + Визначає рівень фільтру для рендеру спрайтів на ЦП. - + Software CLUT Render - Software CLUT Render + Програмний рендеринг CLUT - + Uses software renderer to draw texture CLUT points/sprites. - Uses software renderer to draw texture CLUT points/sprites. + Використовує програмний рендерер для малювання точок і спрайтів, які використовують CLUT текстур. - + Skip Draw Start - Skip Draw Start + Початок Skipdraw - + Object range to skip drawing. - Object range to skip drawing. + Діапазон для пропуску малювання об'єктів. - + Skip Draw End - Skip Draw End + Кінець Skipdraw - + Auto Flush (Hardware) - Auto Flush (Hardware) + Автозмив (апаратний) - + CPU Framebuffer Conversion - CPU Framebuffer Conversion + Конвертація буфера кадрів на ЦП - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. + Конвертує 4-бітний і 8-бітний буфер кадрів на ЦП замість ГП. - + Disable Safe Features - Disable Safe Features + Вимкнути безпечні функції - + This option disables multiple safe features. - This option disables multiple safe features. + Ця опція вимикає кілька безпечних функцій. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. - This option disables game-specific render fixes. - - - - Preload Frame - Preload Frame + Ця опція вимикає специфічні фікси рендеру для певної гри. - + Uploads GS data when rendering a new frame to reproduce some effects accurately. - Uploads GS data when rendering a new frame to reproduce some effects accurately. + Завантажує дані GS під час рендеру нового кадру, щоб точно відтворити деякі ефекти. - + Disable Partial Invalidation - Disable Partial Invalidation + Вимкнути перевірку часткових недійсностей - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. - Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - - - Texture Inside Render Target - Texture Inside Render Target + Видаляє записи кешу текстур коли присутній будь-який перетин, а не тільки області з перетинами. - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. + Дозволяє кешу текстур повторно використовувати як вхідну текстуру для внутрішньої частини попереднього буфера кадрів. - + Read Targets When Closing - Read Targets When Closing + Зчитувати таргети при закритті - + Flushes all targets in the texture cache back to local memory when shutting down. - Flushes all targets in the texture cache back to local memory when shutting down. + Змиває всі таргети у кеші текстур назад до локальної пам'яті при закритті. - + Estimate Texture Region - Estimate Texture Region + Відрахувати область текстур - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). + Намагається зменшити розмір текстури коли ігри не задають його самі (наприклад, ігри на двигуні Snowblind). - + GPU Palette Conversion - GPU Palette Conversion + Конвертація палітри на ГП - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - Half-Pixel Offset - - - + Adjusts vertices relative to upscaling. - Adjusts vertices relative to upscaling. + Корегує вершини відносно апскейлу. - + Round Sprite - Round Sprite + Округлювач спрайтів - + Adjusts sprite coordinates. - Adjusts sprite coordinates. + Корегує координати спрайтів. - + Bilinear Upscale - Bilinear Upscale + Білінійний апскейл - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - - - TC Offset X - TC Offset X + Може згладити текстури через білінійний фільтр під час апскейлу. Наприклад, сонячні промені в Brave. - + Adjusts target texture offsets. - Adjusts target texture offsets. - - - - TC Offset Y - TC Offset Y + Корегує зміщення цільових текстур. - + Align Sprite - Align Sprite + Вирівнювач спрайтів - + Fixes issues with upscaling (vertical lines) in some games. - Fixes issues with upscaling (vertical lines) in some games. + Виправляє проблеми з апскейлом (вертикальними лініями) в деяких іграх. - + Merge Sprite - Merge Sprite + Об'єднувач спрайтів - + Replaces multiple post-processing sprites with a larger single sprite. - Replaces multiple post-processing sprites with a larger single sprite. + Замінює постобробку кількох спрайтів замощення одним жирним спрайтом. - + Wild Arms Hack - Wild Arms Hack + Wild Arms хак - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. + Знижує точність емуляції GS, щоб уникнути прогалини між пікселями при апскейлі. Виправляє текст в іграх Wild Arms. - + Unscaled Palette Texture Draws - Unscaled Palette Texture Draws + Малювання палітрових текстур без масштабування - + Can fix some broken effects which rely on pixel perfect precision. - Can fix some broken effects which rely on pixel perfect precision. + Може виправити деякі зламані ефекти, які покладаються на ідеальній точності до пікселя. - + Texture Replacement - Texture Replacement + Заміна текстур - + Load Textures - Load Textures + Завантажувати текстури - + Loads replacement textures where available and user-provided. - Loads replacement textures where available and user-provided. + Завантажує замінні текстури, де доступно і надано користувачем. - + Asynchronous Texture Loading - Asynchronous Texture Loading + Асинхронне завантаження текстур - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Завантажує замінні текстури на робочий потік, зменшуючи мікрозависання, коли заміни увімкнені. - + Precache Replacements - Precache Replacements + Прекешувати заміни - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. - Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Передзавантажує всі змінні текстури у пам'ять. Не потрібно при асинхронному завантаженні. - + Replacements Directory - Replacements Directory + Директорія для замін - + Folders - Folders + Папки - + Texture Dumping - Texture Dumping + Дампінг текстур - + Dump Textures - Dump Textures - - - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. + Дампити текстури - + Dump Mipmaps - Dump Mipmaps + Дампити міпмапи - + Includes mipmaps when dumping textures. - Includes mipmaps when dumping textures. + Включає міпмапи до дампінгу текстур. - + Dump FMV Textures - Dump FMV Textures + Дампити FMV текстури - + Allows texture dumping when FMVs are active. You should not enable this. - Allows texture dumping when FMVs are active. You should not enable this. + Дозволяє дампінг текстур, коли працюють FMV. Вам не слід це вмикати. - + Post-Processing - Post-Processing + Постобробка - + FXAA - FXAA + FXAA - + Enables FXAA post-processing shader. - Enables FXAA post-processing shader. + Вмикає шейдер постобробки FXAA. - + Contrast Adaptive Sharpening - Contrast Adaptive Sharpening + Контрастно-адаптивна різкість (CAS) - + Enables FidelityFX Contrast Adaptive Sharpening. - Enables FidelityFX Contrast Adaptive Sharpening. + Вмикає контрастно-адаптивну різкість FidelityFX. - + CAS Sharpness - CAS Sharpness + Різкість CAS - + Determines the intensity the sharpening effect in CAS post-processing. - Determines the intensity the sharpening effect in CAS post-processing. + Визначає інтенсивність ефекту різкості в постобробці CAS. - + Filters - Filters + Фільтри - + Shade Boost - Shade Boost + Посилення відтінків - + Enables brightness/contrast/saturation adjustment. - Enables brightness/contrast/saturation adjustment. + Дозволяє регулювати яскравість/контраст/насиченість. - + Shade Boost Brightness - Shade Boost Brightness + Посилення відтінків яскравості - + Adjusts brightness. 50 is normal. - Adjusts brightness. 50 is normal. + Регулює яскравість. Нормальне значення - 50. - + Shade Boost Contrast - Shade Boost Contrast + Посилення відтінків контрастності - + Adjusts contrast. 50 is normal. - Adjusts contrast. 50 is normal. + Регулює контраст. Нормальне значення - 50. - + Shade Boost Saturation - Shade Boost Saturation + Посилення відтінків насиченості - + Adjusts saturation. 50 is normal. - Adjusts saturation. 50 is normal. + Регулює насиченість. Нормальне значення - 50. - + TV Shaders - TV Shaders + TV шейдери - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced - Advanced + Розширені - + Skip Presenting Duplicate Frames - Skip Presenting Duplicate Frames - - - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. + Пропускати повторювані кадри - + Disable Threaded Presentation - Disable Threaded Presentation - - - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. + Вимкнути багатопотокове представлення - + Hardware Download Mode - Hardware Download Mode + Режим апаратного завантаження - + Changes synchronization behavior for GS downloads. - Changes synchronization behavior for GS downloads. + Змінює поведінку синхронізації для завантажень GS. - + Allow Exclusive Fullscreen - Allow Exclusive Fullscreen + Дозволити ексклюзивний повний екран - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. + Заміщає евристику драйвера для увімкнення ексклюзивного повноекранного режиму, або Direct flip/scanout. - + Override Texture Barriers - Override Texture Barriers + Змістити бар'єри текстур - + Forces texture barrier functionality to the specified value. - Forces texture barrier functionality to the specified value. + Примусово застосовувати функціонал бар'єру текстур за вказаним значенням. - + GS Dump Compression - GS Dump Compression + Компресія дампу GS - + Sets the compression algorithm for GS dumps. - Sets the compression algorithm for GS dumps. + Встановлює алгоритм компресії для дампів GS. - + Disable Framebuffer Fetch - Disable Framebuffer Fetch + Вимкнути доступ до буфера кадрів - + Prevents the usage of framebuffer fetch when supported by host GPU. - Prevents the usage of framebuffer fetch when supported by host GPU. + Запобігає використанню буферу кадрів, якщо це підтримується графічним процесором комп'ютера. - + Disable Dual-Source Blending - Disable Dual-Source Blending + Вимкнути накладання з двох джерел - + Prevents the usage of dual-source blending when supported by host GPU. - Prevents the usage of dual-source blending when supported by host GPU. + Запобігає використанню накладання з двох джерел, якщо це підтримується графічним процесором комп'ютера. - + Disable Shader Cache - Disable Shader Cache + Вимкнути кеш шейдерів - + Prevents the loading and saving of shaders/pipelines to disk. - Prevents the loading and saving of shaders/pipelines to disk. + Запобігає завантаженню та збереженню шейдерів/конвейерів на дискові. - + Disable Vertex Shader Expand - Disable Vertex Shader Expand + Вимкнути розширення вершинних шейдерів - + Falls back to the CPU for expanding sprites/lines. - Falls back to the CPU for expanding sprites/lines. + Використовує ЦП як резерв для розширення спрайтів/ліній. - + Runtime Settings - Runtime Settings + Налаштування середовища виконання - + Applies a global volume modifier to all sound produced by the game. - Applies a global volume modifier to all sound produced by the game. + Застосовує глобальний модифікатор гучності до всіх звуків, які виробляє гра. - + Mixing Settings - Mixing Settings + Налаштування мікшування - + Changes when SPU samples are generated relative to system emulation. - Changes when SPU samples are generated relative to system emulation. + Змінює коли семпли SPU генеруються відносно емуляції системи. - + Determines how the stereo output is transformed to greater speaker counts. - Determines how the stereo output is transformed to greater speaker counts. + Визначає як стереовихід з емульованої системи буде перетворюватися для більшої кількості динаміків. - + Output Settings - Output Settings + Налаштування виведення - + Determines which API is used to play back audio samples on the host. - Determines which API is used to play back audio samples on the host. + Визначає, який API буде використовуватися для відтворення аудіосемплів на комп'ютері хоста. - + Sets the average output latency when using the cubeb backend. - Sets the average output latency when using the cubeb backend. + Встановлює середню затримку виводу при використанні бекенду cubeb. + + + + %d ms (avg) + %d ms (avg) - + Timestretch Settings - Timestretch Settings + Налаштування Timestretch - + Affects how the timestretcher operates when not running at 100% speed. - Affects how the timestretcher operates when not running at 100% speed. + Впливає на те, як Timestretch функціонує коли емулятор не працює з 100% швидкістю. - + + %d ms + %d мс + + + Settings and Operations - Settings and Operations + Налаштування та операції - + Creates a new memory card file or folder. - Creates a new memory card file or folder. + Створює нову карту пам'яті або папку. - + Simulates a larger memory card by filtering saves only to the current game. - Simulates a larger memory card by filtering saves only to the current game. + Симулює більшу карту пам'яті, фільтруючи збереження лише для поточної гри. - + Automatically ejects Memory Cards when they differ after loading a state. - Automatically ejects Memory Cards when they differ after loading a state. + Автоматично витягує карти пам'яті після завантаження стану, в якому вони відрізняються. - + If not set, this card will be considered unplugged. - If not set, this card will be considered unplugged. + Якщо не увімкнено, то ця карта буде вважатиметься непід'єднаною. - + The selected memory card image will be used for this slot. - The selected memory card image will be used for this slot. + Обраний образ карти пам'яті буде використано для цього слоту. - + Resets the card name for this slot. - Resets the card name for this slot. + Скидає ім'я карти для цього слоту. - + Create Memory Card - Create Memory Card + Створити карту пам'яті - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. + Введіть ім'я карти пам'яті, яку ви бажаєте створити, та оберіть її розмір. Ми рекомендуємо використовувати місткість у 8 МБ, або папку з картами пам'яті для найкращої сумісності. - + Card Name: - Card Name: + Ім'я карти: - + Configuration - Configuration + Конфігурація - + Uses game-specific settings for controllers for this game. - Uses game-specific settings for controllers for this game. + Використовує спеціальні налаштування контролерів для цієї гри. - + Copies the global controller configuration to this game. - Copies the global controller configuration to this game. + Копіює глобальну конфігурацію контролера до цієї гри. - + Resets all configuration to defaults (including bindings). - Resets all configuration to defaults (including bindings). + Скидає всю конфігурацію до початкових (включаючи прив'язки). - + Replaces these settings with a previously saved input profile. - Replaces these settings with a previously saved input profile. + Заміняє ці налаштування на попередньо збережений профіль вводу. - + Stores the current settings to an input profile. - Stores the current settings to an input profile. + Зберігає поточні налаштування в профіль вводу. - + Input Sources - Input Sources + Джерела введення - + The SDL input source supports most controllers. - The SDL input source supports most controllers. + Джерело введення SDL підтримує більшість контролерів. - + Provides vibration and LED control support over Bluetooth. - Provides vibration and LED control support over Bluetooth. + Забезпечує підтримку вібрації та керування LED через Bluetooth. - + Allow SDL to use raw access to input devices. - Allow SDL to use raw access to input devices. + Дозволяє SDL використовувати сирий доступ до пристроїв вводу. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - The XInput source provides support for XBox 360/XBox One/XBox Series controllers. + Джерело XInput надає підтримку для контролерів Xbox 360 / Xbox One / Xbox Series. - + Multitap - Multitap + Multitap - + Enables an additional three controller slots. Not supported in all games. - Enables an additional three controller slots. Not supported in all games. + Вмикає додаткові три слоти для контролерів. Не підтримується для всіх ігор. - + Attempts to map the selected port to a chosen controller. - Attempts to map the selected port to a chosen controller. + Спробує прив'язати вказаний порт до обраного контролера. - + No Buttons Selected - No Buttons Selected + Ніяких кнопок не обрано - + Determines how much pressure is simulated when macro is active. - Determines how much pressure is simulated when macro is active. + Визначає, скільки сили тиску буде симульовано, коли макрос активний. - + Determines the pressure required to activate the macro. - Determines the pressure required to activate the macro. + Визначає тиск, потрібний для активації макросу. - + Toggle every %d frames - Toggle every %d frames + Перемикати кожні %d кадрів - + Clears all bindings for this USB controller. - Clears all bindings for this USB controller. + Скидає всі прив'язки для цього USB-контролера. - + Data Save Locations - Data Save Locations + Розташування даних збережень - + Show Advanced Settings - Show Advanced Settings + Показати розширені налаштування - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. + Зміна цих опцій можуть призвести до того, що ігри стануть нефункціональними. Редагуйте на власний ризик, команда PCSX2 не буде надавати підтримку з конфігурацією, якщо ці опції були змінені. - + Logging Logging - + System Console - System Console + Системна консоль - + Writes log messages to the system console (console window/standard output). - Writes log messages to the system console (console window/standard output). + Пише повідомлення журналу в системну консоль (вікно консолі/стандартний вивід). - + File Logging - File Logging + Логування файлів - + Writes log messages to emulog.txt. - Writes log messages to emulog.txt. + Пише повідомлення журналу в emulog.txt. - + Verbose Logging - Verbose Logging + Детальне логування - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps - Log Timestamps + Часові відмітки в журналі - + Writes timestamps alongside log messages. - Writes timestamps alongside log messages. + Пише часові відмітки разом з повідомленнями журналу. - + EE Console - EE Console + Консоль EE - + Writes debug messages from the game's EE code to the console. - Writes debug messages from the game's EE code to the console. + Пише повідомлення для налагодження з ігрового EE коду в консоль. - + IOP Console - IOP Console + Консоль IOP - + Writes debug messages from the game's IOP code to the console. - Writes debug messages from the game's IOP code to the console. + Пише повідомлення для налагодження з ігрового IOP коду в консоль. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine - Emotion Engine + Emotion Engine - + Rounding Mode - Rounding Mode + Режим раундінгу - + Determines how the results of floating-point operations are rounded. Some games need specific settings. - Determines how the results of floating-point operations are rounded. Some games need specific settings. + Визначає, як округлюються результати операцій з рухомою комою. Деякі ігри потребують конкретних налаштувань. - + Clamping Mode - Clamping Mode + Режим клемпінгу - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. - Determines how out-of-range floating point numbers are handled. Some games need specific settings. + Визначає, як поступатися з числами з рухомою комою за межами діапазону. Деякі ігри потребують конкретних налаштувань. - + Enable EE Recompiler - Enable EE Recompiler + Увімкнути рекомпілятор EE - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. + Виконує вчасний бінарний переклад 64-бітного машинного коду MIPS-IV в рідний код. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics - Graphics + Графіка - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Налаштування - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes - Cheat Codes + Чит-коди - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. + Активація чітів може спричинити непередбачувану поведінку, краші, софт-локи, або пошкодженню збережених ігор. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. + Активація ігрових патчів може спричинити непередбачувану поведінку, краші, софт-локи, або пошкодженню збережених ігор. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. + Використовуйте патчі на власний ризик, команда PCSX2 не буде надавати жодної підтримки для користувачів, які активували ігрові патчі. - + Game Fixes - Game Fixes + Ігрові фікси - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - - - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. - - - + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO - - - - (Fifa Street 2). - (Fifa Street 2). - - - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - - - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. - - - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) - - - + For SOCOM 2 HUD and Spy Hunter loading hang. For SOCOM 2 HUD and Spy Hunter loading hang. - + VU Add Hack VU Add Hack - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - - - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games - - - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. - - - + Full VU0 Synchronization Full VU0 Synchronization - + Forces tight VU0 sync on every COP2 instruction. Forces tight VU0 sync on every COP2 instruction. - - VU Sync (Run behind) - VU Sync (Run behind) - - - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. - - - + VU Overflow Hack VU Overflow Hack - + To check for possible float overflows (Superman Returns). To check for possible float overflows (Superman Returns). - - VU XGkick Sync - VU XGkick Sync - - - + Use accurate timing for VU XGKicks (slower). Use accurate timing for VU XGKicks (slower). - - Use Blit for internal FPS - Use Blit for internal FPS - - - + Quadraphonic Quadraphonic - + Load State Load State - - Save State - Save State + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - Load Resume State - Load Resume State + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - A resume save state created at %s was found. - -Do you want to load this save and continue? - A resume save state created at %s was found. - -Do you want to load this save and continue? + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Region: - Region: + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Compatibility: - Compatibility: + + Disable Depth Emulation + Disable Depth Emulation - - No Game Selected - No Game Selected + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - Search Directories - Search Directories + + Disable Render Fixes + Disable Render Fixes - - Adds a new directory to the game search list. - Adds a new directory to the game search list. + + Preload Frame Data + Preload Frame Data - - Scanning Subdirectories - Scanning Subdirectories + + Texture Inside RT + Texture Inside RT - - Not Scanning Subdirectories - Not Scanning Subdirectories + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - List Settings - List Settings + + Half Pixel Offset + Half Pixel Offset - - Sets which view the game list will open to. - Sets which view the game list will open to. + + Texture Offset X + Texture Offset X - - Determines which field the game list will be sorted by. - Determines which field the game list will be sorted by. + + Texture Offset Y + Texture Offset Y - - Reverses the game list sort order from the default (usually ascending to descending). - Reverses the game list sort order from the default (usually ascending to descending). + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. - - Cover Settings - Cover Settings + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. - - Downloads covers from a user-specified URL template. - Downloads covers from a user-specified URL template. + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. - - Operations - Operations + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. - - Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. - - Identifies any new files added to the game directories. - Identifies any new files added to the game directories. + + Use Software Renderer For FMVs + Use Software Renderer For FMVs - - Forces a full rescan of all games previously identified. - Forces a full rescan of all games previously identified. + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. - - Download Covers - Download Covers + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. + + Emulate GIF FIFO + Emulate GIF FIFO - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. - - Use Serial File Names - Use Serial File Names + + DMA Busy Hack + DMA Busy Hack - - About PCSX2 - About PCSX2 + + Delay VIF1 Stalls + Delay VIF1 Stalls - - PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. + + Emulate VIF FIFO + Емулювати VIF FIFO - - PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. - - XXX points - XXX points + + VU I Bit Hack + VU I Bit Hack - - Unlocked Achievements - Unlocked Achievements + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. - - Locked Achievements - Locked Achievements + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - - Active Challenge Achievements - Active Challenge Achievements + + VU Sync + VU Sync - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. - - Rank - Rank + + VU XGKick Sync + VU XGKick Sync - - Name - Name + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - - Time - Time + + Save State + Save State - - Score - Score + + Load Resume State + Load Resume State - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... + + A resume save state created at %s was found. + +Do you want to load this save and continue? + A resume save state created at %s was found. + +Do you want to load this save and continue? - - When enabled and logged in, PCSX2 will scan for achievements on startup. - When enabled and logged in, PCSX2 will scan for achievements on startup. + + Region: + Регіон: - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. + + Compatibility: + Сумісність: - - "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. + + No Game Selected + No Game Selected + + + + Search Directories + Search Directories - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. + + Adds a new directory to the game search list. + Adds a new directory to the game search list. + + + + Scanning Subdirectories + Scanning Subdirectories - + + Not Scanning Subdirectories + Not Scanning Subdirectories + + + + List Settings + List Settings + + + + Sets which view the game list will open to. + Sets which view the game list will open to. + + + + Determines which field the game list will be sorted by. + Determines which field the game list will be sorted by. + + + + Reverses the game list sort order from the default (usually ascending to descending). + Reverses the game list sort order from the default (usually ascending to descending). + + + + Cover Settings + Cover Settings + + + + Downloads covers from a user-specified URL template. + Downloads covers from a user-specified URL template. + + + + Operations + Операції + + + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. + + + + Identifies any new files added to the game directories. + Identifies any new files added to the game directories. + + + + Forces a full rescan of all games previously identified. + Forces a full rescan of all games previously identified. + + + + Download Covers + Завантажити обкладинки + + + + About PCSX2 + Про PCSX2 + + + + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. + + + + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. + + + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. + + + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account - Account + Обліковий запис - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game - Current Game - - - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: + Поточна гра - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) - {} (Folder) + {} (Папка) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. - Macro will toggle every {} frames. + Макрос буде перемикати кожні {} кадрів. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} - Saved {} + Збережено {} - + {} does not exist. - {} does not exist. + {} не існує. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} - File: {} + Файл: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} - Last Played: {} + Востаннє зіграно: {} - + Size: {:.2f} MB - Size: {:.2f} MB + Розмір: {:.2f} МБ - - {} points - {} points + + Left: + Left: - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Top: + Top: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Right: + Right: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Bottom: + Bottom: - - This game has {} leaderboards. - This game has {} leaderboards. - - - + Summary Summary - + Interface Settings - Interface Settings + Налаштування інтерфейсу - + BIOS Settings - BIOS Settings + Налаштування BIOS - + Emulation Settings - Emulation Settings + Налаштування емуляції - + Graphics Settings - Graphics Settings + Налаштування графіки - + Audio Settings - Audio Settings + Налаштування аудіо - + Memory Card Settings - Memory Card Settings + Налаштування карти пам’яті - + Controller Settings - Controller Settings + Налаштування контролера - + Hotkey Settings Hotkey Settings - + Achievements Settings - Achievements Settings + Налаштування досягнень - + Folder Settings - Folder Settings + Налаштування папок - + Advanced Settings - Advanced Settings + Додаткові налаштування - + Patches - Patches + Патчі - + Cheats - Cheats + Чіти - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] - 2% [1 FPS (NTSC) / 1 FPS (PAL)] + 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - 10% [6 FPS (NTSC) / 5 FPS (PAL)] + 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - 25% [15 FPS (NTSC) / 12 FPS (PAL)] + 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - 50% [30 FPS (NTSC) / 25 FPS (PAL)] + 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - 75% [45 FPS (NTSC) / 37 FPS (PAL)] + 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - 90% [54 FPS (NTSC) / 45 FPS (PAL)] + 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - 100% [60 FPS (NTSC) / 50 FPS (PAL)] + 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - 110% [66 FPS (NTSC) / 55 FPS (PAL)] + 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - 120% [72 FPS (NTSC) / 60 FPS (PAL)] + 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - 150% [90 FPS (NTSC) / 75 FPS (PAL)] + 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - 175% [105 FPS (NTSC) / 87 FPS (PAL)] + 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - 200% [120 FPS (NTSC) / 100 FPS (PAL)] + 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - 300% [180 FPS (NTSC) / 150 FPS (PAL)] + 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - 400% [240 FPS (NTSC) / 200 FPS (PAL)] + 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - 500% [300 FPS (NTSC) / 250 FPS (PAL)] + 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - 1000% [600 FPS (NTSC) / 500 FPS (PAL)] + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled - Disabled + Вимкнено - + EE > VU > GS - EE > VU > GS + EE > VU > GS - + EE > GS > VU - EE > GS > VU + EE > GS > VU - + VU > EE > GS - VU > EE > GS + VU > EE > GS - + VU > GS > EE - VU > GS > EE + VU > GS > EE - + GS > EE > VU - GS > EE > VU + GS > EE > VU - + GS > VU > EE - GS > VU > EE + GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame - 1 Frame + 1 кадр - + 2 Frames - 2 Frames + 2 кадри - + 3 Frames - 3 Frames + 3 кадри - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full - Full + Повний - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 - Direct3D 11 + Direct3D 11 - + Direct3D 12 - Direct3D 12 + Direct3D 12 - + OpenGL - OpenGL + OpenGL - + Vulkan - Vulkan + Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest - Nearest + Найближчий - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x - 2x + 2x - + 4x - 4x + 4x - + 8x - 8x + 8x - + 16x - 16x + 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications - + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode + + + PNG - PNG + PNG - + JPEG - JPEG + JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS - 4xRGSS + 4xRGSS - + NxAGSS - NxAGSS + NxAGSS - + Uncompressed - Uncompressed + Без компресії - + LZMA (xz) - LZMA (xz) + LZMA (xz) - + Zstandard (zst) - Zstandard (zst) + Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) - PS2 (8MB) + PS2 (8МБ) - + PS2 (16MB) - PS2 (16MB) + PS2 (16МБ) - + PS2 (32MB) - PS2 (32MB) + PS2 (32МБ) - + PS2 (64MB) - PS2 (64MB) + PS2 (64МБ) - + PS1 - PS1 + PS1 - + 8 MB [Most Compatible] - 8 MB [Most Compatible] + 8 МБ [Найбільш сумісний] - + 16 MB - 16 MB + 16 МБ - + 32 MB - 32 MB + 32 МБ - + 64 MB - 64 MB + 64 МБ - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] - 128 KB [PS1] + 128 КБ [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Список ігор - + Game List Settings Game List Settings - + Type - Type + Тип - + Serial Serial - + Title - Title + Назва - + File Title - File Title + Назва файлу - + CRC - CRC + CRC - + Time Played Time Played - + Last Played Last Played - + Size - Size + Розмір - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Запустити файл - + Start BIOS Запустити BIOS - + Start Disc Запустити диск - + Exit Вихід - + Set Input Binding Set Input Binding - + Region - Region + Регіон - + Compatibility Rating - Compatibility Rating + Оцінка сумісності - + Path - Path + Шлях - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings - Copy Settings + Скопіювати налаштування - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS - Show FPS + Показувати FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create - Create + Створити - + Cancel - Cancel + Скасувати - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type - Controller Type + Тип контролера - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons - Buttons + Кнопки - + Frequency - Frequency + Частота - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} - USB Port {} + USB-порт {} - + Device Type - Device Type + Тип пристрою - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings - {} Settings + {} Налаштування - + Cache Directory - Cache Directory + Директорія для кешу - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game - Resume Game + Продовжити гру - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements - Achievements + Досягнення - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save - Delete Save + Видалити збереження - + Close Menu - Close Menu + Закрити меню - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot Default Boot - - Slow Boot - Slow Boot - - - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By - Sort By + Сортувати за - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website - Website + Вебсайт - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License - License + Ліцензія - + Close - Close + Закрити - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects - Sound Effects - - - - Show Challenge Indicators - Show Challenge Indicators + Звукові ефекти - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} - Username: {} + Ім'я користувача: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Гра: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8077,7 +8325,7 @@ ${serial}: Serial of the game. Не вдалося повторно відкрити, відновлюю стару конфігурацію. - + Upscale multiplier set to {}x. Множник апскейлу встановлено на {}x. @@ -8132,14 +8380,14 @@ ${serial}: Serial of the game. Відключення автозгенеровані міпмапи на одному або декількох стислих замінних текстур. Будь ласка, згенеруйте міпмапи під час стиснення власних текстур. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Буфер маски та бар'єри текстур є недоступними, це може зламати деякі графічні ефекти. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. - Spin GPU During Readbacks увімкнутий, але відкалібровані мітки часу недоступні. Це може призвести до сповільнення. + Пробудження ГП під час простою увімкнуте, але відкалібровані мітки часу недоступні. Це може призвести до сповільнення. @@ -8147,7 +8395,7 @@ ${serial}: Serial of the game. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Use cheats at your own risk, the PCSX2 team will provide no support for users who have enabled cheats. - Активація чітів може спричинити непередбачувану поведінку, краші, софт-локи, або зламані збережені ігри. Використовуйте чіти на власний ризик, команда PCSX2 не буде надавати жодної підтримки для користувачів, які активували чіти. + Активація чітів може спричинити непередбачувану поведінку, краші, софт-локи, або пошкодженню збережених ігор. Використовуйте чіти на власний ризик, команда PCSX2 не буде надавати жодної підтримки для користувачів, які активували чіти. @@ -8193,7 +8441,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8204,266 +8452,408 @@ graphical quality, but this will increase system requirements. щоб поліпшити графічну якість, але це збільшить системні вимоги. - - Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - Ручні фікси апаратного рендереру увімкнені, автоматичні фікси не буде застосовано: + + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: + Ручні фікси апаратного рендереру увімкнені, автоматичні фікси не буде застосовано: + + + + No tracks provided. + No tracks provided. + + + + Hash {} is not in database. + Hash {} is not in database. + + + + Data track number does not match data track in database. + Data track number does not match data track in database. + + + + Track {0} with hash {1} is not found in database. + + Track {0} with hash {1} is not found in database. + + + + + Track {0} with hash {1} is for a different game ({2}). + + Track {0} with hash {1} is for a different game ({2}). + + + + + Track {0} with hash {1} does not match database track. + + Track {0} with hash {1} does not match database track. + + + + + GameFixSettingsWidget + + + Game Fixes (NOT recommended to change globally) + Ігрові фікси (НЕ рекомендовано змінювати глобально) + + + + + FPU Negative Divide Hack + FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. + FPU Negative Divide Hack + + + + + FPU Multiply Hack + FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. + FPU Multiply Hack + + + + + Skip MPEG Hack + MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. + Skip MPEG Hack + + + + + Preload TLB Hack + TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. + Preload TLB Hack + + + + + EE Timing Hack + EE: Emotion Engine. Leave as-is. + EE Timing Hack + + + + + Instant DMA Hack + DMA: Direct Memory Access. Leave as-is. + Instant DMA Hack + + + + + OPH Flag Hack + OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. + OPH Flag Hack + + + + + Emulate GIF FIFO + GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. + Emulate GIF FIFO - - No tracks provided. - No tracks provided. + + + DMA Busy Hack + DMA: Direct Memory Access. Leave as-is. + DMA Busy Hack - - Hash {} is not in database. - Hash {} is not in database. + + + Delay VIF1 Stalls + VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. + Delay VIF1 Stalls - - Data track number does not match data track in database. - Data track number does not match data track in database. + + + Emulate VIF FIFO + VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. + Emulate VIF FIFO - - Track {} with hash {} is not found in database. - - Track {} with hash {} is not found in database. - + + + Full VU0 Synchronization + VU0 = VU (Vector Unit) 0. Leave as-is. + Full VU0 Synchronization - - Track {} with hash {} is for a different game ({}). - - Track {} with hash {} is for a different game ({}). - + + + VU I Bit Hack + VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. + VU I Bit Hack - - Track {} with hash {} does not match database track. - - Трек {} із хешем {} не відповідає треку бази даних. - + + + VU Add Hack + VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. + VU Add Hack - - - GameFixSettingsWidget - - Game Fixes (NOT recommended to change globally) - Ігрові фікси (НЕ рекомендовано змінювати глобально) + + + VU Overflow Hack + VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. + VU Overflow Hack - - FPU Negative Divide Hack (For Gundam Games) - FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide хак (для ігор Gundam) + + + VU Sync + VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). + VU Sync - - FPU Multiply Hack (For Tales of Destiny) - FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply хак (для Tales of Destiny) + + + VU XGKick Sync + VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. + VU XGKick Sync - + + + Force Blit Internal FPS Detection + Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. + Force Blit Internal FPS Detection + + + + Use Software Renderer For FMVs FMV: Full Motion Video. Find the common used term in your language. Використовувати програмний рендерер для FMV - - Skip MPEG Hack (Skips Videos/FMVs) - MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Пропуск MPEG хак (пропускає відео/FMV) + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked - - Preload TLB Hack (For Goemon) - TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB хак (для Goemon) + + For Tales of Destiny. + For Tales of Destiny. - - EE Timing Hack (General Purpose Timing Hack) - EE: Emotion Engine. Leave as-is. - EE таймінг хак (хак таймінгу загального призначення) + + For Gundam Games. + For Gundam Games. - - Instant DMA Hack (Good for cache emulation problems) - DMA: Direct Memory Access. Leave as-is. - Instant DMA хак (добре для проблем з емуляцією кешу) + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. - - OPH Flag Hack (For Bleach Blade Battlers) - OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag хак (для Bleach Blade Battlers) + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. - - Emulate GIF FIFO (Correct But Slower) - GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Емуляція GIF FIFO (правильно, але повільніше) + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. - - DMA Busy Hack (Deny Writes When Busy) - DMA: Direct Memory Access. Leave as-is. - Зайнятий DMA хак (забороняється записувати коли зайнятий) + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) - VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Затримка VIF1 Stalls (для SOCOM 2 HUD/Spy Hunter) + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. - - Emulate VIF FIFO (Correct But Slower) - VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Емуляція VIF FIFO (правильно, але повільніше) + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. - - Full VU0 Synchronization (Correct But Slower) - VU0 = VU (Vector Unit) 0. Leave as-is. - Повна синхронізація VU0 (правильно, ане повільніше) + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) - VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit хак (для Scarface The World is Yours/Crash Tag Team Racing) + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. - - VU Add Hack (For Tri-Ace Games) - VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add хак (для ігор Tri-Ace) + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. - - VU Overflow Hack (Superman Returns) - VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow хак (для Superman Returns) + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - VU Sync (Run Behind, M-Bit games) - VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, для ігор з M-Bit) + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - - VU XGKick Sync (Correct But Slower) - VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (правильно, але повільніше) + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. - - Force Blit Internal FPS Detection (When auto-detection fails) - Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Примусово увімкнути Blit Internal FPS Detection (коли автовиявлення не спрацьовує) + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never - Never + Ніколи - + Today - Today + Сьогодні - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Тип - + Code Код - + Title Назва - + File Title Назва файлу - + CRC CRC - + Time Played Часу зіграно - + Last Played Востаннє зіграно - + Size Розмір - + Region Регіон - + Compatibility Сумісність @@ -8471,74 +8861,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Директорії для пошуку (будуть скановані на наявність ігор) - + Add... Додати... - - - + + + Remove Прибрати - + Search Directory Директорія пошуку - + Scan Recursively Сканувати рекурсивно - + Excluded Paths (will not be scanned) Виключені шляхи (не будуть скануватися) - + Directory... Directory... - + File... Файл... - + Scan For New Games Сканувати нові ігри - + Rescan All Games Пересканувати всі ігри - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Відкрити директорію... - + Select Search Directory Оберіть директорію для пошуку - + Scan Recursively? Сканувати рекурсивно? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8547,12 +8963,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Сканування рекурсивно може зайняти більше часу, але буде ідентифікувати файли у піддиректоріях. - + Select File Вибрати файл - + Select Directory Select Directory @@ -8560,32 +8976,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Список ігор - + Game Grid Сітка ігор - + Show Titles Показати назви - + All Types Всі типи - + All Regions Всі регіони - + Search... Пошук... @@ -8611,17 +9027,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Автор: </span>Автор патчу</p><p>Опис буде тут</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Автор: </strong>%1<br>%2 - + Unknown Невідомо - + No description provided. Опис не надано. @@ -8631,7 +9047,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - Активація ігрових патчів може спричинити непередбачувану поведінку: краші, софт-локи, або зламані збережені ігри. Використовуйте патчі на власний ризик, команда PCSX2 не буде надавати жодної підтримки для користувачів, які активували ігрові патчі. + Активація ігрових патчів може спричинити непередбачувану поведінку, краші, софт-локи, або пошкодженню збережених ігор. Використовуйте патчі на власний ризик, команда PCSX2 не буде надавати жодної підтримки для користувачів, які активували ігрові патчі. @@ -8639,7 +9055,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Перезавантажити патчі - + There are no patches available for this game. Немає доступних патчей для цієї гри. @@ -8658,399 +9074,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Відновити + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Шлях: - + Serial: Серійний номер: - + CRC: CRC: - + Type: Тип: - + PS2 Disc Диск PS2 - + PS1 Disc Диск PS1 - + ELF (PS2 Executable) ELF (виконавчий файл PS2) - + Region: Регіон: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Бразилія) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (Китай) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Гонконг) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Японія) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Корея) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Тайвань) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (США) - + Other Інший - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Австралія) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (Південна Африка) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Австрія) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Бельгія) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Європа/Австралія) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (Франція) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Фінляндія) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Німеччина) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Греція) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Італія) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (Індія) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Європа/Австралія) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Нідерланди) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Норвегія) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Португалія) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Польща) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Росія) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Іспанія) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Скандинавія) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Швеція) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Швейцарія) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (Велика Британія) - + Compatibility: Сумісність: - + Unknown Невідомо - + Not Bootable Не завантажується - + Reaches Intro Доходить до вступу - + Reaches Menu Доходить до меню - + In-Game У грі - + Playable Грабельно - + Perfect Ідеально - + Input Profile: Профіль вводу: - + Shared Refers to the shared settings profile. Спільний - + Disc Path: Шлях до диска: - + Browse... Огляд... - + Clear Очистити - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Обрати шлях до диска - + Game is not a CD/DVD. Гра не є CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Режим - - + + Start Start - - + + Sectors Sectors - - + + Size Розмір - - + + MD5 MD5 - - + + Status Статус - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Помилка - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9058,62 +9485,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Рендерер: - + Adapter: Адаптер: - + Display Відображення - + Fullscreen Mode: Повноекранний режим: - + Aspect Ratio: Співвідношення сторін: - + Fit to Window / Fullscreen Підігнати до вікна / Повноекранний - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Авто стандартне (4:3 черезрядкова / 3:2 прогресивна) - - + + Standard (4:3) Стандартне (4:3) - - + + Widescreen (16:9) Широкоекранне (16:9) - + FMV Aspect Ratio: Співвідношення сторін FMV: - - - + + + @@ -9123,12 +9550,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Вимкнено (за замовчуванням) - - - - - - + + + + + + @@ -9139,92 +9566,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Автоматично (за замовчуванням) - + None (Interlaced, also used by Progressive) Ніякий (черезрядковий, також використаний прогресивним) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (спочатку верхнє поле, зубчастий) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (спочатку нижнє поле, зубчастий) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (спочатку верхнє поле, повні кадри) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (спочатку нижнє поле, повні кадри) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (спочатку верхнє поле, об'єднати 2 поля) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (спочатку нижнє поле, об'єднати 2 поля) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (спочатку верхнє поле, подібний до Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (спочатку нижнє поле, подібний до Bob + Weave) - + Bilinear Filtering: Білінійна фільтрація: - - + + None Вимкнена - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Білінійна (гладка) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Білінійна (різка) - + Vertical Stretch: Розтягування по вертикалі: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9232,355 +9659,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Обрізка: - + Left: Warning: short space constraints. Abbreviate if necessary. Зліва: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Згори: - + Right: Warning: short space constraints. Abbreviate if necessary. Справа: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Знизу: - + Screen Offsets Зміщення екрана - + VSync Вертикальна синхронізація - + Show Overscan Показати оверскан - + Enable Widescreen Patches Увімкнути широкоекранні патчі - + Enable No-Interlacing Patches Увімкнути патчі видалення інтерлейсингу - + Anti-Blur Антирозмивання - + Ctrl+S Ctrl+S - + Disable Interlace Offset Вимкнути зміщення інтерлейсингу - + Screenshot Size: Розмір скриншоту: - + Screen Resolution Роздільна здатність екрана - + Internal Resolution Внутрішня роздільна здатність - + Internal Resolution (Aspect Uncorrected) Внутрішня роздільна здатність (з невиправленим співвідношенням сторін) - + PNG PNG - + JPEG JPEG - + Quality: Якість: - - + + Rendering Рендеринг - + Internal Resolution: Внутрішня роздільна здатність: - + Mipmapping: Міпмаппінг: - - + + Off Вимкнено - + Basic (Generated Mipmaps) Звичайне (згенеровані міпмапи) - + Full (PS2 Mipmaps) Повне (міпмапи PS2) - - + + Texture Filtering: Фільтрація текстур: - - + + Nearest Метод найближчого сусіда - - + + Bilinear (Forced) Білінійна (примусова) - - + + Bilinear (PS2) Білінійна (PS2) - - + + Bilinear (Forced excluding sprite) Білінійна (примусова, без спрайтів) - + Trilinear Filtering: Трилінійна фільтрація: - + Off (None) Вимкнена (нічого) - + Trilinear (PS2) Трилінійна (PS2) - + Trilinear (Forced) Трилінійна (примусова) - + Anisotropic Filtering: Анізотропна фільтрація: - + Dithering: Дитеринг: - + Scaled З масштабуванням - + Unscaled (Default) Без масштабування (за замовчуванням) - + Blending Accuracy: Точність блендінгу: - + Minimum Мінімальна - + Basic (Recommended) Базова (рекомендується) - + Medium Середня - + High Висока - + Full (Slow) Повна (повільно) - + Maximum (Very Slow) Максимальна (дуже повільно) - + Texture Preloading: Передзавантаження текстур: - + Partial Часткове - + Full (Hash Cache) Повне (кешування хешу) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion - Конвертація палітри на GPU + Конвертація палітри на ГП - + Manual Hardware Renderer Fixes Ручні фікси апаратного рендереру - + Spin GPU During Readbacks - Обертання GPU під час зворотних зчитувань + Пробуджувати ГП під час зворотних зчитувань - + Spin CPU During Readbacks - Обертання ЦП під час зворотних зчитувань - - - - Extra Rendering Threads: - Додаткові потоки для рендеру: + Пробуджувати ЦП під час зворотних зчитувань - + threads потоки - + Mipmapping Міпмаппінг - + Auto Flush Автозмив - + Hardware Fixes Апаратні фікси - + Force Disabled Примусово вимкнена - + Force Enabled Примусово увімкнена - + CPU Sprite Render Size: Розмір рендеру спрайтів на ЦП: - - - + + + 0 (Disabled) @@ -9588,79 +10020,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (вимкнено) - + 1 (64 Max Width) 1 (максимальна ширина 64) - + 2 (128 Max Width) 2 (максимальна ширина 128) - + 3 (192 Max Width) 3 (максимальна ширина 192) - + 4 (256 Max Width) 4 (максимальна ширина 256) - + 5 (320 Max Width) 5 (максимальна ширина 320) - + 6 (384 Max Width) 6 (максимальна ширина 384) - + 7 (448 Max Width) 7 (максимальна ширина 448) - + 8 (512 Max Width) 8 (максимальна ширина 512) - + 9 (576 Max Width) 9 (максимальна ширина 576) - + 10 (640 Max Width) 10 (максимальна ширина 640) - - Skipdraw Range: - Діапазон Skipdraw: - - - + Frame Buffer Conversion Конвертація буфера кадрів - + Disable Depth Emulation Вимкнути емуляцію глибини - + Disable Safe Features Вимкнути безпечні функції - + Preload Frame Data Передзавантаження дані кадру @@ -9671,606 +10098,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Текстура всередині RT - + 1 (Normal) 1 (нормальний) - + 2 (Aggressive) 2 (агресивний) - + Software CLUT Render: - Software CLUT Render: + Програмний рендеринг CLUT: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Вимкнено (за замовчуванням) - + Enabled (Exact Match) Увімкнено (точна відповідність) - + Enabled (Check Inside Target) Увімкнено (перевірити всередині таргету) - + Upscaling Fixes Фікси апскейлу - + Half Pixel Offset: Напівпіксельне зміщення: - + Normal (Vertex) Нормальне (вершина) - + Special (Texture) Спеціальне (текстура) - + Special (Texture - Aggressive) Спеціальне (текстура - агресивно) - + Round Sprite: Округлювач спрайтів: - + Half Половинний - + Full Повний - + Texture Offsets: Зміщення текстур: - + X: X: - + Y: Y: - + Merge Sprite Об'єднувач спрайтів - + Align Sprite Вирівнювач спрайтів - + Deinterlacing: Деінтерлейсинг: - + Sprites Only Лише спрайти - + Sprites/Triangles Спрайти/трикутники - + Blended Sprites/Triangles Накладені спрайти/трикутники - + Auto Flush: Автозмив: - + Enabled (Sprites Only) Увімкнено (лише спрайти) - + Enabled (All Primitives) Увімкнено (всі примітиви) - + Texture Inside RT: Текстура всередині RT: - + Inside Target Всередині таргету - + Merge Targets Об'єднувач таргетів - + Disable Partial Source Invalidation Вимкнути перевірку часткових недійсностей - + Read Targets When Closing Зчитувати таргети при закритті - + Estimate Texture Region Відрахувати область текстур - + Disable Render Fixes Вимкнути фікси рендеру - + Unscaled Palette Texture Draws Малювання палітрових текстур без масштабування - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms хак - + Bilinear Dirty Upscale: - Bilinear Dirty Upscale: + «Брудний» білінійний апскейл: - + Force Bilinear - Force Bilinear + Примусово білінійна - + Force Nearest - Force Nearest + Примусово увімкнути метод ближнього сусіда - + Texture Replacement Заміна текстур - + Search Directory Директорія пошуку - - + + Browse... Огляд... - - + + Open... Відкрити... - - + + Reset Скинути - + PCSX2 will dump and load texture replacements from this directory. PCSX2 буде дампити та завантажувати заміни текстур з цієї директорії. - + Options Налаштування - + Dump Textures Дампити текстури - + Dump Mipmaps Дампити міпмапи - + Dump FMV Textures Дампити FMV текстури - - - Async Texture Loading - Асинхронне завантаження текстур - - - + Load Textures Завантажувати текстури - + Precache Textures - Прекешити текстури + Прекешувати текстури - + Post-Processing Постобробка - + Sharpening/Anti-Aliasing Різкість/згладжування - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Контрастно-адаптивна різкість (CAS): - - + + None (Default) Ніяка (за замовчуванням) - + Sharpen Only (Internal Resolution) Тільки різкість (внутрішня роздільна здатність) - + Sharpen and Resize (Display Resolution) Різкість і змінити розмір (роздільна здатність екрану) - + Sharpness: Різкість: - + FXAA FXAA - + Filters Фільтри - + TV Shader: TV шейдер: - + Scanline Filter Scanline фільтр - + Diagonal Filter Diagonal фільтр - + Triangular Filter Triangular фільтр - + Wave Filter Wave фільтр - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS зниження дискретизації (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) Зменшення дискретизації NxAGSS (Nx Automatic Grid SuperSampling) - + Shade Boost - Посилення шейдингу + Посилення відтінку - + Brightness: Яскравість: - + Contrast: Контраст: - Saturation Насиченість: - + OSD OSD - + On-Screen Display Інформація на екрані (OSD) - + OSD Scale: Масштаб OSD: - + Show Indicators Показувати показники - + Show Resolution Показувати роздільну здатність - + Show Inputs Показувати введення - + Show GPU Usage - Показувати використання GPU + Показувати використання ГП - + Show Settings Показувати налаштування - + Show FPS Показувати FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Вимкнути кеш шейдерів - + Disable Vertex Shader Expand - Вимкнути розширення вертексних шейдерів + Вимкнути розширення вершинних шейдерів - + Show Statistics Показувати статистику - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage - Показувати використання CPU + Показувати використання ЦП - + Warn About Unsafe Settings Попереджати про небезпечні налаштування - + Show Frame Times Показувати тривалість кадрів - + Recording Запис - + Video Dumping Directory Директорія для збереження відео - + Capture Setup Налаштування запису - + Container: Контейнер: - - + + Codec: Кодек: - - + + Extra Arguments Додаткові аргументи - + Capture Audio Записувати звук - + Resolution: Роздільність: - + x x - + Auto Авто - + Capture Video Записувати відео - + Advanced Advanced here refers to the advanced graphics options. Розширені - + Advanced Options Розширені налаштування - + Hardware Download Mode: Режим апаратного завантаження: - + Accurate (Recommended) Точний (Рекомендовано) - + Disable Readbacks (Synchronize GS Thread) - Вимкнути рідбеки (Синхронізувати потік GS) + Вимкнути зворотні зчитування (Синхронізувати потік GS) - + Unsynchronized (Non-Deterministic) Несинхронізований (Не детерміністичний) - + Disabled (Ignore Transfers) Вимкнутий (Ігнорувати передачі) - + GS Dump Compression: Компресія дампу GS: - + Uncompressed Без компресії - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Пропускати повторювані кадри - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10280,72 +10717,66 @@ Swap chain: see Microsoft's Terminology Portal. Використовувати Blit Swap Chain - + Disable Threaded Presentation Вимкнути багатопотокове представлення - - + + Bitrate: Бітрейт: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. кбіт/с - + Allow Exclusive Fullscreen: Дозволити ексклюзивний повний екран: - + Disallowed Заборонити - + Allowed Дозволити - + Debugging Options Параметри налагодження - + Override Texture Barriers: Змістити бар'єри текстур: - + Use Debug Device Використовувати пристрій для налагоджування - - - Disable Dual Source Blending - Вимкнути Dual Source Blending - - - + Show Speed Percentages Показувати відсотки швидкості - + Disable Framebuffer Fetch - Вимкнути Framebuffer Fetch + Вимкнути доступ до буфера кадрів @@ -10411,8 +10842,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Застосувати глобальне значення [%1] @@ -10464,6 +10895,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Без позначки @@ -10523,10 +10955,20 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Контролює рівень точності емуляції модуля блендінгу (накладання) GS.<br> Чим вище значення, тим точніше блендінг емулюється у шейдері, тим вище буде погіршення швидкості емуляції.<br> Зауважте, що можливість блендінгу в Direct3D обмежений, на відміну від OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render - Software CLUT Render + Програмний рендеринг CLUT + + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. @@ -10546,7 +10988,7 @@ Swap chain: see Microsoft's Terminology Portal. Convert 4-bit and 8-bit framebuffer on the CPU instead of the GPU. Helps Harry Potter and Stuntman games. It has a big impact on performance. - Конвертує 4-бітний і 8-бітний буфер кадрів на CPU замість GPU. Допомагає з іграми Harry Potter і Stuntman. Це сильно впливає на продуктивність. + Конвертує 4-бітний і 8-бітний буфер кадрів на ЦП замість ГП. Допомагає з іграми Harry Potter і Stuntman. Це сильно впливає на продуктивність. @@ -10579,6 +11021,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Виправляє проблеми з апскейлом (вертикальними лініями) в іграх від Namco, наприклад Ace Combat, Tekken, Soul Calibur, тощо. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10594,11 +11091,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Показує різні параметри та поточні значення цих налаштувань, корисно для налагодження. - - - Shows the current controller state of the system in the bottom left corner of the display. - Показує поточний стан контролера системи в нижньому лівому куті екрану. - Displays a graph showing the average frametimes. @@ -10636,7 +11128,7 @@ Swap chain: see Microsoft's Terminology Portal. Увімкніть цю опцію, щоб частота оновлення PCSX2 збігалась з вашим поточним екраном. Вертикальна синхронізація автоматично вимкнена коли це неможливо зробити (наприклад, коли працює не на 100% швидкості). - + Integer Scaling Цілочисельний скейлінг @@ -10725,8 +11217,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Режим без рамки @@ -10791,7 +11283,7 @@ Swap chain: see Microsoft's Terminology Portal. Control the resolution at which games are rendered. High resolutions can impact performance on older or lower-end GPUs.<br>Non-native resolution may cause minor graphical issues in some games.<br>FMV resolution will remain unchanged, as the video files are pre-rendered. - Керує роздільною здатністю, за якою ігри рендеряться. Високі роздільні здатності можуть вплинути на швидкодію на старших або лоу-енд GPU.<br>Нерідна роздільна здатність може викликати незначні графічні помилки у деяких іграх.<br>Роздільна здатність FMV залишиться без змін, так як відео файли попередньо зрендерені. + Керує роздільною здатністю, за якою ігри рендеряться. Високі роздільні здатності можуть вплинути на швидкодію на старших або слабших ГП.<br>Нерідна роздільна здатність може викликати незначні графічні помилки в деяких іграх.<br>Роздільна здатність FMV залишиться без змін, так як відео файли попередньо зрендерені. @@ -10851,7 +11343,7 @@ Swap chain: see Microsoft's Terminology Portal. When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - Конвертацією текстур кольорових мап займається GPU замість CPU, коли увімкнено. Це компроміс між GPU та CPU. + Конвертацією текстур кольорових мап займається ГП замість ЦП, коли увімкнено. Це компроміс між ГП та ЦП. @@ -10861,17 +11353,12 @@ Swap chain: see Microsoft's Terminology Portal. Does useless work on the CPU during readbacks to prevent it from going to into powersave modes. May improve performance but with a significant increase in power usage. - Надсилає непотрібні завдання на CPU під час обчислень, щоб запобігти переходу в режими енергоощадження. Може підвищити швидкодію, але зі значним збільшенням енергоспоживання. + Надсилає непотрібні завдання на ЦП під час зворотних зчитувань, щоб запобігти переходу в режими енергоощадження. Може підвищити швидкодію, але зі значним збільшенням енергоспоживання. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - Надсилає непотрібні завдання на GPU під час обчислень, щоб запобігти переходу в режими енергоощадження. Може підвищити швидкодію, але зі значним збільшенням енергоспоживання. - - - - Extra Rendering Threads - Додаткові потоки для рендеру + Надсилає непотрібні завдання на ГП під час зворотних зчитувань, щоб запобігти переходу в режими енергоощадження. Може підвищити швидкодію, але зі значним збільшенням енергоспоживання. @@ -10887,7 +11374,7 @@ Swap chain: see Microsoft's Terminology Portal. Force a primitive flush when a framebuffer is also an input texture. Fixes some processing effects such as the shadows in the Jak series and radiosity in GTA:SA. - Робе примусову примітивну промивку, коли буфер кадру також є вхідною текстурою. Виправляє ефекти постобробки, такі як тіні в серії ігор Jak та освітлення в GTA:SA. + Робе примусову промивку примітивів, коли буфер кадру також є вхідною текстурою. Виправляє ефекти постобробки, такі як тіні в серії ігор Jak та освітлення в GTA:SA. @@ -10923,11 +11410,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Кінець діапазону Skipdraw - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Вимикає підтримку буфера глибини у кеші текстур. Може допомогти збільшити швидкість, але, швидше за все, призведе до різних глюків. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -10989,7 +11471,7 @@ Swap chain: see Microsoft's Terminology Portal. Replaces post-processing multiple paving sprites by a single fat sprite. It reduces various upscaling lines. - Замінює постобробку кількох спрайтів мощення одним жирним спрайтом. Це зменшує різноманітні рядки масштабування. + Замінює постобробку кількох спрайтів замощення одним жирним спрайтом. Це зменшує різноманітні лінії, які з'являються через апскейл. @@ -11045,7 +11527,7 @@ Swap chain: see Microsoft's Terminology Portal. Масштаб OSD - + Show OSD Messages Показувати повідомлення OSD @@ -11073,18 +11555,23 @@ Swap chain: see Microsoft's Terminology Portal. Shows host's CPU utilization. - Показує навантаження CPU. + Показує навантаження ЦП. Shows host's GPU utilization. - Показує навантаження GPU. + Показує навантаження ГП. Shows counters for internal graphical utilization, useful for debugging. Показує лічильники внутрішнього графічного навантаження, корисно для налагодження. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11134,33 +11621,43 @@ Swap chain: see Microsoft's Terminology Portal. Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. Could reduce chance of missing a frame or reduce tearing at the expense of more erratic frame times. Only applies to the Vulkan renderer. - Представляє кадри в основному потоки GS замість робочого потоку. Використовується для налагодження кадрових проблем. Може зменшити ймовірність пропуску кадру або зменшити розрив за рахунок більш нестабільного часу кадру. Застосовується лише до Федерера Vulkan. + Представляє кадри в основному потоці GS замість робочого потоку. Використовується для налагодження проблем з тривалістю кадрів. Може зменшити ймовірність пропуску кадру або зменшити розрив коштом більш нестабільних тривалостей кадрів. Застосовується лише до рендерера Vulkan. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode Режим завантаження GS - + Accurate Точний - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Пропускає синхронізацію з потоком GS і графічним процесором хоста для завантажень GS. Може призвести до значного збільшення швидкості на повільніших системах ціною багатьох несправних графічних ефектів. Якщо ігри зламані, і у вас увімкнено цей параметр, спочатку вимкніть його. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. За замовчуванням - - + + (Default) (за замовчуванням) @@ -11168,405 +11665,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Графіка - + Save Screenshot Зберегти скриншот - + Toggle Video Capture Перемкнути відеозапис - + Save Single Frame GS Dump Зберегти GS дамп з одним кадром - + Save Multi Frame GS Dump Зберегти GS дамп з декількома кадрами - + Toggle Software Rendering Перемкнути програмний рендеринг - + Increase Upscale Multiplier Збільшити множник апскейлу - + Decrease Upscale Multiplier Зменшити множник апскейлу - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Перемкнути співвідношення сторін - + Aspect ratio set to '{}'. Співвідношення сторін задано до '{}'. - + Cycle Hardware Mipmapping Перемкнути апаратний міпмаппінг - + Hardware mipmapping set to '{}'. Апаратний міпмаппінг задано до '{}'. - + Cycle Deinterlace Mode Перемкнути режим деінтерлейсу - + Deinterlace mode set to '{}'. Режим деінтерлейсу задано до '{}'. - + Toggle Texture Dumping Перемкнути дамп текстур - + Texture dumping is now enabled. Дамп текстур увімкнено. - + Texture dumping is now disabled. Дамп текстур вимкнено. - + Toggle Texture Replacements Перемкнути заміну текстур - + Texture replacements are now enabled. Заміна текстур увімкнена. - + Texture replacements are now disabled. Заміна текстур вимкнута. - + Reload Texture Replacements Перезавантажити заміну текстур - + Texture replacements are not enabled. Заміна текстур не увімкнена. - + Reloading texture replacements... Перезавантаження заміни текстур... - + Target speed set to {:.0f}%. Цільова швидкість встановлена до {:.0f}%. - + Volume: Muted Гучність: Без звуку - + Volume: {}% Гучність: {}% - - Save slot {} selected (last save: {}). - Слот збереження {} обрано (останнє збереження: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Слот збереження {} обрано (збереження ще не було). - + No save state found in slot {}. Станів збереження не знайдено в слоті {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System Система - + Open Pause Menu Відкрити меню паузи - + Open Achievements List Відкрити список досягнень - + Open Leaderboards List Відкрити таблиці лідерів - + Toggle Pause Перемкнути паузу - + Toggle Fullscreen Перемкнути повний екран - + Toggle Frame Limit Перемкнути ліміт швидкості - + Toggle Turbo / Fast Forward Перемкнути Турбо / Перемотку вперед - + Toggle Slow Motion Перемкнути сповільнення - + Turbo / Fast Forward (Hold) Турбо / Перемотка вперед (тримати) - + Increase Target Speed Збільшити цільову швидкість - + Decrease Target Speed Зменшити цільову швидкість - + Increase Volume Збільшити гучність - + Decrease Volume Зменшити гучність - + Toggle Mute Перемкнути звук - + Frame Advance Просунутися на кадр - + Shut Down Virtual Machine Вимкнути віртуальну машину - + Reset Virtual Machine Перезавантажити віртуальну машину - + Toggle Input Recording Mode Перемкнути режим запису вводу - - - - + + + + Save States Стани збереження - + Select Previous Save Slot Обрати попередній слот збереження - + Select Next Save Slot Обрати наступний слот збереження - + Save State To Selected Slot Зберегти стан в обраний слот - + Load State From Selected Slot Завантажити стан з обраного слота - + Save State To Slot 1 Зберегти стан до слота 1 - + Load State From Slot 1 Завантажити стан зі слота 1 - + Save State To Slot 2 Зберегти стан до слота 2 - + Load State From Slot 2 Завантажити стан зі слота 2 - + Save State To Slot 3 Зберегти стан до слота 3 - + Load State From Slot 3 Завантажити стан зі слота 3 - + Save State To Slot 4 Зберегти стан до слота 4 - + Load State From Slot 4 Завантажити стан зі слота 4 - + Save State To Slot 5 Зберегти стан до слота 5 - + Load State From Slot 5 Завантажити стан зі слота 5 - + Save State To Slot 6 Зберегти стан до слота 6 - + Load State From Slot 6 Завантажити стан зі слота 6 - + Save State To Slot 7 Зберегти стан до слота 7 - + Load State From Slot 7 Завантажити стан зі слота 7 - + Save State To Slot 8 Зберегти стан до слота 8 - + Load State From Slot 8 Завантажити стан зі слота 8 - + Save State To Slot 9 Зберегти стан до слота 9 - + Load State From Slot 9 Завантажити стан зі слота 9 - + Save State To Slot 10 Зберегти стан до слота 10 - + Load State From Slot 10 Завантажити стан зі слота 10 @@ -11725,6 +12222,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Хрест + + + + Square + Квадрат + + + + Triangle + Трикутник + + + + Circle + Коло + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11752,137 +12339,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Поведінка - + Pause On Focus Loss Пауза при втраті фокусу - + Inhibit Screensaver Інгібітор скринсейверу - + Save State On Shutdown Зберегти стан при відключенні - + Pause On Start Пауза при запуску - + Confirm Shutdown Підтвердження вимкнення - + Create Save State Backups Створювати резервні копії збереження стану - + Enable Discord Presence Увімкнути Discord Rich Presence - + Enable Per-Game Settings Увімкнути окремі налаштування для ігор - + Game Display Зображення гри - + Start Fullscreen Запускати в повноекранному режимі - + Double-Click Toggles Fullscreen Подвійний клац перемикає повноекранний режим - + Render To Separate Window Відображати в окремому вікні - + Hide Main Window When Running Сховати головне вікно після запуску - + Disable Window Resizing Вимкнути зміну розміру вікна - + Hide Cursor In Fullscreen Приховати курсор в повноекранному режимі - + Preferences Уподобання - + Language: Мова: - + Theme: Тема: - + Automatic Updater Автоматичне оновлення - + Update Channel: Канал оновлень: - + Current Version: Поточна версія: - + Enable Automatic Update Check Увімкнути автоматичні оновлення - + Check for Updates... Перевірити наявність оновлень... @@ -12075,7 +12662,7 @@ Right click to clear binding Показує гру, в яку ви зараз граєте, як частину вашого профілю в Discord. - + System Language [Default] Мова системи [Default] @@ -12132,14 +12719,14 @@ Right click to clear binding - - + + Change Disc Змінити диск - + Load State Завантажити стан @@ -12644,13 +13231,13 @@ Right click to clear binding - + Start Big Picture Mode Запустити режим Big Picture - + Big Picture In Toolbar Big Picture @@ -12662,7 +13249,7 @@ Right click to clear binding - + Show Advanced Settings Показати розширені налаштування @@ -12673,7 +13260,7 @@ Right click to clear binding - + Video Capture Запис відео @@ -12688,27 +13275,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Внутрішня роздільна здатність - + %1x Scale %1x масштабу - + Select location to save block dump: Виберіть місце для збереження блоку дампів: - + Do not show again Більше не показувати - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12721,168 +13308,173 @@ Are you sure you want to continue? Ви впевнені, що хочете продовжити? - + %1 Files (*.%2) %1 файлів (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Підтвердження вимкнення - + Are you sure you want to shut down the virtual machine? Ви впевнені, що хочете вимкнути віртуальну машину? - + Save State For Resume Зберегти стан для продовження - - - - - - + + + + + + Error Помилка - + You must select a disc to change discs. Виберіть диск для зміни дисків. - + Properties... Властивості... - + Open Containing Directory... Refers to the directory where a game is contained. Відкрити вміст каталогу... - + Set Cover Image... Задати зображення обкладинки... - + Exclude From List Виключити зі списку - + Reset Play Time Скинути зіграний час - + Default Boot Запуск за замовчуванням - + Fast Boot Швидкий запуск - + Full Boot Повний запуск - + Boot and Debug Запуск і налагодження - + Add Search Directory... Додати директорію пошуку... - + Start File Запустити файл - + Start Disc Запустити диск - + Select Disc Image Оберіть образ диска - + Updater Error Помилка системи оновлення - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>На жаль, ви намагаєтеся оновити версію PCSX2, яка не є офіційним релізом з GitHub. Для запобігання несумісностей, автооновлення увімкнуто лише в офіційних збірках.</p><p>Щоб отримати офіційну збірку, будь ласка, завантажте її за посиланням нижче:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Автоматичне оновлення не підтримується на поточній платформі. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Файли з записом вводу (*.p2m2) - + Paused Призупинено - + Load State Failed Не вдалося завантажити стан - + Cannot load a save state without a running VM. Неможливо завантажити стан збереження без увімкненої віртуальної машини. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Не вдалося отримати інформацію про вікно з віджета @@ -12897,97 +13489,97 @@ Are you sure you want to continue? Усі типи файлів (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Необроблені однодоріжкові образи (*.bin *.iso);;Файли cue (*.cue);;Media Descriptor File (*.mdf);;Образи MAME CHD (*.chd);;Образи CSO (*.cso);;Образи GZ (*.gz);;Дампи блоків (*.dump) - + Stop Big Picture Mode Зупинити режим Big Picture - + Exit Big Picture In Toolbar Вийти з Big Picture - + Game Properties Властивості ігри - + Game properties is unavailable for the current game. Властивості гри недоступні для поточної гри. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Не вдалося знайти жодного CD/DVD-ROM пристрою. Будь ласка, переконайтеся, що у вас є підключений дисковод і дозвіл для доступу до нього. - + Select disc drive: Оберіть дисковод: - + This save state does not exist. Цього збереженого стану не існує. - + Select Cover Image Оберіть зображення обкладинки - - All Cover Image Types (*.jpg *.jpeg *.png) - Всі типи зображень для обкладинки (*.jpg *.jpeg *.png) - - - + Cover Already Exists Обкладинка вже виставлена - + A cover image for this game already exists, do you wish to replace it? Зображення обкладинки для цієї гри вже виставлено, бажаєте його замінити? - - - - + + + + Copy Error Помилка копіювання - + Failed to remove existing cover '%1' Не вдалося прибрати присутню обкладинку '%1' - + Failed to copy '%1' to '%2' Не вдалося скопіювати '%1' в '%2' - + Failed to remove '%1' Не вдалося видалити '%1' - - + + Confirm Reset Підтвердження скидання - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12996,12 +13588,12 @@ This action cannot be undone. Цю дію не можна скасувати. - + Load Resume State Завантажити стан для продовження - + A resume save state was found for this game, saved at: %1. @@ -13014,70 +13606,70 @@ Do you want to load this state, or start from a fresh boot? Ви хочете завантажити цей стан, або почати з чистого запуску? - + Fresh Boot Чистий запуск - + Delete And Boot Видалити та запустити - + Failed to delete save state file '%1'. Не вдалося видалити файл збереженого стану '%1'. - + Load State File... Завантажити файл стану... - + Load From File... Завантажити з файлу... - - + + Select Save State File Обрати файл збереженого стану - - + + Save States (*.p2s) Збережені стани (*.p2s) - + Delete Save States... Видалити збережені стани... - + Undo Load State Скасувати завантажений стан - + Resume (%2) Продовжити (%2) - + Load Slot %1 (%2) Завантажити слот %1 (%2) - - + + Delete Save States Видалити збережені стани - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13086,42 +13678,42 @@ The saves will not be recoverable. Стани не підлягають відновленню. - + %1 save states deleted. %1 збережених станів видалено. - + Save To File... Зберегти у файл... - + Empty Пусто - + Save Slot %1 (%2) Слот збереження %1 (%2) - + Confirm Disc Change Підтвердження зміну диска - + Do you want to swap discs or boot the new image (via system reset)? Хочете поміняти місцями диски або запустити новий образ (через перезавантаження системи)? - + Swap Disc Змінити диск - + Reset Перезавантажити @@ -13129,8 +13721,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Карта пам'яті '{}' була збережена в сховищі. @@ -13211,6 +13803,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. В два рази більше ніж стандартна карта пам'яті. Може мати деякі проблеми із сумісністю. @@ -13261,11 +13854,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Не можна конвертувати карту пам'яті - - - 2x larger as a standard Memory Card. May have some compatibility issues. - В два рази більше ніж стандартна карта пам'яті. Може мати деякі проблеми із сумісністю. - MemoryCardCreateDialog @@ -13281,7 +13869,7 @@ The saves will not be recoverable. <html><head/><body><p><span style=" font-weight:700;">Create Memory Card</span><br />Enter the name of the Memory Card you wish to create, and choose a size. We recommend either using 8MB Memory Cards, or folder Memory Cards for best compatibility.</p></body></html> - <html><head/><body><p><span style=" font-weight:700;">Створити карту пам'яті</span><br />Введіть ім'я карти пам'яті та оберіть її розмір. Ми рекомендуємо використовувати місткість у 8 МБ, або папку з картами пам'яті для найкращої сумісності.</p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Створити карту пам'яті</span><br />Введіть ім'я карти пам'яті, яку ви бажаєте створити, та оберіть її розмір. Ми рекомендуємо використовувати місткість у 8 МБ, або папку з картами пам'яті для найкращої сумісності.</p></body></html> @@ -13391,103 +13979,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Порти консолі - + Memory Cards Карти пам'яті - + Folder: Папка: - + Browse... Огляд... - + Open... Відкрити... - + Reset Скинути - + Name Ім'я - + Type Тип - + Formatted Форматовано - + Last Modified Востаннє змінено - + Refresh Оновити - + + Create Створити - + Duplicate Дублювати - + Rename Перейменувати - + Convert Конвертувати - + Delete Видалити - + Settings Налаштування - + Automatically manage saves based on running game Автоматично керувати збереженнями на основі запущеної гри - + Auto-eject Memory Cards when loading save states Автоматично витягувати карти пам'яті під час завантаження збережених станів @@ -13657,58 +14246,58 @@ This action cannot be reversed, and you will lose any saves on the card.Пам’ять - + Copy Address Copy Address - + Go to in disassembly Показати в дизассемблері - - + + Go to address Перейти до адреси - + Show as 1 byte Показати як 1 байт - + Show as 2 bytes Показати як 2 байти - + Show as 4 bytes Показати як 4 байти - + Show as 8 bytes Показати як 8 байтів - + Copy Byte Копіювати байт - + Copy Segment Копіювати сегмент - + Copy Character Копіювати символ - + Paste Вставити @@ -13758,10 +14347,15 @@ This action cannot be reversed, and you will lose any saves on the card.Введіть ім'я автора - + Input Recording Files (*.p2m2) Файли з записом вводу (*.p2m2) + + + Select a File + Select a File + Pad @@ -13957,6 +14551,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Встановлює мертву зону для аналогових стіків, тобто частка аналогового руху, якої буде проігноровано. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13973,14 +14577,14 @@ This action cannot be reversed, and you will lose any saves on the card.Встановлює мертву зону для активації кнопок/тригерів, тобто частка натискання тригера буде проігноровано. - - Analog light is now on for port {} / slot {} - Аналоговий індикатор тепер горить для порту {} / слота {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Аналогове світло тепер вимкнено для порту {} / слота {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14027,13 +14631,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14104,40 +14701,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Гітара + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Не вдалося відкрити {}. Вбудовані ігрові патчі недоступні. - + {} GameDB patches {} патчей GameDB - + {}{} game patches {}{} ігрових патчів - + {}{} cheat patches {}{} чіт-патчів - + {} are active. {} активовано. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. Ніяких чітів або патчей (на широкий екран, сумісність чи інші) не було знайдено / увімкнено. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14155,13 +14775,13 @@ The URL was: %1 URL-адреса: %1 - + HDD Creator Створювач жорсткого диска - + Failed to create HDD image Не вдалося створити образ жорсткого диска @@ -14366,7 +14986,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14400,7 +15019,7 @@ Do you want to create this directory? Error - Error + Помилка @@ -14416,222 +15035,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Застосувати глобальне значення [Увімкнено] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Застосувати глобальне значення [Вимкнено] + + + + + Use Global Setting [%1] + Застосувати глобальне значення [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings Налаштування PCSX2 - + Restore Defaults - Скинути до початкових + Restore Defaults - + Copy Global Settings - Копіювати глобальні налаштування + Copy Global Settings - + Clear Settings Clear Settings - + Close - Закрити - - - - - Summary - Зміст + Close - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Інтерфейс - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - <strong>Налаштування інтерфейсу</strong><hr>Ці опції керують виглядом та поведінкою програми.<br><br>Наведіть курсор миші на опції для додаткової інформації. + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List - Список ігор + Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - <strong>Налаштування списку ігор</strong><hr>Список зверху показує директорії, які PCSX2 буде сканувати для заповнення списку ігор. Директорії пошуку можна додати, зняти, або перемикати рекурсивне сканування для них. + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - <strong>Налаштування BIOS</strong><hr>Налаштуйте свої BIOS тут.<br><br>Наведіть курсор миші на опції для додаткової інформації. + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation - Емуляція + Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - <strong>Налаштування емуляції</strong><hr>Ці налаштування визначають конфігурацію темпу кадрів та ігрових налаштувань.<br><br>Наведіть курсор миші на опції для додаткової інформації. + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches - Патчі + Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - <strong>Патчі</strong><hr>Цей розділ дозволяє вам обрати не обов'язкові патчі, які можна застосувати до гри, і які можуть забезпечити покращень продуктивності, графіки та геймплею. + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats - Чіти + Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - <strong>Чіти</strong><hr>Цей розділ дозволяє вам обрати чіти, які ви бажаєте увімкнути. Ви не можете увімкнути/вимкнути чіти без лейблів файлів pnach старого формату, вони будуть автоматично активуватися якщо головна опція для вмикання чітів позначена галочкою. + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes - Ігрові фікси + Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - <strong>Налаштування ігрових фіксів</strong><hr>Ігрові фікси можуть обійти неправильну емуляцію в деяких іграх.<br>Однак, вони ще можуть спричинити проблеми в іграх при неправильному використанні.<br>Краще залишити їх вимкненими, якщо не зазначено інакше. + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics - Графіка + Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - <strong>Налаштування графіки</strong><hr>Ці налаштування визначають конфігурацію графічного виводу.<br><br>Наведіть курсор миші на опції для додаткової інформації. + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Аудіо - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - <strong>Налаштування аудіо</strong><hr>Ці налаштування керують аудіовиводом консолі.<br><br>Наведіть курсор миші на опції для додаткової інформації. + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Карти пам'яті - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - <strong>Налаштування карток пам'яті</strong><hr>Створюйте та налаштовуйте карти пам'яті тут.<br><br>Наведіть курсор миші на опції для додаткової інформації. + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD - Мережа та HDD + Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - <strong>Налаштування мережі та жорсткого диску</strong><hr>Ці налаштування керують мережевим підключенням та внутрішнім сховищем консолі<br><br>Наведіть курсор миші на опції для додаткової інформації. + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Папки - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - <strong>Налаштування папок</strong><hr>Ці опції керують тим, де PCSX2 буде зберігати файли даних середовища виконання. + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements - Досягнення + Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - <strong>Налаштування досягнень</strong><hr>Ці налаштування керують імплементацією RetroAchievements в PCSX2, що дозволяє вам заробляти досягнення у ваших іграх. + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. - Використовується RAIntegration, вбудована підтримка RetroAchievements вимкнена. + RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced - Розширені + Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - <strong>Розширені налаштування</strong><hr>Це розширені налаштування, які визначають конфігурацію симульованої консолі.<br><br>Наведіть курсор миші на опції для додаткової інформації. + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug - Налагодження + Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - <strong>Налаштування налагодження</strong><hr>Ці налаштування можуть бути використані для логування внутрішньої інформації про застосунок. <strong>Не змінюйте, якщо не знаєте що робите</strong>, це спричинить значне сповільнення ігор, та може марно зайняти великі суми місця на диску. + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults - Підтвердження скидання до початкових + Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. - Ви впевнені, що хочете скинути налаштування до початкових? Будь-які налаштування, виставлені за уподобанням, буде втрачено. + Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings - Скинути налаштування інтерфейсу + Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14644,12 +15284,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14662,32 +15302,14 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value - Рекомендоване значення - - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Застосувати глобальне значення [Увімкнено] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Застосувати глобальне значення [Вимкнено] - - - - - Use Global Setting [%1] - Застосувати глобальне значення [%1] + Recommended Value @@ -14774,8 +15396,8 @@ Do you want to continue? - Open in Explorer... - Відкрити у провіднику... + Open BIOS Folder... + Відкрити папку BIOS... @@ -15042,100 +15664,100 @@ Scanning recursively takes more time, but will identify files in subdirectories. ТИП ОЧІКУВАННЯ - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. - VPOOL + VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. - FIXPOOL + FIXPOOL @@ -15203,7 +15825,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Konami Keyboard - Konami Keyboard + Клавіатура Konami @@ -15331,13 +15953,18 @@ Scanning recursively takes more time, but will identify files in subdirectories. Cursor Scale - Cursor Scale + Масштаб курсору Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15369,6 +15996,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15384,6 +16017,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Встановлює горизонтальний центр симульованого екрана. + + + + %.0fpx + %.0fpx + Center Y @@ -15404,6 +16043,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Встановлює ширину симульованого екрана. + + + + %dpx + %dpx + Screen Height @@ -15459,6 +16104,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Визначає затримку для пристрою запису. + + + + + + + %dms + %dмс + Output Latency @@ -15659,6 +16313,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15669,6 +16343,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16168,117 +16848,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Поради - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Щоб прив'язати кермування для більшості сучасних рулів з поворотом на 900 градусів, поверніть руль обертом в потрібному напрямку, потім знову до центру. - + Force Feedback Force Feedback - + D-Pad Хрестовина - + Down Вниз - + Left Вліво - + Up Вгору - + Right Вправо - + L1 L1 - + L2 L2 - + Brake Гальмо - + Steering Left Кермування вліво - + Steering Right Кермування вправо - + Select Select - + Start Start - + Face Buttons Лицьові кнопки - + Circle Коло - + Cross Хрест - + Triangle Трикутник - + Square Квадрат - + R1 R1 - + R2 R2 - + Accelerator Акселератор @@ -16286,67 +16966,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Поради - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. Щоб прив'язати кермування для більшості сучасних рулів з поворотом на 900 градусів, поверніть руль обертом в потрібному напрямку, потім знову до центру. - + Force Feedback Force Feedback - + X X - + A A - + Brake Гальмо - + Steering Left Кермування вліво - + Steering Right Кермування вправо - + Left Paddle Лівий перемикач - + Right Paddle Правий перемикач - + Y Y - + B B - + Accelerator Акселератор @@ -16354,71 +17034,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Кнопки - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad Хрестовина - - + + Down Вниз - - + + Left Вліво - - + + Up Вгору - - + + Right Вправо - + Pointer Setup - Pointer Setup + Налаштування вказівника - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16427,29 +17107,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Тригер - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16457,27 +17137,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Тип пристрою - + Bindings Bindings - + Settings Налаштування - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16515,32 +17195,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Не вдалося створити резервну копію старого стану збереження {}. - + Failed to save save state: {}. Не вдалося зберегти стан збереження: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Невідома гра - + Error Помилка - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16557,197 +17237,217 @@ Please consult the FAQs and Guides for further instructions. Для подальших інструкцій зверніться до FAQ і посібників. - + + Resuming state + Resuming state + + + State saved to slot {}. Стан збережено в слот {}. - + Failed to save save state to slot {}. Не вдалося зберегти стан збереження в слот {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. Немає збереженого стану в слоті {}. - + Loading state from slot {}... Завантаження стану зі слота {}... - + Saving state to slot {}... Збереження стану до слота {}... - + + Frame advancing + Frame advancing + + + Disc removed. Диск витягнуто. - + Disc changed to '{}'. Диск змінено на '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Не вдалося відкрити новий образ диску '{}'. Повернення до старого образу. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Не вдалося повернутися до старого образу диску. Виймаю диск. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Чіти були вимкнені через хардкорний режим досягнень. - + Fast CDVD is enabled, this may break games. Швидкий CDVD увімкнений, це може зламати ігри. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Частота циклів/пропуск не встановлені за замовчуванням, це може призвести до крашу або сповільнення ігор. - + Audio is using async mix, expect desynchronization in FMVs. Для аудіо використовується Async Mix, очікуйте десинхронізацію звуку в FMV. - + Upscale multiplier is below native, this will break rendering. Множник апскейлу менший за рідний, це може зламати відображення. - + Mipmapping is not set to automatic. This may break rendering in some games. Міпмаппінг не виставлений автоматичним. Це може зламати відображення в деяких іграх. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Фільтрація текстур не виставлена на Білінійну (PS2). Це зламає відображення у деяких іграх. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Трилінійна фільтрація не виставлена автоматичним. Це може зламати відображення в деяких іграх. - + Blending is below basic, this may break effects in some games. Точність блендінгу виставлена нижче базової, це може зламати ефекти в деяких іграх. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Режим апаратного завантаження не виставлений до Точного, це може зламати відображення в деяких іграх. - + EE FPU Round Mode is not set to default, this may break some games. Режим раундінгу EE FPU не встановлений за замовчуванням, це може зламати деякі ігри. - + EE FPU Clamp Mode is not set to default, this may break some games. Режим клемпінгу EE FPU не встановлений за замовчуванням, це може зламати деякі ігри. - + VU Round Mode is not set to default, this may break some games. Режим раундінгу VU не встановлений за замовчуванням, це може зламати деякі ігри. - + VU Clamp Mode is not set to default, this may break some games. Режим клемпінгу VU не встановлений за замовчуванням, це може зламати деякі ігри. - + Game Fixes are not enabled. Compatibility with some games may be affected. Ігрові фікси не увімкнені. Це може вплинути на сумісність з деякими іграми. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Патчі сумісності не увімкнені. Це може вплинути на сумісність з деякими іграми. - + Frame rate for NTSC is not default. This may break some games. Частота кадрів для NTSC не встановлена за замовчуванням. Це може зламати деякі ігри. - + Frame rate for PAL is not default. This may break some games. Частота кадрів для PAL не встановлена за замовчуванням. Це може зламати деякі ігри. - + EE Recompiler is not enabled, this will significantly reduce performance. Рекомпілятор EE не увімкнений, це значно зменшить продуктивність. - + VU0 Recompiler is not enabled, this will significantly reduce performance. Рекомпілятор VU0 не увімкнений, це значно зменшить продуктивність. - + VU1 Recompiler is not enabled, this will significantly reduce performance. Рекомпілятор VU1 не увімкнений, це значно зменшить продуктивність. - + IOP Recompiler is not enabled, this will significantly reduce performance. Рекомпілятор IOP не увімкнений, це значно зменшить продуктивність. - + EE Cache is enabled, this will significantly reduce performance. Кешування EE увімкнено, це значно зменшить продуктивність. - + EE Wait Loop Detection is not enabled, this may reduce performance. Детектор циклу очікування EE не увімкнений, це може зменшити продуктивність. - + INTC Spin Detection is not enabled, this may reduce performance. Детектор кружляння INTC не увімкнений, це може зменшити продуктивність. - + Instant VU1 is disabled, this may reduce performance. Миттєвий VU1 вимкнений, це може зменшити продуктивність. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag хак не увімкнений, це може зменшити продуктивність. - + GPU Palette Conversion is enabled, this may reduce performance. - Конвертація палітри на GPU увімкнено, це може зменшити продуктивність. + Конвертація палітри на ГП увімкнено, це може зменшити продуктивність. - + Texture Preloading is not Full, this may reduce performance. Передзавантаження текстур не виставлено Повним, це може зменшити продуктивність. - + Estimate texture region is enabled, this may reduce performance. Відраховування області текстур увімкнено, це може зменшити продуктивність. diff --git a/pcsx2-qt/Translations/pcsx2-qt_vi-VN.ts b/pcsx2-qt/Translations/pcsx2-qt_vi-VN.ts index b43baf15c6fcb9..3cdd72e94f4d4b 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_vi-VN.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_vi-VN.ts @@ -83,32 +83,38 @@ giới thiệu về hộp thoại../AboutDialog.ui:105 Ready... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. - + &Login &Login - + Logging in... Logging in... - + Login Error Login Error - - Login failed. Please check your username and password, and try again. - Login failed. Please check your username and password, and try again. + + Login failed. +Error: %1 + +Please check your username and password, and try again. + Login failed. +Error: %1 + +Please check your username and password, and try again. - + Login failed. Login failed. @@ -116,268 +122,498 @@ giới thiệu về hộp thoại../AboutDialog.ui:105 AchievementSettingsWidget - - Global Settings - Global Settings - - - - + + Enable Achievements Enable Achievements - - - Show Challenge Indicators - Show Challenge Indicators - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - Enable RA's Rich Presence - - - - + + Enable Hardcore Mode Enable Hardcore Mode - - - Enable Leaderboards - Enable Leaderboards - - - + Test Unofficial Achievements Test Unofficial Achievements - - - Enable Test Mode - Enable Test Mode - - - - + + Enable Sound Effects Enable Sound Effects - + Notifications Notifications - - - Show Notifications - Show Notifications - - - - Duration - Duration - - - - - - + + 5 seconds 5 seconds - + Account Account - - + + Login... Login... - + View Profile... View Profile... - + + Settings + Settings + + + + + Enable Spectator Mode + Enable Spectator Mode + + + + + Enable Encore Mode + Enable Encore Mode + + + + + Show Achievement Notifications + Show Achievement Notifications + + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info Game Info - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> + - seconds - seconds - - - - + + - - Unchecked Unchecked - - When enabled and logged in, PCSX2 will scan for achievements on game load. - When enabled and logged in, PCSX2 will scan for achievements on game load. - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - - - + + + + Checked Checked - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - - - - Notification Duration - Notification Duration + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - The duration, in seconds, an achievement popup notification will remain on screen. + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? + + + + %n seconds + + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. Username: %1 Login token generated on %2. - + Logout Logout - + Not Logged In. Not Logged In. - - - %1 seconds - %1 seconds - Achievements - + Hardcore mode will be enabled on system reset. Hardcore mode will be enabled on system reset. - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - + Hardcore mode is now enabled. Hardcore mode is now enabled. - + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Unofficial) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. Hardcore mode is now disabled. - + + Confirm Hardcore Mode + Confirm Hardcore Mode + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (Hardcore Mode) - - You have earned {0} of {1} achievements, and {2} of {3} points. - You have earned {0} of {1} achievements, and {2} of {3} points. + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! + + + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. - - This game has no achievements. - This game has no achievements. + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Unknown + + + + Locked + Locked + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + Unofficial + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Unlocked: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Name + + + + Time + Time + + + + Score + Score + + + + Value + Value + + + + Date Submitted + Date Submitted + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... + + + + + Loading... + Loading... + + + + + Leaderboard download failed + Leaderboard download failed - - Leaderboard submission is enabled. - Leaderboard submission is enabled. + + This game has no achievements. + This game has no achievements. - + Failed to read executable from disc. Achievements disabled. Failed to read executable from disc. Achievements disabled. @@ -581,220 +817,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). EmotionEngine (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. Rounding Mode: - - - + + + Nearest Nearest - - - + + + Negative Negative - - - + + + Positive Positive - - - + + + Chop / Zero (Default) Chop / Zero (Default) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. Clamping Mode: - - + + None None - - - + + + Normal (Default) Normal (Default) - + None ClampMode None - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). Extra + Preserve Sign - + Full Full - + Wait Loop Detection Wait Loop Detection - - + + Enable Recompiler Enable Recompiler - + Enable Fast Memory Access Enable Fast Memory Access - + Enable Cache (Slow) Enable Cache (Slow) - + INTC Spin Detection INTC Spin Detection - + Pause On TLB Miss Pause On TLB Miss - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. Vector Units (VU) - + VU1 Rounding Mode: VU1 Rounding Mode: - + mVU Flag Hack mVU Flag Hack - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - - + + Extra Extra - + VU0 Clamping Mode: VU0 Clamping Mode: - + VU0 Rounding Mode: VU0 Rounding Mode: - + VU1 Clamping Mode: VU1 Clamping Mode: - + I/O Processor (IOP, MIPS-I) I/O Processor (IOP, MIPS-I) - + Game Settings Game Settings - + Enable Game Fixes Enable Game Fixes - + Enable Compatibility Patches Enable Compatibility Patches - + Frame Rate Control Frame Rate Control - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. hz - + PAL Frame Rate: PAL Frame Rate: - + NTSC Frame Rate: NTSC Frame Rate: - + PINE Settings PINE Settings - + Slot: Slot: - + Enable Enable @@ -802,182 +1038,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings Timestretch Settings - + Sequence Length: Sequence Length: - + 30 30 - + Seekwindow Size: Seekwindow Size: - + 20 20 - + Overlap: Overlap: - + 10 10 - + Restore Defaults Restore Defaults - + Volume Volume - + 100% 100% - + Mixing Settings Mixing Settings - + Synchronization: Synchronization: - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Expansion: Expansion: - + Stereo (None, Default) Stereo (None, Default) - + Quadraphonic Quadraphonic - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Level: - + None (Default) None (Default) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic Decoding (basic) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II Decoding (gigaherz) - + Target Latency: Target Latency: - + 60 ms 60 ms - + Output Settings Output Settings - + Output Module: Output Module: - + Output Latency: Output Latency: - + 20 ms 20 ms - + Minimal Minimal - + Output Backend: Output Backend: - + Maximum Latency: Maximum Latency: - + Output Device: Output Device: @@ -1165,17 +1401,22 @@ Login token generated on %2. New Version: - + + Download Size: + Download Size: + + + Download and Install... Download and Install... - + Skip This Update Skip This Update - + Remind Me Later Remind Me Later @@ -1185,17 +1426,17 @@ Login token generated on %2. Updater Error - + <h2>Changes:</h2> <h2>Changes:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> @@ -1236,6 +1477,11 @@ Login token generated on %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... Loading... @@ -1243,63 +1489,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory BIOS Directory - + PCSX2 will search for BIOS images in this directory. PCSX2 will search for BIOS images in this directory. - + Browse... Browse... - + Reset Reset - + BIOS Selection BIOS Selection - - Open in Explorer... - Open in Explorer... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List Refresh List - + Filename Filename - + Version Version - + Options and Patches Options and Patches - + Fast Boot Fast Boot - + Fast Forward Boot Fast Forward Boot @@ -1427,91 +1673,84 @@ Login token generated on %2. BreakpointModel - + Execute Execute - - No Condition - No Condition - - - - + + -- -- - - + Enabled Enabled - - + Disabled Disabled - + Read Read - + Write(C) (C) = changes, as in "look for changes". Write(C) - + Write Write - + TYPE Warning: limited space available. Abbreviate if needed. TYPE - + OFFSET Warning: limited space available. Abbreviate if needed. OFFSET - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. SIZE / LABEL - + INSTRUCTION Warning: limited space available. Abbreviate if needed. INSTRUCTION - + CONDITION Warning: limited space available. Abbreviate if needed. CONDITION - + HITS Warning: limited space available. Abbreviate if needed. HITS - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - ENABLED + X @@ -1522,7 +1761,7 @@ Login token generated on %2. Game disc location is on a removable drive, performance issues such as jittering and freezing may occur. - + Saving CDVD block dump to '{}'. Saving CDVD block dump to '{}'. @@ -1558,32 +1797,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type Virtual Controller Type - + Bindings Bindings - + Settings Settings - + Macros Macros - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -1623,146 +1862,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. D-Pad - - - + + + Down Down - - - + + + Left Left - - - + + + Up Up - - - + + + Right Right - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Left Analog - + Large Motor Large Motor - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Face Buttons - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Cross - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Square - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Triangle - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Circle - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Right Analog - + Small Motor Small Motor - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier Pressure Modifier - + Analog Analog @@ -1770,77 +2009,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow Yellow - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start Start - + Red Red - + Green Green - + Orange Orange - + Select Select - + Strum Up Strum Up - + Strum Down Strum Down - + Blue Blue - + Whammy Bar Whammy Bar - + Tilt Tilt @@ -1866,123 +2100,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL Input Source - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). - + Enable SDL Input Source Enable SDL Input Source - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense Enhanced Mode - + XInput Source XInput Source - + Enable XInput Input Source Enable XInput Input Source - + DInput Source DInput Source - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. - + Enable DInput Input Source Enable DInput Input Source - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings Profile Settings - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. - + Use Per-Profile Hotkeys Use Per-Profile Hotkeys - - + + Controller LED Settings Controller LED Settings - + Enable SDL Raw Input Enable SDL Raw Input - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. - + Controller Multitap Controller Multitap - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. - + Multitap on Console Port 1 Multitap on Console Port 1 - + Multitap on Console Port 2 Multitap on Console Port 2 - + Mouse/Pointer Source Mouse/Pointer Source - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 allows you to use your mouse to simulate analog stick movement. - + Settings... Settings... - + Enable Mouse Mapping Enable Mouse Mapping - + Detected Devices Detected Devices @@ -2018,58 +2262,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons Binds/Buttons - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. - + Pressure Pressure - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. - - + + 100% 100% - + Trigger Trigger - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. - + Deadzone: Deadzone: - + Frequency Frequency - + Macro will toggle every N frames. Macro will toggle every N frames. - + Set... Set... @@ -2172,46 +2416,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 Controller Settings - + Editing Profile: Editing Profile: - + New Profile New Profile - + Load Profile Load Profile - + Delete Profile Delete Profile - - + + Restore Defaults Restore Defaults - - + + Create Input Profile Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2222,35 +2466,35 @@ To apply a custom input profile to a game, go to its Game Properties, then chang Enter the name for the new input profile: - - - - + + + + Error Error - + A profile with the name '%1' already exists. A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. Failed to save the new profile to '%1'. - + Load Input Profile Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2263,12 +2507,12 @@ All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - + Delete Input Profile Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2277,12 +2521,12 @@ You cannot undo this action. You cannot undo this action. - + Failed to delete '%1'. Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2295,13 +2539,13 @@ All shared bindings and configuration will be lost, but your input profiles will You cannot undo this action. - + Global Settings Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2309,8 +2553,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2318,26 +2562,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB Port %1 %2 - + Hotkeys Hotkeys - + Shared "Shared" refers here to the shared input profile. Shared - + The input profile named '%1' cannot be found. The input profile named '%1' cannot be found. @@ -2409,204 +2653,242 @@ You cannot undo this action. Functions - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh Refresh - + Filter Filter - + Memory Search Memory Search - + End End - + Value Value - + Start Start - + Type Type - + 1 Byte (8 bits) 1 Byte (8 bits) - + 2 Bytes (16 bits) 2 Bytes (16 bits) - + 4 Bytes (32 bits) 4 Bytes (32 bits) - + 8 Bytes (64 bits) 8 Bytes (64 bits) - + Float Float - + Double Double - + String String - + Array of byte Array of byte - + Hex Hex - + Search Search - + Memory Memory - + Breakpoints Breakpoints - + Threads Threads - + Active Call Stack Active Call Stack - + Breakpoint List Context Menu Breakpoint List Context Menu - + New New - + Edit Edit - - - + + + Copy Copy - + Delete Delete - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu Thread List Context Menu - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ Demangle Symbols - + + Copy Function Name Copy Function Name - + + Copy Function Address Copy Function Address - + + Go to in Disassembly Go to in Disassembly - + + Go to in Memory View Go to in Memory View - + + + Module Tree + Module Tree + + + Stack List Context Menu Stack List Context Menu - - - - - + + + + + Debugger Debugger - + Invalid start address Invalid start address - + Invalid end address Invalid end address - + Start address can't be equal to or greater than the end address Start address can't be equal to or greater than the end address - + Invalid search value Invalid search value - + Value is larger than type Value is larger than type @@ -2662,22 +2944,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet Ethernet - + Ethernet Device: Ethernet Device: - + Ethernet Device Type: Ethernet Device Type: - + Intercept DHCP Intercept DHCP @@ -2687,135 +2969,130 @@ You cannot undo this action. Enabled - + Enabled InterceptDHCP Enabled - + Subnet Mask: Subnet Mask: - + Gateway Address: Gateway Address: - - + + Auto Auto - + Intercept DHCP: Intercept DHCP: - + PS2 Address: PS2 Address: - + DNS1 Address: DNS1 Address: - + DNS2 Address: DNS2 Address: - + Internal DNS Internal DNS - + Add Add - + Delete Delete - + Export Export - + Import Import - + Per game Per game - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 - + Enabled InternalDNSTable Enabled - + Hard Disk Drive Hard Disk Drive - + HDD File: HDD File: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD Size (GiB): - + Enabled HDD Enabled - + Browse Browse - + Create Image Create Image - - - - - PCAP Bridged @@ -2848,7 +3125,7 @@ You cannot undo this action. - + Use Global Setting [%1] Use Global Setting [%1] @@ -2868,78 +3145,78 @@ You cannot undo this action. Address - - + + Hosts File Hosts File - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS Hosts - + Exported Successfully Exported Successfully - + Failed to open file Failed to open file - + No Hosts in file No Hosts in file - + Imported Successfully Imported Successfully - - + + Per Game Host list Per Game Host list - + Copy global settings? Copy global settings? - + Delete per game host list? Delete per game host list? - + HDD Image File HDD Image File - + HDD (*.raw) HDD (*.raw) - + Overwrite File? Overwrite File? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2948,22 +3225,22 @@ Do you want to overwrite? Do you want to overwrite? - + HDD Creator HDD Creator - + HDD image created HDD image created - + Use Global Use Global - + Override Override @@ -2971,69 +3248,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping Draw Dumping - + Dump GS Draws Dump GS Draws - + Save RT Save RT - + Save Frame Save Frame - + Save Texture Save Texture - + Save Depth Save Depth - + Start Draw Number: Start Draw Number: - + Draw Dump Count: Draw Dump Count: - + Hardware Dump Directory: Hardware Dump Directory: - + Software Dump Directory: Software Dump Directory: - - + + Browse... Browse... - - + + Open... Open... @@ -3046,29 +3323,53 @@ Do you want to overwrite? PCSX2 Debugger - - - + + Run Run - + Step Into Step Into - + + F11 + F11 + + + Step Over Step Over - + + F10 + F10 + + + Step Out Step Out - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause Pause @@ -3081,149 +3382,174 @@ Do you want to overwrite? Disassembly - + Copy Address Copy Address - + Copy Instruction Hex Copy Instruction Hex - + Copy Instruction Text Copy Instruction Text - + Assemble new Instruction(s) Assemble new Instruction(s) - + NOP Instruction(s) NOP Instruction(s) - + Run to Cursor Run to Cursor - + Jump to Cursor Jump to Cursor - + Toggle Breakpoint Toggle Breakpoint - + Follow Branch Follow Branch - + Go to Address Go to Address - + Go to in Memory View Go to in Memory View - - + + Add Function Add Function - - + + Rename Function Rename Function - + Remove Function Remove Function - - + + Assemble Error Assemble Error - + Unable to change assembly while core is running Unable to change assembly while core is running - + Assemble Instruction Assemble Instruction - + Go to address Go to address - + Go to address error Go to address error - + Invalid address Invalid address - + Add Function Error Add Function Error - + A function entry point already exists here. Consider renaming instead. A function entry point already exists here. Consider renaming instead. - - + + Function will be (0x%1) instructions long. Enter function name Function will be (0x%1) instructions long. Enter function name - + Function name Function name - - + + Rename Function Error Rename Function Error - + Function name cannot be nothing. Function name cannot be nothing. - + No function / symbol is currently selected. No function / symbol is currently selected. - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 NOT VALID ADDRESS @@ -3231,17 +3557,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> - + Add Game Directory... Add Game Directory... - + Scan For New Games Scan For New Games @@ -3249,47 +3575,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS Game: %1 FPS - + Video: %1 FPS (%2%) Video: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - - - %n points - - %n points - - - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. @@ -3297,192 +3620,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control Speed Control - + Normal Speed: Normal Speed: - + Enable Speed Limiter Enable Speed Limiter - + System Settings System Settings - + Enable Instant VU1 Enable Instant VU1 - + Enable Cheats Enable Cheats - + Slow-Motion Speed: Slow-Motion Speed: - + Fast-Forward Speed: Fast-Forward Speed: - + Enable Multithreaded VU1 (MTVU) Enable Multithreaded VU1 (MTVU) - + Enable Host Filesystem Enable Host Filesystem - + Enable Fast CDVD Enable Fast CDVD - + EE Cycle Skipping: EE Cycle Skipping: - - + + Disabled Disabled - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + EE Cycle Rate: EE Cycle Rate: - + 50% (Underclock) 50% (Underclock) - + 60% (Underclock) 60% (Underclock) - + 75% (Underclock) 75% (Underclock) - + 100% (Normal Speed) 100% (Normal Speed) - + 130% (Overclock) 130% (Overclock) - + 180% (Overclock) 180% (Overclock) - + 300% (Overclock) 300% (Overclock) - + Affinity Control: Affinity Control: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control Frame Pacing / Latency Control - + frames This string will appear next to the amount of frames selected, in a dropdown box. frames - + Maximum Frame Latency: Maximum Frame Latency: - + Optimal Frame Pacing Optimal Frame Pacing - + Scale To Host Refresh Rate Scale To Host Refresh Rate @@ -3570,12 +3893,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. Allows games and homebrew to access files / folders directly on the host computer. + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" Fast-Forward Speed + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3639,45 +3972,40 @@ Achievements: %5 (%6) Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. Higher values can assist with smoothing out irregular frame times, but add additional input lag. - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - - - + Use Global Setting [%1%] Use Global Setting [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Unlimited - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. Custom - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed Custom Speed - + Enter Custom Speed Enter Custom Speed @@ -3685,79 +4013,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory Cache Directory - - - - - + + + + + Browse... Browse... - - - - - + + + + + Open... Open... - - - - - + + + + + Reset Reset - + Used for storing shaders, game list, and achievement data. Used for storing shaders, game list, and achievement data. - + Cheats Directory Cheats Directory - + Used for storing .pnach files containing game cheats. Used for storing .pnach files containing game cheats. - + Covers Directory Covers Directory - + Used for storing covers in the game grid/Big Picture UIs. Used for storing covers in the game grid/Big Picture UIs. - + Snapshots Directory Snapshots Directory - + Used for screenshots and saving GS dumps. Used for screenshots and saving GS dumps. - + Save States Directory Save States Directory - + Used for storing save states. Used for storing save states. @@ -3765,2082 +4093,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Use Global Setting Use Global Setting - + Automatic binding failed, no devices are available. Automatic binding failed, no devices are available. - + Game title copied to clipboard. Game title copied to clipboard. - + Game serial copied to clipboard. Game serial copied to clipboard. - + Game CRC copied to clipboard. Game CRC copied to clipboard. - + Game type copied to clipboard. Game type copied to clipboard. - + Game region copied to clipboard. Game region copied to clipboard. - + Game compatibility copied to clipboard. Game compatibility copied to clipboard. - + Game path copied to clipboard. Game path copied to clipboard. - + Per-game controller configuration initialized with global settings. Per-game controller configuration initialized with global settings. - + Controller settings reset to default. Controller settings reset to default. - + No input profiles available. No input profiles available. - + Create New... Create New... - + Enter the name of the input profile you wish to create. Enter the name of the input profile you wish to create. - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Settings reset to defaults. Settings reset to defaults. - - Quick Save Slot - Quick Save Slot - - - + No save present in this slot. No save present in this slot. - + No save states found. No save states found. - + Failed to delete save state. Failed to delete save state. - + Failed to copy text to clipboard. Failed to copy text to clipboard. - + This game has no achievements. This game has no achievements. - + This game has no leaderboards. This game has no leaderboards. - + Reset System Reset System - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? - + Launch a game from images scanned from your game directories. Launch a game from images scanned from your game directories. - + Launch a game by selecting a file/disc image. Launch a game by selecting a file/disc image. - + Start the console without any disc inserted. Start the console without any disc inserted. - + Start a game from a disc in your PC's DVD drive. Start a game from a disc in your PC's DVD drive. - + Change settings for the emulator. Change settings for the emulator. - + Exits the program. Exits the program. - + No Binding No Binding - + Setting %s binding %s. Setting %s binding %s. - + Push a controller button or axis now. Push a controller button or axis now. - + Timing out in %.0f seconds... Timing out in %.0f seconds... - + Unknown Unknown - + OK OK - + Select Device Select Device - + Details Details - + Options Options - + Copies the current global settings to this game. Copies the current global settings to this game. - + Clears all settings set for this game. Clears all settings set for this game. - + Behaviour Behaviour - + Prevents the screen saver from activating and the host from sleeping while emulation is running. Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Shows the game you are currently playing as part of your profile on Discord. Shows the game you are currently playing as part of your profile on Discord. - + Pauses the emulator when a game is started. Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - + Pauses the emulator when you open the quick menu, and unpauses when you close it. Pauses the emulator when you open the quick menu, and unpauses when you close it. - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - Enables loading ini overlays from gamesettings, or custom settings per-game. - Enables loading ini overlays from gamesettings, or custom settings per-game. - - - + Uses a light coloured theme instead of the default dark theme. Uses a light coloured theme instead of the default dark theme. - + Game Display Game Display - - Automatically switches to fullscreen mode when the program is started. - Automatically switches to fullscreen mode when the program is started. - - - + Switches between full screen and windowed when the window is double-clicked. Switches between full screen and windowed when the window is double-clicked. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Determines how large the on-screen messages and monitor are. Determines how large the on-screen messages and monitor are. - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. Shows the current emulation speed of the system in the top-right corner of the display as a percentage. - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. - + Shows the CPU usage based on threads in the top-right corner of the display. Shows the CPU usage based on threads in the top-right corner of the display. - + Shows the host's GPU usage in the top-right corner of the display. Shows the host's GPU usage in the top-right corner of the display. - - Shows the resolution the game is rendering at in the top-right corner of the display. - Shows the resolution the game is rendering at in the top-right corner of the display. - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. Shows indicators when fast forwarding, pausing, and other abnormal states are active. - + Shows the current configuration in the bottom-right corner of the display. Shows the current configuration in the bottom-right corner of the display. - + Shows the current controller state of the system in the bottom-left corner of the display. Shows the current controller state of the system in the bottom-left corner of the display. - + Shows a visual history of frame times in the upper-left corner of the display. Shows a visual history of frame times in the upper-left corner of the display. - + Displays warnings when settings are enabled which may break games. Displays warnings when settings are enabled which may break games. - + Resets configuration to defaults (excluding controller settings). Resets configuration to defaults (excluding controller settings). - + Changes the BIOS image used to start future sessions. Changes the BIOS image used to start future sessions. - + Automatic Automatic - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration BIOS Configuration - + BIOS Selection BIOS Selection - + Options and Patches Options and Patches - + Skips the intro screen, and bypasses region checks. Skips the intro screen, and bypasses region checks. - + Speed Control Speed Control - + Normal Speed Normal Speed - + Sets the speed when running without fast forwarding. Sets the speed when running without fast forwarding. - + Fast Forward Speed Fast Forward Speed - + Sets the speed when using the fast forward hotkey. Sets the speed when using the fast forward hotkey. - + Slow Motion Speed Slow Motion Speed - + Sets the speed when using the slow motion hotkey. Sets the speed when using the slow motion hotkey. - + Enable Speed Limiter Enable Speed Limiter - + When disabled, the game will run as fast as possible. When disabled, the game will run as fast as possible. - + System Settings System Settings - + EE Cycle Rate EE Cycle Rate - + Underclocks or overclocks the emulated Emotion Engine CPU. Underclocks or overclocks the emulated Emotion Engine CPU. - + EE Cycle Skipping EE Cycle Skipping - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - - - + Affinity Control Mode Affinity Control Mode - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. Pins emulation threads to CPU cores to potentially improve performance/frame time variance. - + Enable MTVU (Multi-Threaded VU1) Enable MTVU (Multi-Threaded VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - Uses a second thread for VU1 micro programs. Sizable speed boost. - - - + Enable Instant VU1 Enable Instant VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - - - + Enable Cheats Enable Cheats - + Enables loading cheats from pnach files. Enables loading cheats from pnach files. - + Enable Host Filesystem Enable Host Filesystem - + Enables access to files from the host: namespace in the virtual machine. Enables access to files from the host: namespace in the virtual machine. - + Enable Fast CDVD Enable Fast CDVD - + Fast disc access, less loading times. Not recommended. Fast disc access, less loading times. Not recommended. - + Frame Pacing/Latency Control Frame Pacing/Latency Control - + Maximum Frame Latency Maximum Frame Latency - + Sets the number of frames which can be queued. Sets the number of frames which can be queued. - + Optimal Frame Pacing Optimal Frame Pacing - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. - - Adjust To Host Refresh Rate - Adjust To Host Refresh Rate - - - + Speeds up emulation so that the guest refresh rate matches the host. Speeds up emulation so that the guest refresh rate matches the host. - + Renderer Renderer - + Selects the API used to render the emulated GS. Selects the API used to render the emulated GS. - + Sync To Host Refresh (VSync) Sync To Host Refresh (VSync) - + Synchronizes frame presentation with host refresh. Synchronizes frame presentation with host refresh. - + Display Display - + Aspect Ratio Aspect Ratio - + Selects the aspect ratio to display the game content at. Selects the aspect ratio to display the game content at. - + FMV Aspect Ratio FMV Aspect Ratio - + Selects the aspect ratio for display when a FMV is detected as playing. Selects the aspect ratio for display when a FMV is detected as playing. - + Deinterlacing Deinterlacing - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. Selects the algorithm used to convert the PS2's interlaced output to progressive for display. - + Screenshot Size Screenshot Size - + Determines the resolution at which screenshots will be saved. Determines the resolution at which screenshots will be saved. - + Screenshot Format Screenshot Format - + Selects the format which will be used to save screenshots. Selects the format which will be used to save screenshots. - + Screenshot Quality Screenshot Quality - + Selects the quality at which screenshots will be compressed. Selects the quality at which screenshots will be compressed. - + Vertical Stretch Vertical Stretch - + Increases or decreases the virtual picture size vertically. Increases or decreases the virtual picture size vertically. - + Crop Crop - + Crops the image, while respecting aspect ratio. Crops the image, while respecting aspect ratio. - + + %dpx + %dpx + + + Enable Widescreen Patches Enable Widescreen Patches - + Enables loading widescreen patches from pnach files. Enables loading widescreen patches from pnach files. - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Enables loading no-interlacing patches from pnach files. Enables loading no-interlacing patches from pnach files. - + Bilinear Upscaling Bilinear Upscaling - + Smooths out the image when upscaling the console to the screen. Smooths out the image when upscaling the console to the screen. - + Integer Upscaling Integer Upscaling - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. - + Screen Offsets Screen Offsets - + Enables PCRTC Offsets which position the screen as the game requests. Enables PCRTC Offsets which position the screen as the game requests. - + Show Overscan Show Overscan - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. Enables the option to show the overscan area on games which draw more than the safe area of the screen. - + Anti-Blur Anti-Blur - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. - + Rendering Rendering - + Internal Resolution Internal Resolution - + Multiplies the render resolution by the specified factor (upscaling). Multiplies the render resolution by the specified factor (upscaling). - + Mipmapping Mipmapping - + Determines how mipmaps are used when rendering textures. Determines how mipmaps are used when rendering textures. - + Bilinear Filtering Bilinear Filtering - + Selects where bilinear filtering is utilized when rendering textures. Selects where bilinear filtering is utilized when rendering textures. - + Trilinear Filtering Trilinear Filtering - + Selects where trilinear filtering is utilized when rendering textures. Selects where trilinear filtering is utilized when rendering textures. - + Anisotropic Filtering Anisotropic Filtering - - Selects where anistropic filtering is utilized when rendering textures. - Selects where anistropic filtering is utilized when rendering textures. - - - + Dithering Dithering - + Selects the type of dithering applies when the game requests it. Selects the type of dithering applies when the game requests it. - + Blending Accuracy Blending Accuracy - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. Determines the level of accuracy when emulating blend modes not supported by the host graphics API. - + Texture Preloading Texture Preloading - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. - + Software Rendering Threads Software Rendering Threads - + Number of threads to use in addition to the main GS thread for rasterization. Number of threads to use in addition to the main GS thread for rasterization. - + Auto Flush (Software) Auto Flush (Software) - + Force a primitive flush when a framebuffer is also an input texture. Force a primitive flush when a framebuffer is also an input texture. - + Edge AA (AA1) Edge AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). Enables emulation of the GS's edge anti-aliasing (AA1). - + Enables emulation of the GS's texture mipmapping. Enables emulation of the GS's texture mipmapping. - + Hardware Fixes Hardware Fixes - + Manual Hardware Fixes Manual Hardware Fixes - + Disables automatic hardware fixes, allowing you to set fixes manually. Disables automatic hardware fixes, allowing you to set fixes manually. - + CPU Sprite Render Size CPU Sprite Render Size - + Uses software renderer to draw texture decompression-like sprites. Uses software renderer to draw texture decompression-like sprites. - + CPU Sprite Render Level CPU Sprite Render Level - + Determines filter level for CPU sprite render. Determines filter level for CPU sprite render. - + Software CLUT Render Software CLUT Render - + Uses software renderer to draw texture CLUT points/sprites. Uses software renderer to draw texture CLUT points/sprites. - + Skip Draw Start Skip Draw Start - + Object range to skip drawing. Object range to skip drawing. - + Skip Draw End Skip Draw End - + Auto Flush (Hardware) Auto Flush (Hardware) - + CPU Framebuffer Conversion CPU Framebuffer Conversion - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. - - Disable Depth Support - Disable Depth Support - - - - Disable the support of depth buffer in the texture cache. - Disable the support of depth buffer in the texture cache. - - - + Disable Safe Features Disable Safe Features - + This option disables multiple safe features. This option disables multiple safe features. - - Disable Render Features - Disable Render Features - - - + This option disables game-specific render fixes. This option disables game-specific render fixes. - - Preload Frame - Preload Frame - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. Uploads GS data when rendering a new frame to reproduce some effects accurately. - + Disable Partial Invalidation Disable Partial Invalidation - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. Removes texture cache entries when there is any intersection, rather than only the intersected areas. - - Texture Inside Render Target - Texture Inside Render Target - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. - + Read Targets When Closing Read Targets When Closing - + Flushes all targets in the texture cache back to local memory when shutting down. Flushes all targets in the texture cache back to local memory when shutting down. - + Estimate Texture Region Estimate Texture Region - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). - + GPU Palette Conversion GPU Palette Conversion - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - Half-Pixel Offset + Upscaling Fixes - + Adjusts vertices relative to upscaling. Adjusts vertices relative to upscaling. - + Round Sprite Round Sprite - + Adjusts sprite coordinates. Adjusts sprite coordinates. - + Bilinear Upscale Bilinear Upscale - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. - - TC Offset X - TC Offset X - - - + Adjusts target texture offsets. Adjusts target texture offsets. - - TC Offset Y - TC Offset Y - - - + Align Sprite Align Sprite - + Fixes issues with upscaling (vertical lines) in some games. Fixes issues with upscaling (vertical lines) in some games. - + Merge Sprite Merge Sprite - + Replaces multiple post-processing sprites with a larger single sprite. Replaces multiple post-processing sprites with a larger single sprite. - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Can fix some broken effects which rely on pixel perfect precision. Can fix some broken effects which rely on pixel perfect precision. - + Texture Replacement Texture Replacement - + Load Textures Load Textures - + Loads replacement textures where available and user-provided. Loads replacement textures where available and user-provided. - + Asynchronous Texture Loading Asynchronous Texture Loading - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. - + Precache Replacements Precache Replacements - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. Preloads all replacement textures to memory. Not necessary with asynchronous loading. - + Replacements Directory Replacements Directory - + Folders Folders - + Texture Dumping Texture Dumping - + Dump Textures Dump Textures - - Dumps replacable textures to disk. Will reduce performance. - Dumps replacable textures to disk. Will reduce performance. - - - + Dump Mipmaps Dump Mipmaps - + Includes mipmaps when dumping textures. Includes mipmaps when dumping textures. - + Dump FMV Textures Dump FMV Textures - + Allows texture dumping when FMVs are active. You should not enable this. Allows texture dumping when FMVs are active. You should not enable this. - + Post-Processing Post-Processing - + FXAA FXAA - + Enables FXAA post-processing shader. Enables FXAA post-processing shader. - + Contrast Adaptive Sharpening Contrast Adaptive Sharpening - + Enables FidelityFX Contrast Adaptive Sharpening. Enables FidelityFX Contrast Adaptive Sharpening. - + CAS Sharpness CAS Sharpness - + Determines the intensity the sharpening effect in CAS post-processing. Determines the intensity the sharpening effect in CAS post-processing. - + Filters Filters - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. Enables brightness/contrast/saturation adjustment. - + Shade Boost Brightness Shade Boost Brightness - + Adjusts brightness. 50 is normal. Adjusts brightness. 50 is normal. - + Shade Boost Contrast Shade Boost Contrast - + Adjusts contrast. 50 is normal. Adjusts contrast. 50 is normal. - + Shade Boost Saturation Shade Boost Saturation - + Adjusts saturation. 50 is normal. Adjusts saturation. 50 is normal. - + TV Shaders TV Shaders - - Selects post-processing TV shader. - Selects post-processing TV shader. - - - + Advanced Advanced - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - - - + Disable Threaded Presentation Disable Threaded Presentation - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - - - + Hardware Download Mode Hardware Download Mode - + Changes synchronization behavior for GS downloads. Changes synchronization behavior for GS downloads. - + Allow Exclusive Fullscreen Allow Exclusive Fullscreen - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. - + Override Texture Barriers Override Texture Barriers - + Forces texture barrier functionality to the specified value. Forces texture barrier functionality to the specified value. - + GS Dump Compression GS Dump Compression - + Sets the compression algorithm for GS dumps. Sets the compression algorithm for GS dumps. - + Disable Framebuffer Fetch Disable Framebuffer Fetch - + Prevents the usage of framebuffer fetch when supported by host GPU. Prevents the usage of framebuffer fetch when supported by host GPU. - + Disable Dual-Source Blending Disable Dual-Source Blending - + Prevents the usage of dual-source blending when supported by host GPU. Prevents the usage of dual-source blending when supported by host GPU. - + Disable Shader Cache Disable Shader Cache - + Prevents the loading and saving of shaders/pipelines to disk. Prevents the loading and saving of shaders/pipelines to disk. - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Falls back to the CPU for expanding sprites/lines. Falls back to the CPU for expanding sprites/lines. - + Runtime Settings Runtime Settings - + Applies a global volume modifier to all sound produced by the game. Applies a global volume modifier to all sound produced by the game. - + Mixing Settings Mixing Settings - + Changes when SPU samples are generated relative to system emulation. Changes when SPU samples are generated relative to system emulation. - + Determines how the stereo output is transformed to greater speaker counts. Determines how the stereo output is transformed to greater speaker counts. - + Output Settings Output Settings - + Determines which API is used to play back audio samples on the host. Determines which API is used to play back audio samples on the host. - + Sets the average output latency when using the cubeb backend. Sets the average output latency when using the cubeb backend. - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings Timestretch Settings - + Affects how the timestretcher operates when not running at 100% speed. Affects how the timestretcher operates when not running at 100% speed. - + + %d ms + %d ms + + + Settings and Operations Settings and Operations - + Creates a new memory card file or folder. Creates a new memory card file or folder. - + Simulates a larger memory card by filtering saves only to the current game. Simulates a larger memory card by filtering saves only to the current game. - + Automatically ejects Memory Cards when they differ after loading a state. Automatically ejects Memory Cards when they differ after loading a state. - + If not set, this card will be considered unplugged. If not set, this card will be considered unplugged. - + The selected memory card image will be used for this slot. The selected memory card image will be used for this slot. - + Resets the card name for this slot. Resets the card name for this slot. - + Create Memory Card Create Memory Card - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. - + Card Name: Card Name: - + Configuration Configuration - + Uses game-specific settings for controllers for this game. Uses game-specific settings for controllers for this game. - + Copies the global controller configuration to this game. Copies the global controller configuration to this game. - + Resets all configuration to defaults (including bindings). Resets all configuration to defaults (including bindings). - + Replaces these settings with a previously saved input profile. Replaces these settings with a previously saved input profile. - + Stores the current settings to an input profile. Stores the current settings to an input profile. - + Input Sources Input Sources - + The SDL input source supports most controllers. The SDL input source supports most controllers. - + Provides vibration and LED control support over Bluetooth. Provides vibration and LED control support over Bluetooth. - + Allow SDL to use raw access to input devices. Allow SDL to use raw access to input devices. - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. The XInput source provides support for XBox 360/XBox One/XBox Series controllers. - + Multitap Multitap - + Enables an additional three controller slots. Not supported in all games. Enables an additional three controller slots. Not supported in all games. - + Attempts to map the selected port to a chosen controller. Attempts to map the selected port to a chosen controller. - + No Buttons Selected No Buttons Selected - + Determines how much pressure is simulated when macro is active. Determines how much pressure is simulated when macro is active. - + Determines the pressure required to activate the macro. Determines the pressure required to activate the macro. - + Toggle every %d frames Toggle every %d frames - + Clears all bindings for this USB controller. Clears all bindings for this USB controller. - + Data Save Locations Data Save Locations - + Show Advanced Settings Show Advanced Settings - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. - + Logging Logging - + System Console System Console - + Writes log messages to the system console (console window/standard output). Writes log messages to the system console (console window/standard output). - + File Logging File Logging - + Writes log messages to emulog.txt. Writes log messages to emulog.txt. - + Verbose Logging Verbose Logging - + Writes dev log messages to log sinks. Writes dev log messages to log sinks. - + Log Timestamps Log Timestamps - + Writes timestamps alongside log messages. Writes timestamps alongside log messages. - + EE Console EE Console - + Writes debug messages from the game's EE code to the console. Writes debug messages from the game's EE code to the console. - + IOP Console IOP Console - + Writes debug messages from the game's IOP code to the console. Writes debug messages from the game's IOP code to the console. - + CDVD Verbose Reads CDVD Verbose Reads - + Logs disc reads from games. Logs disc reads from games. - + Emotion Engine Emotion Engine - + Rounding Mode Rounding Mode - + Determines how the results of floating-point operations are rounded. Some games need specific settings. Determines how the results of floating-point operations are rounded. Some games need specific settings. - + Clamping Mode Clamping Mode - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. Determines how out-of-range floating point numbers are handled. Some games need specific settings. - + Enable EE Recompiler Enable EE Recompiler - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. - + Enable EE Cache Enable EE Cache - + Enables simulation of the EE's cache. Slow. Enables simulation of the EE's cache. Slow. - + Enable INTC Spin Detection Enable INTC Spin Detection - + Huge speedup for some games, with almost no compatibility side effects. Huge speedup for some games, with almost no compatibility side effects. - + Enable Wait Loop Detection Enable Wait Loop Detection - + Moderate speedup for some games, with no known side effects. Moderate speedup for some games, with no known side effects. - + Enable Fast Memory Access Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. Uses backpatching to avoid register flushing on every memory access. - + Vector Units Vector Units - + VU0 Rounding Mode VU0 Rounding Mode - + VU0 Clamping Mode VU0 Clamping Mode - + VU1 Rounding Mode VU1 Rounding Mode - + VU1 Clamping Mode VU1 Clamping Mode - + Enable VU0 Recompiler (Micro Mode) Enable VU0 Recompiler (Micro Mode) - + New Vector Unit recompiler with much improved compatibility. Recommended. New Vector Unit recompiler with much improved compatibility. Recommended. - + Enable VU1 Recompiler Enable VU1 Recompiler - + Enable VU Flag Optimization Enable VU Flag Optimization - + Good speedup and high compatibility, may cause graphical errors. Good speedup and high compatibility, may cause graphical errors. - + I/O Processor I/O Processor - + Enable IOP Recompiler Enable IOP Recompiler - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. - + Graphics Graphics - + Use Debug Device Use Debug Device - - Enables API-level validation of graphics commands - Enables API-level validation of graphics commands - - - + Settings Settings - + No cheats are available for this game. No cheats are available for this game. - + Cheat Codes Cheat Codes - + No patches are available for this game. No patches are available for this game. - + Game Patches Game Patches - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. - + Game Fixes Game Fixes - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. - + FPU Multiply Hack FPU Multiply Hack - + For Tales of Destiny. For Tales of Destiny. - + FPU Negative Div Hack FPU Negative Div Hack - + For Gundam games. For Gundam games. - + Preload TLB Hack Preload TLB Hack - - To avoid tlb miss on Goemon. - To avoid tlb miss on Goemon. - - - - Switch to Software renderer for FMVs. - Switch to Software renderer for FMVs. - - - + Needed for some games with complex FMV rendering. Needed for some games with complex FMV rendering. - + Skip MPEG Hack Skip MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. Skips videos/FMVs in games to avoid game hanging/freezes. - + OPH Flag Hack OPH Flag Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - - - + EE Timing Hack EE Timing Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - - - + Instant DMA Hack Instant DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - - Handle DMAC writes when it is busy. - Handle DMAC writes when it is busy. + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + VU Add Hack + VU Add Hack - - Force GIF PATH3 transfers through FIFO - Force GIF PATH3 transfers through FIFO + + Full VU0 Synchronization + Full VU0 Synchronization - - (Fifa Street 2). - (Fifa Street 2). + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - Simulate VIF1 FIFO read ahead. Fixes slow loading games. + + VU Overflow Hack + VU Overflow Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - Known to affect following games: Test Drive Unlimited, Transformers. + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). - - Delay VIF1 Stalls (VIF1 FIFO) - Delay VIF1 Stalls (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). - - For SOCOM 2 HUD and Spy Hunter loading hang. - For SOCOM 2 HUD and Spy Hunter loading hang. + + Quadraphonic + Quadraphonic - - VU Add Hack - VU Add Hack + + Load State + Load State - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I bit Hack avoid constant recompilation in some games + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - Scarface The World Is Yours, Crash Tag Team Racing. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - Full VU0 Synchronization + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - Forces tight VU0 sync on every COP2 instruction. + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU Sync (Run behind) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - To avoid sync problems when reading or writing VU registers. + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU Overflow Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - To check for possible float overflows (Superman Returns). + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick Sync + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - Use accurate timing for VU XGKicks (slower). + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - Use Blit for internal FPS + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - Load State + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack + + + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection - + Save State Save State - + Load Resume State Load Resume State - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5849,2221 +6197,2122 @@ Do you want to load this save and continue? Do you want to load this save and continue? - + Region: Region: - + Compatibility: Compatibility: - + No Game Selected No Game Selected - + Search Directories Search Directories - + Adds a new directory to the game search list. Adds a new directory to the game search list. - + Scanning Subdirectories Scanning Subdirectories - + Not Scanning Subdirectories Not Scanning Subdirectories - + List Settings List Settings - + Sets which view the game list will open to. Sets which view the game list will open to. - + Determines which field the game list will be sorted by. Determines which field the game list will be sorted by. - + Reverses the game list sort order from the default (usually ascending to descending). Reverses the game list sort order from the default (usually ascending to descending). - + Cover Settings Cover Settings - + Downloads covers from a user-specified URL template. Downloads covers from a user-specified URL template. - + Operations Operations - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. Identifies any new files added to the game directories. - + Forces a full rescan of all games previously identified. Forces a full rescan of all games previously identified. - + Download Covers Download Covers - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - Use Serial File Names - - - + About PCSX2 About PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. - - XXX points - XXX points - - - - Unlocked Achievements - Unlocked Achievements - - - - Locked Achievements - Locked Achievements - - - - Active Challenge Achievements - Active Challenge Achievements - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - - - - Rank - Rank - - - - Name - Name - - - - Time - Time - - - - Score - Score - - - - Downloading leaderboard data, please wait... - Downloading leaderboard data, please wait... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. When enabled and logged in, PCSX2 will scan for achievements on startup. - - When enabled, rich presence information will be collected and sent to the server where supported. - When enabled, rich presence information will be collected and sent to the server where supported. - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. - - Enables tracking and submission of leaderboards in supported games. - Enables tracking and submission of leaderboards in supported games. - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. Displays popup messages on events such as achievement unlocks and leaderboard submissions. - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. Plays sound effects for events such as achievement unlocks and leaderboard submissions. - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account Account - + Logs out of RetroAchievements. Logs out of RetroAchievements. - + Logs in to RetroAchievements. Logs in to RetroAchievements. - + Current Game Current Game - - Achievements Login - Achievements Login - - - - Please enter your user name and password for retroachievements.org. - Please enter your user name and password for retroachievements.org. - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - Your password will not be saved in PCSX2, an access token will be generated and used instead. - - - - User Name: - User Name: - - - - Password: - Password: - - - + {} is not a valid disc image. {} is not a valid disc image. - + Automatic mapping completed for {}. Automatic mapping completed for {}. - + Automatic mapping failed for {}. Automatic mapping failed for {}. - + Game settings initialized with global settings for '{}'. Game settings initialized with global settings for '{}'. - + Game settings have been cleared for '{}'. Game settings have been cleared for '{}'. - + Console Port {} Console Port {} - + {} (Current) {} (Current) - + {} (Folder) {} (Folder) - + Memory card name '{}' is not valid. Memory card name '{}' is not valid. - + Memory Card '{}' created. Memory Card '{}' created. - + Failed to create memory card '{}'. Failed to create memory card '{}'. - + A memory card with the name '{}' already exists. A memory card with the name '{}' already exists. - + Failed to load '{}'. Failed to load '{}'. - + Input profile '{}' loaded. Input profile '{}' loaded. - + Input profile '{}' saved. Input profile '{}' saved. - + Failed to save input profile '{}'. Failed to save input profile '{}'. - + Port {} Controller Type Port {} Controller Type - + Select Macro {} Binds Select Macro {} Binds - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. Macro will toggle every {} frames. - + Port {} Device Port {} Device - + Port {} Subtype Port {} Subtype - + {} unlabelled patch codes will automatically activate. {} unlabelled patch codes will automatically activate. - + {} unlabelled patch codes found but not enabled. {} unlabelled patch codes found but not enabled. - + This Session: {} This Session: {} - + All Time: {} All Time: {} - + Save Slot {0} Save Slot {0} - + Saved {} Saved {} - + {} does not exist. {} does not exist. - + {} deleted. {} deleted. - + Failed to delete {}. Failed to delete {}. - + File: {} File: {} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} Time Played: {} - + Last Played: {} Last Played: {} - + Size: {:.2f} MB Size: {:.2f} MB - - {} points - {} points - - - - {} (Hardcore Mode) - {} (Hardcore Mode) + + Left: + Left: - - You have unlocked all achievements and earned {} points! - You have unlocked all achievements and earned {} points! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - You have unlocked {} of {} achievements, earning {} of {} possible points. + + Right: + Right: - - This game has {} leaderboards. - This game has {} leaderboards. + + Bottom: + Bottom: - + Summary Summary - + Interface Settings Interface Settings - + BIOS Settings BIOS Settings - + Emulation Settings Emulation Settings - + Graphics Settings Graphics Settings - + Audio Settings Audio Settings - + Memory Card Settings Memory Card Settings - + Controller Settings Controller Settings - + Hotkey Settings Hotkey Settings - + Achievements Settings Achievements Settings - + Folder Settings Folder Settings - + Advanced Settings Advanced Settings - + Patches Patches - + Cheats Cheats - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% Speed - + 60% Speed 60% Speed - + 75% Speed 75% Speed - + 100% Speed (Default) 100% Speed (Default) - + 130% Speed 130% Speed - + 180% Speed 180% Speed - + 300% Speed 300% Speed - + Normal (Default) Normal (Default) - + Mild Underclock Mild Underclock - + Moderate Underclock Moderate Underclock - + Maximum Underclock Maximum Underclock - + Disabled Disabled - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 Frames (Hard Sync) - + 1 Frame 1 Frame - + 2 Frames 2 Frames - + 3 Frames 3 Frames - + None None - + Extra + Preserve Sign Extra + Preserve Sign - + Full Full - + Extra Extra - + Automatic (Default) Automatic (Default) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software Software - + Null Null - + Off Off - + On On - + Adaptive Adaptive - + Bilinear (Smooth) Bilinear (Smooth) - + Bilinear (Sharp) Bilinear (Sharp) - + Weave (Top Field First, Sawtooth) Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First) Bob (Top Field First) - + Bob (Bottom Field First) Bob (Bottom Field First) - + Blend (Top Field First, Half FPS) Blend (Top Field First, Half FPS) - + Blend (Bottom Field First, Half FPS) Blend (Bottom Field First, Half FPS) - + Adaptive (Top Field First) Adaptive (Top Field First) - + Adaptive (Bottom Field First) Adaptive (Bottom Field First) - + Native (PS2) Native (PS2) - + 1.25x Native 1.25x Native - + 1.5x Native 1.5x Native - + 1.75x Native 1.75x Native - + 2x Native (~720p) 2x Native (~720p) - + 2.25x Native 2.25x Native - + 2.5x Native 2.5x Native - + 2.75x Native 2.75x Native - + 3x Native (~1080p) 3x Native (~1080p) - + 3.5x Native 3.5x Native - + 4x Native (~1440p/2K) 4x Native (~1440p/2K) - + 5x Native (~1620p) 5x Native (~1620p) - + 6x Native (~2160p/4K) 6x Native (~2160p/4K) - + 7x Native (~2520p) 7x Native (~2520p) - + 8x Native (~2880p) 8x Native (~2880p) - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - + Nearest Nearest - + Bilinear (Forced) Bilinear (Forced) - + Bilinear (PS2) Bilinear (PS2) - + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Off (Default) Off (Default) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + Screen Resolution Screen Resolution - - Internal Resolution (Uncorrected) - Internal Resolution (Uncorrected) + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot + + + + Achievement Notifications + Achievement Notifications + + + + Leaderboard Notifications + Leaderboard Notifications + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Encore Mode + Encore Mode + + + + Spectator Mode + Spectator Mode - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Inside Target Inside Target - + Merge Targets Merge Targets - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Half Half - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Disabled (Default) Disabled (Default) - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) TimeStretch (Recommended) - + Async Mix (Breaks some games!) Async Mix (Breaks some games!) - + None (Audio can skip.) None (Audio can skip.) - + Stereo (None, Default) Stereo (None, Default) - + Surround 5.1 Surround 5.1 - + Surround 7.1 Surround 7.1 - + No Sound (Emulate SPU2 only) No Sound (Emulate SPU2 only) - + Cubeb (Cross-platform) Cubeb (Cross-platform) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [Most Compatible] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] Folder [Recommended] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid Game Grid - + Game List Game List - + Game List Settings Game List Settings - + Type Type - + Serial Serial - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Select Disc Image Select Disc Image - + Select Disc Drive Select Disc Drive - + Start File Start File - + Start BIOS Start BIOS - + Start Disc Start Disc - + Exit Exit - + Set Input Binding Set Input Binding - + Region Region - + Compatibility Rating Compatibility Rating - + Path Path - + Disc Path Disc Path - + Select Disc Path Select Disc Path - - Details unavailable for game not scanned in game list. - Details unavailable for game not scanned in game list. - - - + Copy Settings Copy Settings - + Clear Settings Clear Settings - + Inhibit Screensaver Inhibit Screensaver - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start Pause On Start - + Pause On Focus Loss Pause On Focus Loss - + Pause On Menu Pause On Menu - + Confirm Shutdown Confirm Shutdown - + Save State On Shutdown Save State On Shutdown - + Enable Per-Game Settings Enable Per-Game Settings - + Use Light Theme Use Light Theme - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + OSD Scale OSD Scale - + Show Messages Show Messages - + Show Speed Show Speed - + Show FPS Show FPS - + Show CPU Usage Show CPU Usage - + Show GPU Usage Show GPU Usage - + Show Resolution Show Resolution - + Show GS Statistics Show GS Statistics - + Show Status Indicators Show Status Indicators - + Show Settings Show Settings - + Show Inputs Show Inputs - + Show Frame Times Show Frame Times - + Warn About Unsafe Settings Warn About Unsafe Settings - + Reset Settings Reset Settings - + Change Search Directory Change Search Directory - + Fast Boot Fast Boot - + Output Volume Output Volume - + Synchronization Mode Synchronization Mode - + Expansion Mode Expansion Mode - + Output Module Output Module - + Latency Latency - + Sequence Length Sequence Length - + Seekwindow Size Seekwindow Size - + Overlap Overlap - + Memory Card Directory Memory Card Directory - + Folder Memory Card Filter Folder Memory Card Filter - + Auto Eject When Loading Auto Eject When Loading - + Create Create - + Cancel Cancel - + Load Profile Load Profile - + Save Profile Save Profile - + Per-Game Configuration Per-Game Configuration - + Copy Global Settings Copy Global Settings - + Enable SDL Input Source Enable SDL Input Source - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense Enhanced Mode - + SDL Raw Input SDL Raw Input - + Enable XInput Input Source Enable XInput Input Source - + Enable Console Port 1 Multitap Enable Console Port 1 Multitap - + Enable Console Port 2 Multitap Enable Console Port 2 Multitap - + Controller Port {}{} Controller Port {}{} - + Controller Port {} Controller Port {} - + Controller Type Controller Type - + Automatic Mapping Automatic Mapping - + Controller Port {}{} Macros Controller Port {}{} Macros - + Controller Port {} Macros Controller Port {} Macros - + Macro Button {} Macro Button {} - + Buttons Buttons - + Frequency Frequency - + Pressure Pressure - + Controller Port {}{} Settings Controller Port {}{} Settings - + Controller Port {} Settings Controller Port {} Settings - + USB Port {} USB Port {} - + Device Type Device Type - + Device Subtype Device Subtype - + {} Bindings {} Bindings - + Clear Bindings Clear Bindings - + {} Settings {} Settings - + Cache Directory Cache Directory - + Covers Directory Covers Directory - + Snapshots Directory Snapshots Directory - + Save States Directory Save States Directory - + Game Settings Directory Game Settings Directory - + Input Profile Directory Input Profile Directory - + Cheats Directory Cheats Directory - + Patches Directory Patches Directory - + Texture Replacements Directory Texture Replacements Directory - + Video Dumping Directory Video Dumping Directory - + Resume Game Resume Game - + Toggle Frame Limit Toggle Frame Limit - + Game Properties Game Properties - + Achievements Achievements - + Save Screenshot Save Screenshot - + Switch To Software Renderer Switch To Software Renderer - + Switch To Hardware Renderer Switch To Hardware Renderer - + Change Disc Change Disc - + Close Game Close Game - + Exit Without Saving Exit Without Saving - + Back To Pause Menu Back To Pause Menu - + Exit And Save State Exit And Save State - + Leaderboards Leaderboards - + Delete Save Delete Save - + Close Menu Close Menu - - Clean Boot - Clean Boot - - - + Delete State Delete State - + Default Boot - Default Boot - - - - Slow Boot - Slow Boot + Default Boot - + Reset Play Time Reset Play Time - + Add Search Directory Add Search Directory - + Open in File Browser Open in File Browser - + Disable Subdirectory Scanning Disable Subdirectory Scanning - + Enable Subdirectory Scanning Enable Subdirectory Scanning - + Remove From List Remove From List - + Default View Default View - + Sort By Sort By - + Sort Reversed Sort Reversed - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - - Start Download - Start Download - - - + Website Website - + Support Forums Support Forums - + GitHub Repository GitHub Repository - + License License - + Close Close - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration is being used instead of the built-in achievements implementation. - + Enable Achievements Enable Achievements - - Rich Presence - Rich Presence - - - + Hardcore Mode Hardcore Mode - - Show Notifications - Show Notifications - - - + Sound Effects Sound Effects - - Show Challenge Indicators - Show Challenge Indicators - - - + Test Unofficial Achievements Test Unofficial Achievements - - Test Mode - Test Mode - - - + Username: {} Username: {} - + Login token generated on {} Login token generated on {} - + Logout Logout - + Not Logged In Not Logged In - + Login Login - - Achievements are disabled. - Achievements are disabled. - - - - Game ID: {} - Game ID: {} - - - - Game Title: {} - Game Title: {} - - - - Achievements: {} ({} points) - Achievements: {} ({} points) + + Game: {0} ({1}) + Game: {0} ({1}) - + Rich presence inactive or unsupported. Rich presence inactive or unsupported. - + Game not loaded or no RetroAchievements available. Game not loaded or no RetroAchievements available. - + Card Enabled Card Enabled - + Card Name Card Name - + Eject Card Eject Card @@ -8076,7 +8325,7 @@ ${serial}: Serial of the game. Failed to reopen, restoring old configuration. - + Upscale multiplier set to {}x. Upscale multiplier set to {}x. @@ -8131,12 +8380,12 @@ ${serial}: Serial of the game. Disabling autogenerated mipmaps on one or more compressed replacement textures. Please generate mipmaps when compressing your textures. - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. @@ -8192,7 +8441,7 @@ ${serial}: Serial of the game. GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8203,266 +8452,408 @@ You can adjust the blending level in Game Properties to improve graphical quality, but this will increase system requirements. - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: - + No tracks provided. No tracks provided. - + Hash {} is not in database. Hash {} is not in database. - + Data track number does not match data track in database. Data track number does not match data track in database. - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - Track {} with hash {} is not found in database. + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - Track {} with hash {} is for a different game ({}). + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - Track {} with hash {} does not match database track. + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) Game Fixes (NOT recommended to change globally) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU Negative Divide Hack (For Gundam Games) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU Multiply Hack (For Tales of Destiny) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - Use Software Renderer For FMVs + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - Skip MPEG Hack (Skips Videos/FMVs) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - Preload TLB Hack (For Goemon) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE Timing Hack (General Purpose Timing Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - Instant DMA Hack (Good for cache emulation problems) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH Flag Hack (For Bleach Blade Battlers) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate GIF FIFO (Correct But Slower) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA Busy Hack (Deny Writes When Busy) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - Emulate VIF FIFO (Correct But Slower) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - Full VU0 Synchronization (Correct But Slower) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU Add Hack (For Tri-Ace Games) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU Overflow Hack (Superman Returns) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU Sync (Run Behind, M-Bit games) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick Sync (Correct But Slower) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - Force Blit Internal FPS Detection (When auto-detection fails) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + Use Software Renderer For FMVs + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today Today - + Yesterday Yesterday - + {}h {}m {}h {}m - + {}h {}m {}s {}h {}m {}s - + {}m {}s {}m {}s - + {}s {}s - + {} hours {} hours - + {} minutes {} minutes + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type Type - + Code Code - + Title Title - + File Title File Title - + CRC CRC - + Time Played Time Played - + Last Played Last Played - + Size Size - + Region Region - + Compatibility Compatibility @@ -8470,74 +8861,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) Search Directories (will be scanned for games) - + Add... Add... - - - + + + Remove Remove - + Search Directory Search Directory - + Scan Recursively Scan Recursively - + Excluded Paths (will not be scanned) Excluded Paths (will not be scanned) - + Directory... Directory... - + File... File... - + Scan For New Games Scan For New Games - + Rescan All Games Rescan All Games - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... Open Directory... - + Select Search Directory Select Search Directory - + Scan Recursively? Scan Recursively? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8546,12 +8963,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scanning recursively takes more time, but will identify files in subdirectories. - + Select File Select File - + Select Directory Select Directory @@ -8559,32 +8976,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List Game List - + Game Grid Game Grid - + Show Titles Show Titles - + All Types All Types - + All Regions All Regions - + Search... Search... @@ -8610,17 +9027,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">Author: </span>Patch Author</p><p>Description would go here</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>Author: </strong>%1<br>%2 - + Unknown Unknown - + No description provided. No description provided. @@ -8638,7 +9055,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Reload Patches - + There are no patches available for this game. There are no patches available for this game. @@ -8657,399 +9074,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore Restore + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: Path: - + Serial: Serial: - + CRC: CRC: - + Type: Type: - + PS2 Disc PS2 Disc - + PS1 Disc PS1 Disc - + ELF (PS2 Executable) ELF (PS2 Executable) - + Region: Region: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (Brazil) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (China) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (Hong Kong) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (Japan) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (Korea) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (Taiwan) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (US) - + Other Other - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (Australia) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (South Africa) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (Austria) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (Belgium) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (Europe/Australia) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (France) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (Finland) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (Germany) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (Greece) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (Italy) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (India) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (Europe/Australia) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (Netherlands) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (Norway) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (Portugal) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (Poland) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (Russia) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (Spain) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (Scandinavia) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (Sweden) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (Switzerland) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (United Kingdom) - + Compatibility: Compatibility: - + Unknown Unknown - + Not Bootable Not Bootable - + Reaches Intro Reaches Intro - + Reaches Menu Reaches Menu - + In-Game In-Game - + Playable Playable - + Perfect Perfect - + Input Profile: Input Profile: - + Shared Refers to the shared settings profile. Shared - + Disc Path: Disc Path: - + Browse... Browse... - + Clear Clear - + Verify Verify - + Search on Redump.org... Search on Redump.org... - + Select Disc Path Select Disc Path - + Game is not a CD/DVD. Game is not a CD/DVD. - + Track list unavailable while virtual machine is running. Track list unavailable while virtual machine is running. - + # # - + Mode Mode - - + + Start Start - - + + Sectors Sectors - - + + Size Size - - + + MD5 MD5 - - + + Status Status - - - - - - + + + + + + %1 %1 - - + + <not computed> <not computed> - + Error Error - + Cannot verify image while a game is running. Cannot verify image while a game is running. - + One or more tracks is missing. One or more tracks is missing. - + Verified as %1 [%2] (Version %3). Verified as %1 [%2] (Version %3). - + Verified as %1 [%2]. Verified as %1 [%2]. @@ -9057,62 +9485,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: Renderer: - + Adapter: Adapter: - + Display Display - + Fullscreen Mode: Fullscreen Mode: - + Aspect Ratio: Aspect Ratio: - + Fit to Window / Fullscreen Fit to Window / Fullscreen - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) Auto Standard (4:3 Interlaced / 3:2 Progressive) - - + + Standard (4:3) Standard (4:3) - - + + Widescreen (16:9) Widescreen (16:9) - + FMV Aspect Ratio: FMV Aspect Ratio: - - - + + + @@ -9122,12 +9550,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Off (Default) - - - - - - + + + + + + @@ -9138,92 +9566,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. Automatic (Default) - + None (Interlaced, also used by Progressive) None (Interlaced, also used by Progressive) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Top Field First, Sawtooth) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. Weave (Bottom Field First, Sawtooth) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Top Field First, Full Frames) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (Bottom Field First, Full Frames) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Top Field First, Merge 2 Fields) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. Blend (Bottom Field First, Merge 2 Fields) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Top Field First, Similar to Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. Adaptive (Bottom Field First, Similar to Bob + Weave) - + Bilinear Filtering: Bilinear Filtering: - - + + None None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. Bilinear (Smooth) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. Bilinear (Sharp) - + Vertical Stretch: Vertical Stretch: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9231,355 +9659,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: Crop: - + Left: Warning: short space constraints. Abbreviate if necessary. Left: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. Top: - + Right: Warning: short space constraints. Abbreviate if necessary. Right: - + Bottom: Warning: short space constraints. Abbreviate if necessary. Bottom: - + Screen Offsets Screen Offsets - + VSync VSync - + Show Overscan Show Overscan - + Enable Widescreen Patches Enable Widescreen Patches - + Enable No-Interlacing Patches Enable No-Interlacing Patches - + Anti-Blur Anti-Blur - + Ctrl+S Ctrl+S - + Disable Interlace Offset Disable Interlace Offset - + Screenshot Size: Screenshot Size: - + Screen Resolution Screen Resolution - + Internal Resolution Internal Resolution - + Internal Resolution (Aspect Uncorrected) Internal Resolution (Aspect Uncorrected) - + PNG PNG - + JPEG JPEG - + Quality: Quality: - - + + Rendering Rendering - + Internal Resolution: Internal Resolution: - + Mipmapping: Mipmapping: - - + + Off Off - + Basic (Generated Mipmaps) Basic (Generated Mipmaps) - + Full (PS2 Mipmaps) Full (PS2 Mipmaps) - - + + Texture Filtering: Texture Filtering: - - + + Nearest Nearest - - + + Bilinear (Forced) Bilinear (Forced) - - + + Bilinear (PS2) Bilinear (PS2) - - + + Bilinear (Forced excluding sprite) Bilinear (Forced excluding sprite) - + Trilinear Filtering: Trilinear Filtering: - + Off (None) Off (None) - + Trilinear (PS2) Trilinear (PS2) - + Trilinear (Forced) Trilinear (Forced) - + Anisotropic Filtering: Anisotropic Filtering: - + Dithering: Dithering: - + Scaled Scaled - + Unscaled (Default) Unscaled (Default) - + Blending Accuracy: Blending Accuracy: - + Minimum Minimum - + Basic (Recommended) Basic (Recommended) - + Medium Medium - + High High - + Full (Slow) Full (Slow) - + Maximum (Very Slow) Maximum (Very Slow) - + Texture Preloading: Texture Preloading: - + Partial Partial - + Full (Hash Cache) Full (Hash Cache) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU Palette Conversion - + Manual Hardware Renderer Fixes Manual Hardware Renderer Fixes - + Spin GPU During Readbacks Spin GPU During Readbacks - + Spin CPU During Readbacks Spin CPU During Readbacks - - Extra Rendering Threads: - Extra Rendering Threads: - - - + threads threads - + Mipmapping Mipmapping - + Auto Flush Auto Flush - + Hardware Fixes Hardware Fixes - + Force Disabled Force Disabled - + Force Enabled Force Enabled - + CPU Sprite Render Size: CPU Sprite Render Size: - - - + + + 0 (Disabled) @@ -9587,79 +10020,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (Disabled) - + 1 (64 Max Width) 1 (64 Max Width) - + 2 (128 Max Width) 2 (128 Max Width) - + 3 (192 Max Width) 3 (192 Max Width) - + 4 (256 Max Width) 4 (256 Max Width) - + 5 (320 Max Width) 5 (320 Max Width) - + 6 (384 Max Width) 6 (384 Max Width) - + 7 (448 Max Width) 7 (448 Max Width) - + 8 (512 Max Width) 8 (512 Max Width) - + 9 (576 Max Width) 9 (576 Max Width) - + 10 (640 Max Width) 10 (640 Max Width) - - Skipdraw Range: - Skipdraw Range: - - - + Frame Buffer Conversion Frame Buffer Conversion - + Disable Depth Emulation Disable Depth Emulation - + Disable Safe Features Disable Safe Features - + Preload Frame Data Preload Frame Data @@ -9670,606 +10098,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne Texture Inside RT - + 1 (Normal) 1 (Normal) - + 2 (Aggressive) 2 (Aggressive) - + Software CLUT Render: Software CLUT Render: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU Target CLUT: - - - + + + Disabled (Default) Disabled (Default) - + Enabled (Exact Match) Enabled (Exact Match) - + Enabled (Check Inside Target) Enabled (Check Inside Target) - + Upscaling Fixes Upscaling Fixes - + Half Pixel Offset: Half Pixel Offset: - + Normal (Vertex) Normal (Vertex) - + Special (Texture) Special (Texture) - + Special (Texture - Aggressive) Special (Texture - Aggressive) - + Round Sprite: Round Sprite: - + Half Half - + Full Full - + Texture Offsets: Texture Offsets: - + X: X: - + Y: Y: - + Merge Sprite Merge Sprite - + Align Sprite Align Sprite - + Deinterlacing: Deinterlacing: - + Sprites Only Sprites Only - + Sprites/Triangles Sprites/Triangles - + Blended Sprites/Triangles Blended Sprites/Triangles - + Auto Flush: Auto Flush: - + Enabled (Sprites Only) Enabled (Sprites Only) - + Enabled (All Primitives) Enabled (All Primitives) - + Texture Inside RT: Texture Inside RT: - + Inside Target Inside Target - + Merge Targets Merge Targets - + Disable Partial Source Invalidation Disable Partial Source Invalidation - + Read Targets When Closing Read Targets When Closing - + Estimate Texture Region Estimate Texture Region - + Disable Render Fixes Disable Render Fixes - + Unscaled Palette Texture Draws Unscaled Palette Texture Draws - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. Wild Arms Hack - + Bilinear Dirty Upscale: Bilinear Dirty Upscale: - + Force Bilinear Force Bilinear - + Force Nearest Force Nearest - + Texture Replacement Texture Replacement - + Search Directory Search Directory - - + + Browse... Browse... - - + + Open... Open... - - + + Reset Reset - + PCSX2 will dump and load texture replacements from this directory. PCSX2 will dump and load texture replacements from this directory. - + Options Options - + Dump Textures Dump Textures - + Dump Mipmaps Dump Mipmaps - + Dump FMV Textures Dump FMV Textures - - - Async Texture Loading - Async Texture Loading - - - + Load Textures Load Textures - + Precache Textures Precache Textures - + Post-Processing Post-Processing - + Sharpening/Anti-Aliasing Sharpening/Anti-Aliasing - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx Contrast Adaptive Sharpening: - - + + None (Default) None (Default) - + Sharpen Only (Internal Resolution) Sharpen Only (Internal Resolution) - + Sharpen and Resize (Display Resolution) Sharpen and Resize (Display Resolution) - + Sharpness: Sharpness: - + FXAA FXAA - + Filters Filters - + TV Shader: TV Shader: - + Scanline Filter Scanline Filter - + Diagonal Filter Diagonal Filter - + Triangular Filter Triangular Filter - + Wave Filter Wave Filter - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. Lottes CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4xRGSS downsampling (4x Rotated Grid SuperSampling) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) NxAGSS downsampling (Nx Automatic Grid SuperSampling) - + Shade Boost Shade Boost - + Brightness: Brightness: - + Contrast: Contrast: - Saturation Saturation - + OSD OSD - + On-Screen Display On-Screen Display - + OSD Scale: OSD Scale: - + Show Indicators Show Indicators - + Show Resolution Show Resolution - + Show Inputs Show Inputs - + Show GPU Usage Show GPU Usage - + Show Settings Show Settings - + Show FPS Show FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache Disable Shader Cache - + Disable Vertex Shader Expand Disable Vertex Shader Expand - + Show Statistics Show Statistics - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage Show CPU Usage - + Warn About Unsafe Settings Warn About Unsafe Settings - + Show Frame Times Show Frame Times - + Recording Recording - + Video Dumping Directory Video Dumping Directory - + Capture Setup Capture Setup - + Container: Container: - - + + Codec: Codec: - - + + Extra Arguments Extra Arguments - + Capture Audio Capture Audio - + Resolution: Resolution: - + x x - + Auto Auto - + Capture Video Capture Video - + Advanced Advanced here refers to the advanced graphics options. Advanced - + Advanced Options Advanced Options - + Hardware Download Mode: Hardware Download Mode: - + Accurate (Recommended) Accurate (Recommended) - + Disable Readbacks (Synchronize GS Thread) Disable Readbacks (Synchronize GS Thread) - + Unsynchronized (Non-Deterministic) Unsynchronized (Non-Deterministic) - + Disabled (Ignore Transfers) Disabled (Ignore Transfers) - + GS Dump Compression: GS Dump Compression: - + Uncompressed Uncompressed - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames Skip Presenting Duplicate Frames - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10279,69 +10717,63 @@ Swap chain: see Microsoft's Terminology Portal. Use Blit Swap Chain - + Disable Threaded Presentation Disable Threaded Presentation - - + + Bitrate: Bitrate: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: Allow Exclusive Fullscreen: - + Disallowed Disallowed - + Allowed Allowed - + Debugging Options Debugging Options - + Override Texture Barriers: Override Texture Barriers: - + Use Debug Device Use Debug Device - - - Disable Dual Source Blending - Disable Dual Source Blending - - - + Show Speed Percentages Show Speed Percentages - + Disable Framebuffer Fetch Disable Framebuffer Fetch @@ -10410,8 +10842,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] Use Global Setting [%1] @@ -10463,6 +10895,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked Unchecked @@ -10522,11 +10955,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render Software CLUT Render + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10578,6 +11021,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc. + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10593,11 +11091,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. Displays various settings and the current values of those settings, useful for debugging. - - - Shows the current controller state of the system in the bottom left corner of the display. - Shows the current controller state of the system in the bottom left corner of the display. - Displays a graph showing the average frametimes. @@ -10635,7 +11128,7 @@ Swap chain: see Microsoft's Terminology Portal. Enable this option to match PCSX2's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (eg. running at non-100% speed). - + Integer Scaling Integer Scaling @@ -10724,8 +11217,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen Borderless Fullscreen @@ -10867,11 +11360,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. - - - Extra Rendering Threads - Extra Rendering Threads - 2 threads @@ -10922,11 +11410,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End Skipdraw Range End - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11044,7 +11527,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD Scale - + Show OSD Messages Show OSD Messages @@ -11084,6 +11567,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. Shows counters for internal graphical utilization, useful for debugging. + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11137,29 +11625,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS Download Mode - + Accurate Accurate - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. Default - - + + (Default) (Default) @@ -11167,405 +11665,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics Graphics - + Save Screenshot Save Screenshot - + Toggle Video Capture Toggle Video Capture - + Save Single Frame GS Dump Save Single Frame GS Dump - + Save Multi Frame GS Dump Save Multi Frame GS Dump - + Toggle Software Rendering Toggle Software Rendering - + Increase Upscale Multiplier Increase Upscale Multiplier - + Decrease Upscale Multiplier Decrease Upscale Multiplier - + Toggle On-Screen Display Toggle On-Screen Display - + Cycle Aspect Ratio Cycle Aspect Ratio - + Aspect ratio set to '{}'. Aspect ratio set to '{}'. - + Cycle Hardware Mipmapping Cycle Hardware Mipmapping - + Hardware mipmapping set to '{}'. Hardware mipmapping set to '{}'. - + Cycle Deinterlace Mode Cycle Deinterlace Mode - + Deinterlace mode set to '{}'. Deinterlace mode set to '{}'. - + Toggle Texture Dumping Toggle Texture Dumping - + Texture dumping is now enabled. Texture dumping is now enabled. - + Texture dumping is now disabled. Texture dumping is now disabled. - + Toggle Texture Replacements Toggle Texture Replacements - + Texture replacements are now enabled. Texture replacements are now enabled. - + Texture replacements are now disabled. Texture replacements are now disabled. - + Reload Texture Replacements Reload Texture Replacements - + Texture replacements are not enabled. Texture replacements are not enabled. - + Reloading texture replacements... Reloading texture replacements... - + Target speed set to {:.0f}%. Target speed set to {:.0f}%. - + Volume: Muted Volume: Muted - + Volume: {}% Volume: {}% - - Save slot {} selected (last save: {}). - Save slot {} selected (last save: {}). + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). Save slot {} selected (no save yet). - + No save state found in slot {}. No save state found in slot {}. - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System System - + Open Pause Menu Open Pause Menu - + Open Achievements List Open Achievements List - + Open Leaderboards List Open Leaderboards List - + Toggle Pause Toggle Pause - + Toggle Fullscreen Toggle Fullscreen - + Toggle Frame Limit Toggle Frame Limit - + Toggle Turbo / Fast Forward Toggle Turbo / Fast Forward - + Toggle Slow Motion Toggle Slow Motion - + Turbo / Fast Forward (Hold) Turbo / Fast Forward (Hold) - + Increase Target Speed Increase Target Speed - + Decrease Target Speed Decrease Target Speed - + Increase Volume Increase Volume - + Decrease Volume Decrease Volume - + Toggle Mute Toggle Mute - + Frame Advance Frame Advance - + Shut Down Virtual Machine Shut Down Virtual Machine - + Reset Virtual Machine Reset Virtual Machine - + Toggle Input Recording Mode Toggle Input Recording Mode - - - - + + + + Save States Save States - + Select Previous Save Slot Select Previous Save Slot - + Select Next Save Slot Select Next Save Slot - + Save State To Selected Slot Save State To Selected Slot - + Load State From Selected Slot Load State From Selected Slot - + Save State To Slot 1 Save State To Slot 1 - + Load State From Slot 1 Load State From Slot 1 - + Save State To Slot 2 Save State To Slot 2 - + Load State From Slot 2 Load State From Slot 2 - + Save State To Slot 3 Save State To Slot 3 - + Load State From Slot 3 Load State From Slot 3 - + Save State To Slot 4 Save State To Slot 4 - + Load State From Slot 4 Load State From Slot 4 - + Save State To Slot 5 Save State To Slot 5 - + Load State From Slot 5 Load State From Slot 5 - + Save State To Slot 6 Save State To Slot 6 - + Load State From Slot 6 Load State From Slot 6 - + Save State To Slot 7 Save State To Slot 7 - + Load State From Slot 7 Load State From Slot 7 - + Save State To Slot 8 Save State To Slot 8 - + Load State From Slot 8 Load State From Slot 8 - + Save State To Slot 9 Save State To Slot 9 - + Load State From Slot 9 Load State From Slot 9 - + Save State To Slot 10 Save State To Slot 10 - + Load State From Slot 10 Load State From Slot 10 @@ -11722,6 +12220,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11749,137 +12337,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour Behaviour - + Pause On Focus Loss Pause On Focus Loss - + Inhibit Screensaver Inhibit Screensaver - + Save State On Shutdown Save State On Shutdown - + Pause On Start Pause On Start - + Confirm Shutdown Confirm Shutdown - + Create Save State Backups Create Save State Backups - + Enable Discord Presence Enable Discord Presence - + Enable Per-Game Settings Enable Per-Game Settings - + Game Display Game Display - + Start Fullscreen Start Fullscreen - + Double-Click Toggles Fullscreen Double-Click Toggles Fullscreen - + Render To Separate Window Render To Separate Window - + Hide Main Window When Running Hide Main Window When Running - + Disable Window Resizing Disable Window Resizing - + Hide Cursor In Fullscreen Hide Cursor In Fullscreen - + Preferences Preferences - + Language: Language: - + Theme: Theme: - + Automatic Updater Automatic Updater - + Update Channel: Update Channel: - + Current Version: Current Version: - + Enable Automatic Update Check Enable Automatic Update Check - + Check for Updates... Check for Updates... @@ -12072,7 +12660,7 @@ Right click to clear binding Shows the game you are currently playing as part of your profile in Discord. - + System Language [Default] System Language [Default] @@ -12129,14 +12717,14 @@ Right click to clear binding - - + + Change Disc Change Disc - + Load State Load State @@ -12641,13 +13229,13 @@ Right click to clear binding - + Start Big Picture Mode Start Big Picture Mode - + Big Picture In Toolbar Big Picture @@ -12659,7 +13247,7 @@ Right click to clear binding - + Show Advanced Settings Show Advanced Settings @@ -12670,7 +13258,7 @@ Right click to clear binding - + Video Capture Video Capture @@ -12685,27 +13273,27 @@ Right click to clear binding Edit Patches... - + Internal Resolution Internal Resolution - + %1x Scale %1x Scale - + Select location to save block dump: Select location to save block dump: - + Do not show again Do not show again - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12718,168 +13306,173 @@ The PCSX2 team will not provide any support for configurations that modify these Are you sure you want to continue? - + %1 Files (*.%2) %1 Files (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown Confirm Shutdown - + Are you sure you want to shut down the virtual machine? Are you sure you want to shut down the virtual machine? - + Save State For Resume Save State For Resume - - - - - - + + + + + + Error Error - + You must select a disc to change discs. You must select a disc to change discs. - + Properties... Properties... - + Open Containing Directory... Refers to the directory where a game is contained. Open Containing Directory... - + Set Cover Image... Set Cover Image... - + Exclude From List Exclude From List - + Reset Play Time Reset Play Time - + Default Boot Default Boot - + Fast Boot Fast Boot - + Full Boot Full Boot - + Boot and Debug Boot and Debug - + Add Search Directory... Add Search Directory... - + Start File Start File - + Start Disc Start Disc - + Select Disc Image Select Disc Image - + Updater Error Updater Error - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. Automatic updating is not supported on the current platform. - + Confirm File Creation Confirm File Creation - + The pnach file '%1' does not currently exist. Do you want to create it? The pnach file '%1' does not currently exist. Do you want to create it? - + Failed to create '%1'. Failed to create '%1'. - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) - + Paused Paused - + Load State Failed Load State Failed - + Cannot load a save state without a running VM. Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget Failed to get window info from widget @@ -12894,97 +13487,97 @@ Are you sure you want to continue? All File Types (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;Single-Track Raw Images (*.bin *.iso);;Cue Sheets (*.cue);;Media Descriptor File (*.mdf);;MAME CHD Images (*.chd);;CSO Images (*.cso);;GZ Images (*.gz);;Block Dumps (*.dump) - + Stop Big Picture Mode Stop Big Picture Mode - + Exit Big Picture In Toolbar Exit Big Picture - + Game Properties Game Properties - + Game properties is unavailable for the current game. Game properties is unavailable for the current game. - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: Select disc drive: - + This save state does not exist. This save state does not exist. - + Select Cover Image Select Cover Image - - All Cover Image Types (*.jpg *.jpeg *.png) - All Cover Image Types (*.jpg *.jpeg *.png) - - - + Cover Already Exists Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error Copy Error - + Failed to remove existing cover '%1' Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' Failed to copy '%1' to '%2' - + Failed to remove '%1' Failed to remove '%1' - - + + Confirm Reset Confirm Reset - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12993,12 +13586,12 @@ This action cannot be undone. This action cannot be undone. - + Load Resume State Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -13011,70 +13604,70 @@ Do you want to load this state, or start from a fresh boot? Do you want to load this state, or start from a fresh boot? - + Fresh Boot Fresh Boot - + Delete And Boot Delete And Boot - + Failed to delete save state file '%1'. Failed to delete save state file '%1'. - + Load State File... Load State File... - + Load From File... Load From File... - - + + Select Save State File Select Save State File - - + + Save States (*.p2s) Save States (*.p2s) - + Delete Save States... Delete Save States... - + Undo Load State Undo Load State - + Resume (%2) Resume (%2) - + Load Slot %1 (%2) Load Slot %1 (%2) - - + + Delete Save States Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13083,42 +13676,42 @@ The saves will not be recoverable. The saves will not be recoverable. - + %1 save states deleted. %1 save states deleted. - + Save To File... Save To File... - + Empty Empty - + Save Slot %1 (%2) Save Slot %1 (%2) - + Confirm Disc Change Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc Swap Disc - + Reset Reset @@ -13126,8 +13719,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. Memory Card '{}' was saved to storage. @@ -13208,6 +13801,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2x larger than a standard Memory Card. May have some compatibility issues. @@ -13258,11 +13852,6 @@ The saves will not be recoverable. Cannot Convert Memory Card Cannot Convert Memory Card - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2x larger as a standard Memory Card. May have some compatibility issues. - MemoryCardCreateDialog @@ -13388,103 +13977,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports Console Ports - + Memory Cards Memory Cards - + Folder: Folder: - + Browse... Browse... - + Open... Open... - + Reset Reset - + Name Name - + Type Type - + Formatted Formatted - + Last Modified Last Modified - + Refresh Refresh - + + Create Create - + Duplicate Duplicate - + Rename Rename - + Convert Convert - + Delete Delete - + Settings Settings - + Automatically manage saves based on running game Automatically manage saves based on running game - + Auto-eject Memory Cards when loading save states Auto-eject Memory Cards when loading save states @@ -13654,58 +14244,58 @@ This action cannot be reversed, and you will lose any saves on the card.Memory - + Copy Address Copy Address - + Go to in disassembly Go to in disassembly - - + + Go to address Go to address - + Show as 1 byte Show as 1 byte - + Show as 2 bytes Show as 2 bytes - + Show as 4 bytes Show as 4 bytes - + Show as 8 bytes Show as 8 bytes - + Copy Byte Copy Byte - + Copy Segment Copy Segment - + Copy Character Copy Character - + Paste Paste @@ -13755,10 +14345,15 @@ This action cannot be reversed, and you will lose any saves on the card.Enter Author Name - + Input Recording Files (*.p2m2) Input Recording Files (*.p2m2) + + + Select a File + Select a File + Pad @@ -13954,6 +14549,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13970,14 +14575,14 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the deadzone for activating buttons/triggers, i.e. the fraction of the trigger which will be ignored. - - Analog light is now on for port {} / slot {} - Analog light is now on for port {} / slot {} + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - Analog light is now off for port {} / slot {} + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14024,13 +14629,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - Strum Up @@ -14101,40 +14699,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar Guitar + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. Failed to open {}. Built-in game patches are not available. - + {} GameDB patches {} GameDB patches - + {}{} game patches {}{} game patches - + {}{} cheat patches {}{} cheat patches - + {} are active. {} are active. - + No cheats or patches (widescreen, compatibility or others) are found / enabled. No cheats or patches (widescreen, compatibility or others) are found / enabled. + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14152,13 +14773,13 @@ The URL was: %1 The URL was: %1 - + HDD Creator HDD Creator - + Failed to create HDD image Failed to create HDD image @@ -14363,7 +14984,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14413,222 +15033,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + Use Global Setting [Enabled] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + Use Global Setting [Disabled] + + + + + Use Global Setting [%1] + Use Global Setting [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 Settings - + Restore Defaults Restore Defaults - + Copy Global Settings Copy Global Settings - + Clear Settings Clear Settings - + Close Close - - - Summary - Summary - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - + + + Summary + Summary + + + Summary is unavailable for files not present in game list. Summary is unavailable for files not present in game list. - + Interface Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14641,12 +15282,12 @@ Any current setting values will be overwritten. Do you want to continue? - + Per-game configuration copied from global settings. Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14659,33 +15300,15 @@ Any current setting values will be lost. Do you want to continue? - + Per-game configuration cleared. Per-game configuration cleared. - + Recommended Value Recommended Value - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - Use Global Setting [Enabled] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - Use Global Setting [Disabled] - - - - - Use Global Setting [%1] - Use Global Setting [%1] - SetupWizardDialog @@ -14771,8 +15394,8 @@ Do you want to continue? - Open in Explorer... - Open in Explorer... + Open BIOS Folder... + Open BIOS Folder... @@ -15039,97 +15662,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. WAIT TYPE - + BAD Refers to a Thread State in the Debugger. BAD - + RUN Refers to a Thread State in the Debugger. RUN - + READY Refers to a Thread State in the Debugger. READY - + WAIT Refers to a Thread State in the Debugger. WAIT - + SUSPEND Refers to a Thread State in the Debugger. SUSPEND - + WAIT SUSPEND Refers to a Thread State in the Debugger. WAIT SUSPEND - + DORMANT Refers to a Thread State in the Debugger. DORMANT - + NONE Refers to a Thread Wait State in the Debugger. NONE - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. WAKEUP REQUEST - + SEMAPHORE Refers to a Thread Wait State in the Debugger. SEMAPHORE - + SLEEP Refers to a Thread Wait State in the Debugger. SLEEP - + DELAY Refers to a Thread Wait State in the Debugger. DELAY - + EVENTFLAG Refers to a Thread Wait State in the Debugger. EVENTFLAG - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15335,6 +15958,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. Scales the crosshair image set above. + + + %.0f%% + %.0f%% + Cursor Color @@ -15366,6 +15994,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. Scales the position to simulate CRT curvature. + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15381,6 +16015,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. Sets the horizontal center position of the simulated screen. + + + + %.0fpx + %.0fpx + Center Y @@ -15401,6 +16041,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. Sets the width of the simulated screen. + + + + %dpx + %dpx + Screen Height @@ -15456,6 +16102,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. Specifies the latency to the host input device. + + + + + + + %dms + %dms + Output Latency @@ -15656,6 +16311,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15666,6 +16341,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. + + + + %d%% + %d%% + Steering Deadzone @@ -16165,117 +16846,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + D-Pad D-Pad - + Down Down - + Left Left - + Up Up - + Right Right - + L1 L1 - + L2 L2 - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Select Select - + Start Start - + Face Buttons Face Buttons - + Circle Circle - + Cross Cross - + Triangle Triangle - + Square Square - + R1 R1 - + R2 R2 - + Accelerator Accelerator @@ -16283,67 +16964,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. - + Force Feedback Force Feedback - + X X - + A A - + Brake Brake - + Steering Left Steering Left - + Steering Right Steering Right - + Left Paddle Left Paddle - + Right Paddle Right Paddle - + Y Y - + B B - + Accelerator Accelerator @@ -16351,71 +17032,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons Buttons - + A A - + C C - + Start Start - + Select Select - + B B - + D-Pad D-Pad - - + + Down Down - - + + Left Left - - + + Up Up - - + + Right Right - + Pointer Setup Pointer Setup - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16424,29 +17105,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. Relative Aiming - - + + Trigger Trigger - + Shoot Offscreen Shoot Offscreen - + Calibration Shot Calibration Shot - + Calibration shot is required to pass the setup screen in some games. Calibration shot is required to pass the setup screen in some games. @@ -16454,27 +17135,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type Device Type - + Bindings Bindings - + Settings Settings - + Automatic Mapping Automatic Mapping - + Clear Mapping Clear Mapping @@ -16512,32 +17193,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. Failed to back up old save state {}. - + Failed to save save state: {}. Failed to save save state: {}. - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game Unknown Game - + Error Error - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16554,197 +17235,217 @@ Once dumped, this BIOS image should be placed in the bios folder within the data Please consult the FAQs and Guides for further instructions. - + + Resuming state + Resuming state + + + State saved to slot {}. State saved to slot {}. - + Failed to save save state to slot {}. Failed to save save state to slot {}. - + + + Loading state + Loading state + + + There is no save state in slot {}. There is no save state in slot {}. - + Loading state from slot {}... Loading state from slot {}... - + Saving state to slot {}... Saving state to slot {}... - + + Frame advancing + Frame advancing + + + Disc removed. Disc removed. - + Disc changed to '{}'. Disc changed to '{}'. - - Failed to open new disc image '{}'. Reverting to old image. - Failed to open new disc image '{}'. Reverting to old image. + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - Failed to switch back to old disc image. Removing disc. + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. Cycle rate/skip is not at default, this may crash or make games run too slow. - + Audio is using async mix, expect desynchronization in FMVs. Audio is using async mix, expect desynchronization in FMVs. - + Upscale multiplier is below native, this will break rendering. Upscale multiplier is below native, this will break rendering. - + Mipmapping is not set to automatic. This may break rendering in some games. Mipmapping is not set to automatic. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + Trilinear filtering is not set to automatic. This may break rendering in some games. Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending is below basic, this may break effects in some games. Blending is below basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU Clamp Mode is not set to default, this may break some games. - + VU Round Mode is not set to default, this may break some games. VU Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. VU Clamp Mode is not set to default, this may break some games. - + Game Fixes are not enabled. Compatibility with some games may be affected. Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. INTC Spin Detection is not enabled, this may reduce performance. - + Instant VU1 is disabled, this may reduce performance. Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. Estimate texture region is enabled, this may reduce performance. diff --git a/pcsx2-qt/Translations/pcsx2-qt_zh-CN.ts b/pcsx2-qt/Translations/pcsx2-qt_zh-CN.ts index 279be5dc4f0c9b..9d42e5ebb19d17 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_zh-CN.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_zh-CN.ts @@ -80,32 +80,38 @@ 就绪... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>您的RetroAchievements 登录凭据似乎不再有效。</strong> 您必须重新输入您的凭据才能跟踪成就。您的密码不会保存在 PCSX2 中而是生成并使用访问令牌。 - + &Login 登录(&L) - + Logging in... 正在登录... - + Login Error 登录时发生错误 - - Login failed. Please check your username and password, and try again. - 登录失败。请检查您的用户名和密码并再次尝试。 + + Login failed. +Error: %1 + +Please check your username and password, and try again. + 登录失败。 +错误: %1 + +请检查您的用户名和密码,然后再试。 - + Login failed. 登录失败。 @@ -113,268 +119,498 @@ AchievementSettingsWidget - - Global Settings - 全局设置 - - - - + + Enable Achievements 启用成就系统 - - - Show Challenge Indicators - 显示挑战指示器 - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - 开启 RA 的富状态呈现 - - - - + + Enable Hardcore Mode 开启硬核模式 - - - Enable Leaderboards - 开启排行榜 - - - + Test Unofficial Achievements 测试非官方成就 - - - Enable Test Mode - 开启测试模式 - - - - + + Enable Sound Effects 启用声音效果 - + Notifications 通知 - - - Show Notifications - 显示通知 - - - - Duration - 间隔 - - - - - - + + 5 seconds 5 秒 - + Account 账户 - - + + Login... 登录... - + View Profile... 查看档案... - + + Settings + 设置 + + + + + Enable Spectator Mode + 开启观众模式 + + + + + Enable Encore Mode + 开启 Encore 模式 + + + + + Show Achievement Notifications + 显示成就提醒 + + + + + Show Leaderboard Notifications + 显示排行榜提醒 + + + + + Enable In-Game Overlays + 开启游戏内覆盖层 + + + + Username: +Login token generated at: + 用户名: +登录凭据生成于: + + + Game Info 游戏信息 - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 使用 RetroAchievement 作为成就数据库并用其追踪进度。要使用成就, 请在 <a href="https://retroachievements.org/">retroachievements.org</a> 登录一个账号。</p><p align="justify">要在游戏中查看成就,请按<span style=" font-weight:600;">打开暂停菜单</span>的热键并从随后的菜单中选择<span style=" font-weight:600;">成就</span>项目。</p></body></html> + - seconds - - - - - + + - - Unchecked 已取消勾选 - - When enabled and logged in, PCSX2 will scan for achievements on game load. - 当启用此选项并登录时,PCSX2 将在游戏加载时扫描成就。 - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. 启用后,PCSX2 将假定所有成就都已锁定并且不会向服务器发送任何解锁通知。 - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. 启用后,PCSX2 将列出非官方的成就集。请注意这些成就不是由 RetroAchievements 跟踪的,所以每次达成时都会解锁。 - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - 启用后,富状态信息将被收集并发送到受支持的 RetroAchievements 服务器。 - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "挑战" 模式的成就系统,包括排行榜跟踪。禁用即时存档、作弊和减速功能。 - - - - + + + + Checked 选中 - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - 启用跟踪和提交受支持游戏中的排行榜。如果禁用排行榜,您仍可以查看排行榜和分数,但分数不会被上传。 - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - 显示解锁成就和提交排名等事件的弹出消息。 - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. 为解锁成就和提交排名等事件播放音效。 - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. 当挑战/已获得的成就处于活动状态时在屏幕右下角显示图标。 - - - - Notification Duration - 通知间隔 + + When enabled and logged in, PCSX2 will scan for achievements on startup. + 启用并登录后,PCSX2 将在启动时扫描成就。 + + + + Displays popup messages on events such as achievement unlocks and game completion. + 显示例如成就解锁和游戏完成等事件的弹出消息。 + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + 启动、提交或失败排行榜挑战时显示弹出消息。 - - - - The duration, in seconds, an achievement popup notification will remain on screen. - 成就弹出时将停留在屏幕的时间,以秒为单位。 + + When enabled, each session will behave as if no achievements have been unlocked. + 启用后,每个会话的行为就像没有解锁成就成果一样。 - + Reset System 重置系统 - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? 在系统重置之前硬核模式将不被启用。您要立即重置系统吗? + + + + %n seconds + + %n 秒 + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. 用户名: %1 登录令牌生成于 %2. - + Logout 注销 - + Not Logged In. 未登录。 - - - %1 seconds - %1 秒 - Achievements - + Hardcore mode will be enabled on system reset. 硬核模式将在系统重启时开启。 - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. 无法在启用硬核模式时执行 {0}。您要关闭硬核模式吗? 如果您选择了否 {0} 将被取消。 - + Hardcore mode is now enabled. 已开启硬核模式。 - + + {} (Hardcore Mode) + {} 硬核模式 + + + + {} (Unofficial) + {} (非官方) + + + + Mastered {} + 已获得 {} + + + + Leaderboard attempt started. + 尝试启动排行榜。 + + + + Leaderboard attempt failed. + 启动排行榜失败。 + + + + Your Time: {}{} + 您的时间: {}{} + + + + Your Score: {}{} + 您的分数: {}{} + + + + Your Value: {}{} + 您的数值: {}{} + + + + (Submitting) + (正在提交) + + + + Achievements Disconnected + 已断开连接成就 + + + + An unlock request could not be completed. We will keep retrying to submit this request. + 无法完成一个解锁请求。我们会尝试重试提交此请求。 + + + + Achievements Reconnected + 已重新连接成就 + + + + All pending unlock requests have completed. + 已完成所有挂起的解锁请求。 + + + Hardcore mode is now disabled. 已关闭硬核模式。 - + + Confirm Hardcore Mode + 确认硬核模式 + + + + Active Challenge Achievements + 启用挑战成就 + + + (Hardcore Mode) (硬核模式) - - You have earned {0} of {1} achievements, and {2} of {3} points. - 您已获得了 {1} 个成就中的 {0} 个,以及 {3} 个点数中的 {2} 个。 + + You have unlocked all achievements and earned {} points! + 您已解锁所有成就并获得 {} 点点数! - - This game has no achievements. - 此游戏没有成就。 + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + 您已解锁 {0} 的 {1} 个成就, 并且获得了 {2} 的 {3} 点数。 + + + + {0} achievements, {1} points + {0} 个成就, {1} 点数 + + + + Your Time: {0} (Best: {1}) + 您的时间: {0} (最佳: {1}) + + + + Your Score: {0} (Best: {1}) + 您的分数: {0} (最佳: {1}) + + + + Your Value: {0} (Best: {1}) + 您的数值: {0} (最佳: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +排行榜位置: {1} 的 {2} + + + + Server error in {0}: +{1} + 服务器错误在 {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + 分数: {0} ({1} softcore) +未读消息: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + 您已解锁 {0} 的 {1} 个成就, 获得了 {2} 的 {3} 可能点数。 + + + + Unknown + 未知 + + + + Locked + 已锁定 + + + + Unlocked + 已解锁 + + + + Unsupported + 不支持 + + + + Unofficial + 非官方 + + + + Recently Unlocked + 历史解锁 + + + + Active Challenges + 活动的挑战 + + + + Almost There + 即将到达 + + + + {} points + {} 点 + + + + {} point + {} 点 + + + + XXX points + XXX 点数 + + + + Unlocked: {} + 已解锁: {} + + + + This game has {} leaderboards. + 此游戏有 {} 个排行榜。 + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + 提交分数被禁用因为核心模式已关闭。排行榜为只读。 + + + + Show Best + 显示最佳 + + + + Show Nearby + 显示接近 + + + + Rank + 等级 + + + + Name + 名称 + + + + Time + 时间 + + + + Score + 分数 + + + + Value + - - Leaderboard submission is enabled. - 已启用排行榜提交。 + + Date Submitted + 提交日期 - + + Downloading leaderboard data, please wait... + 正在下载排行榜数据,请稍等... + + + + + Loading... + 正在载入... + + + + + Leaderboard download failed + 下载排行榜失败 + + + + This game has no achievements. + 此游戏没有成就。 + + + Failed to read executable from disc. Achievements disabled. 无法从光盘中读取可执行文件。成就系统已被禁用。 @@ -391,7 +627,7 @@ Login token generated on %2. Rounding Mode - 环绕模式 + 循环模式 @@ -578,220 +814,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. 更改这些选项可能会导致游戏无法运行。修改风险自负,PCSX2 团队不会为更改了这些设置的配置提供支持。 - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). 情感引擎 (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. 循环模式: - - - + + + Nearest 最邻近插值算法 - - - + + + Negative 负数 - - - + + + Positive 正数 - - - + + + Chop / Zero (Default) 舍去 / 零 (默认) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. 压制模式: - - + + None - - - + + + Normal (Default) 普通 (默认) - + None ClampMode - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). 额外 + 保留符号 - + Full 完全 - + Wait Loop Detection 等待循环检测 - - + + Enable Recompiler 启用重编译器 - + Enable Fast Memory Access 启用快速内存访问 - + Enable Cache (Slow) 启用缓存 (慢) - + INTC Spin Detection INTC 旋转检测 - + Pause On TLB Miss 在 TLB 丢失时暂停 - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. 向量单元 (VU) - + VU1 Rounding Mode: VU1 舍入模式: - + mVU Flag Hack mVU 标志 Hack - + Enable VU1 Recompiler 开启 VU1 重编译器 - + Enable VU0 Recompiler (Micro Mode) 开启 VU0 重编译器 (微模式) - - + + Extra 额外 - + VU0 Clamping Mode: VU0 压制模式: - + VU0 Rounding Mode: VU0 舍入模式: - + VU1 Clamping Mode: VU1 压制模式: - + I/O Processor (IOP, MIPS-I) I/O 处理器 (IOP、MIPS-I) - + Game Settings 游戏设置 - + Enable Game Fixes 启用游戏修复 - + Enable Compatibility Patches 启用兼容性补丁 - + Frame Rate Control 帧率控制 - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. 赫兹 - + PAL Frame Rate: PAL 帧率: - + NTSC Frame Rate: NTSC 帧率: - + PINE Settings PINE 设置 - + Slot: 卡槽: - + Enable 启用 @@ -799,182 +1035,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings 时间延展设置 - + Sequence Length: 序列长度: - + 30 30 - + Seekwindow Size: 搜索窗口大小: - + 20 20 - + Overlap: 重叠: - + 10 10 - + Restore Defaults 还原默认设置 - + Volume 音量 - + 100% 100% - + Mixing Settings 混响设置 - + Synchronization: 同步: - + TimeStretch (Recommended) 时间延展 (推荐) - + Async Mix (Breaks some games!) 异步混合 (会破坏部分游戏!) - + None (Audio can skip.) 无 (音频可能会跳跃) - + Expansion: 扩展: - + Stereo (None, Default) 立体声 (无,默认) - + Quadraphonic - Quadraphonic + 四声道 - + Surround 5.1 5.1 环绕声 - + Surround 7.1 7.1 环绕声 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic 等级: - + None (Default) 无 (默认) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic 解码 (基础) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II 解码 (gigaherz) - + Target Latency: 目标延迟: - + 60 ms 60 毫秒 - + Output Settings 输出设置 - + Output Module: 输出模块: - + Output Latency: 输出延迟: - + 20 ms 20 毫秒 - + Minimal 最小 - + Output Backend: 输出后端: - + Maximum Latency: 最大延迟: - + Output Device: 输出设备: @@ -1162,17 +1398,22 @@ Login token generated on %2. 新版本: - + + Download Size: + 下载大小: + + + Download and Install... 下载并安装... - + Skip This Update 跳过此更新 - + Remind Me Later 下次再提醒我 @@ -1182,17 +1423,17 @@ Login token generated on %2. 更新错误 - + <h2>Changes:</h2> <h2>改动:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>即时存档警告</h2><p>安装此更新将会使您的即时存档变得 <b>不兼容</b>。 请确认在安装此更新前您已经将您的游戏进度保存至记忆卡中,否则您将丢失进度。</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>设置警告</h2><p>安装此更新将重置您的程序配置。请注意在此更新后您必须重新配置您的设置。</p> @@ -1233,6 +1474,11 @@ Login token generated on %2. + Download Size: %1 MB + 下载大小: %1 MB + + + Loading... 正在载入... @@ -1240,63 +1486,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory BIOS 目录 - + PCSX2 will search for BIOS images in this directory. PCSX2 将搜索此目录中的 BIOS 映像。 - + Browse... 浏览... - + Reset 重置 - + BIOS Selection 选择 BIOS - - Open in Explorer... - 在浏览器中打开... + + Open BIOS Folder... + 打开 BIOS 文件夹... - + Refresh List 刷新列表 - + Filename 文件名 - + Version 版本 - + Options and Patches 选项和补丁 - + Fast Boot 快速启动 - + Fast Forward Boot 快进启动 @@ -1424,91 +1670,84 @@ Login token generated on %2. BreakpointModel - + Execute 执行 - - No Condition - 无条件 - - - - + + -- -- - - + Enabled 开启 - - + Disabled 关闭 - + Read 读取 - + Write(C) (C) = changes, as in "look for changes". 写入(C) - + Write 写入 - + TYPE Warning: limited space available. Abbreviate if needed. 类型 - + OFFSET Warning: limited space available. Abbreviate if needed. 偏移 - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. 大小 / 标签 - + INSTRUCTION Warning: limited space available. Abbreviate if needed. 指令 - + CONDITION Warning: limited space available. Abbreviate if needed. 条件 - + HITS Warning: limited space available. Abbreviate if needed. 命中 - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - 已启用 + X @@ -1519,7 +1758,7 @@ Login token generated on %2. 游戏光盘位于可卸载的驱动器上,可能会出现卡顿和死锁等性能问题。 - + Saving CDVD block dump to '{}'. 正在保存 CDVD 块转储到 '{}'。 @@ -1555,32 +1794,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type 虚拟控制器类型 - + Bindings 绑定 - + Settings 设置 - + Macros - + Automatic Mapping 自动映射 - + Clear Mapping 清除映射 @@ -1620,146 +1859,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 方向键 - - - + + + Down - - - + + + Left - - - + + + Up - - - + + + Right - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 左摇杆 - + Large Motor 大马达 - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. Start - + Select Leave this button name as-is or uppercase it entirely. Select - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 面板按钮 - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. × - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 右摇杆 - + Small Motor 小马达 - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier 压力修改器 - + Analog 模拟 @@ -1767,79 +2006,74 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - Form - - - + Yellow - - - - - - - - - - - + + + + + + + + + + + PushButton PushButton - + Start 开始 - + Red - + Green 绿 - + Orange - + Select Select - + Strum Up 向上伸展 - + Strum Down 向下伸展 - + Blue - + Whammy Bar - Whammy Bar + 颤音臂 - + Tilt - Tilt + 倾斜 @@ -1863,123 +2097,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL 输入源 - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). SDL 输入源支持大多数控制器并在蓝牙模式下为 DualShock 4/DualSense 手柄提供高级功能(震动/LED控制)。 - + Enable SDL Input Source 启用 SDL 输入源 - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense 增强模式 - + XInput Source XInput 输入源 - + Enable XInput Input Source 启用 XInput 输入源 - + DInput Source DInput 输入源 - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. DInput 输入源为不支持 XInput 的传统控制器提供支持。建议通过 SDL 访问这些控制器,但如果它们与 SDL 不兼容则可以使用 DirectInput。 - + Enable DInput Input Source 启用 Dinput 输入源 - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>某些第三方控制器错误地将其模拟杆标记为反向位置的部件,但不是负的。</p><p>因此,即使摇杆被重置为在中间位,它也还是会被&quot;卡住&quot;。 </p><p>启用此设置将告知 PCSX2 在创建映射时忽略反转标志,从而允许此类控制器正常运行。</p></body></html> + + + + Ignore Inversion + 忽略反转 + + + Profile Settings 方案设置 - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. 启用此选项后,可以在此输入方案文件中设置快捷键,并且将代替全局快捷键。默认情况下,快捷键始终在所有方案文件之间共享。 - + Use Per-Profile Hotkeys 为每一套方案启用不同快捷键 - - + + Controller LED Settings 控制器 LED 设置 - + Enable SDL Raw Input 开启 SDL Raw 输入 - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. XInput 输入源为 Xbox 360/Xbox One/Xbox Series 控制器以及使用 XInput 协议的第三方控制器提供支持。 - + Controller Multitap 多分插控制器 - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. 多分插最多可将 8 个控制器连接到主机。每个多分插提供 4 个端口。并不是所有的游戏都支持多分插。 - + Multitap on Console Port 1 主机端口 1 多分插 - + Multitap on Console Port 2 主机端口 2 多分插 - + Mouse/Pointer Source 鼠标/指针源 - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 允许您使用您的鼠标模拟摇杆移动。 - + Settings... 设置... - + Enable Mouse Mapping 开启鼠标映射 - + Detected Devices 已检测到的设备 @@ -2015,58 +2259,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons 绑定/按钮 - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. 选择用于触发这个宏命令的按钮。所有按钮都同时激活。 - + Pressure 压敏 - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. 对于压力感应按钮,此滑块控制当宏被激活时模拟力度的大小。 - - + + 100% 100% - + Trigger 触发 - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. 选择触发器以激活此宏。这可以是单个按钮,也可以是多个按钮的组合(chord)。按住Shift键并单击以获取多个触发器。 - + Deadzone: 死区: - + Frequency 频率 - + Macro will toggle every N frames. 每 N 帧将会触发一次宏。 - + Set... 设置... @@ -2169,46 +2413,46 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings PCSX2 控制器设置 - + Editing Profile: 编辑方案: - + New Profile 新建方案 - + Load Profile 载入方案 - + Delete Profile 删除方案 - - + + Restore Defaults - 还原默认设置 + 还原默认 - - + + Create Input Profile 创建输入方案 - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. @@ -2219,35 +2463,35 @@ Enter the name for the new input profile: 输入新输入配置文件的名称: - - - - + + + + Error 错误 - + A profile with the name '%1' already exists. 已经存在名称是 '%1' 的输入方案。 - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. 是否要将当前选定方案文件中的所有绑定复制到新方案文件?选择否将创建一个完全空的配置文件。 - + Failed to save the new profile to '%1'. 保存新方案到 '%1' 失败。 - + Load Input Profile 载入输入方案 - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. @@ -2260,12 +2504,12 @@ You cannot undo this action. 您无法撤销此操作。 - + Delete Input Profile 删除输入方案 - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. @@ -2274,12 +2518,12 @@ You cannot undo this action. 您无法撤销此操作。 - + Failed to delete '%1'. 删除 '%1' 失败。 - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. @@ -2291,13 +2535,13 @@ You cannot undo this action. 您无法撤销此操作。 - + Global Settings 全局设置 - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2305,8 +2549,8 @@ You cannot undo this action. %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. @@ -2314,26 +2558,26 @@ You cannot undo this action. %2 - - + + USB Port %1 %2 USB 端口 %1 %2 - + Hotkeys 热键 - + Shared "Shared" refers here to the shared input profile. 共享 - + The input profile named '%1' cannot be found. 找不到名称是 '%1' 的输入方案。 @@ -2405,204 +2649,242 @@ You cannot undo this action. 函数 - + + Module + 模块 + + + + Version + 版本 + + + + Count + 计数 + + + Refresh 刷新 - + Filter 筛选器 - + Memory Search 内存搜索 - + End 结束 - + Value - + Start 开始 - + Type 类型 - + 1 Byte (8 bits) 1 字节 (8 位) - + 2 Bytes (16 bits) 2 字节 (16 位) - + 4 Bytes (32 bits) 4 字节 (32 位) - + 8 Bytes (64 bits) 8 字节 (64 位) - + Float 浮点 - + Double 双精度 - + String 字符串 - + Array of byte 字节数组 - + Hex 十六进制 - + Search 搜索 - + Memory 内存 - + Breakpoints 中断点 - + Threads 线程 - + Active Call Stack 激活调用堆栈 - + Breakpoint List Context Menu 中断点关联菜单 - + New 新建 - + Edit 编辑 - - - + + + Copy 复制 - + Delete 删除 - + + + + Copy all as CSV + 复制全部为 CSV + + + + Paste from CSV + 粘贴自 CSV + + + Thread List Context Menu 线程列表关联菜单 - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ 未拆分符号 - + + Copy Function Name 复制函数名 - + + Copy Function Address 复制函数地址 - + + Go to in Disassembly 转到反汇编 - + + Go to in Memory View 转到内存视图 - + + + Module Tree + 模块树 + + + Stack List Context Menu 堆栈列表关联菜单 - - - - - + + + + + Debugger 调试器 - + Invalid start address 无效的起始地址 - + Invalid end address 无效的结束地址 - + Start address can't be equal to or greater than the end address 起始地址不能大于等于结束地址 - + Invalid search value 无效的搜索值 - + Value is larger than type 值大于类型 @@ -2658,22 +2940,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet 以太网 - + Ethernet Device: 以太网设备: - + Ethernet Device Type: 以太网设备类型: - + Intercept DHCP 拦截 DHCP @@ -2683,135 +2965,130 @@ You cannot undo this action. 启用 - + Enabled InterceptDHCP 开启 - + Subnet Mask: 子网掩码: - + Gateway Address: 网关地址: - - + + Auto 自动 - + Intercept DHCP: 拦截 DHCP: - + PS2 Address: PS2 地址: - + DNS1 Address: DNS1 地址: - + DNS2 Address: DNS2 地址: - + Internal DNS 内置 DNS - + Add 添加 - + Delete 删除 - + Export 导出 - + Import 导入 - + Per game 每游戏 - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 可以使用 DNS1/2 下拉菜单或将其设置为 192.0.2.1 来选择内部 DNS - + Enabled InternalDNSTable 开启 - + Hard Disk Drive 硬盘驱动器 - + HDD File: HDD 文件: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD 大小 (GiB): - + Enabled HDD 开启 - + Browse 浏览 - + Create Image 创建映像 - - - - - PCAP Bridged @@ -2844,7 +3121,7 @@ You cannot undo this action. - + Use Global Setting [%1] 使用全局设置 [%1] @@ -2864,78 +3141,78 @@ You cannot undo this action. 地址 - - + + Hosts File 主机文件 - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS 主机 - + Exported Successfully 已成功导出 - + Failed to open file 打开文件失败 - + No Hosts in file 文件中没有主机 - + Imported Successfully 导入成功 - - + + Per Game Host list 每游戏主机列表 - + Copy global settings? 要复制全局设置吗? - + Delete per game host list? 要删除每游戏主机列表吗? - + HDD Image File HDD 映像文件 - + HDD (*.raw) HDD (*.raw) - + Overwrite File? 要覆盖文件吗? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2944,22 +3221,22 @@ Do you want to overwrite? 您要覆盖它吗? - + HDD Creator HDD 创建器 - + HDD image created 已创建 HDD 映像 - + Use Global 使用全局设置 - + Override 覆盖 @@ -2967,69 +3244,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping 转储绘图 - + Dump GS Draws 转储 GS 绘图 - + Save RT 保存 RT - + Save Frame 保存帧 - + Save Texture 保存纹理 - + Save Depth 保存深度图 - + Start Draw Number: 从这个绘图编号开始: - + Draw Dump Count: 转储描绘数量: - + Hardware Dump Directory: 硬件转储目录: - + Software Dump Directory: 软件转储目录: - - + + Browse... 浏览... - - + + Open... 打开... @@ -3042,29 +3319,53 @@ Do you want to overwrite? PCSX2 调试器 - - - + + Run 运行 - + Step Into 单步执行 - + + F11 + F11 + + + Step Over 单步跳过 - + + F10 + F10 + + + Step Out 单步跳出 - + + Shift+F11 + Shift+F11 + + + + Always On Top + 总在最前 + + + + Show this window on top + 总在最前显示此窗口 + + + Pause 暂停 @@ -3077,149 +3378,174 @@ Do you want to overwrite? 反汇编 - + Copy Address 复制地址 - + Copy Instruction Hex 复制16进制指令 - + Copy Instruction Text 复制指令文本 - + Assemble new Instruction(s) 汇编新指令 - + NOP Instruction(s) NOP 指令 - + Run to Cursor 运行到光标 - + Jump to Cursor 跳转到光标 - + Toggle Breakpoint 切换中段点 - + Follow Branch 跟随分支 - + Go to Address 转到地址 - + Go to in Memory View 转到内存视图 - - + + Add Function 添加函数 - - + + Rename Function 重命名函数 - + Remove Function 移除函数 - - + + Assemble Error 汇编错误 - + Unable to change assembly while core is running 在内核运行时无法更改汇编 - + Assemble Instruction 汇编指令 - + Go to address 转到地址 - + Go to address error 转到地址错误 - + Invalid address 无效的地址 - + Add Function Error 添加函数错误 - + A function entry point already exists here. Consider renaming instead. 这里已经存在一个函数入口点。请考虑重新命名。 - - + + Function will be (0x%1) instructions long. Enter function name 函数将会是 (0x%1) 指令长。 输入函数名 - + Function name 函数名称 - - + + Rename Function Error 重命名函数错误 - + Function name cannot be nothing. 函数名不能为空。 - + No function / symbol is currently selected. 当前未选中函数 / 符号。 - + + Restore Function Error + 还原函数错误 + + + + Unable to stub selected address. + 无法留存选定的地址。 + + + + Restore Instruction(s) + 还原指令 + + + + Restore Function + 还原函数 + + + + Stub (NOP) Function + 桩(NOP)函数 + + + %1 NOT VALID ADDRESS %1 不是有效的地址 @@ -3227,17 +3553,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">找不到支持格式的游戏。</span></p><p>请从添加一个带有游戏的目录开始。</p><p>以下格式转储的游戏将被扫描并列出:</p></body></html> - + Add Game Directory... 添加游戏目录... - + Scan For New Games 扫描新游戏 @@ -3245,47 +3571,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + 存档: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + 存档: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS 游戏: %1 FPS - + Video: %1 FPS (%2%) 视频: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - 游戏 ID: %1 -游戏标题: %2 -成就: %5 (%6) - + 游戏: %1 (%2) - - - %n points - - %n 点 - - - + Rich presence inactive or unsupported. 富状态未激活或不支持。 - + Game not loaded or no RetroAchievements available. 游戏未加载或无 RetroAchievements 成就可用。 @@ -3293,192 +3616,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control 速度控制 - + Normal Speed: 正常速度: - + Enable Speed Limiter 开启速度限制器 - + System Settings 系统设置 - + Enable Instant VU1 开启即时 VU1 - + Enable Cheats 开启作弊 - + Slow-Motion Speed: 慢动作速度: - + Fast-Forward Speed: 快进速度: - + Enable Multithreaded VU1 (MTVU) 开启多线程 VU1 (MTVU) - + Enable Host Filesystem 开启主机文件系统 - + Enable Fast CDVD 开启快速 CDVD - + EE Cycle Skipping: EE 循环跳过: - - + + Disabled 关闭 - + Mild Underclock 轻微降频 - + Moderate Underclock 中度降频 - + Maximum Underclock 最大降频 - + EE Cycle Rate: EE 循环率: - + 50% (Underclock) 50% (降频) - + 60% (Underclock) 60% (降频) - + 75% (Underclock) 75% (降频) - + 100% (Normal Speed) 100% (普通速度) - + 130% (Overclock) 130% (超频) - + 180% (Overclock) 180% (超频) - + 300% (Overclock) 300% (超频) - + Affinity Control: 倾向控制: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control 帧步调 / 延迟控制 - + frames This string will appear next to the amount of frames selected, in a dropdown box. - + Maximum Frame Latency: 最大帧延迟: - + Optimal Frame Pacing 最优帧步调 - + Scale To Host Refresh Rate 适应主机刷新率 @@ -3566,12 +3889,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. 允许游戏和自制软件直接访问主机上的文件/文件夹。 + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + 加快模拟速度,使来宾刷新率与主机匹配。这会产生尽可能最流畅的动画,但可能会将模拟速度提高不到 1%。如果主机的刷新率与宿主的刷新率相差太远,则宿主刷新率将不会生效。具有可变刷新率显示器的用户应禁用此选项。 + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" 快进速度 + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3635,45 +3968,40 @@ Achievements: %5 (%6) 设置可以排队到 GS 的最大帧数量,在此之前 CPU 线程将等待其中一个帧完成然后再继续。较高的值有助于平滑不规则的帧时间,但会增加额外的输入延迟。 - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - 调整模拟速度以便在启用垂直同步和音频重采样设置时游戏机的刷新率与主机的刷新率相匹配。这会产生尽可能最流畅的动画,但可能会将模拟速度提高不到 1%。如果游戏机的刷新率与主机的刷新率相差太大则主机刷新率将不会生效。具有可变刷新率显示器的用户应禁用此选项。 - - - + Use Global Setting [%1%] 使用全局设置 [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. 不限制 - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. 自定义 - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] 自定义 [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed 自定义速度 - + Enter Custom Speed 输入自定义速度 @@ -3681,79 +4009,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory 缓存目录 - - - - - + + + + + Browse... 浏览... - - - - - + + + + + Open... 打开... - - - - - + + + + + Reset 重置 - + Used for storing shaders, game list, and achievement data. 用于存储着色器、游戏列表,以及成就数据。 - + Cheats Directory 作弊目录 - + Used for storing .pnach files containing game cheats. 用于保存含有游戏作弊的 .pnach 文件目录。 - + Covers Directory 封面目录 - + Used for storing covers in the game grid/Big Picture UIs. 用于在游戏网格/大图片用户界面中存储封面。 - + Snapshots Directory 快照目录 - + Used for screenshots and saving GS dumps. 用户保存截图并保存 GS 转储。 - + Save States Directory 即时存档目录 - + Used for storing save states. 用于保存即时存档。 @@ -3761,2082 +4089,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. 找不到任何 CD/DVD-ROM 设备。请确保您已连接驱动器并具有足够的访问权限。 - + Use Global Setting 使用全局设置 - + Automatic binding failed, no devices are available. 自动绑定失败,没有可用设备。 - + Game title copied to clipboard. 游戏标题已复制到剪贴板。 - + Game serial copied to clipboard. 游戏序列号已复制到剪贴板。 - + Game CRC copied to clipboard. 游戏 CRC 已复制到剪贴板。 - + Game type copied to clipboard. 游戏类型已复制到剪贴板。 - + Game region copied to clipboard. 游戏区域已复制到剪贴板。 - + Game compatibility copied to clipboard. 游戏兼容性已复制到剪贴板。 - + Game path copied to clipboard. 游戏路径已复制到剪贴板。 - + Per-game controller configuration initialized with global settings. 已使用全局设置初始化每个游戏的控制器配置。 - + Controller settings reset to default. 已将控制器设置重置为默认。 - + No input profiles available. 没有可用的输入方案。 - + Create New... 新建... - + Enter the name of the input profile you wish to create. 请输入您要创建的输入方案名称。 - + Are you sure you want to restore the default settings? Any preferences will be lost. 您确实要恢复默认设置吗?所有参数都将丢失。 - + Settings reset to defaults. 设置已被重置为默认值。 - - Quick Save Slot - 快速存档位置 - - - + No save present in this slot. 此位置中无存档。 - + No save states found. 找不到即时存档。 - + Failed to delete save state. 删除即时存档失败。 - + Failed to copy text to clipboard. 复制文本到剪贴板失败。 - + This game has no achievements. 此游戏没有成就。 - + This game has no leaderboards. 此游戏没有排行榜。 - + Reset System 重置系统 - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? 不会启用硬核模式直到系统被重置。您要立即重置系统吗? - + Launch a game from images scanned from your game directories. 从您游戏目录扫描所获得的图片启动游戏。 - + Launch a game by selecting a file/disc image. 通过选择一个文件/光盘映像启动游戏。 - + Start the console without any disc inserted. 在没有插入任何光盘的情况下启动主机。 - + Start a game from a disc in your PC's DVD drive. 启动您 PC 的 DVD 驱动器中光盘上的游戏。 - + Change settings for the emulator. 更改模拟器的设置。 - + Exits the program. 退出程序。 - + No Binding 没有绑定 - + Setting %s binding %s. 设置 %s 绑定 %s。 - + Push a controller button or axis now. 现在请按下控制的按钮或轴。 - + Timing out in %.0f seconds... %.0f 秒后超时... - + Unknown 未知 - + OK 确定 - + Select Device 选择驱动器 - + Details 详情 - + Options 选项 - + Copies the current global settings to this game. 复制当前的全局设置到此游戏。 - + Clears all settings set for this game. 清除此游戏的所有设置。 - + Behaviour 行为 - + Prevents the screen saver from activating and the host from sleeping while emulation is running. 在模拟运行时防止屏幕保护程序激活和主机休眠。 - + Shows the game you are currently playing as part of your profile on Discord. 将您当前正在游玩的游戏显示在 Discord 中您个人档案中。 - + Pauses the emulator when a game is started. 游戏开始时暂停模拟器。 - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. 在最小化窗口或切换到另一个应用程序时暂停模拟器并在切换回时取消暂停。 - + Pauses the emulator when you open the quick menu, and unpauses when you close it. 在您打开快速菜单时暂停模拟器。并在您关闭它时取消暂停。 - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. 确认按下热键时是否显示确认关闭模拟器/游戏的提示。 - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. 关机或退出时自动保存模拟器状态。然后您可以直接从下一次停止的位置继续。 - - Enables loading ini overlays from gamesettings, or custom settings per-game. - 允许从游戏设置或每个游戏的自定义设置加载 ini 覆盖。 - - - + Uses a light coloured theme instead of the default dark theme. 使用浅色主题而不是默认的深色主题。 - + Game Display 游戏显示 - - Automatically switches to fullscreen mode when the program is started. - 程序启动时自动切换到全屏模式。 - - - + Switches between full screen and windowed when the window is double-clicked. 双击窗口时在全屏和窗口之间切换。 - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. 当模拟器处于全屏模式时隐藏鼠标指针/光标。 - + Determines how large the on-screen messages and monitor are. 确定屏显消息和监视器的大小。 - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. 显示屏显消息-当事件发生时显示消息例如正在创建/加载保存即时存档、正在截取屏幕截图等。 - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. 在屏幕的右上角以百分比形式显示系统的当前模拟速度。 - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. 在显示器的右上角显示系统每秒视频帧(或垂直同步)数。 - + Shows the CPU usage based on threads in the top-right corner of the display. 在显示器的右上角显示基于线程的 CPU 占用率。 - + Shows the host's GPU usage in the top-right corner of the display. 在显示器的右上角显示主机的 GPU 占用率。 - - Shows the resolution the game is rendering at in the top-right corner of the display. - 在显示器的右上角显示游戏渲染的分辨率。 - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. 在显示器的右上角显示有关 GS (原语、绘制调用) 的统计信息。 - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. 在快进、暂停和其他异常状态处于活动状态时显示指示器。 - + Shows the current configuration in the bottom-right corner of the display. 在显示器的右下角显示当前配置。 - + Shows the current controller state of the system in the bottom-left corner of the display. 在显示器的左下角显示系统的当前控制器状态。 - + Shows a visual history of frame times in the upper-left corner of the display. 在显示器的左上角显示帧时间的可视历史记录。 - + Displays warnings when settings are enabled which may break games. 当设置可能破坏游戏时显示警告。 - + Resets configuration to defaults (excluding controller settings). 将设置重置为默认 (控制器设置除外)。 - + Changes the BIOS image used to start future sessions. 更改启动下次会话所需的 BIOS 映像。 - + Automatic 自动 - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + 默认 + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + 启用后,将应用每个游戏的自定义设置。禁用以始终使用全局配置。 + + + + Automatically switches to fullscreen mode when a game is started. + 游戏开始时自动切换到全屏模式。 + + + On-Screen Display - On-Screen Display + 屏上显示 - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + 在屏幕的右上角显示游戏的分辨率。 + + + BIOS Configuration - BIOS Configuration + BIOS 配置 - + BIOS Selection 选择 BIOS - + Options and Patches - Options and Patches + 选项和补丁 - + Skips the intro screen, and bypasses region checks. 跳过标题画面,并且绕过区域检测。 - + Speed Control 速度控制 - + Normal Speed 普通速度 - + Sets the speed when running without fast forwarding. 设置在没有快进时的速度。 - + Fast Forward Speed 快进速度 - + Sets the speed when using the fast forward hotkey. 设置使用快进热键时的速度。 - + Slow Motion Speed 慢动作速度 - + Sets the speed when using the slow motion hotkey. 设置使用慢动作热键时的速度。 - + Enable Speed Limiter 开启速度限制器 - + When disabled, the game will run as fast as possible. 禁用时,游戏将以尽可能快的速度运行。 - + System Settings 系统设置 - + EE Cycle Rate EE 循环率 - + Underclocks or overclocks the emulated Emotion Engine CPU. 降频或超频所模拟的情感引擎 CPU。 - + EE Cycle Skipping EE 循环跳过 - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - 添加一次惩罚到用于执行 VU 程序的仿真情感引擎。 - - - + Affinity Control Mode 亲和力控制模式 - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. 将模拟线程固定到 CPU 核心以潜在地改善性能/帧时间差异。 - + Enable MTVU (Multi-Threaded VU1) 开启 MTVU (多线程 VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - 为 VU1 微程序使用第二个线程。相当大的提速。 - - - + Enable Instant VU1 开启即时 VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - 减少 VU1 和 EE 重编译器之间的时间切片,有效地以无限时钟速度运行 VU1。 - - - + Enable Cheats 开启作弊 - + Enables loading cheats from pnach files. 开启从 pnach 文件加载作弊。 - + Enable Host Filesystem 开启主机文件系统 - + Enables access to files from the host: namespace in the virtual machine. 开启访问主机中的文件:虚拟机中的命名空间。 - + Enable Fast CDVD 开启快速 CDVD - + Fast disc access, less loading times. Not recommended. 快速光盘访问,较少的加载时间。不推荐。 - + Frame Pacing/Latency Control 帧调整/延迟控制 - + Maximum Frame Latency 最大帧延迟 - + Sets the number of frames which can be queued. 设置可以排队的帧数量。 - + Optimal Frame Pacing 最佳帧调步 - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. 在每一帧之后同步 EE 和 GS 线程。最低输入延迟,但增加了系统需求。 - - Adjust To Host Refresh Rate - 调整为主机刷新率 - - - + Speeds up emulation so that the guest refresh rate matches the host. 加快模拟速度,使来宾刷新率与宿主匹配。 - + Renderer 渲染器 - + Selects the API used to render the emulated GS. 选择用于渲染模拟 GS 的 API。 - + Sync To Host Refresh (VSync) 同步为主机刷新率 (垂直同步) - + Synchronizes frame presentation with host refresh. 使帧显示与主机刷新同步。 - + Display 显示 - + Aspect Ratio 高宽比 - + Selects the aspect ratio to display the game content at. 选择用于显示游戏内容的高宽比。 - + FMV Aspect Ratio FMV 高宽比 - + Selects the aspect ratio for display when a FMV is detected as playing. 选择检测到正在播放 FMV 时的高宽比。 - + Deinterlacing 反交错 - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. 选择将 PS2 的隔行输出转换为逐行显示的算法。 - + Screenshot Size 截图尺寸 - + Determines the resolution at which screenshots will be saved. 确定保存屏幕截图的分辨率。 - + Screenshot Format 截图格式 - + Selects the format which will be used to save screenshots. 选择保存屏幕截图的格式。 - + Screenshot Quality 截图质量 - + Selects the quality at which screenshots will be compressed. 选择屏幕截图的压缩质量。 - + Vertical Stretch 垂直拉伸 - + Increases or decreases the virtual picture size vertically. 增大或减小可见画面的垂直尺寸。 - + Crop 裁剪 - + Crops the image, while respecting aspect ratio. 裁剪图像,同时考虑纵横比。 - + + %dpx + %dpx + + + Enable Widescreen Patches 开启宽屏补丁 - + Enables loading widescreen patches from pnach files. 开启从 pnach 文件中加载宽屏补丁。 - + Enable No-Interlacing Patches 开启反隔行扫描补丁 - + Enables loading no-interlacing patches from pnach files. 开启从 pnach 文件中加载去隔行扫描补丁。 - + Bilinear Upscaling - 双线性升格 + 双线性缩放 - + Smooths out the image when upscaling the console to the screen. 在将主机画面升格到屏幕时平滑画面。 - + Integer Upscaling 整数倍拉伸 - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. 填充显示区域以确保主机上的像素与游戏机中的像素之间的比率为整数。可能会在一些2D游戏中产生更清晰的图像。 - + Screen Offsets 屏幕偏移 - + Enables PCRTC Offsets which position the screen as the game requests. 开启根据游戏要求定位屏幕的 PCRTC 偏移量。 - + Show Overscan 显示过扫描 - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. 启用该选项可显示绘制在超过屏幕安全区域的过扫描区域。 - + Anti-Blur 反模糊 - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. 启用内部反模糊 hack。这会降低 PS2 的渲染精度但会使许多游戏看起来不那么模糊。 - + Rendering 渲染 - + Internal Resolution 内部分辨率 - + Multiplies the render resolution by the specified factor (upscaling). 按指定倍数放大渲染分辨率(升格)。 - + Mipmapping 纹理贴图 - + Determines how mipmaps are used when rendering textures. 确认渲染纹理时如何使用纹理贴图。 - + Bilinear Filtering 双线性过滤 - + Selects where bilinear filtering is utilized when rendering textures. 选择渲染纹理时使用双线性过滤的位置。 - + Trilinear Filtering 三线性过滤 - + Selects where trilinear filtering is utilized when rendering textures. 选择渲染纹理时使用三线性过滤的位置。 - + Anisotropic Filtering - 各意向性过滤 - - - - Selects where anistropic filtering is utilized when rendering textures. - 选择渲染纹理时使用各异向性的位置。 + 各异向性过滤 - + Dithering 抖动 - + Selects the type of dithering applies when the game requests it. 选择游戏请求抖动时要使用的类型。 - + Blending Accuracy 混合精确性 - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. 当模拟主机图形 API 不支持的混合模式时,确定精度水平。 - + Texture Preloading 预加载纹理 - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. 在使用时将完整纹理上载到 GPU,而不仅仅是已使用的区域。可以在某些游戏中提高性能。 - + Software Rendering Threads 软件渲染线程 - + Number of threads to use in addition to the main GS thread for rasterization. 用于附加在光栅化的主 GS 线程上的线程数。 - + Auto Flush (Software) 自动刷新 (软件) - + Force a primitive flush when a framebuffer is also an input texture. 当帧缓冲区也是输入纹理时强制基本体刷新。 - + Edge AA (AA1) 边缘 AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). 开启模拟 GS 的边缘抗锯齿 (AA1)。 - + Enables emulation of the GS's texture mipmapping. 开启模拟 GS 的纹理贴图。 - + Hardware Fixes 硬件修复 - + Manual Hardware Fixes 手动硬件修复 - + Disables automatic hardware fixes, allowing you to set fixes manually. 关闭自动硬件修复,允许您手动设置修复。 - + CPU Sprite Render Size CPU 活动块渲染器大小 - + Uses software renderer to draw texture decompression-like sprites. 使用软件渲染器绘制类似于纹理解压缩的活动块。 - + CPU Sprite Render Level CPU 活动块渲染器水平 - + Determines filter level for CPU sprite render. 确定 CPU 活动块渲染器的滤镜水平。 - + Software CLUT Render 软件 Clut 渲染 - + Uses software renderer to draw texture CLUT points/sprites. 使用软件渲染器绘制纹理 CLUT 点/活动块。 - + Skip Draw Start 跳过描绘开始 - + Object range to skip drawing. 要跳过描绘的对象范围。 - + Skip Draw End 跳过描绘结束 - + Auto Flush (Hardware) 自动刷新 (硬件) - + CPU Framebuffer Conversion CPU 帧缓冲转换 - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. 在 CPU 而不是 GPU 上转换 4 位和 8 位帧缓冲区。 - - Disable Depth Support - 关闭深度支持 - - - - Disable the support of depth buffer in the texture cache. - 关闭纹理缓冲中的深度支持。 - - - + Disable Safe Features 关闭安全功能 - + This option disables multiple safe features. 此选项会关闭多个安全功能。 - - Disable Render Features - 关闭渲染器功能 - - - + This option disables game-specific render fixes. 此选项会关闭指定的游戏渲染器修复。 - - Preload Frame - 预载帧 - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. 渲染新帧时上载 GS 数据以准确再现某些效果。 - + Disable Partial Invalidation 禁用部分失效 - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. 当存在任何相交时移除纹理缓存条目,而不仅仅是相交区域。 - - Texture Inside Render Target - 渲染目标内部的纹理 - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. 允许纹理缓存将上一个帧缓冲区的内部数据作为输入纹理重新使用。 - + Read Targets When Closing 关闭时读取目标 - + Flushes all targets in the texture cache back to local memory when shutting down. 关闭时将纹理缓存中的所有目标刷新回本地内存。 - + Estimate Texture Region 估计纹理区域 - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). 尝试在游戏本身不设置纹理大小时减小纹理大小(例如 Snowblind 游戏)。 - + GPU Palette Conversion GPU 调色板转换 - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - 使用 GPU 替代 CPU 应用调色板到纹理上。可以在某些游戏中改善速度。 - - - + Upscaling Fixes - Upscaling Fixes - - - - Half-Pixel Offset - 半像素偏移 + 倍线修复 - + Adjusts vertices relative to upscaling. 相对于放大比例调整顶点。 - + Round Sprite 活动块环绕 - + Adjusts sprite coordinates. 调节活动块坐标。 - + Bilinear Upscale 双线性升格 - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. 由于在缩放时会进行双线性过滤所以可以平滑纹理。 - - TC Offset X - TC 偏移 X - - - + Adjusts target texture offsets. 调节目标纹理偏移。 - - TC Offset Y - TC 偏移 Y - - - + Align Sprite 排列活动块 - + Fixes issues with upscaling (vertical lines) in some games. 修正了某些游戏中升格(垂直线)问题。 - + Merge Sprite - 合并活动快 + 合并活动块 - + Replaces multiple post-processing sprites with a larger single sprite. 将多个后处理活动块替换为更大的单个块。 - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. 降低 GS 精度以避免在缩放时像素之间出现间隙。修正了 Wild Arms 游戏中的文字。 - + Unscaled Palette Texture Draws 未缩放的调色板纹理绘制 - + Can fix some broken effects which rely on pixel perfect precision. 可以修复一些依赖于像素完美精度的破碎效果。 - + Texture Replacement 纹理替换 - + Load Textures 加载纹理 - + Loads replacement textures where available and user-provided. 加载用户提供的可用替换纹理。 - + Asynchronous Texture Loading 异步纹理加载 - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. 将替换纹理加载到辅助线程上,从而在启用替换时减少微卡顿。 - + Precache Replacements 预缓存替换 - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. 预先加载所有的替换纹理到内存中。不再需要异步加载。 - + Replacements Directory 替换目录 - + Folders 文件夹 - + Texture Dumping 纹理转储 - + Dump Textures 转储纹理 - - Dumps replacable textures to disk. Will reduce performance. - 转储可替换的纹理到磁盘中。将会降低性能。 - - - + Dump Mipmaps 转储纹理贴图 - + Includes mipmaps when dumping textures. 在转储纹理时包含纹理贴图。 - + Dump FMV Textures 转储 FMV 纹理 - + Allows texture dumping when FMVs are active. You should not enable this. 在 FNV 活动时允许纹理转储。您应该开启此选项。 - + Post-Processing 后置处理 - + FXAA FXAA - + Enables FXAA post-processing shader. 开启 FXAA后处理着色器。 - + Contrast Adaptive Sharpening 对比度自适应锐化 - + Enables FidelityFX Contrast Adaptive Sharpening. 开启 FidelityFX 对比度自适应锐化。 - + CAS Sharpness CAS 锐化 - + Determines the intensity the sharpening effect in CAS post-processing. 确定 CAS 后处理中锐化效果的强度。 - + Filters 滤镜 - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. 开启亮度/对比度/饱和度调整。 - + Shade Boost Brightness Shade Boost 亮度 - + Adjusts brightness. 50 is normal. 调节亮度。50 为普通。 - + Shade Boost Contrast Shade Boost 对比度 - + Adjusts contrast. 50 is normal. 调节对比度。50 为普通。 - + Shade Boost Saturation Shade Boost 饱和度 - + Adjusts saturation. 50 is normal. 调节饱和度。50 为普通。 - + TV Shaders TV 着色器 - - Selects post-processing TV shader. - 选择后处理 TV 着色器。 - - - + Advanced 高级 - + Skip Presenting Duplicate Frames 跳过显示重复帧 - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - 跳过显示在 25/30fps 游戏中不变的帧。可以提高速度但会增加输入延迟/使帧步调变得更差。 - - - + Disable Threaded Presentation - 禁用线程化展示 - - - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - 在辅助线程上显示帧,而不是在GS线程上。可以改善某些系统上的帧时间,但代价是可能会导致更差的帧间隔。 + 禁用线程化展示 - + Hardware Download Mode 硬件下载模式 - + Changes synchronization behavior for GS downloads. 更改 GS 下载的同步行为。 - + Allow Exclusive Fullscreen 允许独占全屏 - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. 覆盖驱动的启发式规则以启用独占全屏或直接翻转/扫描。 - + Override Texture Barriers 覆盖纹理光栅 - + Forces texture barrier functionality to the specified value. 将纹理屏障功能强制设置为指定值。 - + GS Dump Compression GS 转储压缩 - + Sets the compression algorithm for GS dumps. 设置 GS 转储的压缩算法。 - + Disable Framebuffer Fetch 关闭帧缓冲获取 - + Prevents the usage of framebuffer fetch when supported by host GPU. 当主机 GPU 支持时防止使用帧缓冲区提取。 - + Disable Dual-Source Blending 关闭双源混合 - + Prevents the usage of dual-source blending when supported by host GPU. 当主机 GPU 支持时防止使用双源混合。 - + Disable Shader Cache 关闭着色器缓存 - + Prevents the loading and saving of shaders/pipelines to disk. 防止加载以及保存着色器/管道到磁盘上。 - + Disable Vertex Shader Expand 关闭顶点着色器扩展 - + Falls back to the CPU for expanding sprites/lines. 退回到 CPU 以扩展活动块/行数。 - + Runtime Settings 运行时设置 - + Applies a global volume modifier to all sound produced by the game. 将全局音量修改器应用于游戏产生的所有声音。 - + Mixing Settings 混响设置 - + Changes when SPU samples are generated relative to system emulation. 相对于系统模拟生成 SPU 采样时更改。 - + Determines how the stereo output is transformed to greater speaker counts. 确定如何将立体声输出转换为更多的扬声器数量。 - + Output Settings 输出设置 - + Determines which API is used to play back audio samples on the host. 确定使用哪个 API 在主机上播放音频采样。 - + Sets the average output latency when using the cubeb backend. 设置使用 cubeb 后端时的平均输出延迟。 - + + %d ms (avg) + %d ms (平均) + + + Timestretch Settings 时间延展设置 - + Affects how the timestretcher operates when not running at 100% speed. 影响不以100%速度运行时时间延伸器的运行方式。 - + + %d ms + %d ms + + + Settings and Operations 设置与操作 - + Creates a new memory card file or folder. 创建一个新的记忆卡或文件夹。 - + Simulates a larger memory card by filtering saves only to the current game. 通过过滤仅用于当前游戏存档来模拟一个更大的记忆卡。 - + Automatically ejects Memory Cards when they differ after loading a state. 加载即时存档后当记忆卡不同时自动弹出记忆卡。 - + If not set, this card will be considered unplugged. 如果未设置,此卡将被视为未插入。 - + The selected memory card image will be used for this slot. 选定的记忆卡映像将用于此位置。 - + Resets the card name for this slot. 重置此位置中的记忆卡名称。 - + Create Memory Card 创建记忆卡 - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. 输入要创建的记忆卡的名称,然后选择大小。我们建议使用 8MB 记忆卡或文件夹记忆卡以获得最佳兼容性。 - + Card Name: 卡带名称: - + Configuration 配置 - + Uses game-specific settings for controllers for this game. 为此游戏使用特定于游戏的控制器设置。 - + Copies the global controller configuration to this game. 复制全局控制器设置到此游戏。 - + Resets all configuration to defaults (including bindings). 重置所有配置为默认值 (包含绑定)。 - + Replaces these settings with a previously saved input profile. 将这些设置重置为上次保存的输入方案。 - + Stores the current settings to an input profile. 保存当前的设置到一个输入方案。 - + Input Sources 输入源 - + The SDL input source supports most controllers. SDL 输入源支持最多控制器。 - + Provides vibration and LED control support over Bluetooth. 通过蓝牙提供震动和 LED 控制支持。 - + Allow SDL to use raw access to input devices. 允许 SDL 使用 raw 访问输入设备。 - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. Xinput 源提供对 XBox 360/XBox One/XBox Series 控制器的支持。 - + Multitap 多分插 - + Enables an additional three controller slots. Not supported in all games. 开启一个额外的三个控制器插槽。不是所有游戏都支持。 - + Attempts to map the selected port to a chosen controller. 尝试映射选定的端口到选定的控制器上。 - + No Buttons Selected 没有选定按钮 - + Determines how much pressure is simulated when macro is active. 确定当宏处于活动状态时模拟的压力大小。 - + Determines the pressure required to activate the macro. 确定激活宏所需的压力。 - + Toggle every %d frames 切换每 %d 帧 - + Clears all bindings for this USB controller. 清除此 USB 控制器的所有绑定。 - + Data Save Locations 数据保存位置 - + Show Advanced Settings 显示高级设置 - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. 更改这些选项可能会导致游戏无法运行。修改风险自负,PCSX2 团队不会为更改了这些设置的配置提供支持。 - + Logging - Logging + 日志 - + System Console 系统控制台 - + Writes log messages to the system console (console window/standard output). 写入日志消息到系统控制台 (控制台窗口/标准输出)。 - + File Logging 文件日志 - + Writes log messages to emulog.txt. 写入日志消息到 emulog.txt。 - + Verbose Logging 详细日志记录 - + Writes dev log messages to log sinks. 将开发日志消息写入日志接收器。 - + Log Timestamps 记录时间戳 - + Writes timestamps alongside log messages. 在日志消息旁边写入时间戳。 - + EE Console EE 控制台 - + Writes debug messages from the game's EE code to the console. 将调试消息从游戏的 EE 代码写入控制台。 - + IOP Console IOP 控制台 - + Writes debug messages from the game's IOP code to the console. 将调试消息从游戏的 IOP 代码写入控制台。 - + CDVD Verbose Reads CDVD 详细读取 - + Logs disc reads from games. 记录游戏读取光盘。 - + Emotion Engine 情感引擎 - + Rounding Mode 环绕模式 - + Determines how the results of floating-point operations are rounded. Some games need specific settings. 确定如何四舍五入浮点运算的结果。有些游戏需要特定的设置。 - + Clamping Mode 接触模式 - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. 确定如何处理超出范围的浮点数。有些游戏需要特定的设置。 - + Enable EE Recompiler 开启 EE 重编译器 - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. 执行 64 位 MIPS-IV 机器码到本机代码的实时二进制转换。 - + Enable EE Cache 开启 EE 缓存 - + Enables simulation of the EE's cache. Slow. 开启模拟 EE 缓存。慢。 - + Enable INTC Spin Detection 开启 INTC 自旋检测 - + Huge speedup for some games, with almost no compatibility side effects. 对某些游戏有巨大的加速作用,几乎没有兼容性的副作用。 - + Enable Wait Loop Detection 开启等待循环检测 - + Moderate speedup for some games, with no known side effects. 适度加速某些游戏,没有已知的副作用。 - + Enable Fast Memory Access 开启快速内存访问 - + Uses backpatching to avoid register flushing on every memory access. 使用回补以避免在每次内存访问时刷新寄存器。 - + Vector Units 矢量单元 - + VU0 Rounding Mode VU0 循环模式 - + VU0 Clamping Mode VU0 压制模式 - + VU1 Rounding Mode VU1 循环模式 - + VU1 Clamping Mode VU1 压制模式 - + Enable VU0 Recompiler (Micro Mode) 开启 VU0 重编译器 (微模式) - + New Vector Unit recompiler with much improved compatibility. Recommended. 新的矢量单元重编译器将大幅改善兼容性。推荐。 - + Enable VU1 Recompiler 开启 VU1 重编译器 - + Enable VU Flag Optimization 开启 VU 标志优化 - + Good speedup and high compatibility, may cause graphical errors. 良好的加速和高兼容性,可能会导致图形错误。 - + I/O Processor I/O 处理器 - + Enable IOP Recompiler 开启 IOP 重编译器 - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. 执行 32 位 MIPS-I 机器码到本机代码的实时二进制转换。 - + Graphics 图形 - + Use Debug Device 使用调试设备 - - Enables API-level validation of graphics commands - 启用图形命令的 API 级验证 - - - + Settings 设置 - + No cheats are available for this game. 没有此游戏可用的作弊。 - + Cheat Codes 作弊代码 - + No patches are available for this game. 没有此游戏可用的补丁。 - + Game Patches 游戏补丁 - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. 激活作弊可能会导致不可预测的行为、崩溃、软锁或破坏已保存的游戏。 - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. 激活游戏补丁可能会导致不可预测的行为、崩溃、软锁或破坏已保存的游戏。 - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. 使用补丁的风险自负,PCSX2 团队将不会为启用游戏补丁的用户提供支持。 - + Game Fixes 游戏修正 - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. 除非您知道每个选项的作用以及这样做的影响,否则不应修改游戏修复。 - + FPU Multiply Hack FPU 乘法 Hack - + For Tales of Destiny. 用于宿命传说。 - + FPU Negative Div Hack FPU 负除 Hack - + For Gundam games. 用于高达游戏。 - + Preload TLB Hack 预载 TLB Hack - - To avoid tlb miss on Goemon. - 防止大盗伍佑卫门 tlb 丢失。 - - - - Switch to Software renderer for FMVs. - 为 FMV 切换软件渲染器。 - - - + Needed for some games with complex FMV rendering. 某些复杂 FMV 渲染的游戏需要。 - + Skip MPEG Hack 跳过 MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. 跳过游戏中的视频/FMV 以避免游戏挂起/冻结。 - + OPH Flag Hack OPH 标志 Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - 已知对下列游戏有效:死神战士之刃、梦幻骑士 II 和 III、巫术。 - - - + EE Timing Hack EE 计时 Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - 已知对下列游戏有效: 数码恶魔传说 (修复 FMV 和崩溃)、SSX (修复错误的图形和崩溃)。 - - - + Instant DMA Hack 即时 DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - 已知对下列游戏有效: 火爆摔角 (错误的环图形)。 + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + 已知对下列游戏有效: 玛娜传奇 1、沙尘之锁、敌后阵线。 - - Handle DMAC writes when it is busy. - 处理 DMAC 写入在其繁忙时。 + + For SOCOM 2 HUD and Spy Hunter loading hang. + 用于 SOCOM 2 HUD 和 Spy Hunter 加载挂起。 - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - 已知对下列游戏有效: 玛娜传奇 1、沙尘之锁、敌后阵线。 + + VU Add Hack + VU 加法 Hack - - Force GIF PATH3 transfers through FIFO - 强制通过 FIFO 传输 GIF PATH3 + + Full VU0 Synchronization + 完整 VU0 同步 - - (Fifa Street 2). - (街头 Fifa 2)。 + + Forces tight VU0 sync on every COP2 instruction. + 在每个 COP2 指令上强制严格 VU0 同步。 - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - 模拟 VIF1 FIFO 预读。修复了加载速度较慢的游戏。 + + VU Overflow Hack + VU 溢出 Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - 已知对下列游戏有效: 无限试驾、变形金刚。 + + To check for possible float overflows (Superman Returns). + 检测可能的浮点溢出 (超人回归)。 - - Delay VIF1 Stalls (VIF1 FIFO) - 延迟 VIF1 停顿 (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + 为 VU XGKicks 使用精确计时 (较慢)。 - - For SOCOM 2 HUD and Spy Hunter loading hang. - 用于 SOCOM 2 HUD 和 Spy Hunter 加载挂起。 + + Quadraphonic + 四声道 - - VU Add Hack - VU 加法 Hack + + Load State + 加载即时存档 - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - 需要此 hack 启动的游戏: 星之海洋 3、凡人物语、北欧女神 2。 + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + 使模拟情感引擎跳过循环。有助于类似 SOTC 这样的一小部分游戏。大多数情况下这对性能是有害的。 - - VU I bit Hack avoid constant recompilation in some games - VU I 位 Hack 避免在某些游戏中不断重新编译 + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + 通常在具有 4 个或更多核心的 CPU 上有加速效果。对大多数游戏来说都是安全的,但是也有一些是不兼容的可能会卡死。 - - Scarface The World Is Yours, Crash Tag Team Racing. - 疤面煞星掌握世界、古惑狼赛车团队竞速. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + 立即运行 VU1。在大多数游戏中提供适度的速度提升。对于大多数游戏来说是安全的,但少数游戏可能会显示图形错误。 - - Full VU0 Synchronization - 完整 VU0 同步 + + Scale To Host Refresh Rate + 适应主机刷新率 - - Forces tight VU0 sync on every COP2 instruction. - 在每个 COP2 指令上强制严格 VU0 同步。 + + Disable Depth Emulation + 关闭深度模拟 - - VU Sync (Run behind) - VU 同步 (跟在后面) + + Disable the support of depth buffers in the texture cache. + 关闭纹理缓存中深度缓冲区的支持。 - - To avoid sync problems when reading or writing VU registers. - 以避免在读取或写入 VU 寄存器时出现同步问题。 + + Disable Render Fixes + 关闭渲染器修复 - - VU Overflow Hack - VU 溢出 Hack + + Preload Frame Data + 预载帧数据 - - To check for possible float overflows (Superman Returns). - 检测可能的浮点溢出 (超人回归)。 + + Texture Inside RT + 纹理内部 RT - - VU XGkick Sync - VU XGkick 同步 + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + 开启时 GPU 会转换颜色贴图纹理,否则 CPU 会。这是 GPU 和 CPU 之间的权衡。 - - Use accurate timing for VU XGKicks (slower). - 为 VU XGKicks 使用精确计时 (较慢)。 + + Half Pixel Offset + 半像素偏移 - - Use Blit for internal FPS - 对内部 FPS 使用 Bilt + + Texture Offset X + 纹理偏移 X - - Quadraphonic - Quadraphonic + + Texture Offset Y + 纹理偏移 Y - - Load State - 加载即时存档 + + Dumps replaceable textures to disk. Will reduce performance. + 将可替换纹理转储到磁盘。会降低性能。 + + + + Applies a shader which replicates the visual effects of different styles of television set. + 应用可复现多种不同电视视觉效果的着色器。 + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + 跳过显示在 25/30fps 游戏中不变的帧。可以提高速度,但会增加输入延迟/使帧间隔变得更差。 + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + 在主 GS 线程上显示帧而不是在辅助线程上。用于调试帧时间问题。 + + + + Enables API-level validation of graphics commands. + 启用图形命令的 API 级验证。 + + + + Use Software Renderer For FMVs + 为 FMV 使用软件渲染器 + + + + To avoid TLB miss on Goemon. + 防止大盗伍佑卫门 tlb 丢失。 + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + 通用计时 hack。已知会影响以下游戏: 数码恶魔传输、SSX。 + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + 适用于高速缓存模拟问题。已知会影响以下游戏: 超火爆摔跤 Z。 + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + 已知对下列游戏有效:死神战士之刃、梦幻骑士 II 和 III、巫术。 + + + + Emulate GIF FIFO + 模拟 GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + 正确但较慢。已知对下列游戏有效: Fifa 街头足球 2。 + + + + DMA Busy Hack + DMA 忙碌 Hack + + + + Delay VIF1 Stalls + 延迟VIF1 失速 + + + + Emulate VIF FIFO + 模拟 VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + 模拟 VIF1 FIFO 预读。已知对下列游戏有效: Test Drive Unlimited、变形金刚。 + + + + VU I Bit Hack + VU I 位 Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + 避免在某些游戏中不断重新编译。已知会影响以下游戏:疤面煞星掌握世界、古惑狼赛车团队竞速。 + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + 用于 Tri-Ace 游戏: 星之海洋 3、凡人物语、北欧女神 2。 + + + + VU Sync + VU 同步 + + + + Run behind. To avoid sync problems when reading or writing VU registers. + 运行到后面去。以避免在读取或写入 VU 寄存器时出现同步问题。 + + + + VU XGKick Sync + VU XGKick 同步 + + + + Force Blit Internal FPS Detection + 强制点阵内部 FPS 检测 - + Save State 保存即时存档 - + Load Resume State 加载并继续即时存档 - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5845,2221 +6193,2122 @@ Do you want to load this save and continue? 您要加载此存档并继续吗? - + Region: 区域: - + Compatibility: 兼容性: - + No Game Selected 没有选择游戏 - + Search Directories 搜索目录 - + Adds a new directory to the game search list. 添加一个新目录到游戏搜索列表。 - + Scanning Subdirectories 扫描子目录 - + Not Scanning Subdirectories 不扫描子目录 - + List Settings 列表设置 - + Sets which view the game list will open to. 设置打开游戏列表时的视图。 - + Determines which field the game list will be sorted by. 确定将按哪个字段对游戏列表进行排序。 - + Reverses the game list sort order from the default (usually ascending to descending). 颠倒游戏列表的默认排序(通常是升序到降序)。 - + Cover Settings 封面设置 - + Downloads covers from a user-specified URL template. 从用户指定的URL模板下载封面。 - + Operations 操作 - + + Selects where anisotropic filtering is utilized when rendering textures. + 选择渲染纹理时要使用何种各向异性过滤设置。 + + + Use alternative method to calculate internal FPS to avoid false readings in some games. - Use alternative method to calculate internal FPS to avoid false readings in some games. + 使用其它方法计算内部 FPS 以避免在某些游戏中出现错误读数。 - + Identifies any new files added to the game directories. 标识添加到游戏目录中的任何新文件。 - + Forces a full rescan of all games previously identified. 强制重新扫描之前确定的所有游戏。 - + Download Covers 下载封面 - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 可以自动为当前没有封面的游戏下载封面。我们不托管任何封面图片,用户必须提供自己的图片来源。 - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - 在下面的表格中指定要从中下载封面的 URL,每行一个模板 URL。以下变量可用: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: 游戏标题。 -${filetitle}: 游戏文件名的名称部分。 -${serial}: 游戏序列号。 - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - 示例: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - 使用序列号文件名 - - - + About PCSX2 关于 PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 是一个免费的开源 PlayStation2(PS2) 模拟器。它的目的是使用 MIPS CPU 解释器、重新编译器以及用于管理硬件状态以及 PS 系统内存的虚拟机的组合来模拟PS2的硬件。这使您可以在您的 PC 上玩 PS2 游戏,并具有许多其他功能和好处。 - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 和 PS2 是索尼互动娱乐公司的注册商标。此应用程序与索尼互动娱乐公司没有任何关联。 - - XXX points - XXX 点数 - - - - Unlocked Achievements - 未解锁的成就 - - - - Locked Achievements - 已解锁的成就 - - - - Active Challenge Achievements - 启用挑战成就 - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - 提交分数被禁用因为核心模式已关闭。排行榜为只读。 - - - - Rank - 等级 - - - - Name - 名称 - - - - Time - 时间 - - - - Score - 分数 - - - - Downloading leaderboard data, please wait... - 正在下载排行榜数据,请稍等... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. 启用并登录后,PCSX2 将在启动时扫描成就。 - - When enabled, rich presence information will be collected and sent to the server where supported. - 启用后,将收集富在线状态信息并发送到支持的服务器。 - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "挑战" 模式的成就,包括排行榜跟踪。禁用即时存档、作弊和减速功能。 - - Enables tracking and submission of leaderboards in supported games. - 在支持的游戏中开启排行榜跟踪和提交功能。 - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. 显示例如成就解锁和排行榜提交等事件的弹出消息。 - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. 为成就解锁和排行榜提交等活动播放音效。 - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. 当挑战/已获得的成就处于活动状态时在屏幕右下角显示图标。 - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. 启用后,PCSX2 将列出非官方设置的成就。这些成就不会被 RetroAchievements 所追踪。 - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. 启用后,PCSX2 将假定所有成就都已锁定不会向服务器发送任何解锁通知。 - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + 启动、提交或失败排行榜挑战时显示弹出消息。 + + + + When enabled, each session will behave as if no achievements have been unlocked. + 启用后,每个会话的行为就像没有解锁成就成果一样。 + + + Account - Account + 账户 - + Logs out of RetroAchievements. 从 RetroAchievements 注销。 - + Logs in to RetroAchievements. 登录到 RetroAchievements。 - + Current Game - Current Game - - - - Achievements Login - 成就登录 - - - - Please enter your user name and password for retroachievements.org. - 请输入 retroAchievements.org 的用户名和密码。 - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - 您的密码不会保存到 PCSX2,会使用一个访问凭据替代。 - - - - User Name: - 用户名: - - - - Password: - 密码: + 当前游戏 - + {} is not a valid disc image. {} 不是一个有效的光盘映像。 - + Automatic mapping completed for {}. - 为 {} 自动映射完成。 + 为 {} 完成自动映射。 - + Automatic mapping failed for {}. 为 {} 自动映射失败。 - + Game settings initialized with global settings for '{}'. 为 '{}' 使用全局设置初始化游戏设置。 - + Game settings have been cleared for '{}'. 已为 '{}' 清除设置。 - + Console Port {} - Console Port {} + 主机端口 {} - + {} (Current) {} (当前) - + {} (Folder) {} (文件夹) - + Memory card name '{}' is not valid. 记忆卡名称 '{}'无效。 - + Memory Card '{}' created. 已创建记忆卡 '{}'。 - + Failed to create memory card '{}'. 创建记忆卡 '{}' 失败。 - + A memory card with the name '{}' already exists. 已存在含有名称 '{}' 的记忆卡。 - + Failed to load '{}'. 加载 ’{}‘ 失败。 - + Input profile '{}' loaded. 已加载输入方案 '{}'。 - + Input profile '{}' saved. 已保存输入方案 '{}'。 - + Failed to save input profile '{}'. 保存输入方案 '{}' 失败。 - + Port {} Controller Type 端口 {} 控制器类型 - + Select Macro {} Binds 选择宏 {} 绑定 - + + Macro {} Frequency + 宏 {} 频率 + + + Macro will toggle every {} frames. 每 {} 帧会触发宏。 - + Port {} Device 端口 {} 设备 - + Port {} Subtype 端口 {} 子类型 - + {} unlabelled patch codes will automatically activate. {} 个无标签的补丁代码将会被自动激活。 - + {} unlabelled patch codes found but not enabled. 不会开启 {} 个无标签的补丁代码。 - + This Session: {} 此会话: {} - + All Time: {} 所有时间: {} - + Save Slot {0} 存档位置 {0} - + Saved {} 已保存 {} - + {} does not exist. {} 不存在。 - + {} deleted. 已删除 {}。 - + Failed to delete {}. 删除 {} 失败。 - + File: {} 文件:{} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} 已游玩时间: {} - + Last Played: {} 最后游玩时间: {} - + Size: {:.2f} MB 大小: {:.2f} MB - - {} points - {} 点 - - - - {} (Hardcore Mode) - {} 硬核模式 + + Left: + 左: - - You have unlocked all achievements and earned {} points! - 您已解锁所有成就并获得 {} 点点数! + + Top: + 上: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - 您已解锁 {} 中的 {} 个成就,获得了 {} 中的 {} 点点数。 + + Right: + 右: - - This game has {} leaderboards. - 此游戏有 {} 个排行榜。 + + Bottom: + 下: - + Summary 统计 - + Interface Settings 界面设置 - + BIOS Settings BIOS 设置 - + Emulation Settings 模拟设置 - + Graphics Settings 图形设置 - + Audio Settings 音频设置 - + Memory Card Settings 记忆卡设置 - + Controller Settings 控制器设置 - + Hotkey Settings 热键设置 - + Achievements Settings 成就设置 - + Folder Settings 文件夹设置 - + Advanced Settings 高级设置 - + Patches 补丁 - + Cheats 修改 - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% 速度 - + 60% Speed 60% 速度 - + 75% Speed 75% 速度 - + 100% Speed (Default) 100% 速度 (默认) - + 130% Speed 130% 速度 - + 180% Speed 180% 速度 - + 300% Speed 300% 速度 - + Normal (Default) 普通 (默认) - + Mild Underclock 轻微降频 - + Moderate Underclock 中度降频 - + Maximum Underclock 最大降频 - + Disabled 关闭 - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 帧 (硬同步) - + 1 Frame 1 帧 - + 2 Frames 2 帧 - + 3 Frames 3 帧 - + None - + Extra + Preserve Sign 终极 + 保留符号 - + Full 完全 - + Extra 额外 - + Automatic (Default) 自动 (默认) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal Metal - + Software 软件 - + Null - + Off - + On 开启 - + Adaptive 自适应 - + Bilinear (Smooth) 双线性 (平滑) - + Bilinear (Sharp) 双线性 (锐利) - + Weave (Top Field First, Sawtooth) 交织 (顶部优先,平滑) - + Weave (Bottom Field First, Sawtooth) 交织 (底部优先,平滑) - + Bob (Top Field First) Bob (顶部优先) - + Bob (Bottom Field First) Bob (底部优先) - + Blend (Top Field First, Half FPS) 混合 (顶部优先, 半数 FPS) - + Blend (Bottom Field First, Half FPS) 混合 (底部优先, 半数 FPS) - + Adaptive (Top Field First) 自适应 (顶部区域优先) - + Adaptive (Bottom Field First) 自适应 (底部区域优先) - + Native (PS2) 原生 (PS2) - + 1.25x Native 1.25x 原生 - + 1.5x Native 1.5x 原生 - + 1.75x Native 1.75x 原生 - + 2x Native (~720p) 2x 原生 (~720p) - + 2.25x Native 2.25x 原生 - + 2.5x Native 2.5x 原生 - + 2.75x Native 2.75x 原生 - + 3x Native (~1080p) 3x 原生 (~1080p) - + 3.5x Native 3.5x 原生 - + 4x Native (~1440p/2K) 4x 原生 (~1440p/2K) - + 5x Native (~1620p) 5x 原生 (~1620p) - + 6x Native (~2160p/4K) 6x 原生 (~2160p/4K) - + 7x Native (~2520p) 7x 原生 (~2520p) - + 8x Native (~2880p) 8x 原生 (~2880p) - + Basic (Generated Mipmaps) 基础 (生成纹理贴图) - + Full (PS2 Mipmaps) 完全 (PS2 纹理贴图) - + Nearest 最近似 - + Bilinear (Forced) 双线性 (强制) - + Bilinear (PS2) 双线性 (PS2) - + Bilinear (Forced excluding sprite) 双线性 (强制除活动块外) - + Off (None) 关 (无) - + Trilinear (PS2) 三线性 (PS2) - + Trilinear (Forced) 三线性 (强制) - + Scaled 缩放 - + Unscaled (Default) 不缩放 (默认) - + Minimum 最小 - + Basic (Recommended) 基础 (推荐) - + Medium 中等 - + High - + Full (Slow) 完全 (慢) - + Maximum (Very Slow) 最大 (非常慢) - + Off (Default) 关 (默认) - + 2x 2x - + 4x 4x - + 8x 8x - + 16x 16x - + Partial 部分 - + Full (Hash Cache) 完全 (散列缓存) - + Force Disabled 强制关闭 - + Force Enabled 强制开启 - + Accurate (Recommended) 精确 (推荐) - + Disable Readbacks (Synchronize GS Thread) 关闭回读 (同步 GS 线程) - + Unsynchronized (Non-Deterministic) 不同步 (不确定性) - + Disabled (Ignore Transfers) 关闭 (忽略传输) - + Screen Resolution 屏幕分辨率 - - Internal Resolution (Uncorrected) - 内部分辨率 (未纠正) + + Internal Resolution (Aspect Uncorrected) + 内部分辨率 (不纠正高宽比) + + + + Cannot show details for games which were not scanned in the game list. + 无法显示未在游戏列表中扫描的游戏的详细信息。 + + + + Full Boot + 完全引导 + + + + Achievement Notifications + 成就通知 + + + + Leaderboard Notifications + 排行榜通知 + + + + Enable In-Game Overlays + 开启游戏内覆盖层 + + + + Encore Mode + Encore 模式 + + + + Spectator Mode + 观众模式 - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (关闭) - + 1 (64 Max Width) 1 (64 最大宽度) - + 2 (128 Max Width) 2 (128 最大宽度) - + 3 (192 Max Width) 3 (192 最大宽度) - + 4 (256 Max Width) 4 (256 最大宽度) - + 5 (320 Max Width) 5 (320 最大宽度) - + 6 (384 Max Width) 6 (384 最大宽度) - + 7 (448 Max Width) 7 (448 最大宽度) - + 8 (512 Max Width) 8 (512 最大宽度) - + 9 (576 Max Width) 9 (576 最大宽度) - + 10 (640 Max Width) 10 (640 最大宽度) - + Sprites Only 仅活动块 - + Sprites/Triangles 活动块/三角形 - + Blended Sprites/Triangles 绑定的活动块/三角形 - + 1 (Normal) 1 (普通) - + 2 (Aggressive) 2 (激进) - + Inside Target 在目标内部 - + Merge Targets 合并目标 - + Normal (Vertex) 普通 (顶点) - + Special (Texture) 特殊 (纹理) - + Special (Texture - Aggressive) 特殊 (纹理 - 激进) - + Half 一半 - + Force Bilinear 强制双线性 - + Force Nearest 强制最邻近 - + Disabled (Default) 关闭 (默认) - + Enabled (Sprites Only) 开启 (仅活动块) - + Enabled (All Primitives) 开启 (所有元素) - + None (Default) 无 (默认) - + Sharpen Only (Internal Resolution) 仅锐化 (内部分辨率) - + Sharpen and Resize (Display Resolution) 锐化并调整大小 (显示分辨率) - + Scanline Filter 扫描线滤镜 - + Diagonal Filter 对角线滤镜 - + Triangular Filter 三角滤镜 - + Wave Filter 波形滤镜 - + Lottes CRT 乐天 CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed 未压缩 - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) 时间延展 (推荐) - + Async Mix (Breaks some games!) 异步混合 (会破坏部分游戏!) - + None (Audio can skip.) 无 (音频会跳动) - + Stereo (None, Default) 立体声 (无,默认) - + Surround 5.1 5.1 环绕声 - + Surround 7.1 7.1 环绕声 - + No Sound (Emulate SPU2 only) 无声音 (仅模拟 SPU2) - + Cubeb (Cross-platform) Cubeb (跨平台) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [最兼容] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] 文件夹 [推荐] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + 复数 + + + + Positive + 正数 + + + + Chop/Zero (Default) + 舍去/清零(默认) + + + Game Grid 游戏网格 - + Game List 游戏列表 - + Game List Settings 游戏列表设置 - + Type 类型 - + Serial 序列号 - + Title 标题 - + File Title 文件标题 - + CRC CRC - + Time Played 已游玩时间 - + Last Played 最后游戏时间 - + Size 大小 - + Select Disc Image 选择光盘映像 - + Select Disc Drive 选择光盘驱动器 - + Start File 启动文件 - + Start BIOS 启动 BIOS - + Start Disc 启动光盘 - + Exit 退出 - + Set Input Binding 设置输入绑定 - + Region 区域 - + Compatibility Rating 兼容性等级 - + Path 路径 - + Disc Path 光盘路径 - + Select Disc Path 选择光盘路径 - - Details unavailable for game not scanned in game list. - 未在游戏列表中扫描的游戏详细信息不可用。 - - - + Copy Settings 复制设置 - + Clear Settings 清除设置 - + Inhibit Screensaver 禁用屏幕保护程序 - + + Enable Discord Presence + 开启 Discord Presence + + + Pause On Start 启动时暂停 - + Pause On Focus Loss 丢失焦点时暂停 - + Pause On Menu 菜单中暂停 - + Confirm Shutdown 确认退出 - + Save State On Shutdown 关闭时保存即时存档 - + Enable Per-Game Settings 开启每游戏设置 - + Use Light Theme 使用浅色主题 - + Start Fullscreen 启动全屏幕 - + Double-Click Toggles Fullscreen 双击切换全屏幕 - + Hide Cursor In Fullscreen 全屏模式下隐藏光标 - + OSD Scale OSD 比例 - + Show Messages 显示消息 - + Show Speed 显示速度 - + Show FPS 显示 FPS - + Show CPU Usage 显示 CPU 占用率 - + Show GPU Usage 显示 GPU 占用率 - + Show Resolution 显示分辨率 - + Show GS Statistics 显示 GS 统计 - + Show Status Indicators 显示状态指示器 - + Show Settings 显示设置 - + Show Inputs 显示输入 - + Show Frame Times 显示帧时间 - + Warn About Unsafe Settings 警告不安全的设置 - + Reset Settings 重置设置 - + Change Search Directory 更改搜索目录 - + Fast Boot 快速引导 - + Output Volume 输出音量 - + Synchronization Mode 同步模式 - + Expansion Mode 扩展模式 - + Output Module 输出模式 - + Latency 延迟 - + Sequence Length 序列长度 - + Seekwindow Size 搜索窗口大小 - + Overlap 重叠 - + Memory Card Directory 记忆卡目录 - + Folder Memory Card Filter 文件夹记忆卡筛选器 - + Auto Eject When Loading 在加载时自动弹出 - + Create 创建 - + Cancel 取消 - + Load Profile 载入方案 - + Save Profile 保存方案 - + Per-Game Configuration 游戏单独配置 - + Copy Global Settings 复制全局配置 - + Enable SDL Input Source 开启 SDL 输入源 - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense 增强模式 - + SDL Raw Input SDL Raw 输入 - + Enable XInput Input Source 开启 XInput 输入源 - + Enable Console Port 1 Multitap 开启主机端口 1 多分插 - + Enable Console Port 2 Multitap 开启主机端口 2 多分插 - + Controller Port {}{} 控制器端口 {}{} - + Controller Port {} 控制器端口 {} - + Controller Type 控制器类型 - + Automatic Mapping 自动映射 - + Controller Port {}{} Macros 控制器端口 {}{} 宏 - + Controller Port {} Macros - 控制器端口 {{} 宏 + 控制器端口 {} 宏 - + Macro Button {} 宏按钮 {} - + Buttons 按钮 - + Frequency 频率 - + Pressure 压敏 - + Controller Port {}{} Settings 控制器端口 {}{} 设置 - + Controller Port {} Settings 控制器端口 {} 设置 - + USB Port {} USB 端口 {} - + Device Type 设备类型 - + Device Subtype 设备子类型 - + {} Bindings {} 条绑定 - + Clear Bindings 清除绑定 - + {} Settings {} 个设置 - + Cache Directory 缓存目录 - + Covers Directory 封面目录 - + Snapshots Directory 快照目录 - + Save States Directory 即时存档目录 - + Game Settings Directory 游戏设置目录 - + Input Profile Directory 输入方案目录 - + Cheats Directory 作弊目录 - + Patches Directory 补丁目录 - + Texture Replacements Directory 纹理替换目录 - + Video Dumping Directory 视频转储目录 - + Resume Game 继续游戏 - + Toggle Frame Limit 切换整数限制 - + Game Properties 游戏属性 - + Achievements 成就 - + Save Screenshot 保存截图 - + Switch To Software Renderer 切换到软件渲染器 - + Switch To Hardware Renderer 切换到硬件渲染器 - + Change Disc 更换光盘 - + Close Game 关闭游戏 - + Exit Without Saving 退出不存档 - + Back To Pause Menu 返回到暂停菜单 - + Exit And Save State 退出并即时存档 - + Leaderboards 排行榜 - + Delete Save 删除存档 - + Close Menu 关闭菜单 - - Clean Boot - 干净引导 - - - + Delete State 删除即时存档 - + Default Boot 默认引导 - - Slow Boot - 慢速引导 - - - + Reset Play Time 重置游戏时间 - + Add Search Directory 添加搜索目录 - + Open in File Browser 在文件浏览器中打开 - + Disable Subdirectory Scanning 关闭子目录搜索 - + Enable Subdirectory Scanning 开启子目录搜索 - + Remove From List 从列表中移除 - + Default View 默认视图 - + Sort By 排序方式 - + Sort Reversed 反转排序 - + Scan For New Games 搜索新游戏 - + Rescan All Games 重新扫描所有游戏 - - Start Download - 开始下载 - - - + Website 网站 - + Support Forums 支持论坛 - + GitHub Repository GitHub 存储库 - + License 许可 - + Close 关闭 - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration 被用于替代内置的成就实现。 - + Enable Achievements 开启成就 - - Rich Presence - Rich Presence - - - + Hardcore Mode - 硬核模式 - - - - Show Notifications - 显示消息 + 硬核模式 - + Sound Effects 声音效果 - - Show Challenge Indicators - 显示挑战指示器 - - - + Test Unofficial Achievements 测试非官方成就 - - Test Mode - 测试模式 - - - + Username: {} 用户名: {} - + Login token generated on {} 登录凭据生成于{} - + Logout 注销 - + Not Logged In 未登录 - + Login 登录 - - Achievements are disabled. - 已禁用成就。 - - - - Game ID: {} - 游戏 ID: {} - - - - Game Title: {} - 游戏标题: {} - - - - Achievements: {} ({} points) - 成就: {} ({} 点) + + Game: {0} ({1}) + 游戏: {0} ({1}) - + Rich presence inactive or unsupported. 未激活富在线状态或不支持。 - + Game not loaded or no RetroAchievements available. 未加载游戏或无 RetroAchievements 可用。 - + Card Enabled 开启卡带 - + Card Name 卡带名称 - + Eject Card 弹出卡带 @@ -8072,7 +8321,7 @@ ${serial}: 游戏序列号。 无法重新打开,正在还原旧配置。 - + Upscale multiplier set to {}x. 缩放倍数被设置为 {}x。 @@ -8127,12 +8376,12 @@ ${serial}: 游戏序列号。 在一个或多个压缩的替换纹理上禁用自动生成的纹理映射。请在压缩纹理时生成纹理映射。 - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. 模板缓冲区和纹理屏障都不可用,这将破坏一些图形效果。 - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. 启用了读回期间自旋 GPU,但校准的时间戳不可用。 这可能真的很慢。 @@ -8188,7 +8437,7 @@ ${serial}: 游戏序列号。 GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8199,266 +8448,408 @@ graphical quality, but this will increase system requirements. 统的需求。 - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: 已开启手动 GS 硬件渲染器修复,不会应用自动修复: - + No tracks provided. 未提供轨道。 - + Hash {} is not in database. 散列 {} 未在数据库中。 - + Data track number does not match data track in database. 数据轨道编号与数据库中的数据轨道不匹配。 - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - 数据库中找不到轨道 {} 的散列 {}。 + 在数据库中找不到哈希为 {1} 的轨道 {0}。 - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - 轨道 {} 的散列 {} 是来自不同游戏 ({}) 的。 + 哈希为 {1} 的轨道 {0} 是来自其它游戏 ({2})。 - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - 轨道 {} 的散列 {} 与数据库中的轨道不匹配。 + 哈希为 {1} 的轨道 {0} 与数据库中的轨道不匹配。 GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) 游戏修正 (不建议在全局范围内更改) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU 负除 Hack (用于高达游戏) + FPU 负除 Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU 乘积 Hack (用于宿命传说) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - 为 FMV 使用软件渲染器 + FPU 乘法 Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - 跳过 MPEG Hack (跳过 视频/FMV) + 跳过 MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - 预载入 TLB Hack (用于大盗伍佑卫门) + 预载 TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE 计时 HackHack (通用计时 Hack) + EE 计时 Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - 即时 DMA Hack (对模拟缓存问题效果好) + 即时 DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH 标志 Hack (用于死神战士之刃) + OPH 标志 Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - 模拟 GIF FIFO (正确但比较慢) + 模拟 GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA 忙碌 Hack (忙时拒绝写入) + DMA 忙碌 Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - 延迟 VIF1 分离 (用户海豹突击队 2 HUD/间谍猎人) + 延迟VIF1 失速 - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - 模拟 VIF FIFO (正确但比较慢) + 模拟 VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - 完全VU0同步 (正确但较慢) + 完整 VU0 同步 - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I 位 Hack (用于疤面煞星 掌握世界/古惑狼赛车) + VU I 位 Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU 加法 Hack (用于 Tri-Ace 游戏) + VU 加法 Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU 溢出 Hack (超人归来) + VU 溢出 Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU 同步 (提前运行,M-Bit 游戏) + VU 同步 - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick 同步 (正确但比较慢) + VU XGKick 同步 - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - 强制 Blit 内部 FPS 检测 (在自动检测失效时) + 强制点阵内部 FPS 检测 + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + 为 FMV 使用软件渲染器 + + + + + + + + + + + + + + + + + + + + + + Unchecked + 未选中 + + + + For Tales of Destiny. + 用于宿命传说。 + + + + For Gundam Games. + 用于高达游戏。 + + + + To avoid TLB miss on Goemon. + 防止大盗伍佑卫门 tlb 丢失。 + + + + Needed for some games with complex FMV rendering. + 某些复杂 FMV 渲染的游戏需要。 + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + 跳过游戏中的视频/FMV 以避免游戏挂起/冻结。 + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + 已知对下列游戏有效:死神战士之刃、梦幻骑士 II 和 III、巫术。 + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + 通用计时 hack。已知会影响以下游戏: 数码恶魔传输、SSX。 + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + 适用于高速缓存模拟问题。已知会影响以下游戏: 超火爆摔跤 Z。 + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + 已知对下列游戏有效: 玛娜传奇 1、沙尘之锁、敌后阵线。 + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + 正确但较慢。已知对下列游戏有效: Fifa 街头足球 2。 + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + 模拟 VIF1 FIFO 预读。已知对下列游戏有效: Test Drive Unlimited、变形金刚。 + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + 用于 SOCOM 2 HUD 和 Spy Hunter 加载挂起。 + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + 用于 Tri-Ace 游戏: 星之海洋 3、凡人物语、北欧女神 2。 + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + 避免在某些游戏中不断重新编译。已知会影响以下游戏:疤面煞星掌握世界、古惑狼赛车团队竞速。 + + + + Forces tight VU0 sync on every COP2 instruction. + 在每个 COP2 指令上强制严格 VU0 同步。 + + + + Run behind. To avoid sync problems when reading or writing VU registers. + 运行到后面去。以避免在读取或写入 VU 寄存器时出现同步问题。 + + + + To check for possible float overflows (Superman Returns). + 检测可能的浮点溢出 (超人回归)。 + + + + Use accurate timing for VU XGKicks (slower). + 为 VU XGKicks 使用精确计时 (较慢)。 + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + 使用其它方法计算内部 FPS 以避免在某些游戏中出现错误读数。 GameList - + Never - Never + 从不 - + Today 今天 - + Yesterday 昨天 - + {}h {}m {}小时 {}分 - + {}h {}m {}s {}小时 {}分 {}秒 - + {}m {}s {}分 {}秒 - + {}s {}秒 - + {} hours {} 小时 - + {} minutes {} 分钟 + + + Downloading cover for {0} [{1}]... + 正在为 {0} [{1}] 下载封面... + GameListModel - + Type 类型 - + Code 代码 - + Title 标题 - + File Title 文件标题 - + CRC CRC - + Time Played 已游玩时间 - + Last Played 最后游戏时间 - + Size 大小 - + Region 区域 - + Compatibility 兼容性 @@ -8466,74 +8857,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + 正在扫描游戏 + + + Search Directories (will be scanned for games) 搜索目录 (将被用于扫描游戏) - + Add... 添加... - - - + + + Remove 移除 - + Search Directory 搜索目录 - + Scan Recursively 递归扫描 - + Excluded Paths (will not be scanned) 排除路径 (将不会被扫描) - + Directory... 目录... - + File... 文件... - + Scan For New Games 搜索新游戏 - + Rescan All Games 重新扫描所有游戏 - + + Display + 显示 + + + + + Prefer English Titles + 首选英语标题 + + + + Unchecked + 未选中 + + + + For games with both a title in the game's native language and one in English, prefer the English title. + 对于既有本国语言标题又有英语标题的游戏,优先选择英文标题。 + + + Open Directory... 打开目录... - + Select Search Directory 选择搜索目录 - + Scan Recursively? 要递归扫描吗? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8542,12 +8959,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. 递归扫描将需要更多时间, 但是它将会检测子目录中的文件。 - + Select File 选择文件 - + Select Directory 选择目录 @@ -8555,32 +8972,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List 游戏列表 - + Game Grid 游戏网格 - + Show Titles 显示标题 - + All Types 所有类型 - + All Regions 所有区域 - + Search... 搜索... @@ -8606,17 +9023,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">作者: </span>补丁作者</p><p>描述会在这里</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>作者: </strong>%1<br>%2 - + Unknown 未知 - + No description provided. 未提供描述。 @@ -8634,7 +9051,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. 重载补丁 - + There are no patches available for this game. 没有此游戏可用的补丁。 @@ -8653,399 +9070,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore 恢复 + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + 排序标题: + + + + English Title: + 英语标题: + + + Path: 路径: - + Serial: 序列号: - + CRC: CRC: - + Type: 类型: - + PS2 Disc PS2 光盘 - + PS1 Disc PS1 光盘 - + ELF (PS2 Executable) ELF (PS2 可执行文件) - + Region: 区域: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (巴西) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (中国) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (香港) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (日本) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (韩国) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (台湾) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (美国) - + Other 其它 - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (澳大利亚) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (南非) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (奥地利) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (比利时) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (欧洲/澳大利亚) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (法国) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (芬兰) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (德国) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (希腊) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (意大利) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (印度) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (欧洲/澳大利亚) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (荷兰) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (挪威) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (葡萄牙) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (波兰) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (俄罗斯) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (西班牙) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (斯堪的纳维亚) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (瑞典) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (瑞士) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (英国) - + Compatibility: 兼容性: - + Unknown 未知 - + Not Bootable 无法启动 - + Reaches Intro 到达标题 - + Reaches Menu 到达菜单 - + In-Game 进入游戏 - + Playable 可玩 - + Perfect 完美 - + Input Profile: 输入方案: - + Shared Refers to the shared settings profile. 共享 - + Disc Path: 光盘路径: - + Browse... 浏览... - + Clear 清除 - + Verify 校验 - + Search on Redump.org... 在 Redump.org 搜索... - + Select Disc Path 选择光盘路径 - + Game is not a CD/DVD. 游戏不是一张 CD/DVD。 - + Track list unavailable while virtual machine is running. 在虚拟机运行时轨道列表不可用。 - + # # - + Mode 模式 - - + + Start 开始 - - + + Sectors 扇区 - - + + Size 大小 - - + + MD5 MD5 - - + + Status 状态 - - - - - - + + + + + + %1 %1 - - + + <not computed> <未计算> - + Error 错误 - + Cannot verify image while a game is running. 无法在游戏运行时校验镜像。 - + One or more tracks is missing. 丢失一个或更多轨道。 - + Verified as %1 [%2] (Version %3). 校验为 %1 [%2] (版本 %3)。 - + Verified as %1 [%2]. 校验为 %1 [%2]。 @@ -9053,62 +9481,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: 渲染器: - + Adapter: 适配器: - + Display 显示 - + Fullscreen Mode: 全屏模式: - + Aspect Ratio: 高宽比: - + Fit to Window / Fullscreen 适合窗口 / 全屏幕 - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) 自动标准 (4:3 隔行 / 3:2 逐行) - - + + Standard (4:3) 标准 (4:3) - - + + Widescreen (16:9) 宽屏 (16:9) - + FMV Aspect Ratio: FMV 高宽比: - - - + + + @@ -9118,12 +9546,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. 关 (默认) - - - - - - + + + + + + @@ -9134,92 +9562,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. 自动 (默认) - + None (Interlaced, also used by Progressive) 无 (隔行, 也用于隔行) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. 交织 (顶部优先,平滑) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. 交织 (底部优先,平滑) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (顶部区域优先, 全帧) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (底部区域优先, 全帧) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. 混合 (顶部区域优先, 混合两场) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. 混合 (底部区域优先, 混合两场) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. 自适应 (顶部区域优先, 类似于 Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. 自适应 (底部区域优先, 类似于 Bob + Weave) - + Bilinear Filtering: 双线性过滤: - - + + None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. 双线性 (平滑) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. 双线性 (锐利) - + Vertical Stretch: 垂直拉伸: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9227,355 +9655,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: 修剪: - + Left: Warning: short space constraints. Abbreviate if necessary. 左: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. 上: - + Right: Warning: short space constraints. Abbreviate if necessary. 右: - + Bottom: Warning: short space constraints. Abbreviate if necessary. 下: - + Screen Offsets 屏幕偏移 - + VSync 垂直同步 - + Show Overscan 显示过扫描 - + Enable Widescreen Patches 开启宽屏补丁 - + Enable No-Interlacing Patches 开启反隔行扫描补丁 - + Anti-Blur 反模糊 - + Ctrl+S Ctrl+S - + Disable Interlace Offset 关闭隔行扫描偏移 - + Screenshot Size: 截图尺寸: - + Screen Resolution 屏幕分辨率 - + Internal Resolution 内部分辨率 - + Internal Resolution (Aspect Uncorrected) 内部分辨率 (不纠正高宽比) - + PNG PNG - + JPEG JPEG - + Quality: 质量: - - + + Rendering 渲染 - + Internal Resolution: 内部分辨率: - + Mipmapping: 纹理贴图: - - + + Off - + Basic (Generated Mipmaps) 基础 (生成纹理贴图) - + Full (PS2 Mipmaps) 完全 (PS2 纹理贴图) - - + + Texture Filtering: 纹理过滤: - - + + Nearest 最近似 - - + + Bilinear (Forced) 双线性 (强制) - - + + Bilinear (PS2) 双线性 (PS2) - - + + Bilinear (Forced excluding sprite) 双线性 (强制除活动块外) - + Trilinear Filtering: 三线性过滤: - + Off (None) 关 (无) - + Trilinear (PS2) 三线性 (PS2) - + Trilinear (Forced) 三线性 (强制) - + Anisotropic Filtering: 各异向性过滤: - + Dithering: 抖动: - + Scaled 缩放 - + Unscaled (Default) 不缩放 (默认) - + Blending Accuracy: 混合精确性: - + Minimum 最小 - + Basic (Recommended) 基础 (推荐) - + Medium 中等 - + High - + Full (Slow) 完全 (慢) - + Maximum (Very Slow) 最大 (非常慢) - + Texture Preloading: 预载纹理: - + Partial 部分 - + Full (Hash Cache) 完全 (散列缓存) - + + Software Rendering Threads: + 软件渲染线程: + + + + Skip Draw Range: + 跳过描绘范围: + + + GPU Palette Conversion GPU 调色板转换 - + Manual Hardware Renderer Fixes 手动硬件渲染器修复 - + Spin GPU During Readbacks 在回读期间保持 GPU 运行 - + Spin CPU During Readbacks 在回读期间保持 CPU 运行 - - Extra Rendering Threads: - 额外渲染线程: - - - + threads 线程 - + Mipmapping 纹理贴图 - + Auto Flush 自动清理 - + Hardware Fixes 硬件修复 - + Force Disabled 强制关闭 - + Force Enabled 强制开启 - + CPU Sprite Render Size: CPU 活动块渲染大小: - - - + + + 0 (Disabled) @@ -9583,79 +10016,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (关闭) - + 1 (64 Max Width) 1 (64 最大宽度) - + 2 (128 Max Width) 2 (128 最大宽度) - + 3 (192 Max Width) 3 (192 最大宽度) - + 4 (256 Max Width) 4 (256 最大宽度) - + 5 (320 Max Width) 5 (320 最大宽度) - + 6 (384 Max Width) 6 (384 最大宽度) - + 7 (448 Max Width) 7 (448 最大宽度) - + 8 (512 Max Width) 8 (512 最大宽度) - + 9 (576 Max Width) 9 (576 最大宽度) - + 10 (640 Max Width) 10 (640 最大宽度) - - Skipdraw Range: - 跳过描绘范围: - - - + Frame Buffer Conversion 帧缓冲转换 - + Disable Depth Emulation 关闭深度模拟 - + Disable Safe Features 关闭安全功能 - + Preload Frame Data 预载帧数据 @@ -9666,606 +10094,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 纹理内部 RT - + 1 (Normal) 1 (普通) - + 2 (Aggressive) 2 (激进) - + Software CLUT Render: 软件 CLUT 渲染器: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU 目标 CLUT: - - - + + + Disabled (Default) 关闭 (默认) - + Enabled (Exact Match) 开启 (完全匹配) - + Enabled (Check Inside Target) 开启 (检查目标内部) - + Upscaling Fixes 倍线修复 - + Half Pixel Offset: 半像素偏移: - + Normal (Vertex) 普通 (顶点) - + Special (Texture) 特殊 (纹理) - + Special (Texture - Aggressive) 特殊 (纹理 - 激进) - + Round Sprite: 排列活动块: - + Half 一半 - + Full 完全 - + Texture Offsets: 纹理偏移: - + X: X: - + Y: Y: - + Merge Sprite 合并活动快 - + Align Sprite 排列活动块 - + Deinterlacing: 反交错: - + Sprites Only 仅活动块 - + Sprites/Triangles 活动块/三角形 - + Blended Sprites/Triangles 绑定的活动块/三角形 - + Auto Flush: 自动刷新: - + Enabled (Sprites Only) 开启 (仅活动块) - + Enabled (All Primitives) 开启 (所有元素) - + Texture Inside RT: 纹理在 RT 内部: - + Inside Target 在目标内部 - + Merge Targets 合并目标 - + Disable Partial Source Invalidation 禁用部分源无效 - + Read Targets When Closing 关闭时读取目标 - + Estimate Texture Region 估计纹理区域 - + Disable Render Fixes 关闭渲染器修复 - + Unscaled Palette Texture Draws 未缩放的调色板纹理绘制 - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. 荒野兵器修正 - + Bilinear Dirty Upscale: 双线性污染升格: - + Force Bilinear 强制双线性 - + Force Nearest 强制最邻近 - + Texture Replacement 纹理替换 - + Search Directory 搜索目录 - - + + Browse... 浏览... - - + + Open... 打开... - - + + Reset 重置 - + PCSX2 will dump and load texture replacements from this directory. PCSX2 将会从此目录转储并加载纹理替换。 - + Options 选项 - + Dump Textures 转储纹理 - + Dump Mipmaps 转储纹理贴图 - + Dump FMV Textures 转储 FMV 纹理 - - - Async Texture Loading - 异步加载纹理 - - - + Load Textures 加载纹理 - + Precache Textures 预缓存纹理 - + Post-Processing 后置处理 - + Sharpening/Anti-Aliasing 锐化/抗锯齿 - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx 对比度自适应锐化: - - + + None (Default) 无 (默认) - + Sharpen Only (Internal Resolution) 仅锐化 (内部分辨率) - + Sharpen and Resize (Display Resolution) 锐化并调整大小 (显示分辨率) - + Sharpness: 锐化: - + FXAA FXAA - + Filters 滤镜 - + TV Shader: TV 着色器: - + Scanline Filter 扫描线滤镜 - + Diagonal Filter 对角线滤镜 - + Triangular Filter 三角滤镜 - + Wave Filter 波形滤镜 - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. 乐天 CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4x RGSS 降采样(4x 旋转栅格超采样) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) Nx AGSS 降采样(Nx 自动栅格超采样) - + Shade Boost Shade Boost - + Brightness: 亮度: - + Contrast: 对比度: - Saturation 饱和度 - + OSD OSD - + On-Screen Display 屏上显示 - + OSD Scale: OSD 比例: - + Show Indicators 显示指示器 - + Show Resolution 显示分辨率 - + Show Inputs 显示输入 - + Show GPU Usage 显示 GPU 占用率 - + Show Settings 显示设置 - + Show FPS 显示 FPS - + + + Disable Dual-Source Blending + 关闭双源混合 + + + Disable Shader Cache 关闭着色器缓存 - + Disable Vertex Shader Expand 关闭顶点着色器扩展 - + Show Statistics 显示统计信息 - + + + Asynchronous Texture Loading + 异步纹理加载 + + + + Saturation: + 饱和度: + + + Show CPU Usage 显示 CPU 占用率 - + Warn About Unsafe Settings 警告不安全的设置 - + Show Frame Times 显示帧时间 - + Recording 录制 - + Video Dumping Directory 视频转储目录 - + Capture Setup 捕获设置 - + Container: 容器: - - + + Codec: 编码器: - - + + Extra Arguments 额外参数 - + Capture Audio 捕获音频 - + Resolution: 分辨率: - + x x - + Auto 自动 - + Capture Video 捕获视频 - + Advanced Advanced here refers to the advanced graphics options. 高级 - + Advanced Options 高级选项 - + Hardware Download Mode: 硬件下载模式: - + Accurate (Recommended) 精确 (推荐) - + Disable Readbacks (Synchronize GS Thread) 关闭回读 (同步 GS 线程) - + Unsynchronized (Non-Deterministic) 不同步 (不确定性) - + Disabled (Ignore Transfers) 关闭 (忽略传输) - + GS Dump Compression: GS 转储压缩: - + Uncompressed 未压缩 - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames 跳过显示重复帧 - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10275,69 +10713,63 @@ Swap chain: see Microsoft's Terminology Portal. 使用 Blit 交换链 - + Disable Threaded Presentation 禁用线程化展示 - - + + Bitrate: 位率: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: 允许独占全屏: - + Disallowed 关闭 - + Allowed 开启 - + Debugging Options 调试选项 - + Override Texture Barriers: 替代纹理屏障: - + Use Debug Device 使用调试设备 - - - Disable Dual Source Blending - 关闭双源混合 - - - + Show Speed Percentages 显示速度百分比 - + Disable Framebuffer Fetch 关闭帧缓冲获取 @@ -10406,8 +10838,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] 使用全局设置 [%1] @@ -10459,6 +10891,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked 未选中 @@ -10518,11 +10951,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. 控制 GS 混合单元模拟的精度级别。<br>设置越高,着色器中模拟的混合越准确,速度损失就越大。<br>请注意与 OpenGL/Vulkan 相比 Direct3D 的混合在功能性上稍差。 + + + Software Rendering Threads + 软件渲染线程 + Software CLUT Render 软件 Clut 渲染 + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + 关闭纹理缓存中深度缓冲区的支持。它可以帮助提高速度但它可能会产生各种图形瑕疵。 + This option disables game-specific render fixes. @@ -10574,6 +11017,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. 修正了在 Namco 游戏中升格(垂直线)的问题,如皇牌空战、铁拳、刀魂等。 + + + Dumps replaceable textures to disk. Will reduce performance. + 将可替换纹理转储到磁盘。会降低性能。 + + + + Includes mipmaps when dumping textures. + 在转储纹理时包含纹理贴图。 + + + + Allows texture dumping when FMVs are active. You should not enable this. + 在 FNV 活动时允许纹理转储。您应该开启此选项。 + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + 将替换纹理加载到辅助线程上,从而在启用替换时减少微卡顿。 + + + + Loads replacement textures where available and user-provided. + 加载用户提供的可用替换纹理。 + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + 预先加载所有的替换纹理到内存中。不再需要异步加载。 + + + + Enables FidelityFX Contrast Adaptive Sharpening. + 开启 FidelityFX 对比度自适应锐化。 + + + + Determines the intensity the sharpening effect in CAS post-processing. + 确定 CAS 后处理中锐化效果的强度。 + + + + Adjusts brightness. 50 is normal. + 调节亮度。50 为普通。 + + + + Adjusts contrast. 50 is normal. + 调节对比度。50 为普通。 + + + + Adjusts saturation. 50 is normal. + 调节饱和度。50 为普通。 + Scales the size of the onscreen OSD from 50% to 500%. @@ -10589,11 +11087,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. 显示各种设置以及这些设置的当前值,这对调试很有用。 - - - Shows the current controller state of the system in the bottom left corner of the display. - 在屏幕的左下角显示系统的当前控制器状态。 - Displays a graph showing the average frametimes. @@ -10631,7 +11124,7 @@ Swap chain: see Microsoft's Terminology Portal. 启用此选项可使 PCSX2 的刷新率与您当前的显示器或屏幕相匹配。在垂直同步可用时它将被自动禁用(例如以非 100% 速度运行)。 - + Integer Scaling 整数倍拉伸 @@ -10720,8 +11213,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen 无边框全屏幕 @@ -10863,11 +11356,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. 在读回期间对 GPU 执行无用的工作以防止其进入省电模式。可能会提高性能但会显著增加功耗。 - - - Extra Rendering Threads - 额外的渲染线程 - 2 threads @@ -10918,11 +11406,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End 跳过描绘范围结束 - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - 关闭纹理缓存中的深度缓冲区支持。它可以帮助提高速度但它可能会造成各种问题。 - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11040,7 +11523,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD 比例 - + Show OSD Messages 显示 OSD 消息 @@ -11080,6 +11563,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. 显示用于内部图形使用的计数器,对调试很有用。 + + + Shows the current controller state of the system in the bottom-left corner of the display. + 在显示器的左下角显示系统的当前控制器状态。 + Displays warnings when settings are enabled which may break games. @@ -11133,29 +11621,39 @@ Swap chain: see Microsoft's Terminology Portal. + Enable Debug Device + 开启调试设备 + + + + Enables API-level validation of graphics commands. + 启用图形命令的 API 级验证。 + + + GS Download Mode GS 下载模式 - + Accurate 精确 - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. 跳过 GS 线程和主机 GPU 进行 GS 下载的同步。可能会在速度较慢的系统上大幅提升速度,但代价是许多损坏的图形效果。如果游戏被破坏并且您启用了此选项,请先禁用它。 - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. 默认 - - + + (Default) (默认) @@ -11163,405 +11661,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics 图形 - + Save Screenshot 保存截图 - + Toggle Video Capture 切换视频捕获 - + Save Single Frame GS Dump 保存单个 GS 帧转储 - + Save Multi Frame GS Dump 保存多帧 GS 转储 - + Toggle Software Rendering 切换软件渲染 - + Increase Upscale Multiplier 增加缩放倍数 - + Decrease Upscale Multiplier 减少缩放倍数 - + Toggle On-Screen Display 切换屏显 - + Cycle Aspect Ratio 切换高宽比 - + Aspect ratio set to '{}'. 高宽比被设置为 '{}'。 - + Cycle Hardware Mipmapping 切换硬件纹理映射 - + Hardware mipmapping set to '{}'. 硬件纹理映射被设置为 '{}'。 - + Cycle Deinterlace Mode 切换反交错模式 - + Deinterlace mode set to '{}'. 反交错模式被设置为 '{}'。 - + Toggle Texture Dumping 切换纹理转储 - + Texture dumping is now enabled. 现在已开启纹理转储。 - + Texture dumping is now disabled. 现在已关闭纹理转储。 - + Toggle Texture Replacements 切换纹理替换 - + Texture replacements are now enabled. 现在已开启纹理替换。 - + Texture replacements are now disabled. 现在已关闭纹理替换。 - + Reload Texture Replacements 重载纹理替换 - + Texture replacements are not enabled. 未开启纹理替换。 - + Reloading texture replacements... 正在重载纹理替换... - + Target speed set to {:.0f}%. 目标速度设置为 {:.0f}%。 - + Volume: Muted 音量: 静音 - + Volume: {}% 音量: {}% - - Save slot {} selected (last save: {}). - 已选定即时存档位置 {} (最后存档: {})。 + + Save slot {0} selected (last save: {1}). + 已选定存档位置 {0} (上次存档: {1})。 - + Save slot {} selected (no save yet). 已选定即时存档位置 {} (尚未存档)。 - + No save state found in slot {}. 在位置 {} 没找到即时存档。 - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System 系统 - + Open Pause Menu 打开暂停菜单 - + Open Achievements List 打开成就列表 - + Open Leaderboards List 打开排行榜列表 - + Toggle Pause 切换暂停 - + Toggle Fullscreen 切换全屏 - + Toggle Frame Limit 切换整数限制 - + Toggle Turbo / Fast Forward 切换加速 / 快进 - + Toggle Slow Motion 切换慢动作 - + Turbo / Fast Forward (Hold) 加速/快进(保持) - + Increase Target Speed 增加目标速度 - + Decrease Target Speed 降低目标速度 - + Increase Volume 增大音量 - + Decrease Volume 减小音量 - + Toggle Mute 切换静音 - + Frame Advance 帧步进 - + Shut Down Virtual Machine 关闭虚拟机 - + Reset Virtual Machine 重置虚拟机 - + Toggle Input Recording Mode 切换输入录制模式 - - - - + + + + Save States 即时存档 - + Select Previous Save Slot 选择上一个即时存档位置 - + Select Next Save Slot 选择下一个即时存档位置 - + Save State To Selected Slot 保存即时存档到选定的位置 - + Load State From Selected Slot 从选定的位置加载即时存档 - + Save State To Slot 1 保存即时存档到位置 1 - + Load State From Slot 1 从位置 1 加载即时存档 - + Save State To Slot 2 保存即时存档到位置 2 - + Load State From Slot 2 从位置 2 加载即时存档 - + Save State To Slot 3 保存即时存档到位置 3 - + Load State From Slot 3 从位置 3 加载即时存档 - + Save State To Slot 4 保存即时存档到位置 4 - + Load State From Slot 4 从位置 4 加载即时存档 - + Save State To Slot 5 保存即时存档到位置 5 - + Load State From Slot 5 从位置 5 加载即时存档 - + Save State To Slot 6 保存即时存档到位置 6 - + Load State From Slot 6 从位置 6 加载即时存档 - + Save State To Slot 7 保存即时存档到位置 7 - + Load State From Slot 7 从位置 7 加载即时存档 - + Save State To Slot 8 保存即时存档到位置 8 - + Load State From Slot 8 从位置 8 加载即时存档 - + Save State To Slot 9 保存即时存档到位置 9 - + Load State From Slot 9 从位置 9 加载即时存档 - + Save State To Slot 10 保存即时存档到位置 10 - + Load State From Slot 10 从位置 10 加载即时存档 @@ -11718,6 +12216,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + 左摇杆 + + + + Right Analog + 右摇杆 + + + + Cross + × + + + + Square + + + + + Triangle + + + + + Circle + + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + 方向键下 + + + + D-Pad Right️ + D-Pad 右️ + + + + D-Pad Up️ + D-Pad 上️ + + + + D-Pad Left️ + D-Pad 左️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + 开始 + Input Recording Files (*.p2m2) @@ -11745,137 +12333,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour 行为 - + Pause On Focus Loss 丢失焦点时暂停 - + Inhibit Screensaver 禁用屏幕保护程序 - + Save State On Shutdown 关闭时保存即时存档 - + Pause On Start 启动时暂停 - + Confirm Shutdown 确认退出 - + Create Save State Backups 创建即时存档备份 - + Enable Discord Presence 开启 Discord Presence - + Enable Per-Game Settings 开启每游戏设置 - + Game Display 游戏显示 - + Start Fullscreen 启动全屏幕 - + Double-Click Toggles Fullscreen 双击切换全屏幕 - + Render To Separate Window 渲染到分离窗口 - + Hide Main Window When Running 在运行时隐藏主窗口 - + Disable Window Resizing 关闭窗口调整大小 - + Hide Cursor In Fullscreen 全屏模式下隐藏光标 - + Preferences 参数 - + Language: 语言: - + Theme: 主题: - + Automatic Updater 自动更新器 - + Update Channel: 更新通道: - + Current Version: 当前版本: - + Enable Automatic Update Check 开启自动检查更新 - + Check for Updates... 检查更新... @@ -12068,7 +12656,7 @@ Right click to clear binding 将您当前正在游玩的游戏显示在 Discord 的个人档案中。 - + System Language [Default] 系统语言 [默认] @@ -12125,14 +12713,14 @@ Right click to clear binding - - + + Change Disc 更换光盘 - + Load State 加载即时存档 @@ -12637,13 +13225,13 @@ Right click to clear binding - + Start Big Picture Mode 启动大屏模式 - + Big Picture In Toolbar 大屏 @@ -12655,7 +13243,7 @@ Right click to clear binding - + Show Advanced Settings 显示高级设置 @@ -12666,7 +13254,7 @@ Right click to clear binding - + Video Capture 视频捕获 @@ -12681,27 +13269,27 @@ Right click to clear binding 编辑补丁... - + Internal Resolution 内部分辨率 - + %1x Scale %1x 比例 - + Select location to save block dump: 选择保存块转储的位置: - + Do not show again 不再显示 - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12714,168 +13302,173 @@ PCSX2 团队不会为修改这些设置的配置提供任何支持,您可以自 您确定要继续吗? - + %1 Files (*.%2) %1 文件 (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: 已登录为 %1 (%2, %3 softcore)。 %4 条未读消息。 + + + Confirm Shutdown 确认退出 - + Are you sure you want to shut down the virtual machine? 您确实要关闭虚拟机吗? - + Save State For Resume 保存状态以继续 - - - - - - + + + + + + Error 错误 - + You must select a disc to change discs. 您必须选择一张需要更换光盘。 - + Properties... 属性... - + Open Containing Directory... Refers to the directory where a game is contained. 打开包含目录... - + Set Cover Image... 设置封面图像... - + Exclude From List 从列表中排除 - + Reset Play Time 重置游戏时间 - + Default Boot 默认引导 - + Fast Boot 快速引导 - + Full Boot 完全引导 - + Boot and Debug 引导并调试 - + Add Search Directory... 添加搜索目录... - + Start File 启动文件 - + Start Disc 启动光盘 - + Select Disc Image 选择光盘映像 - + Updater Error 更新错误 - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>对不起,您正在尝试更新的 PCSX2 版本不是 GitHub 的官方版本。为了防止不兼容,自动更新程序只在官方版本上启用。</p><p>要获得官方版本,请从下面的链接下载:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. 自动更新不支持当前的平台。 - + Confirm File Creation 确认文件创建 - + The pnach file '%1' does not currently exist. Do you want to create it? pnach 文件 '%1' 当前不存在。您要创建它吗? - + Failed to create '%1'. 创建 '%1' 失败。 - + Input Recording Files (*.p2m2) 输入录像文件 (*.p2m2) - + Paused 暂停 - + Load State Failed 加载即时存档失败 - + Cannot load a save state without a running VM. 无法在没有运行 VM 的情况下加载一个即时存档。 - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? 如果不重置虚拟机则无法加载新的 ELF。是否要立即重置该虚拟机? - + Cannot change from game to GS dump without shutting down first. 如果不先关机就无法从游戏更改到 GS 转储。 - + Failed to get window info from widget 从小部件获取窗口信息失败 @@ -12890,97 +13483,97 @@ PCSX2 团队不会为修改这些设置的配置提供任何支持,您可以自 所有文件类型 (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;单轨Raw 镜像 (*.bin *.iso);;Cue 表 (*.cue);;媒体描述符文件 (*.mdf);;MAME CHD 镜像 (*.chd);;CSO 镜像 (*.cso);;GZ 镜像 (*.gz);;区块转储 (*.dump) - + Stop Big Picture Mode 停止大屏模式 - + Exit Big Picture In Toolbar 退出大屏模式 - + Game Properties 游戏属性 - + Game properties is unavailable for the current game. 当前游戏的游戏属性不可用。 - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. 找不到任何 CD/DVD-ROM 设备。请确保您已连接驱动器并具有足够的访问权限。 - + Select disc drive: 选择光盘驱动器: - + This save state does not exist. 此即时存档不存在。 - + Select Cover Image 选择封面图像 - - All Cover Image Types (*.jpg *.jpeg *.png) - 所有封面图像类型 (*.jpg *.jpeg *.png) - - - + Cover Already Exists 封面已存在 - + A cover image for this game already exists, do you wish to replace it? 此游戏的封面图片已存在,您要替换它吗? - - - - + + + + Copy Error 复制错误 - + Failed to remove existing cover '%1' 移除现存封面 '%1' 失败 - + Failed to copy '%1' to '%2' 复制'%1' 到’%2‘ 失败 - + Failed to remove '%1' 移除 '%1' 失败 - - + + Confirm Reset 确认重置 - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + 所有封面图像类型 (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. 您必须选择与当前封面图像不同的文件。 - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12989,12 +13582,12 @@ This action cannot be undone. 此操作无法被撤销。 - + Load Resume State 加载并继续即时存档 - + A resume save state was found for this game, saved at: %1. @@ -13007,70 +13600,70 @@ Do you want to load this state, or start from a fresh boot? 您是要加载此状态,还是要重新启动? - + Fresh Boot 重新启动 - + Delete And Boot 删除并重启 - + Failed to delete save state file '%1'. 删除即时存档文件 '%1'.失败。 - + Load State File... 载入即时存档文件... - + Load From File... 从文件载入... - - + + Select Save State File 选择即时存档文件 - - + + Save States (*.p2s) 即时存档 (*.p2s) - + Delete Save States... 删除即时存档... - + Undo Load State 撤销载入即时存档 - + Resume (%2) 继续 (%2) - + Load Slot %1 (%2) 载入位置 %1 (%2) - - + + Delete Save States 删除即时存档 - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13079,42 +13672,42 @@ The saves will not be recoverable. 存档无法恢复。 - + %1 save states deleted. 已删除 %1 即时存档。 - + Save To File... 保存到文件... - + Empty - + Save Slot %1 (%2) 保存到位置 %1 (%2) - + Confirm Disc Change 确认更改光盘 - + Do you want to swap discs or boot the new image (via system reset)? 是否要交换光盘或启动新镜像(通过系统重置)? - + Swap Disc 交换光盘 - + Reset 重置 @@ -13122,8 +13715,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. 记忆卡 '{}' 已被保存到存储设备中。 @@ -13204,6 +13797,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2 倍标准容量的记忆卡。可能会有些兼容性问题。 @@ -13254,11 +13848,6 @@ The saves will not be recoverable. Cannot Convert Memory Card 无法转换记忆卡 - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2 倍标准容量的记忆卡。可能会有些兼容性问题。 - MemoryCardCreateDialog @@ -13384,103 +13973,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports 主机端口 - + Memory Cards 记忆卡 - + Folder: 文件夹: - + Browse... 浏览... - + Open... 打开... - + Reset 重置 - + Name 名称 - + Type 类型 - + Formatted 格式化 - + Last Modified 修改日期 - + Refresh 刷新 - + + Create 创建 - + Duplicate 复制 - + Rename 重命名 - + Convert 转换 - + Delete 删除 - + Settings 设置 - + Automatically manage saves based on running game 基于正在运行的游戏自动管理存档 - + Auto-eject Memory Cards when loading save states 当加载即时存档时自动弹出记忆卡 @@ -13650,58 +14240,58 @@ This action cannot be reversed, and you will lose any saves on the card.内存 - + Copy Address 反汇编 - + Go to in disassembly 转到反汇编 - - + + Go to address 转到地址 - + Show as 1 byte 显示为 1 字节 - + Show as 2 bytes 显示为 2 字节 - + Show as 4 bytes 显示为 4 字节 - + Show as 8 bytes 显示为 8 字节 - + Copy Byte 复制字节 - + Copy Segment 复制数据段 - + Copy Character 复制字符 - + Paste 粘贴 @@ -13751,10 +14341,15 @@ This action cannot be reversed, and you will lose any saves on the card.输入作者名称 - + Input Recording Files (*.p2m2) 输入录像文件 (*.p2m2) + + + Select a File + 选择一个文件 + Pad @@ -13950,6 +14545,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. 设置模拟摇杆死区,即忽略的操纵杆移动的比例。 + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13966,14 +14571,14 @@ This action cannot be reversed, and you will lose any saves on the card.设置用于激活按钮/扳机的死区,即将被忽略的扳机比例。 - - Analog light is now on for port {} / slot {} - 端口 {} / 插槽 {} 的模拟灯现在是开启的 + + Analog light is now on for port {0} / slot {1} + 端口 {0} / 插槽 {1} 的模拟灯现在是打开的 - - Analog light is now off for port {} / slot {} - 端口 {} / 插槽 {} 的模拟灯现在是关闭的 + + Analog light is now off for port {0} / slot {1} + 端口 {0} / 插槽 {1} 的模拟灯现在是关闭的 @@ -14020,13 +14625,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - 控制器端口 {},插槽 {} 已连接了 {},但即时存档中是 {}。 -使原始控制器类型保持连接,但这可能会导致问题。 - Strum Up @@ -14065,7 +14663,7 @@ Leaving the original controller type connected, but this may cause issues. Whammy Bar - Whammy Bar + 颤音臂 @@ -14097,40 +14695,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar 吉他 + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + 控制器端口 {0},插槽 {1} 连接了 {2},但即时存档中连接的是 {3}。 +保留原始的控制器类型连接,但这可能会导致问题。 + Patch - + Failed to open {}. Built-in game patches are not available. 无法打开 {}。内置游戏补丁不可用。 - + {} GameDB patches {} 条游戏数据库补丁 - + {}{} game patches {}{} 条游戏补丁 - + {}{} cheat patches {}{} 条作弊补丁 - + {} are active. 开启 {}。 - + No cheats or patches (widescreen, compatibility or others) are found / enabled. 没有找到 / 开启作弊或补丁 (宽屏、兼容性以及其它)。 + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14148,13 +14769,13 @@ The URL was: %1 URL 时: %1 - + HDD Creator HDD 创建器 - + Failed to create HDD image 创建 HDD 映像失败 @@ -14359,7 +14980,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14409,222 +15029,243 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + 使用全局设置 [开启] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + 使用全局设置 [关闭] + + + + + Use Global Setting [%1] + 使用全局设置 [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings PCSX2 设置 - + Restore Defaults 还原默认 - + Copy Global Settings 复制全局配置 - + Clear Settings 清除设置 - + Close 关闭 - - - Summary - 统计 - - - + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. <strong>摘要</strong><hr>此页面显示有关所选游戏的详细信息。更改输入配置文件会将此游戏的控制器绑定方案设置为所选的任意配置文件,而不是默认(共享)配置。轨道列表和转储验证可用于确定您的光盘映像是否与已知正确转储匹配。如果不匹配,游戏可能已损坏。 - + + + Summary + 统计 + + + Summary is unavailable for files not present in game list. 摘要不适用于游戏列表中不存在的文件。 - + Interface 界面 - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. <strong>界面设置</strong><hr>这些选项控制软件的外观和行为。<br><br>将鼠标悬停在选项上可查看附加信息。 - + Game List 游戏列表 - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. <strong>游戏列表设置</strong><hr>上面的列表显示了由 PCSX2 搜索用来填充游戏列表的目录。可以添加、删除搜索目录,并将其切换为递归/非递归。 - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. <strong>BIOS 设置</strong><hr>在此处配置您的 BIOS。<br><br>将鼠标悬停在选项上获取详情。 - + Emulation 模拟 - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. <strong>模拟设置</strong><hr>这些选项确定帧间隔和游戏设置。<br><br>将鼠标悬停在选项上获取详情。 - + Patches 补丁 - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. <strong>补丁</strong><hr>此部分允许您选择要应用于游戏的可选补丁,这些补丁可能会提供性能、视觉或游戏方面的改进。 - + Cheats 修改 - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. <strong>作弊</strong><hr>此部分允许您选择要启用的作弊。对于旧格式的 pnach 文件您不能启用/禁用没有标签的作弊,如果选中了主要的作弊启用选项这些作弊将自动激活。 - + Game Fixes 游戏修正 - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. <strong>游戏修正设置</strong><hr>游戏修正可以解决某些游戏中不正确的模拟。<br>但是,如果使用不当它们也可能在游戏中导致问题。<br>除非另有建议否则最好将其全部禁用。 - + Graphics 图形 - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. <strong>图形设置</strong><hr>这些选项确定图形输出的配置。<br><br>将鼠标悬停在选项上获取详情。 - + Audio 音频 - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. <strong>音频设置</strong><hr>这些选项控制主机的音频输出。<br><br>将鼠标悬停在选项上获取详情。 - + Memory Cards 记忆卡 - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. <strong>记忆卡设置</strong><hr>在此处创建和配置记忆卡。<br><br>将鼠标悬停在选项上获取详情。 - + Network & HDD 网络与硬盘 - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. <strong>网络与硬盘设置</strong><hr>这些选项控制主机的网络连接和内部硬盘存储。<br><br>将鼠标悬停在选项上可查看附加信息。 - + Folders 文件夹 - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. <strong>文件夹设置</strong><hr>这些选项控制 PCSX2 保存运行时数据文件的位置。 - + Achievements 成就 - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. <strong>成就设置</strong><hr>这些设置控制 RetroAchievements 在 PCSX2 中的实现方式, 允许您在游戏中获得成就。 - + RAIntegration is being used, built-in RetroAchievements support is disabled. 正在使用 RAIntegration,内置的 RetroAchievements 支持已禁用。 - + Advanced 高级 - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. <strong>高级设置</strong><hr>这些是用于确定模拟主机配置的高级选项。<br><br>将鼠标悬停在选项上可查看更多信息。 - + Debug 调试 - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. <strong>调试设置</strong><hr>这些选项可用于记录有关应用程序的内部信息。<strong>除非您知道自己在做什么否则请勿修改</strong>,这将导致速度显著减慢,并可能浪费大量磁盘空间。 - + Confirm Restore Defaults 确认重置为默认值 - + Are you sure you want to restore the default settings? Any preferences will be lost. 您确实要恢复默认设置吗?所有参数都将丢失。 - + Reset UI Settings 重置 UI 设置 - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. @@ -14637,12 +15278,12 @@ Do you want to continue? 您要继续吗? - + Per-game configuration copied from global settings. 已从全局设置复制到游戏特定配置。 - + The configuration for this game will be cleared. Any current setting values will be lost. @@ -14655,33 +15296,15 @@ Do you want to continue? 您要继续吗? - + Per-game configuration cleared. 已清空游戏特定配置。 - + Recommended Value 推荐值 - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - 使用全局设置 [开启] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - 使用全局设置 [关闭] - - - - - Use Global Setting [%1] - 使用全局设置 [%1] - SetupWizardDialog @@ -14767,8 +15390,8 @@ Do you want to continue? - Open in Explorer... - 在浏览器中打开... + Open BIOS Folder... + 打开 BIOS 文件夹... @@ -15035,97 +15658,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. 等待类型 - + BAD Refers to a Thread State in the Debugger. 错误 - + RUN Refers to a Thread State in the Debugger. 运行 - + READY Refers to a Thread State in the Debugger. 就绪 - + WAIT Refers to a Thread State in the Debugger. 等待 - + SUSPEND Refers to a Thread State in the Debugger. 暂停 - + WAIT SUSPEND Refers to a Thread State in the Debugger. 等待暂停 - + DORMANT Refers to a Thread State in the Debugger. 休眠 - + NONE Refers to a Thread Wait State in the Debugger. - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. 唤醒请求 - + SEMAPHORE Refers to a Thread Wait State in the Debugger. 信号 - + SLEEP Refers to a Thread Wait State in the Debugger. 休眠 - + DELAY Refers to a Thread Wait State in the Debugger. 延迟 - + EVENTFLAG Refers to a Thread Wait State in the Debugger. 事件标志 - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15331,6 +15954,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. 缩放上面设置的十字准星图像。 + + + %.0f%% + %.0f%% + Cursor Color @@ -15362,6 +15990,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. 缩放位置以模拟 CRT 曲率。 + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15377,6 +16011,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. 设置模拟屏幕的水平中心位置。 + + + + %.0fpx + %.0fpx + Center Y @@ -15397,6 +16037,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. 设置模拟屏幕的宽度。 + + + + %dpx + %dpx + Screen Height @@ -15452,6 +16098,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. 指定主机输入设备的延迟。 + + + + + + + %dms + %dms + Output Latency @@ -15652,6 +16307,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + + + + + Low + + + + + Medium + 中等 + + + + High + + Steering Smoothing @@ -15662,6 +16337,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. 按指定的百分比平滑每次轮询的转向。使用键盘时需要。 + + + + %d%% + %d%% + Steering Deadzone @@ -16161,117 +16842,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. 要绑定大多数现代 900 度方向盘的转向,请将方向盘在所需方向上旋转一圈,然后再回正方向。 - + Force Feedback 强制力回馈 - + D-Pad 方向键 - + Down - + Left - + Up - + Right - + L1 L1 - + L2 L2 - + Brake 刹车 - + Steering Left 向左转向 - + Steering Right 向右转向 - + Select Select - + Start 开始 - + Face Buttons 面板按钮 - + Circle - + Cross × - + Triangle - + Square - + R1 R1 - + R2 R2 - + Accelerator 油门 @@ -16279,67 +16960,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints Hints - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. 要绑定大多数现代 900 度方向盘的转向,请将方向盘在所需方向上旋转一圈,然后再回正方向。 - + Force Feedback 强制力回馈 - + X X - + A A - + Brake 刹车 - + Steering Left 向左转向 - + Steering Right 向右转向 - + Left Paddle 左踏板 - + Right Paddle 右踏板 - + Y Y - + B B - + Accelerator 油门 @@ -16347,71 +17028,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons 按钮 - + A A - + C C - + Start 开始 - + Select Select - + B B - + D-Pad 方向键 - - + + Down - - + + Left - - + + Up - - + + Right - + Pointer Setup 指针设置 - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16420,29 +17101,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>如果您想要使用控制器,或者模拟控制器而不是鼠标的光枪,那么您应该将其绑定到相对瞄准。否则,相对瞄准应为<strong>未绑定</strong>。</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 相对瞄准 - - + + Trigger 触发 - + Shoot Offscreen 离屏射击 - + Calibration Shot 校准镜头 - + Calibration shot is required to pass the setup screen in some games. 在一些游戏中需要校准镜头才能通过设置屏幕。 @@ -16450,27 +17131,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type 设备类型 - + Bindings 绑定 - + Settings 设置 - + Automatic Mapping 自动映射 - + Clear Mapping 清除映射 @@ -16508,32 +17189,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. 备份旧的即时存档失败 {}。 - + Failed to save save state: {}. 保存即时存档 {} 失败。 - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game 未知游戏 - + Error 错误 - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16550,197 +17231,217 @@ Please consult the FAQs and Guides for further instructions. 请参阅常见问题解答和指南获取详细说明。 - + + Resuming state + 从即时存档继续 + + + State saved to slot {}. 即时存档已保存到位置 {}. - + Failed to save save state to slot {}. 即时存档保存到位置 {} 失败。 - + + + Loading state + 正在加载即时存档 + + + There is no save state in slot {}. 在位置 {} 没有即时存档。 - + Loading state from slot {}... 从位置 {} 加载即时存档... - + Saving state to slot {}... 正在保存即时存档到位置 {}... - + + Frame advancing + 帧步进 + + + Disc removed. 已移除光盘。 - + Disc changed to '{}'. 已更改光盘为 '{}'。 - - Failed to open new disc image '{}'. Reverting to old image. - 无法打开新的光盘映像 ‘{}’。正在恢复为旧的映像。 + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + 打开新的光盘映像 '{}' 失败。正在还原为旧的映像。 +错误是: {} - - Failed to switch back to old disc image. Removing disc. - 切换回旧的光盘映像失败。正在移除光盘。 + + Failed to switch back to old disc image. Removing disc. +Error was: {} + 切换回旧光盘映像失败。正在移除光盘。 +错误是: {} - + Cheats have been disabled due to achievements hardcore mode. 由于硬核成就模式作弊已被禁用。 - + Fast CDVD is enabled, this may break games. 已开启快速 CDVD,这可能回破坏部分游戏。 - + Cycle rate/skip is not at default, this may crash or make games run too slow. 循环频率/跳过不是默认设置,这可能会导致崩溃或使游戏运行太慢。 - + Audio is using async mix, expect desynchronization in FMVs. 音频正在使用异步混音,预计 FMV 中会出现去同步。 - + Upscale multiplier is below native, this will break rendering. 缩放倍数低于原生,这可能破坏渲染。 - + Mipmapping is not set to automatic. This may break rendering in some games. 纹理映射未被设置为自动。这可能会破坏某些游戏的渲染。 - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. 纹理过滤未被设置为双线性 (PS2)。这可能会破坏某些游戏的渲染。 - + Trilinear filtering is not set to automatic. This may break rendering in some games. 三线性过滤未被设置未自动。这可能会破坏某些游戏的渲染。 - + Blending is below basic, this may break effects in some games. 混合低于基础,这可能会破坏某些游戏中的效果。 - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. 硬件下载模式未被设置为精确,这可能会破坏某些游戏的渲染。 - + EE FPU Round Mode is not set to default, this may break some games. EE FPU 循环模式未被设置为默认,这可能会破坏某些游戏。 - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU 压制模式未被设置为默认,这可能会破坏某些游戏。 - + VU Round Mode is not set to default, this may break some games. VU 循环模式未被设置为默认,这可能会破坏某些游戏。 - + VU Clamp Mode is not set to default, this may break some games. VU 压制模式未被设置为默认,这可能会破坏某些游戏。 - + Game Fixes are not enabled. Compatibility with some games may be affected. 未启用游戏修复。某些游戏的兼容性可能会受到影响。 - + Compatibility Patches are not enabled. Compatibility with some games may be affected. 未启用兼容性补丁。某些游戏的兼容性可能会受到影响。 - + Frame rate for NTSC is not default. This may break some games. NTSC 制式的帧率不是默认值。这可能会破坏某些游戏。 - + Frame rate for PAL is not default. This may break some games. PAL 制式的帧率不是默认值。这可能会破坏某些游戏。 - + EE Recompiler is not enabled, this will significantly reduce performance. 未启用 EE 重编译器,这将显著降低性能。 - + VU0 Recompiler is not enabled, this will significantly reduce performance. 未启用 VU0 重编译器,这将显著降低性能。 - + VU1 Recompiler is not enabled, this will significantly reduce performance. 未启用 VU1 重编译器,这将显著降低性能。 - + IOP Recompiler is not enabled, this will significantly reduce performance. 未启用 IOP 重编译器,这将显著降低性能。 - + EE Cache is enabled, this will significantly reduce performance. 已启用 EE 缓存,这将显著降低性能。 - + EE Wait Loop Detection is not enabled, this may reduce performance. 未启用 EE 等待循环检测,这将显著降低性能。 - + INTC Spin Detection is not enabled, this may reduce performance. 未启用 INTC 自旋检测,这将显著降低性能。 - + Instant VU1 is disabled, this may reduce performance. 即时 VU1 被禁用,这将降低性能。 - + mVU Flag Hack is not enabled, this may reduce performance. 未启用 mVU 标志 Hack,这将降低性能。 - + GPU Palette Conversion is enabled, this may reduce performance. 已启用 GPU 调色版,这将降低性能。 - + Texture Preloading is not Full, this may reduce performance. 纹理预载未满,这将降低性能。 - + Estimate texture region is enabled, this may reduce performance. 已启用估计纹理区域,这可能会降低性能。 diff --git a/pcsx2-qt/Translations/pcsx2-qt_zh-TW.ts b/pcsx2-qt/Translations/pcsx2-qt_zh-TW.ts index a11fded896247f..135b511cc65f16 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_zh-TW.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_zh-TW.ts @@ -80,32 +80,38 @@ 就緒... - + <strong>Your RetroAchievements login token is no longer valid.</strong> You must re-enter your credentials for achievements to be tracked. Your password will not be saved in PCSX2, an access token will be generated and used instead. <strong>您的RetroAchievements 登錄憑據似乎不再有效。</strong> 您必須重新輸入您的憑據才能跟蹤成就。您的密碼不會儲存在 PCSX2 中而是產生並使用訪問令牌。 - + &Login 登錄(&L) - + Logging in... 正在登錄... - + Login Error 登錄時發生錯誤 - - Login failed. Please check your username and password, and try again. - 登錄失敗。請檢查您的使用者名稱和密碼並再次嘗試。 + + Login failed. +Error: %1 + +Please check your username and password, and try again. + 登錄失敗。 +錯誤: %1 + +請檢查您的使用者名稱和密碼並再次嘗試。 - + Login failed. 登錄失敗。 @@ -113,268 +119,498 @@ AchievementSettingsWidget - - Global Settings - 全域性設定 - - - - + + Enable Achievements 啟用成就係統 - - - Show Challenge Indicators - 顯示挑戰指示器 - - - - - Enable RA's Rich Presence - This "Rich Presence" is not Discord's, but rather RetroAchivements own system. - 開啟 RA 的富狀態呈現 - - - - + + Enable Hardcore Mode 開啟硬核模式 - - - Enable Leaderboards - 開啟排行榜 - - - + Test Unofficial Achievements 測試非官方成就 - - - Enable Test Mode - 開啟測試模式 - - - - + + Enable Sound Effects 啟用聲音效果 - + Notifications 通知 - - - Show Notifications - 顯示通知 - - - - Duration - 間隔 - - - - - - + + 5 seconds 5 秒 - + Account 賬戶 - - + + Login... 登錄... - + View Profile... 檢視檔案... - + + Settings + 設定 + + + + + Enable Spectator Mode + 開啟觀察者模式 + + + + + Enable Encore Mode + 開啟硬核模式 + + + + + Show Achievement Notifications + Show Achievement Notifications + + + + + Show Leaderboard Notifications + Show Leaderboard Notifications + + + + + Enable In-Game Overlays + Enable In-Game Overlays + + + + Username: +Login token generated at: + Username: +Login token generated at: + + + Game Info 遊戲資訊 - + <html><head/><body><p align="justify">PCSX2 uses RetroAchievements as an achievement database and for tracking progress. To use achievements, please sign up for an account at <a href="https://retroachievements.org/">retroachievements.org</a>.</p><p align="justify">To view the achievement list in-game, press the hotkey for <span style=" font-weight:600;">Open Pause Menu</span> and select <span style=" font-weight:600;">Achievements</span> from the menu.</p></body></html> <html><head/><body><p align="justify">PCSX2 使用 RetroAchievement 作為成就數據庫並用其追蹤進度。要使用成就, 請在 <a href="https://retroachievements.org/">retroachievements.org</a> 登錄一個賬號。</p><p align="justify">要在遊戲中檢視成就,請按<span style=" font-weight:600;">打開暫停菜單</span>的熱鍵並從隨後的菜單中選擇<span style=" font-weight:600;">成就</span>專案。</p></body></html> + - seconds - - - - - + + - - Unchecked 已取消勾選 - - When enabled and logged in, PCSX2 will scan for achievements on game load. - 當啟用此選項並登錄時,PCSX2 將在遊戲載入時掃瞄成就。 - - - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. 啟用后,PCSX2 將假定所有成就都已鎖定並且不會向伺服器發送任何解鎖通知。 - + When enabled, PCSX2 will list achievements from unofficial sets. Please note that these achievements are not tracked by RetroAchievements, so they unlock every time. 啟用后,PCSX2 將列出非官方的成就集。請注意這些成就不是由 RetroAchievements 跟蹤的,所以每次達成時都會解鎖。 - - When enabled, rich presence information will be collected and sent to the RetroAchievements servers where supported. - 啟用后,富狀態資訊將被收集併發送到受支援的 RetroAchievements 伺服器。 - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "挑戰" 模式的成就係統,包括排行榜跟蹤。禁用即時存檔、作弊和減速功能。 - - - - + + + + Checked 選中 - - Enables tracking and submission of leaderboards in supported games. If leaderboards are disabled, you will still be able to view the leaderboard and scores, but no scores will be uploaded. - 啟用跟蹤和提交受支援遊戲中的排行榜。如果禁用排行榜,您仍可以檢視排行榜和分數,但分數不會被上傳。 - - - - Displays popup messages on events such as achievement unlocks and leaderboard submissions. - 顯示解鎖成就和提交排名等事件的彈出訊息。 - - - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. 為解鎖成就和提交排名等事件播放音效。 - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. 當挑戰/已獲得的成就處於活動狀態時在螢幕右下角顯示圖示。 - - - - Notification Duration - 通知間隔 + + When enabled and logged in, PCSX2 will scan for achievements on startup. + When enabled and logged in, PCSX2 will scan for achievements on startup. + + + + Displays popup messages on events such as achievement unlocks and game completion. + Displays popup messages on events such as achievement unlocks and game completion. + + + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. - - - - The duration, in seconds, an achievement popup notification will remain on screen. - 成就彈出時將停留在螢幕的時間, 以秒為單位。 + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. - + Reset System 重置系統 - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? 在系統重置之前硬核模式將不被啟用。您要立即重置系統嗎? + + + + %n seconds + + %n seconds + + - + Username: %1 Login token generated on %2. - Variable %1 is an username, variable %2 is a timestamp. 使用者名稱: %1 登錄令牌產生于 %2. - + Logout 註銷 - + Not Logged In. 未登錄。 - - - %1 seconds - %1 秒 - Achievements - + Hardcore mode will be enabled on system reset. 硬核模式將在系統重啟時開啟。 - + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. 無法在啟用硬核模式時執行 {0}。您要關閉硬核模式嗎? 如果您選擇了否 {0} 將被取消。 - + Hardcore mode is now enabled. 已開啟硬核模式。 - + + {} (Hardcore Mode) + {} (Hardcore Mode) + + + + {} (Unofficial) + {} (Unofficial) + + + + Mastered {} + Mastered {} + + + + Leaderboard attempt started. + Leaderboard attempt started. + + + + Leaderboard attempt failed. + Leaderboard attempt failed. + + + + Your Time: {}{} + Your Time: {}{} + + + + Your Score: {}{} + Your Score: {}{} + + + + Your Value: {}{} + Your Value: {}{} + + + + (Submitting) + (Submitting) + + + + Achievements Disconnected + Achievements Disconnected + + + + An unlock request could not be completed. We will keep retrying to submit this request. + An unlock request could not be completed. We will keep retrying to submit this request. + + + + Achievements Reconnected + Achievements Reconnected + + + + All pending unlock requests have completed. + All pending unlock requests have completed. + + + Hardcore mode is now disabled. 已關閉硬核模式。 - + + Confirm Hardcore Mode + 確定硬核模式 + + + + Active Challenge Achievements + Active Challenge Achievements + + + (Hardcore Mode) (硬核模式) - - You have earned {0} of {1} achievements, and {2} of {3} points. - 您已獲得了 {1} 個成就中的 {0} 個,以及 {3} 個點數中的 {2} 個。 + + You have unlocked all achievements and earned {} points! + You have unlocked all achievements and earned {} points! - - This game has no achievements. - 此遊戲沒有成就。 + + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + You have unlocked {0} of {1} achievements, and earned {2} of {3} points. + + + + {0} achievements, {1} points + {0} achievements, {1} points + + + + Your Time: {0} (Best: {1}) + Your Time: {0} (Best: {1}) + + + + Your Score: {0} (Best: {1}) + Your Score: {0} (Best: {1}) + + + + Your Value: {0} (Best: {1}) + Your Value: {0} (Best: {1}) + + + + {0} +Leaderboard Position: {1} of {2} + {0} +Leaderboard Position: {1} of {2} + + + + Server error in {0}: +{1} + Server error in {0}: +{1} + + + + Score: {0} ({1} softcore) +Unread messages: {2} + Score: {0} ({1} softcore) +Unread messages: {2} + + + + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. + + + + Unknown + Unknown + + + + Locked + Locked + + + + Unlocked + Unlocked + + + + Unsupported + Unsupported + + + + Unofficial + Unofficial + + + + Recently Unlocked + Recently Unlocked + + + + Active Challenges + Active Challenges + + + + Almost There + Almost There + + + + {} points + {} points + + + + {} point + {} point + + + + XXX points + XXX points + + + + Unlocked: {} + Unlocked: {} + + + + This game has {} leaderboards. + This game has {} leaderboards. + + + + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. + + + + Show Best + Show Best + + + + Show Nearby + Show Nearby + + + + Rank + Rank + + + + Name + Name + + + + Time + 時間 + + + + Score + 分數 + + + + Value + Value + + + + Date Submitted + 提交日期 + + + + Downloading leaderboard data, please wait... + Downloading leaderboard data, please wait... - - Leaderboard submission is enabled. - 已啟用排行榜提交。 + + + Loading... + 加載中... + + + + + Leaderboard download failed + Leaderboard download failed + + + + This game has no achievements. + 此遊戲沒有成就。 - + Failed to read executable from disc. Achievements disabled. 無法從光碟中讀取可執行檔案。成就係統已被禁用。 @@ -578,220 +814,220 @@ Login token generated on %2. AdvancedSystemSettingsWidget - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. 更改這些選項可能會導致遊戲無法執行。修改風險自負, PCSX2 團隊不會為更改了這些設定的配置提供支援。 - + EmotionEngine (MIPS-IV) Emotion Engine = Commercial name of one of PS2's processors. Leave as-is unless there's an official name (like for Japanese). 情感引擎 (MIPS-IV) - + Rounding Mode: Rounding refers here to the mathematical term. 循環模式: - - - + + + Nearest 最鄰近插值演算法 - - - + + + Negative 負數 - - - + + + Positive 正數 - - - + + + Chop / Zero (Default) 捨去 / 零 (預設) - + Clamping Mode: Clamping: Forcing out of bounds things in bounds by changing them to the closest possible value. In this case, this refers to clamping large PS2 floating point values (which map to infinity or NaN in PCs' IEEE754 floats) to non-infinite ones. 壓制模式: - - + + None - - - + + + Normal (Default) 普通 (預設) - + None ClampMode - - - + + + Extra + Preserve Sign Sign: refers here to the mathematical meaning (plus/minus). 額外 + 保留符號 - + Full 完全 - + Wait Loop Detection 等待循環檢測 - - + + Enable Recompiler 啟用重編譯器 - + Enable Fast Memory Access 啟用快速記憶體訪問 - + Enable Cache (Slow) 啟用快取 (慢) - + INTC Spin Detection INTC 旋轉檢測 - + Pause On TLB Miss 在 TLB 丟失時暫停 - + Vector Units (VU) Vector Unit/VU: refers to two of PS2's processors. Do not translate the full text or do so as a comment. Leave the acronym as-is. 向量單元 (VU) - + VU1 Rounding Mode: VU1 舍入模式: - + mVU Flag Hack mVU 標誌 Hack - + Enable VU1 Recompiler 開啟 VU1 重編譯器 - + Enable VU0 Recompiler (Micro Mode) 開啟 VU0 重編譯器 (微模式) - - + + Extra 額外 - + VU0 Clamping Mode: VU0 壓制模式: - + VU0 Rounding Mode: VU0 舍入模式: - + VU1 Clamping Mode: VU1 壓制模式: - + I/O Processor (IOP, MIPS-I) I/O 處理器 (IOP、MIPS-I) - + Game Settings 遊戲設定 - + Enable Game Fixes 啟用遊戲修復 - + Enable Compatibility Patches 啟用相容性補丁 - + Frame Rate Control 幀率控制 - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. 赫茲 - + PAL Frame Rate: PAL 幀率: - + NTSC Frame Rate: NTSC 幀率: - + PINE Settings PINE 設定 - + Slot: 卡槽: - + Enable 啟用 @@ -799,182 +1035,182 @@ Login token generated on %2. AudioSettingsWidget - + Timestretch Settings 時間延展設定 - + Sequence Length: 序列長度: - + 30 30 - + Seekwindow Size: 搜索視窗大小: - + 20 20 - + Overlap: 重疊: - + 10 10 - + Restore Defaults 還原預設設定 - + Volume 音量 - + 100% 100% - + Mixing Settings 混響設定 - + Synchronization: 同步: - + TimeStretch (Recommended) 時間延展 (推薦) - + Async Mix (Breaks some games!) 非同步混合 (會破壞部分遊戲!) - + None (Audio can skip.) 無 (音訊可能會跳躍) - + Expansion: 擴充套件: - + Stereo (None, Default) 立體聲 (無,預設) - + Quadraphonic - Quadraphonic + 四聲道 - + Surround 5.1 5.1 環繞聲 - + Surround 7.1 7.1 環繞聲 - + ProLogic Level: ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic 等級: - + None (Default) 無 (預設) - + ProLogic Decoding (basic) ProLogic is a Dolby brand. Leave the name as-is unless there is an official translation for your language. ProLogic 解碼 (基礎) - + ProLogic II Decoding (gigaherz) ProLogic II is a Dolby brand. Leave the name as-is unless there is an official translation for your language. gigaherz is the nickname of one of PCSX2's developers. Leave as-is. ProLogic II 解碼 (gigaherz) - + Target Latency: 目標延遲: - + 60 ms 60 毫秒 - + Output Settings 輸出設定 - + Output Module: 輸出模組: - + Output Latency: 輸出延遲: - + 20 ms 20 毫秒 - + Minimal 最小 - + Output Backend: 輸出後端: - + Maximum Latency: 最大延遲: - + Output Device: 輸出裝置: @@ -1162,17 +1398,22 @@ Login token generated on %2. 新版本: - + + Download Size: + Download Size: + + + Download and Install... 下載並安裝... - + Skip This Update 跳過此更新 - + Remind Me Later 下次再提醒我 @@ -1182,17 +1423,17 @@ Login token generated on %2. 更新錯誤 - + <h2>Changes:</h2> <h2>改動:</h2> - + <h2>Save State Warning</h2><p>Installing this update will make your save states <b>incompatible</b>. Please ensure you have saved your games to a Memory Card before installing this update or you will lose progress.</p> <h2>即時存檔警告</h2><p>安裝此更新將會使您的即時存檔變得 <b>不相容</b>。 請確認在安裝此更新前您已經將您的遊戲進度儲存至記憶卡中,否則您將丟失進度。</p> - + <h2>Settings Warning</h2><p>Installing this update will reset your program configuration. Please note that you will have to reconfigure your settings after this update.</p> <h2>設定警告</h2><p>安裝此更新將重置您的程式配置。請注意在此更新后您必須重新配置您的設定。</p> @@ -1233,6 +1474,11 @@ Login token generated on %2. + Download Size: %1 MB + Download Size: %1 MB + + + Loading... 正在載入... @@ -1240,63 +1486,63 @@ Login token generated on %2. BIOSSettingsWidget - + BIOS Directory BIOS 目錄 - + PCSX2 will search for BIOS images in this directory. PCSX2 將搜索此目錄中的 BIOS 映像。 - + Browse... 瀏覽... - + Reset 重置 - + BIOS Selection 選擇 BIOS - - Open in Explorer... - 在瀏覽器中打開... + + Open BIOS Folder... + Open BIOS Folder... - + Refresh List 重新整理列表 - + Filename 檔名 - + Version 版本 - + Options and Patches 選項和補丁 - + Fast Boot 快速啟動 - + Fast Forward Boot 快進啟動 @@ -1424,91 +1670,84 @@ Login token generated on %2. BreakpointModel - + Execute 執行 - - No Condition - 無條件 - - - - + + -- -- - - + Enabled 開啟 - - + Disabled 關閉 - + Read 讀取 - + Write(C) (C) = changes, as in "look for changes". 寫入(C) - + Write 寫入 - + TYPE Warning: limited space available. Abbreviate if needed. 型別 - + OFFSET Warning: limited space available. Abbreviate if needed. 偏移 - + SIZE / LABEL Warning: limited space available. Abbreviate if needed. 大小 / 標籤 - + INSTRUCTION Warning: limited space available. Abbreviate if needed. 指令 - + CONDITION Warning: limited space available. Abbreviate if needed. 條件 - + HITS Warning: limited space available. Abbreviate if needed. 命中 - - ENABLED + + X Warning: limited space available. Abbreviate if needed. - 已啟用 + X @@ -1519,7 +1758,7 @@ Login token generated on %2. 遊戲光碟位於可解除安裝的驅動器上,可能會出現卡頓和死鎖等效能問題。 - + Saving CDVD block dump to '{}'. 正在儲存 CDVD 塊轉儲到 '{}'。 @@ -1555,32 +1794,32 @@ Login token generated on %2. ControllerBindingWidget - + Virtual Controller Type 虛擬控制器型別 - + Bindings 繫結 - + Settings 設定 - + Macros - + Automatic Mapping 自動對映 - + Clear Mapping 清除對映 @@ -1620,146 +1859,146 @@ Login token generated on %2. ControllerBindingWidget_DualShock2 - + D-Pad Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 方向鍵 - - - + + + Down - - - + + + Left - - - + + + Up - - - + + + Right - + Left Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 左搖桿 - + Large Motor 大馬達 - + L2 Leave this button name as-is. L2 - + R2 Leave this button name as-is. R2 - + L1 Leave this button name as-is. L1 - + R1 Leave this button name as-is. R1 - + Start Leave this button name as-is or uppercase it entirely. 開始 (Start) - + Select Leave this button name as-is or uppercase it entirely. 選擇 (Select) - + Face Buttons Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 面板按鈕 - + Cross Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. × - + Square Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Triangle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Circle Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. - + Right Analog Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 右搖桿 - + Small Motor 小馬達 - + L3 Leave this button name as-is. L3 - + R3 Leave this button name as-is. R3 - + Pressure Modifier 壓力修改器 - + Analog 模擬 @@ -1767,77 +2006,72 @@ Login token generated on %2. ControllerBindingWidget_Guitar - - Form - 表單 - - - + Yellow - - - - - - - - - - - + + + + + + + + + + + PushButton 按鈕 - + Start 開始 - + Red - + Green - + Orange - + Select 選擇 (Select) - + Strum Up 向上伸展 - + Strum Down 向下伸展 - + Blue - + Whammy Bar Whammy Bar - + Tilt 傾斜 @@ -1863,123 +2097,133 @@ Login token generated on %2. ControllerGlobalSettingsWidget - + SDL Input Source SDL 輸入源 - + The SDL input source supports most controllers, and provides advanced functionality for DualShock 4 / DualSense pads in Bluetooth mode (Vibration / LED Control). SDL 輸入源支援大多數控制器並在藍芽模式下為 DualShock 4/DualSense 手柄提供高級功能(震動/LED控制)。 - + Enable SDL Input Source 啟用 SDL 輸入源 - + DualShock 4 / DualSense Enhanced Mode DualShock 4 / DualSense 增強模式 - + XInput Source XInput 輸入源 - + Enable XInput Input Source 啟用 XInput 輸入源 - + DInput Source DInput 輸入源 - + The DInput source provides support for legacy controllers which do not support XInput. Accessing these controllers via SDL instead is recommended, but DirectInput can be used if they are not compatible with SDL. DInput 輸入源為不支援 XInput 的傳統控制器提供支援。建議通過 SDL 訪問這些控制器,但如果它們與 SDL 不相容則可以使用 DirectInput。 - + Enable DInput Input Source 啟用 Dinput 輸入源 - + + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + <html><head/><body><p>Some third party controllers incorrectly flag their analog sticks as inverted on the positive component, but not negative.</p><p>As a result, the analog stick will be &quot;stuck on&quot; even while resting at neutral position. </p><p>Enabling this setting will tell PCSX2 to ignore inversion flags when creating mappings, allowing such controllers to function normally.</p></body></html> + + + + Ignore Inversion + Ignore Inversion + + + Profile Settings 方案設定 - + When this option is enabled, hotkeys can be set in this input profile, and will be used instead of the global hotkeys. By default, hotkeys are always shared between all profiles. 啟用此選項后,可以在此輸入方案檔案中設定快捷鍵,並且將代替全域性快捷鍵。預設情況下,快捷鍵始終在所有方案檔案之間共享。 - + Use Per-Profile Hotkeys 為每一套方案啟用不同快捷鍵 - - + + Controller LED Settings 控制器 LED 設定 - + Enable SDL Raw Input 開啟 SDL Raw 輸入 - + The XInput source provides support for Xbox 360 / Xbox One / Xbox Series controllers, and third party controllers which implement the XInput protocol. XInput 輸入源為 Xbox 360/Xbox One/Xbox Series 控制器以及使用 XInput 協議的第三方控制器提供支援。 - + Controller Multitap 多分插控制器 - + The multitap enables up to 8 controllers to be connected to the console. Each multitap provides 4 ports. Multitap is not supported by all games. 多分插最多可將 8 個控制器連線到主機。每個多分插提供 4 個埠。並不是所有的遊戲都支援多分插。 - + Multitap on Console Port 1 主機埠 1 多分插 - + Multitap on Console Port 2 主機埠 2 多分插 - + Mouse/Pointer Source 滑鼠/指針源 - + PCSX2 allows you to use your mouse to simulate analog stick movement. PCSX2 允許您使用您的滑鼠模擬搖桿移動。 - + Settings... 設定... - + Enable Mouse Mapping 開啟滑鼠對映 - + Detected Devices 已檢測到的裝置 @@ -2015,58 +2259,58 @@ Login token generated on %2. ControllerMacroEditWidget - + Binds/Buttons 繫結/按鈕 - + Select the buttons which you want to trigger with this macro. All buttons are activated concurrently. 選擇用於觸發這個宏命令的按鈕。所有按鈕都同時啟用。 - + Pressure 壓敏 - + For buttons which are pressure sensitive, this slider controls how much force will be simulated when the macro is active. 對於壓力感應按鈕,此滑塊控制當宏被啟用時模擬力度的大小。 - - + + 100% 100% - + Trigger 觸發 - + Select the trigger to activate this macro. This can be a single button, or combination of buttons (chord). Shift-click for multiple triggers. 選擇觸發器以啟用此巨集。這可以是單個按鈕, 也可以是多個按鈕的組合(chord)。按住Shift鍵並單擊以獲取多個觸發器。 - + Deadzone: 死區: - + Frequency 頻率 - + Macro will toggle every N frames. 每 N 幀將會觸發一次宏。 - + Set... 設定... @@ -2169,173 +2413,174 @@ Not Configured/Buttons configured - ControllerSettingsDialog + ControllerSettingsWindow - + PCSX2 Controller Settings - PCSX2 控制器設定 + PCSX2 Controller Settings - + Editing Profile: - 編輯方案: + Editing Profile: - + New Profile - 新建方案 + New Profile - + Load Profile - 載入方案 + Load Profile - + Delete Profile - 刪除方案 + Delete Profile - - + + Restore Defaults - 還原預設設定 + Restore Defaults - - + + Create Input Profile - 建立輸入方案 + Create Input Profile - + Custom input profiles are used to override the Shared input profile for specific games. To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. Enter the name for the new input profile: - 自定義輸入配置檔案用於覆蓋特定遊戲的共享輸入配置檔案。 -要將自定義輸入配置檔案應用於遊戲,請轉到遊戲屬性,然後在摘要選項卡上更改『輸入方案』。 + Custom input profiles are used to override the Shared input profile for specific games. +To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab. -輸入新輸入配置檔案的名稱: +Enter the name for the new input profile: - - - - + + + + Error - 錯誤 + Error - + A profile with the name '%1' already exists. - 已經存在名稱是 '%1' 的輸入方案。 + A profile with the name '%1' already exists. - + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - 是否要將目前選定方案檔案中的所有繫結複製到新方案檔案? 選擇否將建立一個完全空的配置檔案。 + Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile. - + Failed to save the new profile to '%1'. - 儲存新方案到 '%1' 失敗。 + Failed to save the new profile to '%1'. - + Load Input Profile - 載入輸入方案 + Load Input Profile - + Are you sure you want to load the input profile named '%1'? All current global bindings will be removed, and the profile bindings loaded. You cannot undo this action. - 您確實要載入名稱是 '%1' 的輸入方案嗎? + Are you sure you want to load the input profile named '%1'? -所有當前的全域性繫結將會被移除, 然後載入方案中的繫結。 +All current global bindings will be removed, and the profile bindings loaded. -您無法撤銷此操作。 +You cannot undo this action. - + Delete Input Profile - 刪除輸入方案 + Delete Input Profile - + Are you sure you want to delete the input profile named '%1'? You cannot undo this action. - 您確實要刪除名稱是 '%1' 的輸入方案嗎? + Are you sure you want to delete the input profile named '%1'? -您無法撤銷此操作。 +You cannot undo this action. - + Failed to delete '%1'. - 刪除 '%1' 失敗。 + Failed to delete '%1'. - + Are you sure you want to restore the default controller configuration? All shared bindings and configuration will be lost, but your input profiles will remain. You cannot undo this action. - 您確實要還原為預設的控制器配置嗎? + Are you sure you want to restore the default controller configuration? + +All shared bindings and configuration will be lost, but your input profiles will remain. -所有共享繫結和配置都將丟失,但您的輸入方案檔案將保留。 -您無法撤銷此操作。 +You cannot undo this action. - + Global Settings - 全域性設定 + Global Settings - - + + Controller Port %1%2 %3 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - 控制器埠 %1%2 + Controller Port %1%2 %3 - - + + Controller Port %1 %2 Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual. - 控制器埠 %1 + Controller Port %1 %2 - - + + USB Port %1 %2 - USB 埠 %1 + USB Port %1 %2 - + Hotkeys - 熱鍵 + Hotkeys - + Shared "Shared" refers here to the shared input profile. - 共享 + Shared - + The input profile named '%1' cannot be found. - 找不到名稱是 '%1' 的輸入方案。 + The input profile named '%1' cannot be found. @@ -2405,204 +2650,242 @@ You cannot undo this action. 函式 - + + Module + Module + + + + Version + Version + + + + Count + Count + + + Refresh 重新整理 - + Filter 篩選器 - + Memory Search 記憶體搜索 - + End 結束 - + Value - + Start 開始 - + Type 型別 - + 1 Byte (8 bits) 1 位元組 (8 位) - + 2 Bytes (16 bits) 2 位元組 (16 位) - + 4 Bytes (32 bits) 4 位元組 (32 位) - + 8 Bytes (64 bits) 8 位元組 (64 位) - + Float 浮點 - + Double 雙精度 - + String 字串 - + Array of byte 位元組陣列 - + Hex 十六進制 - + Search 搜索 - + Memory 記憶體 - + Breakpoints 中斷點 - + Threads 執行緒 - + Active Call Stack 啟用呼叫堆疊 - + Breakpoint List Context Menu 中斷點關聯菜單 - + New 新建 - + Edit 編輯 - - - + + + Copy 複製 - + Delete 刪除 - + + + + Copy all as CSV + Copy all as CSV + + + + Paste from CSV + Paste from CSV + + + Thread List Context Menu 執行緒列表關聯菜單 - + + Demangle Symbols "Demangling" is the opposite of "Name mangling", which is a process where a compiler takes function names and combines them with other characteristics of the function (e.g. what types of data it accepts) to ensure they stay unique even when multiple functions exist with the same name (but different inputs / const-ness). See here: https://en.wikipedia.org/wiki/Name_mangling#C++ 未拆分符號 - + + Copy Function Name 複製函式名 - + + Copy Function Address 複製函式地址 - + + Go to in Disassembly 轉到反彙編 - + + Go to in Memory View 轉到記憶體檢視 - + + + Module Tree + Module Tree + + + Stack List Context Menu 堆疊列表關聯菜單 - - - - - + + + + + Debugger 偵錯程式 - + Invalid start address 無效的起始地址 - + Invalid end address 無效的結束地址 - + Start address can't be equal to or greater than the end address 起始地址不能大於等於結束地址 - + Invalid search value 無效的搜索值 - + Value is larger than type 值大於型別 @@ -2658,22 +2941,22 @@ You cannot undo this action. DEV9SettingsWidget - + Ethernet 乙太網 - + Ethernet Device: 乙太網裝置: - + Ethernet Device Type: 乙太網裝置型別: - + Intercept DHCP 攔截 DHCP @@ -2683,135 +2966,130 @@ You cannot undo this action. 啟用 - + Enabled InterceptDHCP 開啟 - + Subnet Mask: 子網掩碼: - + Gateway Address: 閘道器地址: - - + + Auto 自動 - + Intercept DHCP: 攔截 DHCP: - + PS2 Address: PS2 地址: - + DNS1 Address: DNS1 地址: - + DNS2 Address: DNS2 地址: - + Internal DNS 內建 DNS - + Add 新增 - + Delete 刪除 - + Export 導出 - + Import 匯入 - + Per game 每遊戲 - + Internal DNS can be selected using the DNS1/2 dropdowns, or by setting them to 192.0.2.1 可以使用 DNS1/2 下拉菜單或將其設定為 192.0.2.1 來選擇內部 DNS - + Enabled InternalDNSTable 開啟 - + Hard Disk Drive 硬碟驅動器 - + HDD File: HDD 檔案: - + 40 40 - + 120 120 - + HDD Size (GiB): HDD 大小 (GiB): - + Enabled HDD 開啟 - + Browse 瀏覽 - + Create Image 建立映像 - - - - - PCAP Bridged @@ -2844,7 +3122,7 @@ You cannot undo this action. - + Use Global Setting [%1] 使用全域性設定 [%1] @@ -2864,78 +3142,78 @@ You cannot undo this action. 地址 - - + + Hosts File 主機檔案 - - + + ini (*.ini) ini (*.ini) + - - - + + DNS Hosts DNS 主機 - + Exported Successfully 已成功導出 - + Failed to open file 打開檔案失敗 - + No Hosts in file 檔案中沒有主機 - + Imported Successfully 匯入成功 - - + + Per Game Host list 每遊戲主機列表 - + Copy global settings? 要複製全域性設定嗎? - + Delete per game host list? 要刪除每遊戲主機列表嗎? - + HDD Image File HDD 映像檔案 - + HDD (*.raw) HDD (*.raw) - + Overwrite File? 要覆蓋檔案嗎? - + HDD image "%1" already exists? Do you want to overwrite? @@ -2944,22 +3222,22 @@ Do you want to overwrite? 您要覆蓋它嗎? - + HDD Creator HDD 建立器 - + HDD image created 已建立 HDD 映像 - + Use Global 使用全域性設定 - + Override 覆蓋 @@ -2967,69 +3245,69 @@ Do you want to overwrite? DebugSettingsWidget - + GS GS - + Draw Dumping 轉儲繪圖 - + Dump GS Draws 轉儲 GS 繪圖 - + Save RT 儲存 RT - + Save Frame 儲存幀 - + Save Texture 儲存紋理 - + Save Depth 儲存深度圖 - + Start Draw Number: 從這個繪圖編號開始: - + Draw Dump Count: 轉儲描繪數量: - + Hardware Dump Directory: 硬體轉儲目錄: - + Software Dump Directory: 軟體轉儲目錄: - - + + Browse... 瀏覽... - - + + Open... 打開... @@ -3042,29 +3320,53 @@ Do you want to overwrite? PCSX2 偵錯程式 - - - + + Run 執行 - + Step Into 單步執行 - - Step Over + + F11 + F11 + + + + Step Over 單步跳過 - + + F10 + F10 + + + Step Out 單步跳出 - + + Shift+F11 + Shift+F11 + + + + Always On Top + Always On Top + + + + Show this window on top + Show this window on top + + + Pause 暫停 @@ -3077,149 +3379,174 @@ Do you want to overwrite? 反彙編 - + Copy Address 複製地址 - + Copy Instruction Hex 複製16進位制指令 - + Copy Instruction Text 複製指令文字 - + Assemble new Instruction(s) 彙編新指令 - + NOP Instruction(s) NOP 指令 - + Run to Cursor 執行到游標 - + Jump to Cursor 跳轉到游標 - + Toggle Breakpoint 切換中段點 - + Follow Branch 跟隨分支 - + Go to Address 轉到地址 - + Go to in Memory View 轉到記憶體檢視 - - + + Add Function 新增函式 - - + + Rename Function 重新命名函式 - + Remove Function 移除函式 - - + + Assemble Error 彙編錯誤 - + Unable to change assembly while core is running 在內核執行時無法更改彙編 - + Assemble Instruction 彙編指令 - + Go to address 轉到地址 - + Go to address error 轉到地址錯誤 - + Invalid address 無效的地址 - + Add Function Error 新增函式錯誤 - + A function entry point already exists here. Consider renaming instead. 這裡已經存在一個函式入口點。請考慮重新命名。 - - + + Function will be (0x%1) instructions long. Enter function name 函式將會是 (0x%1) 指令長。 輸入函式名 - + Function name 函式名稱 - - + + Rename Function Error 重新命名函式錯誤 - + Function name cannot be nothing. 函式名不能為空。 - + No function / symbol is currently selected. 目前未選中函式 / 符號。 - + + Restore Function Error + Restore Function Error + + + + Unable to stub selected address. + Unable to stub selected address. + + + + Restore Instruction(s) + Restore Instruction(s) + + + + Restore Function + Restore Function + + + + Stub (NOP) Function + Stub (NOP) Function + + + %1 NOT VALID ADDRESS %1 不是有效的地址 @@ -3227,17 +3554,17 @@ Enter function name EmptyGameListWidget - + <html><head/><body><p><span style=" font-weight:700;">No games in supported formats were found.</span></p><p>Please add a directory with games to begin.</p><p>Game dumps in the following formats will be scanned and listed:</p></body></html> <html><head/><body><p><span style=" font-weight:700;">找不到支援格式的遊戲。</span></p><p>請從新增一個帶有遊戲的目錄開始。</p><p>以下格式轉儲的遊戲將被掃瞄並列出:</p></body></html> - + Add Game Directory... 新增遊戲目錄... - + Scan For New Games 掃瞄新遊戲 @@ -3245,47 +3572,44 @@ Enter function name EmuThread - + + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5% + + + + Slot: %1 | %2 | EE: %3% | GS: %4% + Slot: %1 | %2 | EE: %3% | GS: %4% + + + %1x%2 %1x%2 - + Game: %1 FPS 遊戲: %1 FPS - + Video: %1 FPS (%2%) 視訊: %1 FPS (%2%) - Game ID: %1 -Game Title: %2 -Achievements: %5 (%6) - + Game: %1 (%2) - 遊戲 ID: %1 -遊戲標題: %2 -成就: %5 (%6) - + 遊戲: %1 (%2) - - - %n points - - %n 點 - - - + Rich presence inactive or unsupported. 富狀態未啟用或不支援。 - + Game not loaded or no RetroAchievements available. 遊戲未載入或無 RetroAchievements 成就可用。 @@ -3293,192 +3617,192 @@ Achievements: %5 (%6) EmulationSettingsWidget - + Speed Control 速度控制 - + Normal Speed: 正常速度: - + Enable Speed Limiter 開啟速度限制器 - + System Settings 系統設定 - + Enable Instant VU1 開啟即時 VU1 - + Enable Cheats 開啟作弊 - + Slow-Motion Speed: 慢動作速度: - + Fast-Forward Speed: 快進速度: - + Enable Multithreaded VU1 (MTVU) 開啟多執行緒 VU1 (MTVU) - + Enable Host Filesystem 開啟主機檔案系統 - + Enable Fast CDVD 開啟快速 CDVD - + EE Cycle Skipping: EE 循環跳過: - - + + Disabled 關閉 - + Mild Underclock 輕微降頻 - + Moderate Underclock 中度降頻 - + Maximum Underclock 最大降頻 - + EE Cycle Rate: EE 循環率: - + 50% (Underclock) 50% (降頻) - + 60% (Underclock) 60% (降頻) - + 75% (Underclock) 75% (降頻) - + 100% (Normal Speed) 100% (普通速度) - + 130% (Overclock) 130% (超頻) - + 180% (Overclock) 180% (超頻) - + 300% (Overclock) 300% (超頻) - + Affinity Control: 傾向控制: - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + Frame Pacing / Latency Control 幀步調 / 延遲控制 - + frames This string will appear next to the amount of frames selected, in a dropdown box. - + Maximum Frame Latency: 最大幀延遲: - + Optimal Frame Pacing 最優幀步調 - + Scale To Host Refresh Rate 適應主機重新整理率 @@ -3566,12 +3890,22 @@ Achievements: %5 (%6) Allows games and homebrew to access files / folders directly on the host computer. 允許遊戲和自製軟體直接訪問主機上的檔案/資料夾。 + + + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Speeds up emulation so that the guest refresh rate matches the host. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. + Fast-Forward Speed The "User Preference" string will appear after the text "Recommended Value:" 快進速度 + + + 100% + 100% + Sets the fast-forward speed. This speed will be used when the fast-forward hotkey is pressed/toggled. @@ -3635,45 +3969,40 @@ Achievements: %5 (%6) 設定可以排隊到 GS 的最大幀數量,在此之前 CPU 執行緒將等待其中一個幀完成然後再繼續。較高的值有助於平滑不規則的幀時間,但會增加額外的輸入延遲。 - - Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate when both VSync and Audio Resampling settings are enabled. This results in the smoothest animations possible, at the cost of potentially increasing the emulation speed by less than 1%. Scale To Host Refresh Rate will not take effect if the console's refresh rate is too far from the host's refresh rate. Users with variable refresh rate displays should disable this option. - 調整模擬速度以便在啟用垂直同步和音訊重採樣設定時遊戲機的重新整理率與主機的重新整理率相匹配。這會產生儘可能最流暢的動畫,但可能會將模擬速度提高不到 1%。如果遊戲機的重新整理率與主機的重新整理率相差太大則主機重新整理率將不會生效。具有可變重新整理率顯示器的使用者應禁用此選項。 - - - + Use Global Setting [%1%] 使用全域性設定 [%1%] - + %1% [%2 FPS (NTSC) / %3 FPS (PAL)] %1% [%2 FPS (NTSC) / %3 FPS (PAL)] - + Unlimited Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. 不限制 - + Custom Every case that uses this particular string seems to refer to speeds: Normal Speed/Fast Forward Speed/Slow Motion Speed. 自定義 - - + + Custom [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] 自定義 [%1% / %2 FPS (NTSC) / %3 FPS (PAL)] - + Custom Speed 自定義速度 - + Enter Custom Speed 輸入自定義速度 @@ -3681,79 +4010,79 @@ Achievements: %5 (%6) FolderSettingsWidget - + Cache Directory 快取目錄 - - - - - + + + + + Browse... 瀏覽... - - - - - + + + + + Open... 打開... - - - - - + + + + + Reset 重置 - + Used for storing shaders, game list, and achievement data. 用於儲存著色器、遊戲列表,以及成就數據。 - + Cheats Directory 作弊目錄 - + Used for storing .pnach files containing game cheats. 用於儲存含有遊戲作弊的 .pnach 檔案目錄。 - + Covers Directory 封面目錄 - + Used for storing covers in the game grid/Big Picture UIs. 用於在遊戲網格/大圖片用戶界面中儲存封面。 - + Snapshots Directory 快照目錄 - + Used for screenshots and saving GS dumps. 使用者儲存截圖並儲存 GS 轉儲。 - + Save States Directory 即時存檔目錄 - + Used for storing save states. 用於儲存即時存檔。 @@ -3761,2082 +4090,2102 @@ Achievements: %5 (%6) FullscreenUI - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. 找不到任何 CD/DVD-ROM 裝置。請確保您已連線驅動器並具有足夠的訪問許可權。 - + Use Global Setting 使用全域性設定 - + Automatic binding failed, no devices are available. 自動繫結失敗,沒有可用裝置。 - + Game title copied to clipboard. 遊戲標題已複製到剪貼簿。 - + Game serial copied to clipboard. 遊戲序列號已複製到剪貼簿。 - + Game CRC copied to clipboard. 遊戲 CRC 已複製到剪貼簿。 - + Game type copied to clipboard. 遊戲型別已複製到剪貼簿。 - + Game region copied to clipboard. 遊戲區域已複製到剪貼簿。 - + Game compatibility copied to clipboard. 遊戲相容性已複製到剪貼簿。 - + Game path copied to clipboard. 遊戲路徑已複製到剪貼簿。 - + Per-game controller configuration initialized with global settings. 已使用全域性設定初始化每個遊戲的控制器配置。 - + Controller settings reset to default. 已將控制器設定重置為預設。 - + No input profiles available. 沒有可用的輸入方案。 - + Create New... 新建... - + Enter the name of the input profile you wish to create. 請輸入您要建立的輸入方案名稱。 - + Are you sure you want to restore the default settings? Any preferences will be lost. 您確實要恢復預設設定嗎?所有參數都將丟失。 - + Settings reset to defaults. 設定已被重置為預設值。 - - Quick Save Slot - 快速存檔位置 - - - + No save present in this slot. 此位置中無存檔。 - + No save states found. 找不到即時存檔。 - + Failed to delete save state. 刪除即時存檔失敗。 - + Failed to copy text to clipboard. 複製文字到剪貼簿失敗。 - + This game has no achievements. 此遊戲沒有成就。 - + This game has no leaderboards. 此遊戲沒有排行榜。 - + Reset System 重置系統 - + Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now? 不會啟用硬核模式直到系統被重置。您要立即重置系統嗎? - + Launch a game from images scanned from your game directories. 從您遊戲目錄掃瞄所獲得的圖片啟動遊戲。 - + Launch a game by selecting a file/disc image. 通過選擇一個檔案/光碟映像啟動遊戲。 - + Start the console without any disc inserted. 在沒有插入任何光碟的情況下啟動主機。 - + Start a game from a disc in your PC's DVD drive. 啟動您 PC 的 DVD 驅動器中光碟上的遊戲。 - + Change settings for the emulator. 更改模擬器的設定。 - + Exits the program. 退出程式。 - + No Binding 沒有繫結 - + Setting %s binding %s. 設定 %s 繫結 %s。 - + Push a controller button or axis now. 現在請按下控制的按鈕或軸。 - + Timing out in %.0f seconds... %.0f 秒后超時... - + Unknown 未知 - + OK 確定 - + Select Device 選擇驅動器 - + Details 詳情 - + Options 選項 - + Copies the current global settings to this game. 複製目前的全域性設定到此遊戲。 - + Clears all settings set for this game. 清除此遊戲的所有設定。 - + Behaviour 行為 - + Prevents the screen saver from activating and the host from sleeping while emulation is running. 在模擬執行時防止螢幕保護程式啟用和主機休眠。 - + Shows the game you are currently playing as part of your profile on Discord. 將您目前正在遊玩的遊戲顯示在 Discord 中您個人檔案中。 - + Pauses the emulator when a game is started. 遊戲開始時暫停模擬器。 - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. 在最小化視窗或切換到另一個應用程式時暫停模擬器並在切換回時取消暫停。 - + Pauses the emulator when you open the quick menu, and unpauses when you close it. 在您打開快速菜單時暫停模擬器。並在您關閉它時取消暫停。 - + Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed. 確認按下熱鍵時是否顯示確認關閉模擬器/遊戲的提示。 - + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. 關機或退出時自動儲存模擬器狀態。然後您可以直接從下一次停止的位置繼續。 - - Enables loading ini overlays from gamesettings, or custom settings per-game. - 允許從遊戲設定或每個遊戲的自定義設定載入 ini 覆蓋。 - - - + Uses a light coloured theme instead of the default dark theme. 使用淺色主題而不是預設的深色主題。 - + Game Display 遊戲顯示 - - Automatically switches to fullscreen mode when the program is started. - 程式啟動時自動切換到全屏模式。 - - - + Switches between full screen and windowed when the window is double-clicked. 雙擊視窗時在全屏和視窗之間切換。 - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. 當模擬器處於全屏模式時隱藏滑鼠指針/游標。 - + Determines how large the on-screen messages and monitor are. 確定屏顯訊息和監視器的大小。 - + Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc. 顯示屏顯訊息-當事件發生時顯示訊息例如正在建立/載入儲存即時存檔、正在擷取螢幕截圖等。 - + Shows the current emulation speed of the system in the top-right corner of the display as a percentage. 在螢幕的右上角以百分比形式顯示系統的當前模擬速度。 - + Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display. 在顯示器的右上角顯示系統每秒視訊幀(或垂直同步)數。 - + Shows the CPU usage based on threads in the top-right corner of the display. 在顯示器的右上角顯示基於執行緒的 CPU 佔用率。 - + Shows the host's GPU usage in the top-right corner of the display. 在顯示器的右上角顯示主機的 GPU 佔用率。 - - Shows the resolution the game is rendering at in the top-right corner of the display. - 在顯示器的右上角顯示遊戲渲染的解析度。 - - - + Shows statistics about GS (primitives, draw calls) in the top-right corner of the display. 在顯示器的右上角顯示有關 GS (原語、繪製呼叫) 的統計資訊。 - + Shows indicators when fast forwarding, pausing, and other abnormal states are active. 在快進、暫停和其他異常狀態處於活動狀態時顯示指示器。 - + Shows the current configuration in the bottom-right corner of the display. 在顯示器的右下角顯示目前配置。 - + Shows the current controller state of the system in the bottom-left corner of the display. 在顯示器的左下角顯示系統的當前控制器狀態。 - + Shows a visual history of frame times in the upper-left corner of the display. 在顯示器的左上角顯示幀時間的可視歷史記錄。 - + Displays warnings when settings are enabled which may break games. 當設定可能破壞遊戲時顯示警告。 - + Resets configuration to defaults (excluding controller settings). 將設定重置為預設 (控制器設定除外)。 - + Changes the BIOS image used to start future sessions. 更改啟動下次會話所需的 BIOS 映像。 - + Automatic 自動 - + + {0}/{1}/{2}/{3} + {0}/{1}/{2}/{3} + + + + Default + Default + + + + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + When enabled, custom per-game settings will be applied. Disable to always use the global configuration. + + + + Automatically switches to fullscreen mode when a game is started. + Automatically switches to fullscreen mode when a game is started. + + + On-Screen Display On-Screen Display - + + %d%% + %d%% + + + + Shows the resolution of the game in the top-right corner of the display. + Shows the resolution of the game in the top-right corner of the display. + + + BIOS Configuration - BIOS Configuration + BIOS配置 - + BIOS Selection 選擇 BIOS - + Options and Patches - Options and Patches + 選項和補丁 - + Skips the intro screen, and bypasses region checks. 跳過標題畫面,並且繞過區域檢測。 - + Speed Control 速度控制 - + Normal Speed 普通速度 - + Sets the speed when running without fast forwarding. 設定在沒有快進時的速度。 - + Fast Forward Speed 快進速度 - + Sets the speed when using the fast forward hotkey. 設定使用快進熱鍵時的速度。 - + Slow Motion Speed 慢動作速度 - + Sets the speed when using the slow motion hotkey. 設定使用慢動作熱鍵時的速度。 - + Enable Speed Limiter 開啟速度限制器 - + When disabled, the game will run as fast as possible. 禁用時,遊戲將以儘可能快的速度執行。 - + System Settings 系統設定 - + EE Cycle Rate EE 循環率 - + Underclocks or overclocks the emulated Emotion Engine CPU. 降頻或超頻所模擬的情感引擎 CPU。 - + EE Cycle Skipping EE 循環跳過 - - Adds a penalty to the Emulated Emotion Engine for executing VU programs. - 新增一次懲罰到用於執行 VU 程式的模擬情感引擎。 - - - + Affinity Control Mode 親和力控制模式 - + Pins emulation threads to CPU cores to potentially improve performance/frame time variance. 將模擬執行緒固定到 CPU 核心以潛在地改善效能/幀時間差異。 - + Enable MTVU (Multi-Threaded VU1) 開啟 MTVU (多執行緒 VU1) - - Uses a second thread for VU1 micro programs. Sizable speed boost. - 為 VU1 微程式使用第二個執行緒。相當大的提速。 - - - + Enable Instant VU1 開啟即時 VU1 - - Reduces timeslicing between VU1 and EE recompilers, effectively running VU1 at an infinite clock speed. - 減少 VU1 和 EE 重編譯器之間的時間切片,有效地以無限時鐘速度執行 VU1。 - - - + Enable Cheats 開啟作弊 - + Enables loading cheats from pnach files. 開啟從 pnach 檔案載入作弊。 - + Enable Host Filesystem 開啟主機檔案系統 - + Enables access to files from the host: namespace in the virtual machine. 開啟訪問主機中的檔案:虛擬機器中的名稱空間。 - + Enable Fast CDVD 開啟快速 CDVD - + Fast disc access, less loading times. Not recommended. 快速光碟訪問,較少的載入時間。不推薦。 - + Frame Pacing/Latency Control 幀調整/延遲控制 - + Maximum Frame Latency 最大幀延遲 - + Sets the number of frames which can be queued. 設定可以排隊的幀數量。 - + Optimal Frame Pacing 最佳幀調步 - + Synchronize EE and GS threads after each frame. Lowest input latency, but increases system requirements. 在每一幀之後同步 EE 和 GS 執行緒。最低輸入延遲,但增加了系統需求。 - - Adjust To Host Refresh Rate - 調整為主機重新整理率 - - - + Speeds up emulation so that the guest refresh rate matches the host. 加快模擬速度,使來賓重新整理率與宿主匹配。 - + Renderer 渲染器 - + Selects the API used to render the emulated GS. 選擇用於渲染模擬 GS 的 API。 - + Sync To Host Refresh (VSync) 同步為主機重新整理率 (垂直同步) - + Synchronizes frame presentation with host refresh. 使幀顯示與主機重新整理同步。 - + Display 顯示 - + Aspect Ratio 高寬比 - + Selects the aspect ratio to display the game content at. 選擇用於顯示遊戲內容的高寬比。 - + FMV Aspect Ratio FMV 高寬比 - + Selects the aspect ratio for display when a FMV is detected as playing. 選擇檢測到正在播放 FMV 時的高寬比。 - + Deinterlacing 反交錯 - + Selects the algorithm used to convert the PS2's interlaced output to progressive for display. 選擇將 PS2 的隔行輸出轉換為逐行顯示的演算法。 - + Screenshot Size 截圖尺寸 - + Determines the resolution at which screenshots will be saved. 確定儲存螢幕截圖的解析度。 - + Screenshot Format 截圖格式 - + Selects the format which will be used to save screenshots. 選擇儲存螢幕截圖的格式。 - + Screenshot Quality 截圖質量 - + Selects the quality at which screenshots will be compressed. 選擇螢幕截圖的壓縮質量。 - + Vertical Stretch 垂直拉伸 - + Increases or decreases the virtual picture size vertically. 增大或減小可見畫面的垂直尺寸。 - + Crop 裁剪 - + Crops the image, while respecting aspect ratio. 裁剪影象,同時考慮縱橫比。 - + + %dpx + %dpx + + + Enable Widescreen Patches 開啟寬屏補丁 - + Enables loading widescreen patches from pnach files. 開啟從 pnach 檔案中載入寬屏補丁。 - + Enable No-Interlacing Patches 開啟反隔行掃瞄補丁 - + Enables loading no-interlacing patches from pnach files. 開啟從 pnach 檔案中載入去隔行掃瞄補丁。 - + Bilinear Upscaling 雙線性升格 - + Smooths out the image when upscaling the console to the screen. 在將主機畫面升格到螢幕時平滑畫面。 - + Integer Upscaling 整數倍拉伸 - + Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games. 填充顯示區域以確保主機上的畫素與遊戲機中的畫素之間的比率為整數。可能會在一些2D遊戲中產生更清晰的影象。 - + Screen Offsets 螢幕偏移 - + Enables PCRTC Offsets which position the screen as the game requests. 開啟根據遊戲要求定位螢幕的 PCRTC 偏移量。 - + Show Overscan 顯示過掃瞄 - + Enables the option to show the overscan area on games which draw more than the safe area of the screen. 啟用該選項可顯示繪製在超過螢幕安全區域的過掃瞄區域。 - + Anti-Blur 反模糊 - + Enables internal Anti-Blur hacks. Less accurate to PS2 rendering but will make a lot of games look less blurry. 啟用內部反模糊 hack。這會降低 PS2 的渲染精度但會使許多遊戲看起來不那麼模糊。 - + Rendering 渲染 - + Internal Resolution 內部解析度 - + Multiplies the render resolution by the specified factor (upscaling). 按指定倍數放大渲染解析度(升格)。 - + Mipmapping 紋理貼圖 - + Determines how mipmaps are used when rendering textures. 確認渲染紋理時如何使用紋理貼圖。 - + Bilinear Filtering 雙線性過濾 - + Selects where bilinear filtering is utilized when rendering textures. 選擇渲染紋理時使用雙線性過濾的位置。 - + Trilinear Filtering 三線性過濾 - + Selects where trilinear filtering is utilized when rendering textures. 選擇渲染紋理時使用三線性過濾的位置。 - + Anisotropic Filtering 各意向性過濾 - - Selects where anistropic filtering is utilized when rendering textures. - 選擇渲染紋理時使用各異向性的位置。 - - - + Dithering 抖動 - + Selects the type of dithering applies when the game requests it. 選擇遊戲請求抖動時要使用的型別。 - + Blending Accuracy 混合精確性 - + Determines the level of accuracy when emulating blend modes not supported by the host graphics API. 當模擬主機圖形 API 不支援的混合模式時,確定精度水平。 - + Texture Preloading 預載入紋理 - + Uploads full textures to the GPU on use, rather than only the utilized regions. Can improve performance in some games. 在使用時將完整紋理上載到 GPU,而不僅僅是已使用的區域。可以在某些遊戲中提高效能。 - + Software Rendering Threads 軟體渲染執行緒 - + Number of threads to use in addition to the main GS thread for rasterization. 用於附加在光柵化的主 GS 執行緒上的執行緒數。 - + Auto Flush (Software) 自動重新整理 (軟體) - + Force a primitive flush when a framebuffer is also an input texture. 當幀緩衝區也是輸入紋理時強制基本體重新整理。 - + Edge AA (AA1) 邊緣 AA (AA1) - + Enables emulation of the GS's edge anti-aliasing (AA1). 開啟模擬 GS 的邊緣抗鋸齒 (AA1)。 - + Enables emulation of the GS's texture mipmapping. 開啟模擬 GS 的紋理貼圖。 - + Hardware Fixes 硬體修復 - + Manual Hardware Fixes 手動硬體修復 - + Disables automatic hardware fixes, allowing you to set fixes manually. 關閉自動硬體修復,允許您手動設定修復。 - + CPU Sprite Render Size CPU 活動塊渲染器大小 - + Uses software renderer to draw texture decompression-like sprites. 使用軟體渲染器繪製類似於紋理解壓縮的活動塊。 - + CPU Sprite Render Level CPU 活動塊渲染器水平 - + Determines filter level for CPU sprite render. 確定 CPU 活動塊渲染器的濾鏡水平。 - + Software CLUT Render 軟體 Clut 渲染 - + Uses software renderer to draw texture CLUT points/sprites. 使用軟體渲染器繪製紋理 CLUT 點/活動塊。 - + Skip Draw Start 跳過描繪開始 - + Object range to skip drawing. 要跳過描繪的對象範圍。 - + Skip Draw End 跳過描繪結束 - + Auto Flush (Hardware) 自動重新整理 (硬體) - + CPU Framebuffer Conversion CPU 幀緩衝轉換 - + Convert 4-bit and 8-bit frame buffer on the CPU instead of the GPU. 在 CPU 而不是 GPU 上轉換 4 位和 8 位幀緩衝區。 - - Disable Depth Support - 關閉深度支援 - - - - Disable the support of depth buffer in the texture cache. - 關閉紋理緩衝中的深度支援。 - - - + Disable Safe Features 關閉安全功能 - + This option disables multiple safe features. 此選項會關閉多個安全功能。 - - Disable Render Features - 關閉渲染器功能 - - - + This option disables game-specific render fixes. 此選項會關閉指定的遊戲渲染器修復。 - - Preload Frame - 預載幀 - - - + Uploads GS data when rendering a new frame to reproduce some effects accurately. 渲染新幀時上載 GS 數據以準確再現某些效果。 - + Disable Partial Invalidation 禁用部分失效 - + Removes texture cache entries when there is any intersection, rather than only the intersected areas. 當存在任何相交時移除紋理快取條目,而不僅僅是相交區域。 - - Texture Inside Render Target - 渲染目標內部的紋理 - - - + Allows the texture cache to reuse as an input texture the inner portion of a previous framebuffer. 允許紋理快取將上一個幀緩衝區的內部數據作為輸入紋理重新使用。 - + Read Targets When Closing 關閉時讀取目標 - + Flushes all targets in the texture cache back to local memory when shutting down. 關閉時將紋理快取中的所有目標重新整理回本地記憶體。 - + Estimate Texture Region 估計紋理區域 - + Attempts to reduce the texture size when games do not set it themselves (e.g. Snowblind games). 嘗試在遊戲本身不設定紋理大小時減小紋理大小(例如 Snowblind 遊戲)。 - + GPU Palette Conversion GPU 調色板轉換 - - Applies palettes to textures on the GPU instead of the CPU. Can result in speed improvements in some games. - 使用 GPU 替代 CPU 應用調色板到紋理上。可以在某些遊戲中改善速度。 - - - + Upscaling Fixes Upscaling Fixes - - Half-Pixel Offset - 半畫素偏移 - - - + Adjusts vertices relative to upscaling. 相對於放大比例調整頂點。 - + Round Sprite 活動塊環繞 - + Adjusts sprite coordinates. 調節活動塊座標。 - + Bilinear Upscale 雙線性升格 - + Can smooth out textures due to be bilinear filtered when upscaling. E.g. Brave sun glare. 由於在縮放時會進行雙線性過濾所以可以平滑紋理。 - - TC Offset X - TC 偏移 X - - - + Adjusts target texture offsets. 調節目標紋理偏移。 - - TC Offset Y - TC 偏移 Y - - - + Align Sprite 排列活動塊 - + Fixes issues with upscaling (vertical lines) in some games. 修正了某些遊戲中升格(垂直線)問題。 - + Merge Sprite 合併活動快 - + Replaces multiple post-processing sprites with a larger single sprite. 將多個后處理活動塊替換為更大的單個塊。 - + Wild Arms Hack Wild Arms Hack - + Lowers the GS precision to avoid gaps between pixels when upscaling. Fixes the text on Wild Arms games. 降低 GS 精度以避免在縮放時畫素之間出現間隙。修正了 Wild Arms 遊戲中的文字。 - + Unscaled Palette Texture Draws 未縮放的調色板紋理繪製 - + Can fix some broken effects which rely on pixel perfect precision. 可以修復一些依賴於畫素完美精度的破碎效果。 - + Texture Replacement 紋理替換 - + Load Textures 載入紋理 - + Loads replacement textures where available and user-provided. 載入使用者提供的可用替換紋理。 - + Asynchronous Texture Loading 非同步紋理載入 - + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. 將替換紋理載入到輔助執行緒上,從而在啟用替換時減少微卡頓。 - + Precache Replacements 預快取替換 - + Preloads all replacement textures to memory. Not necessary with asynchronous loading. 預先載入所有的替換紋理到記憶體中。不再需要非同步載入。 - + Replacements Directory 替換目錄 - + Folders 資料夾 - + Texture Dumping 紋理轉儲 - + Dump Textures 轉儲紋理 - - Dumps replacable textures to disk. Will reduce performance. - 轉儲可替換的紋理到磁碟中。將會降低效能。 - - - + Dump Mipmaps 轉儲紋理貼圖 - + Includes mipmaps when dumping textures. 在轉儲紋理時包含紋理貼圖。 - + Dump FMV Textures 轉儲 FMV 紋理 - + Allows texture dumping when FMVs are active. You should not enable this. 在 FNV 活動時允許紋理轉儲。您應該開啟此選項。 - + Post-Processing 後置處理 - + FXAA FXAA - + Enables FXAA post-processing shader. 開啟 FXAA后處理著色器。 - + Contrast Adaptive Sharpening 對比度自適應銳化 - + Enables FidelityFX Contrast Adaptive Sharpening. 開啟 FidelityFX 對比度自適應銳化。 - + CAS Sharpness CAS 銳化 - + Determines the intensity the sharpening effect in CAS post-processing. 確定 CAS 后處理中銳化效果的強度。 - + Filters 濾鏡 - + Shade Boost Shade Boost - + Enables brightness/contrast/saturation adjustment. 開啟亮度/對比度/飽和度調整。 - + Shade Boost Brightness Shade Boost 亮度 - + Adjusts brightness. 50 is normal. 調節亮度。50 為普通。 - + Shade Boost Contrast Shade Boost 對比度 - + Adjusts contrast. 50 is normal. 調節對比度。50 為普通。 - + Shade Boost Saturation Shade Boost 飽和度 - + Adjusts saturation. 50 is normal. 調節飽和度。50 為普通。 - + TV Shaders TV 著色器 - - Selects post-processing TV shader. - 選擇后處理 TV 著色器。 - - - + Advanced 高級 - + Skip Presenting Duplicate Frames 跳過顯示重複幀 - - Skips displaying frames that don't change in 25/30fps games. Can improve speed but increase input lag/make frame pacing worse. - 跳過顯示在 25/30fps 遊戲中不變的幀。可以提高速度但會增加輸入延遲/使幀步調變得更差。 - - - + Disable Threaded Presentation 禁用執行緒化展示 - - Presents frames on a worker thread, instead of on the GS thread. Can improve frame times on some systems, at the cost of potentially worse frame pacing. - 在輔助執行緒上顯示幀,而不是在GS執行緒上。可以改善某些系統上的幀時間,但代價是可能會導致更差的幀間隔。 - - - + Hardware Download Mode 硬體下載模式 - + Changes synchronization behavior for GS downloads. 更改 GS 下載的同步行為。 - + Allow Exclusive Fullscreen 允許獨佔全屏 - + Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout. 覆蓋驅動的啓發式規則以啟用獨佔全屏或直接翻轉/掃瞄。 - + Override Texture Barriers 覆蓋紋理光柵 - + Forces texture barrier functionality to the specified value. 將紋理屏障功能強制設定為指定值。 - + GS Dump Compression GS 轉儲壓縮 - + Sets the compression algorithm for GS dumps. 設定 GS 轉儲的壓縮演算法。 - + Disable Framebuffer Fetch 關閉幀緩衝獲取 - + Prevents the usage of framebuffer fetch when supported by host GPU. 當主機 GPU 支援時防止使用幀緩衝區提取。 - + Disable Dual-Source Blending 關閉雙源混合 - + Prevents the usage of dual-source blending when supported by host GPU. 當主機 GPU 支援時防止使用雙源混合。 - + Disable Shader Cache 關閉著色器快取 - + Prevents the loading and saving of shaders/pipelines to disk. 防止載入以及儲存著色器/管道到磁碟上。 - + Disable Vertex Shader Expand 關閉頂點著色器擴充套件 - + Falls back to the CPU for expanding sprites/lines. 退回到 CPU 以擴充套件活動塊/行數。 - + Runtime Settings 執行時設定 - + Applies a global volume modifier to all sound produced by the game. 將全域性音量修改器應用於遊戲產生的所有聲音。 - + Mixing Settings 混響設定 - + Changes when SPU samples are generated relative to system emulation. 相對於系統模擬產生 SPU 採樣時更改。 - + Determines how the stereo output is transformed to greater speaker counts. 確定如何將立體聲輸出轉換為更多的揚聲器數量。 - + Output Settings 輸出設定 - + Determines which API is used to play back audio samples on the host. 確定使用哪個 API 在主機上播放音訊採樣。 - + Sets the average output latency when using the cubeb backend. 設定使用 cubeb 後端時的平均輸出延遲。 - + + %d ms (avg) + %d ms (avg) + + + Timestretch Settings 時間延展設定 - + Affects how the timestretcher operates when not running at 100% speed. 影響不以100%速度執行時時間延伸器的執行方式。 - + + %d ms + %d ms + + + Settings and Operations 設定與操作 - + Creates a new memory card file or folder. 建立一個新的記憶卡或資料夾。 - + Simulates a larger memory card by filtering saves only to the current game. 通過過濾僅用於目前遊戲存檔來模擬一個更大的記憶卡。 - + Automatically ejects Memory Cards when they differ after loading a state. 載入即時存檔后當記憶卡不同時自動彈出記憶卡。 - + If not set, this card will be considered unplugged. 如果未設定,此卡將被視為未插入。 - + The selected memory card image will be used for this slot. 選定的記憶卡映像將用於此位置。 - + Resets the card name for this slot. 重置此位置中的記憶卡名稱。 - + Create Memory Card 建立記憶卡 - + Enter the name of the memory card you wish to create, and choose a size. We recommend either using 8MB memory cards, or folder Memory Cards for best compatibility. 輸入要建立的記憶卡的名稱,然後選擇大小。我們建議使用 8MB 記憶卡或資料夾記憶卡以獲得最佳相容性。 - + Card Name: 卡帶名稱: - + Configuration 配置 - + Uses game-specific settings for controllers for this game. 為此遊戲使用特定於遊戲的控制器設定。 - + Copies the global controller configuration to this game. 複製全域性控制器設定到此遊戲。 - + Resets all configuration to defaults (including bindings). 重置所有配置為預設值 (包含繫結)。 - + Replaces these settings with a previously saved input profile. 將這些設定重置為上次儲存的輸入方案。 - + Stores the current settings to an input profile. 儲存目前的設定到一個輸入方案。 - + Input Sources 輸入源 - + The SDL input source supports most controllers. SDL 輸入源支援最多控制器。 - + Provides vibration and LED control support over Bluetooth. 通過藍芽提供震動和 LED 控制支援。 - + Allow SDL to use raw access to input devices. 允許 SDL 使用 raw 訪問輸入裝置。 - + The XInput source provides support for XBox 360/XBox One/XBox Series controllers. Xinput 源提供對 XBox 360/XBox One/XBox Series 控制器的支援。 - + Multitap 多分插 - + Enables an additional three controller slots. Not supported in all games. 開啟一個額外的三個控制器插槽。不是所有遊戲都支援。 - + Attempts to map the selected port to a chosen controller. 嘗試對映選定的埠到選定的控制器上。 - + No Buttons Selected 沒有選定按鈕 - + Determines how much pressure is simulated when macro is active. 確定當宏處於活動狀態時模擬的壓力大小。 - + Determines the pressure required to activate the macro. 確定啟用宏所需的壓力。 - + Toggle every %d frames 切換每 %d 幀 - + Clears all bindings for this USB controller. 清除此 USB 控制器的所有繫結。 - + Data Save Locations 數據儲存位置 - + Show Advanced Settings 顯示高級設定 - + Changing these options may cause games to become non-functional. Modify at your own risk, the PCSX2 team will not provide support for configurations with these settings changed. 更改這些選項可能會導致遊戲無法執行。修改風險自負,PCSX2 團隊不會為更改了這些設定的配置提供支援。 - + Logging Logging - + System Console 系統控制檯 - + Writes log messages to the system console (console window/standard output). 寫入日誌訊息到系統控制檯 (控制檯視窗/標準輸出)。 - + File Logging 檔案日誌 - + Writes log messages to emulog.txt. 寫入日誌訊息到 emulog.txt。 - + Verbose Logging 詳細日誌記錄 - + Writes dev log messages to log sinks. 將開發日誌訊息寫入日誌接收器。 - + Log Timestamps 記錄時間戳 - + Writes timestamps alongside log messages. 在日誌訊息旁邊寫入時間戳。 - + EE Console EE 控制檯 - + Writes debug messages from the game's EE code to the console. 將除錯訊息從遊戲的 EE 程式碼寫入控制檯。 - + IOP Console IOP 控制檯 - + Writes debug messages from the game's IOP code to the console. 將除錯訊息從遊戲的 IOP 程式碼寫入控制檯。 - + CDVD Verbose Reads CDVD 詳細讀取 - + Logs disc reads from games. 記錄遊戲讀取光碟。 - + Emotion Engine 情感引擎 - + Rounding Mode 環繞模式 - + Determines how the results of floating-point operations are rounded. Some games need specific settings. 確定如何四捨五入浮點運算的結果。有些遊戲需要特定的設定。 - + Clamping Mode 接觸模式 - + Determines how out-of-range floating point numbers are handled. Some games need specific settings. 確定如何處理超出範圍的浮點數。有些遊戲需要特定的設定。 - + Enable EE Recompiler 開啟 EE 重編譯器 - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to native code. 執行 64 位 MIPS-IV 機器碼到本機程式碼的實時二進制轉換。 - + Enable EE Cache 開啟 EE 快取 - + Enables simulation of the EE's cache. Slow. 開啟模擬 EE 快取。慢。 - + Enable INTC Spin Detection 開啟 INTC 自旋檢測 - + Huge speedup for some games, with almost no compatibility side effects. 對某些遊戲有巨大的加速作用,幾乎沒有相容性的副作用。 - + Enable Wait Loop Detection 開啟等待循環檢測 - + Moderate speedup for some games, with no known side effects. 適度加速某些遊戲,沒有已知的副作用。 - + Enable Fast Memory Access 開啟快速記憶體訪問 - + Uses backpatching to avoid register flushing on every memory access. 使用回補以避免在每次記憶體訪問時重新整理暫存器。 - + Vector Units 向量單元 - + VU0 Rounding Mode VU0 循環模式 - + VU0 Clamping Mode VU0 壓制模式 - + VU1 Rounding Mode VU1 循環模式 - + VU1 Clamping Mode VU1 壓制模式 - + Enable VU0 Recompiler (Micro Mode) 開啟 VU0 重編譯器 (微模式) - + New Vector Unit recompiler with much improved compatibility. Recommended. 新的向量單元重編譯器將大幅改善相容性。推薦。 - + Enable VU1 Recompiler 開啟 VU1 重編譯器 - + Enable VU Flag Optimization 開啟 VU 標誌優化 - + Good speedup and high compatibility, may cause graphical errors. 良好的加速和高相容性,可能會導致圖形錯誤。 - + I/O Processor I/O 處理器 - + Enable IOP Recompiler 開啟 IOP 重編譯器 - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to native code. 執行 32 位 MIPS-I 機器碼到本機程式碼的實時二進制轉換。 - + Graphics 圖形 - + Use Debug Device 使用除錯裝置 - - Enables API-level validation of graphics commands - 啟用圖形命令的 API 級驗證 - - - + Settings 設定 - + No cheats are available for this game. 沒有此遊戲可用的作弊。 - + Cheat Codes 作弊程式碼 - + No patches are available for this game. 沒有此遊戲可用的補丁。 - + Game Patches 遊戲補丁 - + Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games. 啟用作弊可能會導致不可預測的行為、崩潰、軟鎖或破壞已儲存的遊戲。 - + Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games. 啟用遊戲補丁可能會導致不可預測的行為、崩潰、軟鎖或破壞已儲存的遊戲。 - + Use patches at your own risk, the PCSX2 team will provide no support for users who have enabled game patches. 使用補丁的風險自負,PCSX2 團隊將不會為啟用遊戲補丁的使用者提供支援。 - + Game Fixes 遊戲修正 - + Game fixes should not be modified unless you are aware of what each option does and the implications of doing so. 除非您知道每個選項的作用以及這樣做的影響,否則不應修改遊戲修復。 - + FPU Multiply Hack FPU 乘法 Hack - + For Tales of Destiny. 用於宿命傳說。 - + FPU Negative Div Hack FPU 負除 Hack - + For Gundam games. 用於高達遊戲。 - + Preload TLB Hack 預載 TLB Hack - - To avoid tlb miss on Goemon. - 防止大盜伍佑衛門 tlb 丟失。 - - - - Switch to Software renderer for FMVs. - 為 FMV 切換軟體渲染器。 - - - + Needed for some games with complex FMV rendering. 某些複雜 FMV 渲染的遊戲需要。 - + Skip MPEG Hack 跳過 MPEG Hack - + Skips videos/FMVs in games to avoid game hanging/freezes. 跳過遊戲中的視訊/FMV 以避免遊戲掛起/凍結。 - + OPH Flag Hack OPH 標誌 Hack - - Known to affect following games: Bleach Blade Battler, Growlanser II and III, Wizardry. - 已知對下列遊戲有效:死神戰士之刃、夢幻騎士 II 和 III、巫術。 - - - + EE Timing Hack EE 計時 Hack - - Known to affect following games: Digital Devil Saga (Fixes FMV and crashes), SSX (Fixes bad graphics and crashes). - 已知對下列遊戲有效: 數碼惡魔傳說 (修復 FMV 和崩潰)、SSX (修復錯誤的圖形和崩潰)。 - - - + Instant DMA Hack 即時 DMA Hack - - Known to affect following games: Fire Pro Wrestling Z (Bad ring graphics). - 已知對下列遊戲有效: 火爆摔角 (錯誤的環圖形)。 + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + 已知對下列遊戲有效: 瑪娜傳奇 1、沙塵之鎖、敵後陣線。 - - Handle DMAC writes when it is busy. - 處理 DMAC 寫入在其繁忙時。 + + For SOCOM 2 HUD and Spy Hunter loading hang. + 用於 SOCOM 2 HUD 和 Spy Hunter 載入掛起。 - - Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. - 已知對下列遊戲有效: 瑪娜傳奇 1、沙塵之鎖、敵後陣線。 + + VU Add Hack + VU 加法 Hack - - Force GIF PATH3 transfers through FIFO - 強制通過 FIFO 傳輸 GIF PATH3 + + Full VU0 Synchronization + 完整 VU0 同步 - - (Fifa Street 2). - (街頭 Fifa 2)。 + + Forces tight VU0 sync on every COP2 instruction. + 在每個 COP2 指令上強制嚴格 VU0 同步。 - - Simulate VIF1 FIFO read ahead. Fixes slow loading games. - 模擬 VIF1 FIFO 預讀。修復了載入速度較慢的遊戲。 + + VU Overflow Hack + VU 溢出 Hack - - Known to affect following games: Test Drive Unlimited, Transformers. - 已知對下列遊戲有效: 無限試駕、變形金剛。 + + To check for possible float overflows (Superman Returns). + 檢測可能的浮點溢出 (超人迴歸)。 - - Delay VIF1 Stalls (VIF1 FIFO) - 延遲 VIF1 停頓 (VIF1 FIFO) + + Use accurate timing for VU XGKicks (slower). + 為 VU XGKicks 使用精確計時 (較慢)。 - - For SOCOM 2 HUD and Spy Hunter loading hang. - 用於 SOCOM 2 HUD 和 Spy Hunter 載入掛起。 + + Quadraphonic + 四聲道 - - VU Add Hack - VU 加法 Hack + + Load State + 載入即時存檔 - - Games that need this hack to boot: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. - 需要此 hack 啟動的遊戲: 星之海洋 3、凡人物語、北歐女神 2。 + + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. + Makes the emulated Emotion Engine skip cycles. Helps a small subset of games like SOTC. Most of the time it's harmful to performance. - - VU I bit Hack avoid constant recompilation in some games - VU I 位 Hack 避免在某些遊戲中不斷重新編譯 + + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. + Generally a speedup on CPUs with 4 or more cores. Safe for most games, but a few are incompatible and may hang. - - Scarface The World Is Yours, Crash Tag Team Racing. - 疤面煞星掌握世界、古惑狼賽車團隊競速. + + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - - Full VU0 Synchronization - 完整 VU0 同步 + + Scale To Host Refresh Rate + Scale To Host Refresh Rate - - Forces tight VU0 sync on every COP2 instruction. - 在每個 COP2 指令上強制嚴格 VU0 同步。 + + Disable Depth Emulation + Disable Depth Emulation - - VU Sync (Run behind) - VU 同步 (跟在後面) + + Disable the support of depth buffers in the texture cache. + Disable the support of depth buffers in the texture cache. - - To avoid sync problems when reading or writing VU registers. - 以避免在讀取或寫入 VU 暫存器時出現同步問題。 + + Disable Render Fixes + Disable Render Fixes - - VU Overflow Hack - VU 溢出 Hack + + Preload Frame Data + Preload Frame Data - - To check for possible float overflows (Superman Returns). - 檢測可能的浮點溢出 (超人迴歸)。 + + Texture Inside RT + Texture Inside RT - - VU XGkick Sync - VU XGkick 同步 + + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. + When enabled GPU converts colormap-textures, otherwise the CPU will. It is a trade-off between GPU and CPU. - - Use accurate timing for VU XGKicks (slower). - 為 VU XGKicks 使用精確計時 (較慢)。 + + Half Pixel Offset + Half Pixel Offset - - Use Blit for internal FPS - 對內部 FPS 使用 Bilt + + Texture Offset X + Texture Offset X - - Quadraphonic - Quadraphonic + + Texture Offset Y + Texture Offset Y - - Load State - 載入即時存檔 + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Applies a shader which replicates the visual effects of different styles of television set. + Applies a shader which replicates the visual effects of different styles of television set. + + + + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + Skips displaying frames that don't change in 25/30fps games. Can improve speed, but increase input lag/make frame pacing worse. + + + + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + Presents frames on the main GS thread instead of a worker thread. Used for debugging frametime issues. + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + + Use Software Renderer For FMVs + Use Software Renderer For FMVs + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + Emulate GIF FIFO + Emulate GIF FIFO + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + DMA Busy Hack + DMA Busy Hack - + + Delay VIF1 Stalls + Delay VIF1 Stalls + + + + Emulate VIF FIFO + Emulate VIF FIFO + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + VU I Bit Hack + VU I Bit Hack + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + VU Sync + VU Sync + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + VU XGKick Sync + VU XGKick Sync + + + + Force Blit Internal FPS Detection + Force Blit Internal FPS Detection + + + Save State 儲存即時存檔 - + Load Resume State 載入並繼續即時存檔 - + A resume save state created at %s was found. Do you want to load this save and continue? @@ -5845,2221 +6194,2122 @@ Do you want to load this save and continue? 您要載入此存檔並繼續嗎? - + Region: 區域: - + Compatibility: 相容性: - + No Game Selected 沒有選擇遊戲 - + Search Directories 搜索目錄 - + Adds a new directory to the game search list. 新增一個新目錄到遊戲搜索列表。 - + Scanning Subdirectories 掃瞄子目錄 - + Not Scanning Subdirectories 不掃瞄子目錄 - + List Settings 列表設定 - + Sets which view the game list will open to. 設定打開遊戲列表時的檢視。 - + Determines which field the game list will be sorted by. 確定將按哪個欄位對遊戲列表進行排序。 - + Reverses the game list sort order from the default (usually ascending to descending). 顛倒遊戲列表的預設排序(通常是升序到降序)。 - + Cover Settings 封面設定 - + Downloads covers from a user-specified URL template. 從使用者指定的URL模板下載封面。 - + Operations 操作 - + + Selects where anisotropic filtering is utilized when rendering textures. + Selects where anisotropic filtering is utilized when rendering textures. + + + Use alternative method to calculate internal FPS to avoid false readings in some games. Use alternative method to calculate internal FPS to avoid false readings in some games. - + Identifies any new files added to the game directories. 標識新增到遊戲目錄中的任何新檔案。 - + Forces a full rescan of all games previously identified. 強制重新掃瞄之前確定的所有遊戲。 - + Download Covers 下載封面 - - PCSX2 can automatically download covers for games which do not currently have a cover set. We do not host any cover images, the user must provide their own source for images. - PCSX2 可以自動為目前沒有封面的遊戲下載封面。我們不託管任何封面圖片,使用者必須提供自己的圖片來源。 - - - - In the form below, specify the URLs to download covers from, with one template URL per line. The following variables are available: - 在下面的表格中指定要從中下載封面的 URL,每行一個模板 URL。以下變數可用: - - - - ${title}: Title of the game. -${filetitle}: Name component of the game's filename. -${serial}: Serial of the game. - ${title}: 遊戲標題。 -${filetitle}: 遊戲檔名的名稱部分。 -${serial}: 遊戲序列號。 - - - - Example: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - 示例: https://www.example-not-a-real-domain.com/covers/${serial}.jpg - - - - Use Serial File Names - 使用序列號檔名 - - - + About PCSX2 關於 PCSX2 - + PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. PCSX2 是一個免費的開源 PlayStation2(PS2) 模擬器。它的目的是使用 MIPS CPU 直譯器、重新編譯器以及用於管理硬體狀態以及 PS 系統記憶體的虛擬機器的組合來模擬PS2的硬體。這使您可以在您的 PC 上玩 PS2 遊戲,並具有許多其他功能和好處。 - + PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment. PlayStation 2 和 PS2 是索尼互動娛樂公司的註冊商標。此應用程式與索尼互動娛樂公司沒有任何關聯。 - - XXX points - XXX 點數 - - - - Unlocked Achievements - 未解鎖的成就 - - - - Locked Achievements - 已解鎖的成就 - - - - Active Challenge Achievements - 啟用挑戰成就 - - - - Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - 提交分數被禁用因為核心模式已關閉。排行榜為只讀。 - - - - Rank - 等級 - - - - Name - 名稱 - - - - Time - 時間 - - - - Score - 分數 - - - - Downloading leaderboard data, please wait... - 正在下載排行榜數據,請稍等... - - - + When enabled and logged in, PCSX2 will scan for achievements on startup. 啟用並登錄后,PCSX2 將在啟動時掃瞄成就。 - - When enabled, rich presence information will be collected and sent to the server where supported. - 啟用后,將收集富線上狀態資訊併發送到支援的伺服器。 - - - + "Challenge" mode for achievements, including leaderboard tracking. Disables save state, cheats, and slowdown functions. "挑戰" 模式的成就,包括排行榜跟蹤。禁用即時存檔、作弊和減速功能。 - - Enables tracking and submission of leaderboards in supported games. - 在支援的遊戲中開啟排行榜跟蹤和提交功能。 - - - + Displays popup messages on events such as achievement unlocks and leaderboard submissions. 顯示例如成就解鎖和排行榜提交等事件的彈出訊息。 - + Plays sound effects for events such as achievement unlocks and leaderboard submissions. 為成就解鎖和排行榜提交等活動播放音效。 - + Shows icons in the lower-right corner of the screen when a challenge/primed achievement is active. 當挑戰/已獲得的成就處於活動狀態時在螢幕右下角顯示圖示。 - + When enabled, PCSX2 will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements. 啟用后,PCSX2 將列出非官方設定的成就。這些成就不會被 RetroAchievements 所追蹤。 - + When enabled, PCSX2 will assume all achievements are locked and not send any unlock notifications to the server. 啟用后,PCSX2 將假定所有成就都已鎖定不會向伺服器發送任何解鎖通知。 - + + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + Displays popup messages when starting, submitting, or failing a leaderboard challenge. + + + + When enabled, each session will behave as if no achievements have been unlocked. + When enabled, each session will behave as if no achievements have been unlocked. + + + Account - Account + 帳號 - + Logs out of RetroAchievements. 從 RetroAchievements 註銷。 - + Logs in to RetroAchievements. 登錄到 RetroAchievements。 - + Current Game - Current Game + 當前遊戲 - - Achievements Login - 成就登錄 - - - - Please enter your user name and password for retroachievements.org. - 請輸入 retroAchievements.org 的使用者名稱和密碼。 - - - - Your password will not be saved in PCSX2, an access token will be generated and used instead. - 您的密碼不會儲存到 PCSX2,會使用一個訪問憑據替代。 - - - - User Name: - 使用者名稱: - - - - Password: - 密碼: - - - + {} is not a valid disc image. {} 不是一個有效的光碟映像。 - + Automatic mapping completed for {}. 為 {} 自動對映完成。 - + Automatic mapping failed for {}. 為 {} 自動對映失敗。 - + Game settings initialized with global settings for '{}'. 為 '{}' 使用全域性設定初始化遊戲設定。 - + Game settings have been cleared for '{}'. 已為 '{}' 清除設定。 - + Console Port {} - Console Port {} + 控制器埠 {} - + {} (Current) {} (目前) - + {} (Folder) {} (資料夾) - + Memory card name '{}' is not valid. 記憶卡名稱 '{}'無效。 - + Memory Card '{}' created. 已建立記憶卡 '{}'。 - + Failed to create memory card '{}'. 建立記憶卡 '{}' 失敗。 - + A memory card with the name '{}' already exists. 已存在含有名稱 '{}' 的記憶卡。 - + Failed to load '{}'. 載入 』{}『 失敗。 - + Input profile '{}' loaded. 已載入輸入方案 '{}'。 - + Input profile '{}' saved. 已儲存輸入方案 '{}'。 - + Failed to save input profile '{}'. 儲存輸入方案 '{}' 失敗。 - + Port {} Controller Type 埠 {} 控制器型別 - + Select Macro {} Binds 選擇宏 {} 繫結 - + + Macro {} Frequency + Macro {} Frequency + + + Macro will toggle every {} frames. 每 {} 幀會觸發宏。 - + Port {} Device 埠 {} 裝置 - + Port {} Subtype 埠 {} 子型別 - + {} unlabelled patch codes will automatically activate. {} 個無標籤的補丁程式碼將會被自動啟用。 - + {} unlabelled patch codes found but not enabled. 不會開啟 {} 個無標籤的補丁程式碼。 - + This Session: {} 此會話: {} - + All Time: {} 所有時間: {} - + Save Slot {0} 存檔位置 {0} - + Saved {} 已儲存 {} - + {} does not exist. {} 不存在。 - + {} deleted. 已刪除 {}。 - + Failed to delete {}. 刪除 {} 失敗。 - + File: {} 檔案:{} - + CRC: {:08X} CRC: {:08X} - + Time Played: {} 已遊玩時間: {} - + Last Played: {} 最後遊玩時間: {} - + Size: {:.2f} MB 大小: {:.2f} MB - - {} points - {} 點 - - - - {} (Hardcore Mode) - {} 硬核模式 + + Left: + Left: - - You have unlocked all achievements and earned {} points! - 您已解鎖所有成就並獲得 {} 點點數! + + Top: + Top: - - You have unlocked {} of {} achievements, earning {} of {} possible points. - 您已解鎖 {} 中的 {} 個成就,獲得了 {} 中的 {} 點點數。 + + Right: + Right: - - This game has {} leaderboards. - 此遊戲有 {} 個排行榜。 + + Bottom: + Bottom: - + Summary 統計 - + Interface Settings 界面設定 - + BIOS Settings BIOS 設定 - + Emulation Settings 模擬設定 - + Graphics Settings 圖形設定 - + Audio Settings 音訊設定 - + Memory Card Settings 記憶卡設定 - + Controller Settings 控制器設定 - + Hotkey Settings 熱鍵設定 - + Achievements Settings 成就設定 - + Folder Settings 資料夾設定 - + Advanced Settings 高級設定 - + Patches 補丁 - + Cheats 修改 - + 2% [1 FPS (NTSC) / 1 FPS (PAL)] 2% [1 FPS (NTSC) / 1 FPS (PAL)] - + 10% [6 FPS (NTSC) / 5 FPS (PAL)] 10% [6 FPS (NTSC) / 5 FPS (PAL)] - + 25% [15 FPS (NTSC) / 12 FPS (PAL)] 25% [15 FPS (NTSC) / 12 FPS (PAL)] - + 50% [30 FPS (NTSC) / 25 FPS (PAL)] 50% [30 FPS (NTSC) / 25 FPS (PAL)] - + 75% [45 FPS (NTSC) / 37 FPS (PAL)] 75% [45 FPS (NTSC) / 37 FPS (PAL)] - + 90% [54 FPS (NTSC) / 45 FPS (PAL)] 90% [54 FPS (NTSC) / 45 FPS (PAL)] - + 100% [60 FPS (NTSC) / 50 FPS (PAL)] 100% [60 FPS (NTSC) / 50 FPS (PAL)] - + 110% [66 FPS (NTSC) / 55 FPS (PAL)] 110% [66 FPS (NTSC) / 55 FPS (PAL)] - + 120% [72 FPS (NTSC) / 60 FPS (PAL)] 120% [72 FPS (NTSC) / 60 FPS (PAL)] - + 150% [90 FPS (NTSC) / 75 FPS (PAL)] 150% [90 FPS (NTSC) / 75 FPS (PAL)] - + 175% [105 FPS (NTSC) / 87 FPS (PAL)] 175% [105 FPS (NTSC) / 87 FPS (PAL)] - + 200% [120 FPS (NTSC) / 100 FPS (PAL)] 200% [120 FPS (NTSC) / 100 FPS (PAL)] - + 300% [180 FPS (NTSC) / 150 FPS (PAL)] 300% [180 FPS (NTSC) / 150 FPS (PAL)] - + 400% [240 FPS (NTSC) / 200 FPS (PAL)] 400% [240 FPS (NTSC) / 200 FPS (PAL)] - + 500% [300 FPS (NTSC) / 250 FPS (PAL)] 500% [300 FPS (NTSC) / 250 FPS (PAL)] - + 1000% [600 FPS (NTSC) / 500 FPS (PAL)] 1000% [600 FPS (NTSC) / 500 FPS (PAL)] - + 50% Speed 50% 速度 - + 60% Speed 60% 速度 - + 75% Speed 75% 速度 - + 100% Speed (Default) 100% 速度 (預設) - + 130% Speed 130% 速度 - + 180% Speed 180% 速度 - + 300% Speed 300% 速度 - + Normal (Default) 普通 (預設) - + Mild Underclock 輕微降頻 - + Moderate Underclock 中度降頻 - + Maximum Underclock 最大降頻 - + Disabled 關閉 - + EE > VU > GS EE > VU > GS - + EE > GS > VU EE > GS > VU - + VU > EE > GS VU > EE > GS - + VU > GS > EE VU > GS > EE - + GS > EE > VU GS > EE > VU - + GS > VU > EE GS > VU > EE - + 0 Frames (Hard Sync) 0 幀 (硬同步) - + 1 Frame 1 幀 - + 2 Frames 2 幀 - + 3 Frames 3 幀 - + None - + Extra + Preserve Sign 終極 + 保留符號 - + Full 完全 - + Extra 額外 - + Automatic (Default) 自動 (預設) - + Direct3D 11 Direct3D 11 - + Direct3D 12 Direct3D 12 - + OpenGL OpenGL - + Vulkan Vulkan - + Metal 金屬 - + Software 軟體 - + Null - + Off - + On 開啟 - + Adaptive 自適應 - + Bilinear (Smooth) 雙線性 (平滑) - + Bilinear (Sharp) 雙線性 (銳利) - + Weave (Top Field First, Sawtooth) 交織 (頂部優先,平滑) - + Weave (Bottom Field First, Sawtooth) 交織 (底部優先,平滑) - + Bob (Top Field First) Bob (頂部優先) - + Bob (Bottom Field First) Bob (底部優先) - + Blend (Top Field First, Half FPS) 混合 (頂部優先, 半數 FPS) - + Blend (Bottom Field First, Half FPS) 混合 (底部優先, 半數 FPS) - + Adaptive (Top Field First) 自適應 (頂部區域優先) - + Adaptive (Bottom Field First) 自適應 (底部區域優先) - + Native (PS2) 原生 (PS2) - + 1.25x Native 1.25x 原生 - + 1.5x Native 1.5x 原生 - + 1.75x Native 1.75x 原生 - + 2x Native (~720p) 2x 原生 (~720p) - + 2.25x Native 2.25x 原生 - + 2.5x Native 2.5x 原生 - + 2.75x Native 2.75x 原生 - + 3x Native (~1080p) 3x 原生 (~1080p) - + 3.5x Native 3.5x 原生 - + 4x Native (~1440p/2K) 4x 原生 (~1440p/2K) - + 5x Native (~1620p) 5x 原生 (~1620p) - + 6x Native (~2160p/4K) 6x 原生 (~2160p/4K) - + 7x Native (~2520p) 7x 原生 (~2520p) - + 8x Native (~2880p) 8x 原生 (~2880p) - + Basic (Generated Mipmaps) 基礎 (產生紋理貼圖) - + Full (PS2 Mipmaps) 完全 (PS2 紋理貼圖) - + Nearest 最近似 - + Bilinear (Forced) 雙線性 (強制) - + Bilinear (PS2) 雙線性 (PS2) - + Bilinear (Forced excluding sprite) 雙線性 (強制除活動塊外) - + Off (None) 關 (無) - + Trilinear (PS2) 三線性 (PS2) - + Trilinear (Forced) 三線性 (強制) - + Scaled 縮放 - + Unscaled (Default) 不縮放 (預設) - + Minimum 最小 - + Basic (Recommended) 基礎 (推薦) - + Medium 中等 - + High - + Full (Slow) 完全 (慢) - + Maximum (Very Slow) 最大 (非常慢) - + Off (Default) 關 (預設) - + 2x 2倍 - + 4x 4倍 - + 8x 8倍 - + 16x 16倍 - + Partial 部分 - + Full (Hash Cache) 完全 (雜湊快取) - + Force Disabled 強制關閉 - + Force Enabled 強制開啟 - - Accurate (Recommended) - 精確 (推薦) + + Accurate (Recommended) + 精確 (推薦) + + + + Disable Readbacks (Synchronize GS Thread) + 關閉回讀 (同步 GS 執行緒) + + + + Unsynchronized (Non-Deterministic) + 不同步 (不確定性) + + + + Disabled (Ignore Transfers) + 關閉 (忽略傳輸) + + + + Screen Resolution + 螢幕解析度 + + + + Internal Resolution (Aspect Uncorrected) + Internal Resolution (Aspect Uncorrected) + + + + Cannot show details for games which were not scanned in the game list. + Cannot show details for games which were not scanned in the game list. + + + + Full Boot + Full Boot - - Disable Readbacks (Synchronize GS Thread) - 關閉回讀 (同步 GS 執行緒) + + Achievement Notifications + Achievement Notifications - - Unsynchronized (Non-Deterministic) - 不同步 (不確定性) + + Leaderboard Notifications + Leaderboard Notifications - - Disabled (Ignore Transfers) - 關閉 (忽略傳輸) + + Enable In-Game Overlays + Enable In-Game Overlays - - Screen Resolution - 螢幕解析度 + + Encore Mode + Encore Mode - - Internal Resolution (Uncorrected) - 內部解析度 (未糾正) + + Spectator Mode + 觀察者模式 - + PNG PNG - + JPEG JPEG - + 0 (Disabled) 0 (關閉) - + 1 (64 Max Width) 1 (64 最大寬度) - + 2 (128 Max Width) 2 (128 最大寬度) - + 3 (192 Max Width) 3 (192 最大寬度) - + 4 (256 Max Width) 4 (256 最大寬度) - + 5 (320 Max Width) 5 (320 最大寬度) - + 6 (384 Max Width) 6 (384 最大寬度) - + 7 (448 Max Width) 7 (448 最大寬度) - + 8 (512 Max Width) 8 (512 最大寬度) - + 9 (576 Max Width) 9 (576 最大寬度) - + 10 (640 Max Width) 10 (640 最大寬度) - + Sprites Only 僅活動塊 - + Sprites/Triangles 活動塊/三角形 - + Blended Sprites/Triangles 繫結的活動塊/三角形 - + 1 (Normal) 1 (普通) - + 2 (Aggressive) 2 (激進) - + Inside Target 在目標內部 - + Merge Targets 合併目標 - + Normal (Vertex) 普通 (頂點) - + Special (Texture) 特殊 (紋理) - + Special (Texture - Aggressive) 特殊 (紋理 - 激進) - + Half 一半 - + Force Bilinear 強制雙線性 - + Force Nearest 強制最鄰近 - + Disabled (Default) 關閉 (預設) - + Enabled (Sprites Only) 開啟 (僅活動塊) - + Enabled (All Primitives) 開啟 (所有元素) - + None (Default) 無 (預設) - + Sharpen Only (Internal Resolution) 僅銳化 (內部解析度) - + Sharpen and Resize (Display Resolution) 銳化並調整大小 (顯示解析度) - + Scanline Filter 掃瞄線濾鏡 - + Diagonal Filter 對角線濾鏡 - + Triangular Filter 三角濾鏡 - + Wave Filter 波形濾鏡 - + Lottes CRT 樂天 CRT - + 4xRGSS 4xRGSS - + NxAGSS NxAGSS - + Uncompressed 未壓縮 - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + TimeStretch (Recommended) 時間延展 (推薦) - + Async Mix (Breaks some games!) 非同步混合 (會破壞部分遊戲!) - + None (Audio can skip.) 無 (音訊會跳動) - + Stereo (None, Default) 立體聲 (無,預設) - + Surround 5.1 5.1 環繞聲 - + Surround 7.1 7.1 環繞聲 - + No Sound (Emulate SPU2 only) 無聲音 (僅模擬 SPU2) - + Cubeb (Cross-platform) Cubeb (跨平臺) - + XAudio2 XAudio2 - + PS2 (8MB) PS2 (8MB) - + PS2 (16MB) PS2 (16MB) - + PS2 (32MB) PS2 (32MB) - + PS2 (64MB) PS2 (64MB) - + PS1 PS1 - + 8 MB [Most Compatible] 8 MB [最相容] - + 16 MB 16 MB - + 32 MB 32 MB - + 64 MB 64 MB - + Folder [Recommended] 資料夾 [推薦] - + 128 KB [PS1] 128 KB [PS1] - + + Negative + Negative + + + + Positive + Positive + + + + Chop/Zero (Default) + Chop/Zero (Default) + + + Game Grid 遊戲網格 - + Game List 遊戲列表 - + Game List Settings 遊戲列表設定 - + Type 型別 - + Serial 序列號 - + Title 標題 - + File Title 檔案標題 - + CRC CRC - + Time Played 已遊玩時間 - + Last Played 最後遊戲時間 - + Size 大小 - + Select Disc Image 選擇光碟映像 - + Select Disc Drive 選擇光碟驅動器 - + Start File 啟動檔案 - + Start BIOS 啟動 BIOS - + Start Disc 啟動光碟 - + Exit 退出 - + Set Input Binding 設定輸入繫結 - + Region 區域 - + Compatibility Rating 相容性等級 - + Path 路徑 - + Disc Path 光碟路徑 - + Select Disc Path 選擇光碟路徑 - - Details unavailable for game not scanned in game list. - 未在遊戲列表中掃瞄的遊戲詳細資訊不可用。 - - - + Copy Settings 複製設定 - + Clear Settings 清除設定 - + Inhibit Screensaver 禁用螢幕保護程式 - + + Enable Discord Presence + Enable Discord Presence + + + Pause On Start 啟動時暫停 - + Pause On Focus Loss 丟失焦點時暫停 - + Pause On Menu 菜單中暫停 - + Confirm Shutdown 確認退出 - + Save State On Shutdown 關閉時儲存即時存檔 - + Enable Per-Game Settings 開啟每遊戲設定 - + Use Light Theme 使用淺色主題 - + Start Fullscreen 啟動全螢幕 - + Double-Click Toggles Fullscreen 雙擊切換全螢幕 - + Hide Cursor In Fullscreen 全屏模式下隱藏游標 - + OSD Scale OSD 比例 - + Show Messages 顯示訊息 - + Show Speed 顯示速度 - + Show FPS 顯示 FPS - + Show CPU Usage 顯示 CPU 佔用率 - + Show GPU Usage 顯示 GPU 佔用率 - + Show Resolution 顯示解析度 - + Show GS Statistics 顯示 GS 統計 - + Show Status Indicators 顯示狀態指示器 - + Show Settings 顯示設定 - + Show Inputs 顯示輸入 - + Show Frame Times 顯示幀時間 - + Warn About Unsafe Settings 警告不安全的設定 - + Reset Settings 重置設定 - + Change Search Directory 更改搜索目錄 - + Fast Boot 快速引導 - + Output Volume 輸出音量 - + Synchronization Mode 同步模式 - + Expansion Mode 擴充套件模式 - + Output Module 輸出模式 - + Latency 延遲 - + Sequence Length 序列長度 - + Seekwindow Size 搜索視窗大小 - + Overlap 重疊 - + Memory Card Directory 記憶卡目錄 - + Folder Memory Card Filter 資料夾記憶卡篩選器 - + Auto Eject When Loading 在載入時自動彈出 - + Create 建立 - + Cancel 取消 - + Load Profile 載入方案 - + Save Profile 儲存方案 - + Per-Game Configuration 遊戲單獨配置 - + Copy Global Settings 複製全域性配置 - + Enable SDL Input Source 開啟 SDL 輸入源 - + SDL DualShock 4 / DualSense Enhanced Mode SDL DualShock 4 / DualSense 增強模式 - + SDL Raw Input SDL Raw 輸入 - + Enable XInput Input Source 開啟 XInput 輸入源 - + Enable Console Port 1 Multitap 開啟主機埠 1 多分插 - + Enable Console Port 2 Multitap 開啟主機埠 2 多分插 - + Controller Port {}{} 控制器埠 {}{} - + Controller Port {} 控制器埠 {} - + Controller Type 控制器型別 - + Automatic Mapping 自動對映 - + Controller Port {}{} Macros 控制器埠 {}{} 宏 - + Controller Port {} Macros 控制器埠 {{} 宏 - + Macro Button {} 宏按鈕 {} - + Buttons 按鈕 - + Frequency 頻率 - + Pressure 壓敏 - + Controller Port {}{} Settings 控制器埠 {}{} 設定 - + Controller Port {} Settings 控制器埠 {} 設定 - + USB Port {} USB 埠 {} - + Device Type 裝置型別 - + Device Subtype 裝置子型別 - + {} Bindings {} 條繫結 - + Clear Bindings 清除繫結 - + {} Settings {} 個設定 - + Cache Directory 快取目錄 - + Covers Directory 封面目錄 - + Snapshots Directory 快照目錄 - + Save States Directory 即時存檔目錄 - + Game Settings Directory 遊戲設定目錄 - + Input Profile Directory 輸入方案目錄 - + Cheats Directory 作弊目錄 - + Patches Directory 補丁目錄 - + Texture Replacements Directory 紋理替換目錄 - + Video Dumping Directory 視訊轉儲目錄 - + Resume Game 繼續遊戲 - + Toggle Frame Limit 切換整數限制 - + Game Properties 遊戲屬性 - + Achievements 成就 - + Save Screenshot 儲存截圖 - + Switch To Software Renderer 切換到軟體渲染器 - + Switch To Hardware Renderer 切換到硬體渲染器 - + Change Disc 更換光碟 - + Close Game 關閉遊戲 - + Exit Without Saving 退出不存檔 - + Back To Pause Menu 返回到暫停菜單 - + Exit And Save State 退出並即時存檔 - + Leaderboards 排行榜 - + Delete Save 刪除存檔 - + Close Menu 關閉菜單 - - Clean Boot - 乾淨引導 - - - + Delete State 刪除即時存檔 - + Default Boot 預設引導 - - Slow Boot - 慢速引導 - - - + Reset Play Time 重置遊戲時間 - + Add Search Directory 新增搜索目錄 - + Open in File Browser 在檔案瀏覽器中打開 - + Disable Subdirectory Scanning 關閉子目錄搜索 - + Enable Subdirectory Scanning 開啟子目錄搜索 - + Remove From List 從列表中移除 - + Default View 預設檢視 - + Sort By 排序方式 - + Sort Reversed 反轉排序 - + Scan For New Games 搜索新遊戲 - + Rescan All Games 重新掃瞄所有遊戲 - - Start Download - 開始下載 - - - + Website 網站 - + Support Forums 支援論壇 - + GitHub Repository GitHub 儲存庫 - + License 許可 - + Close 關閉 - + RAIntegration is being used instead of the built-in achievements implementation. RAIntegration 被用於替代內建的成就實現。 - + Enable Achievements 開啟成就 - - Rich Presence - Rich Presence - - - + Hardcore Mode 硬核模式 - - Show Notifications - 顯示訊息 - - - + Sound Effects 聲音效果 - - Show Challenge Indicators - 顯示挑戰指示器 - - - + Test Unofficial Achievements 測試非官方成就 - - Test Mode - 測試模式 - - - + Username: {} 使用者名稱: {} - + Login token generated on {} 登錄憑據產生于{} - + Logout 註銷 - + Not Logged In 未登錄 - + Login 登錄 - - Achievements are disabled. - 已禁用成就。 - - - - Game ID: {} - 遊戲 ID: {} - - - - Game Title: {} - 遊戲標題: {} - - - - Achievements: {} ({} points) - 成就: {} ({} 點) + + Game: {0} ({1}) + 遊戲: {0} ({1}) - + Rich presence inactive or unsupported. 未啟用富線上狀態或不支援。 - + Game not loaded or no RetroAchievements available. 未載入遊戲或無 RetroAchievements 可用。 - + Card Enabled 開啟卡帶 - + Card Name 卡帶名稱 - + Eject Card 彈出卡帶 @@ -8072,7 +8322,7 @@ ${serial}: 遊戲序列號。 無法重新打開,正在還原舊配置。 - + Upscale multiplier set to {}x. 縮放倍數被設定為 {}x。 @@ -8127,12 +8377,12 @@ ${serial}: 遊戲序列號。 在一個或多個壓縮的替換紋理上禁用自動產生的紋理對映。請在壓縮紋理時產生紋理對映。 - + Stencil buffers and texture barriers are both unavailable, this will break some graphical effects. 模板緩衝區和紋理屏障都不可用,這將破壞一些圖形效果。 - + Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable. This might be really slow. 啟用了讀回期間自旋 GPU,但校準的時間戳不可用。 這可能真的很慢。 @@ -8188,7 +8438,7 @@ ${serial}: 遊戲序列號。 GameDatabase - + {0} Current Blending Accuracy is {1}. Recommended Blending Accuracy for this game is {2}. You can adjust the blending level in Game Properties to improve @@ -8199,266 +8449,408 @@ graphical quality, but this will increase system requirements. 統的需求。 - + Manual GS hardware renderer fixes are enabled, automatic fixes were not applied: 已開啟手動 GS 硬體渲染器修復,不會應用自動修復: - + No tracks provided. 未提供軌道。 - + Hash {} is not in database. 雜湊 {} 未在數據庫中。 - + Data track number does not match data track in database. 數據軌道編號與數據庫中的數據軌道不匹配。 - - Track {} with hash {} is not found in database. + + Track {0} with hash {1} is not found in database. - 數據庫中找不到軌道 {} 的雜湊 {}。 + Track {0} with hash {1} is not found in database. - - Track {} with hash {} is for a different game ({}). + + Track {0} with hash {1} is for a different game ({2}). - 軌道 {} 的雜湊 {} 是來自不同遊戲 ({}) 的。 + Track {0} with hash {1} is for a different game ({2}). - - Track {} with hash {} does not match database track. + + Track {0} with hash {1} does not match database track. - 軌道 {} 的雜湊 {} 與數據庫中的軌道不匹配。 + Track {0} with hash {1} does not match database track. GameFixSettingsWidget - + Game Fixes (NOT recommended to change globally) 遊戲修正 (不建議在全域性範圍內更改) - - FPU Negative Divide Hack (For Gundam Games) + + + FPU Negative Divide Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nNegative Divide: mathematical term.\nGundam: a multimedia franchise name. Leave as-is or use an official translation. - FPU 負除 Hack (用於高達遊戲) + FPU Negative Divide Hack - - FPU Multiply Hack (For Tales of Destiny) + + + FPU Multiply Hack FPU = Floating Point Unit. A part of the PS2's CPU. Do not translate.\nMultiply: mathematical term.\nTales of Destiny: a game's name. Leave as-is or use an official translation. - FPU 乘積 Hack (用於宿命傳說) - - - - Use Software Renderer For FMVs - FMV: Full Motion Video. Find the common used term in your language. - 為 FMV 使用軟體渲染器 + FPU Multiply Hack - - Skip MPEG Hack (Skips Videos/FMVs) + + + Skip MPEG Hack MPEG: video codec, leave as-is. FMV: Full Motion Video. Find the common used term in your language. - 跳過 MPEG Hack (跳過 視訊/FMV) + Skip MPEG Hack - - Preload TLB Hack (For Goemon) + + + Preload TLB Hack TLB: Translation Lookaside Buffer. Leave as-is. Goemon: name of a character from the series with his name. Leave as-is or use an official translation. - 預載入 TLB Hack (用於大盜伍佑衛門) + Preload TLB Hack - - EE Timing Hack (General Purpose Timing Hack) + + + EE Timing Hack EE: Emotion Engine. Leave as-is. - EE 計時 HackHack (通用計時 Hack) + EE Timing Hack - - Instant DMA Hack (Good for cache emulation problems) + + + Instant DMA Hack DMA: Direct Memory Access. Leave as-is. - 即時 DMA Hack (對模擬快取問題效果好) + Instant DMA Hack - - OPH Flag Hack (For Bleach Blade Battlers) + + + OPH Flag Hack OPH: Name of a flag (Output PatH) in the GIF_STAT register in the EE. Leave as-is.\nBleach Blade Battles: a game's name. Leave as-is or use an official translation. - OPH 標誌 Hack (用於死神戰士之刃) + OPH Flag Hack - - Emulate GIF FIFO (Correct But Slower) + + + Emulate GIF FIFO GIF = GS (Graphics Synthesizer, the GPU) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - 模擬 GIF FIFO (正確但比較慢) + Emulate GIF FIFO - - DMA Busy Hack (Deny Writes When Busy) + + + DMA Busy Hack DMA: Direct Memory Access. Leave as-is. - DMA 忙碌 Hack (忙時拒絕寫入) + DMA Busy Hack - - Delay VIF1 Stalls (For SOCOM 2 HUD/Spy Hunter) + + + Delay VIF1 Stalls VIF = VU (Vector Unit) Interface. Leave as-is. SOCOM 2 and Spy Hunter: names of two different games. Leave as-is or use an official translation.\nHUD = Heads-Up Display. The games' interfaces. - 延遲 VIF1 分離 (使用者海豹突擊隊 2 HUD/間諜獵人) + Delay VIF1 Stalls - - Emulate VIF FIFO (Correct But Slower) + + + Emulate VIF FIFO VIF = VU (Vector Unit) Interface. Leave as-is.\nFIFO = First-In-First-Out, a type of buffer. Leave as-is. - 模擬 VIF FIFO (正確但比較慢) + Emulate VIF FIFO - - Full VU0 Synchronization (Correct But Slower) + + + Full VU0 Synchronization VU0 = VU (Vector Unit) 0. Leave as-is. - 完全VU0同步 (正確但較慢) + Full VU0 Synchronization - - VU I Bit Hack (For Scarface The World is Yours/Crash Tag Team Racing) + + + VU I Bit Hack VU = Vector Unit. Leave as-is.\nI Bit = A bit referred as I, not as 1.\nScarface The World is Yours and Crash Tag Team Racing: names of two different games. Leave as-is or use an official translation. - VU I 位 Hack (用於疤面煞星 掌握世界/古惑狼賽車) + VU I Bit Hack - - VU Add Hack (For Tri-Ace Games) + + + VU Add Hack VU = Vector Unit. Leave as-is.\nTri-Ace: a game development company name. Leave as-is. - VU 加法 Hack (用於 Tri-Ace 遊戲) + VU Add Hack - - VU Overflow Hack (Superman Returns) + + + VU Overflow Hack VU = Vector Unit. Leave as-is.\nSuperman Returns: a game's name. Leave as-is or use an official translation. - VU 溢出 Hack (超人歸來) + VU Overflow Hack - - VU Sync (Run Behind, M-Bit games) + + + VU Sync VU = Vector Unit. Leave as-is.\nRun Behind: watch out for misleading capitalization for non-English: this refers to making the VUs run behind (delayed relative to) the EE.\nM-Bit: a bitflag in VU instructions that tells VU0 to synchronize with the EE. M-Bit Game: A game that uses instructions with the M-Bit enabled (unofficial PCSX2 name). - VU 同步 (提前執行,M-Bit 遊戲) + VU Sync - - VU XGKick Sync (Correct But Slower) + + + VU XGKick Sync VU = Vector Unit. Leave as-is.\nXGKick: the name of one of the VU's instructions. Leave as-is. - VU XGKick 同步 (正確但比較慢) + VU XGKick Sync - - Force Blit Internal FPS Detection (When auto-detection fails) + + + Force Blit Internal FPS Detection Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit This option tells PCSX2 to estimate internal FPS by detecting blits (image copies) onto visible display memory. - 強制 Blit 內部 FPS 檢測 (在自動檢測失效時) + Force Blit Internal FPS Detection + + + + + Use Software Renderer For FMVs + FMV: Full Motion Video. Find the common used term in your language. + 為 FMV 使用軟體渲染器 + + + + + + + + + + + + + + + + + + + + + + Unchecked + Unchecked + + + + For Tales of Destiny. + For Tales of Destiny. + + + + For Gundam Games. + For Gundam Games. + + + + To avoid TLB miss on Goemon. + To avoid TLB miss on Goemon. + + + + Needed for some games with complex FMV rendering. + Needed for some games with complex FMV rendering. + + + + Skips videos/FMVs in games to avoid game hanging/freezes. + Skips videos/FMVs in games to avoid game hanging/freezes. + + + + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + Known to affect following games: Bleach Blade Battlers, Growlanser II and III, Wizardry. + + + + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + General-purpose timing hack. Known to affect following games: Digital Devil Saga, SSX. + + + + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + Good for cache emulation problems. Known to affect following games: Fire Pro Wrestling Z. + + + + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + Known to affect following games: Mana Khemia 1, Metal Saga, Pilot Down Behind Enemy Lines. + + + + Correct but slower. Known to affect the following games: Fifa Street 2. + Correct but slower. Known to affect the following games: Fifa Street 2. + + + + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + Simulate VIF1 FIFO read ahead. Known to affect following games: Test Drive Unlimited, Transformers. + + + + For SOCOM 2 HUD and Spy Hunter loading hang. + For SOCOM 2 HUD and Spy Hunter loading hang. + + + + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + For Tri-Ace Games: Star Ocean 3, Radiata Stories, Valkyrie Profile 2. + + + + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + Avoids constant recompilation in some games. Known to affect the following games: Scarface The World is Yours, Crash Tag Team Racing. + + + + Forces tight VU0 sync on every COP2 instruction. + Forces tight VU0 sync on every COP2 instruction. + + + + Run behind. To avoid sync problems when reading or writing VU registers. + Run behind. To avoid sync problems when reading or writing VU registers. + + + + To check for possible float overflows (Superman Returns). + To check for possible float overflows (Superman Returns). + + + + Use accurate timing for VU XGKicks (slower). + Use accurate timing for VU XGKicks (slower). + + + + Use alternative method to calculate internal FPS to avoid false readings in some games. + Use alternative method to calculate internal FPS to avoid false readings in some games. GameList - + Never Never - + Today 今天 - + Yesterday 昨天 - + {}h {}m {}小時 {}分 - + {}h {}m {}s {}小時 {}分 {}秒 - + {}m {}s {}分 {}秒 - + {}s {}秒 - + {} hours {} 小時 - + {} minutes {} 分鐘 + + + Downloading cover for {0} [{1}]... + Downloading cover for {0} [{1}]... + GameListModel - + Type 型別 - + Code 程式碼 - + Title 標題 - + File Title 檔案標題 - + CRC CRC - + Time Played 已遊玩時間 - + Last Played 最後遊戲時間 - + Size 大小 - + Region 區域 - + Compatibility 相容性 @@ -8466,74 +8858,100 @@ graphical quality, but this will increase system requirements. GameListSettingsWidget - + + Game Scanning + Game Scanning + + + Search Directories (will be scanned for games) 搜索目錄 (將被用於掃瞄遊戲) - + Add... 新增... - - - + + + Remove 移除 - + Search Directory 搜索目錄 - + Scan Recursively 遞迴掃瞄 - + Excluded Paths (will not be scanned) 排除路徑 (將不會被掃瞄) - + Directory... 目錄... - + File... 檔案... - + Scan For New Games 搜索新遊戲 - + Rescan All Games 重新掃瞄所有遊戲 - + + Display + Display + + + + + Prefer English Titles + Prefer English Titles + + + + Unchecked + Unchecked + + + + For games with both a title in the game's native language and one in English, prefer the English title. + For games with both a title in the game's native language and one in English, prefer the English title. + + + Open Directory... 打開目錄... - + Select Search Directory 選擇搜索目錄 - + Scan Recursively? 要遞迴掃瞄嗎? - + Would you like to scan the directory "%1" recursively? Scanning recursively takes more time, but will identify files in subdirectories. @@ -8542,12 +8960,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. 遞迴掃瞄將需要更多時間, 但是它將會檢測子目錄中的檔案。 - + Select File 選擇檔案 - + Select Directory 選擇目錄 @@ -8555,32 +8973,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. GameListWidget - + Game List 遊戲列表 - + Game Grid 遊戲網格 - + Show Titles 顯示標題 - + All Types 所有型別 - + All Regions 所有區域 - + Search... 搜索... @@ -8606,17 +9024,17 @@ Scanning recursively takes more time, but will identify files in subdirectories. <html><head/><body><p><span style=" font-weight:700;">作者: </span>補丁作者</p><p>描述會在這裡</p></body></html> - + <strong>Author: </strong>%1<br>%2 <strong>作者: </strong>%1<br>%2 - + Unknown 未知 - + No description provided. 未提供描述。 @@ -8634,7 +9052,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. 過載補丁 - + There are no patches available for this game. 沒有此遊戲可用的補丁。 @@ -8653,399 +9071,410 @@ Scanning recursively takes more time, but will identify files in subdirectories. - + Restore 恢復 + Sorting Title: + Name for use in sorting (e.g. "XXX, The" for a game called "The XXX") + Sorting Title: + + + + English Title: + English Title: + + + Path: 路徑: - + Serial: 序列號: - + CRC: CRC: - + Type: 型別: - + PS2 Disc PS2 光碟 - + PS1 Disc PS1 光碟 - + ELF (PS2 Executable) ELF (PS2 可執行檔案) - + Region: 區域: - + NTSC-B (Brazil) Leave the code as-is, translate the country's name. NTSC-B (巴西) - + NTSC-C (China) Leave the code as-is, translate the country's name. NTSC-C (中國) - + NTSC-HK (Hong Kong) Leave the code as-is, translate the country's name. NTSC-HK (香港) - + NTSC-J (Japan) Leave the code as-is, translate the country's name. NTSC-J (日本) - + NTSC-K (Korea) Leave the code as-is, translate the country's name. NTSC-K (韓國) - + NTSC-T (Taiwan) Leave the code as-is, translate the country's name. NTSC-T (臺灣) - + NTSC-U (US) Leave the code as-is, translate the country's name. NTSC-U (美國) - + Other 其它 - + PAL-A (Australia) Leave the code as-is, translate the country's name. PAL-A (澳大利亞) - + PAL-AF (South Africa) Leave the code as-is, translate the country's name. PAL-AF (南非) - + PAL-AU (Austria) Leave the code as-is, translate the country's name. PAL-AU (奧地利) - + PAL-BE (Belgium) Leave the code as-is, translate the country's name. PAL-BE (比利時) - + PAL-E (Europe/Australia) Leave the code as-is, translate the country's name. PAL-E (歐洲/澳大利亞) - + PAL-F (France) Leave the code as-is, translate the country's name. PAL-F (法國) - + PAL-FI (Finland) Leave the code as-is, translate the country's name. PAL-FI (芬蘭) - + PAL-G (Germany) Leave the code as-is, translate the country's name. PAL-G (德國) - + PAL-GR (Greece) Leave the code as-is, translate the country's name. PAL-GR (希臘) - + PAL-I (Italy) Leave the code as-is, translate the country's name. PAL-I (意大利) - + PAL-IN (India) Leave the code as-is, translate the country's name. PAL-IN (印度) - + PAL-M (Europe/Australia) Leave the code as-is, translate the country's name. PAL-M (歐洲/澳大利亞) - + PAL-NL (Netherlands) Leave the code as-is, translate the country's name. PAL-NL (荷蘭) - + PAL-NO (Norway) Leave the code as-is, translate the country's name. PAL-NO (挪威) - + PAL-P (Portugal) Leave the code as-is, translate the country's name. PAL-P (葡萄牙) - + PAL-PL (Poland) Leave the code as-is, translate the country's name. PAL-PL (波蘭) - + PAL-R (Russia) Leave the code as-is, translate the country's name. PAL-R (俄羅斯) - + PAL-S (Spain) Leave the code as-is, translate the country's name. PAL-S (西班牙) - + PAL-SC (Scandinavia) Leave the code as-is, translate the country's name. PAL-SC (斯堪的納維亞) - + PAL-SW (Sweden) Leave the code as-is, translate the country's name. PAL-SW (瑞典) - + PAL-SWI (Switzerland) Leave the code as-is, translate the country's name. PAL-SWI (瑞士) - + PAL-UK (United Kingdom) Leave the code as-is, translate the country's name. PAL-UK (英國) - + Compatibility: 相容性: - + Unknown 未知 - + Not Bootable 無法啟動 - + Reaches Intro 到達標題 - + Reaches Menu 到達菜單 - + In-Game 進入遊戲 - + Playable 可玩 - + Perfect 完美 - + Input Profile: 輸入方案: - + Shared Refers to the shared settings profile. 共享 - + Disc Path: 光碟路徑: - + Browse... 瀏覽... - + Clear 清除 - + Verify 校驗 - + Search on Redump.org... 在 Redump.org 搜索... - + Select Disc Path 選擇光碟路徑 - + Game is not a CD/DVD. 遊戲不是一張 CD/DVD。 - + Track list unavailable while virtual machine is running. 在虛擬機器執行時軌道列表不可用。 - + # # - + Mode 模式 - - + + Start 開始 - - + + Sectors 扇區 - - + + Size 大小 - - + + MD5 MD5 - - + + Status 狀態 - - - - - - + + + + + + %1 %1 - - + + <not computed> <未計算> - + Error 錯誤 - + Cannot verify image while a game is running. 無法在遊戲執行時校驗映象。 - + One or more tracks is missing. 丟失一個或更多軌道。 - + Verified as %1 [%2] (Version %3). 校驗為 %1 [%2] (版本 %3)。 - + Verified as %1 [%2]. 校驗為 %1 [%2]。 @@ -9053,62 +9482,62 @@ Scanning recursively takes more time, but will identify files in subdirectories. GraphicsSettingsWidget - + Renderer: 渲染器: - + Adapter: 適配器: - + Display 顯示 - + Fullscreen Mode: 全屏模式: - + Aspect Ratio: 高寬比: - + Fit to Window / Fullscreen 適合視窗 / 全螢幕 - - + + Auto Standard (4:3 Interlaced / 3:2 Progressive) 自動標準 (4:3 隔行 / 3:2 逐行) - - + + Standard (4:3) 標準 (4:3) - - + + Widescreen (16:9) 寬屏 (16:9) - + FMV Aspect Ratio: FMV 高寬比: - - - + + + @@ -9118,12 +9547,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. 關 (預設) - - - - - - + + + + + + @@ -9134,92 +9563,92 @@ Scanning recursively takes more time, but will identify files in subdirectories. 自動 (預設) - + None (Interlaced, also used by Progressive) 無 (隔行, 也用於隔行) - + Weave (Top Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. 交織 (頂部優先,平滑) - + Weave (Bottom Field First, Sawtooth) Weave: deinterlacing method that can be translated or left as-is in English. Sawtooth: refers to the jagged effect weave deinterlacing has on motion. 交織 (底部優先,平滑) - + Bob (Top Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (頂部區域優先, 全幀) - + Bob (Bottom Field First, Full Frames) Bob: deinterlacing method that refers to the way it makes video look like it's bobbing up and down. Bob (底部區域優先, 全幀) - + Blend (Top Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. 混合 (頂部區域優先, 混合兩場) - + Blend (Bottom Field First, Merge 2 Fields) Blend: deinterlacing method that blends the colors of the two frames, can be translated or left as-is in English. 混合 (底部區域優先, 混合兩場) - + Adaptive (Top Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. 自適應 (頂部區域優先, 類似於 Bob + Weave) - + Adaptive (Bottom Field First, Similar to Bob + Weave) Adaptive: deinterlacing method that should be translated. 自適應 (底部區域優先, 類似於 Bob + Weave) - + Bilinear Filtering: 雙線性過濾: - - + + None - + Bilinear (Smooth) Smooth: Refers to the texture clarity. 雙線性 (平滑) - + Bilinear (Sharp) Sharp: Refers to the texture clarity. 雙線性 (銳利) - + Vertical Stretch: 垂直拉伸: - - - - + + + + % Percentage sign that shows next to a value. You might want to add a space before if your language requires it. ---------- @@ -9227,355 +9656,360 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne % - + Crop: 修剪: - + Left: Warning: short space constraints. Abbreviate if necessary. 左: - - - - + + + + px px - + Top: Warning: short space constraints. Abbreviate if necessary. 上: - + Right: Warning: short space constraints. Abbreviate if necessary. 右: - + Bottom: Warning: short space constraints. Abbreviate if necessary. 下: - + Screen Offsets 螢幕偏移 - + VSync 垂直同步 - + Show Overscan 顯示過掃瞄 - + Enable Widescreen Patches 開啟寬屏補丁 - + Enable No-Interlacing Patches 開啟反隔行掃瞄補丁 - + Anti-Blur 反模糊 - + Ctrl+S Ctrl+S - + Disable Interlace Offset 關閉隔行掃瞄偏移 - + Screenshot Size: 截圖尺寸: - + Screen Resolution 螢幕解析度 - + Internal Resolution 內部解析度 - + Internal Resolution (Aspect Uncorrected) 內部解析度 (不糾正高寬比) - + PNG PNG - + JPEG JPEG - + Quality: 質量: - - + + Rendering 渲染 - + Internal Resolution: 內部解析度: - + Mipmapping: 紋理貼圖: - - + + Off - + Basic (Generated Mipmaps) 基礎 (產生紋理貼圖) - + Full (PS2 Mipmaps) 完全 (PS2 紋理貼圖) - - + + Texture Filtering: 紋理過濾: - - + + Nearest 最近似 - - + + Bilinear (Forced) 雙線性 (強制) - - + + Bilinear (PS2) 雙線性 (PS2) - - + + Bilinear (Forced excluding sprite) 雙線性 (強制除活動塊外) - + Trilinear Filtering: 三線性過濾: - + Off (None) 關 (無) - + Trilinear (PS2) 三線性 (PS2) - + Trilinear (Forced) 三線性 (強制) - + Anisotropic Filtering: 各異向性過濾: - + Dithering: 抖動: - + Scaled 縮放 - + Unscaled (Default) 不縮放 (預設) - + Blending Accuracy: 混合精確性: - + Minimum 最小 - + Basic (Recommended) 基礎 (推薦) - + Medium 中等 - + High - + Full (Slow) 完全 (慢) - + Maximum (Very Slow) 最大 (非常慢) - + Texture Preloading: 預載紋理: - + Partial 部分 - + Full (Hash Cache) 完全 (雜湊快取) - + + Software Rendering Threads: + Software Rendering Threads: + + + + Skip Draw Range: + Skip Draw Range: + + + GPU Palette Conversion GPU 調色板轉換 - + Manual Hardware Renderer Fixes 手動硬體渲染器修復 - + Spin GPU During Readbacks 在回讀期間保持 GPU 執行 - + Spin CPU During Readbacks 在回讀期間保持 CPU 執行 - - Extra Rendering Threads: - 額外渲染執行緒: - - - + threads 執行緒 - + Mipmapping 紋理貼圖 - + Auto Flush 自動清理 - + Hardware Fixes 硬體修復 - + Force Disabled 強制關閉 - + Force Enabled 強制開啟 - + CPU Sprite Render Size: CPU 活動塊渲染大小: - - - + + + 0 (Disabled) @@ -9583,79 +10017,74 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 0 (關閉) - + 1 (64 Max Width) 1 (64 最大寬度) - + 2 (128 Max Width) 2 (128 最大寬度) - + 3 (192 Max Width) 3 (192 最大寬度) - + 4 (256 Max Width) 4 (256 最大寬度) - + 5 (320 Max Width) 5 (320 最大寬度) - + 6 (384 Max Width) 6 (384 最大寬度) - + 7 (448 Max Width) 7 (448 最大寬度) - + 8 (512 Max Width) 8 (512 最大寬度) - + 9 (576 Max Width) 9 (576 最大寬度) - + 10 (640 Max Width) 10 (640 最大寬度) - - Skipdraw Range: - 跳過描繪範圍: - - - + Frame Buffer Conversion 幀緩衝轉換 - + Disable Depth Emulation 關閉深度模擬 - + Disable Safe Features 關閉安全功能 - + Preload Frame Data 預載幀數據 @@ -9666,606 +10095,616 @@ Percentage sign that will appear next to a number. Add a space or whatever is ne 紋理內部 RT - + 1 (Normal) 1 (普通) - + 2 (Aggressive) 2 (激進) - + Software CLUT Render: 軟體 CLUT 渲染器: - + GPU Target CLUT: CLUT: Color Look Up Table, often referred to as a palette in non-PS2 things. GPU Target CLUT: GPU handling of when a game uses data from a render target as a CLUT. GPU 目標 CLUT: - - - + + + Disabled (Default) 關閉 (預設) - + Enabled (Exact Match) 開啟 (完全匹配) - + Enabled (Check Inside Target) 開啟 (檢查目標內部) - + Upscaling Fixes 倍線修復 - + Half Pixel Offset: 半畫素偏移: - + Normal (Vertex) 普通 (頂點) - + Special (Texture) 特殊 (紋理) - + Special (Texture - Aggressive) 特殊 (紋理 - 激進) - + Round Sprite: 排列活動塊: - + Half 一半 - + Full 完全 - + Texture Offsets: 紋理偏移: - + X: X: - + Y: Y: - + Merge Sprite 合併活動快 - + Align Sprite 排列活動塊 - + Deinterlacing: 反交錯: - + Sprites Only 僅活動塊 - + Sprites/Triangles 活動塊/三角形 - + Blended Sprites/Triangles 繫結的活動塊/三角形 - + Auto Flush: 自動重新整理: - + Enabled (Sprites Only) 開啟 (僅活動塊) - + Enabled (All Primitives) 開啟 (所有元素) - + Texture Inside RT: 紋理在 RT 內部: - + Inside Target 在目標內部 - + Merge Targets 合併目標 - + Disable Partial Source Invalidation 禁用部分源無效 - + Read Targets When Closing 關閉時讀取目標 - + Estimate Texture Region 估計紋理區域 - + Disable Render Fixes 關閉渲染器修復 - + Unscaled Palette Texture Draws 未縮放的調色板紋理繪製 - + Wild Arms Hack Wild Arms: name of a game series. Leave as-is or use an official translation. 荒野兵器修正 - + Bilinear Dirty Upscale: 雙線性污染升格: - + Force Bilinear 強制雙線性 - + Force Nearest 強制最鄰近 - + Texture Replacement 紋理替換 - + Search Directory 搜索目錄 - - + + Browse... 瀏覽... - - + + Open... 打開... - - + + Reset 重置 - + PCSX2 will dump and load texture replacements from this directory. PCSX2 將會從此目錄轉儲並載入紋理替換。 - + Options 選項 - + Dump Textures 轉儲紋理 - + Dump Mipmaps 轉儲紋理貼圖 - + Dump FMV Textures 轉儲 FMV 紋理 - - - Async Texture Loading - 非同步載入紋理 - - - + Load Textures 載入紋理 - + Precache Textures 預快取紋理 - + Post-Processing 後置處理 - + Sharpening/Anti-Aliasing 銳化/抗鋸齒 - + Contrast Adaptive Sharpening: You might find an official translation for this on AMD's website (Spanish version linked): https://www.amd.com/es/technologies/radeon-software-fidelityfx 對比度自適應銳化: - - + + None (Default) 無 (預設) - + Sharpen Only (Internal Resolution) 僅銳化 (內部解析度) - + Sharpen and Resize (Display Resolution) 銳化並調整大小 (顯示解析度) - + Sharpness: 銳化: - + FXAA FXAA - + Filters 濾鏡 - + TV Shader: TV 著色器: - + Scanline Filter 掃瞄線濾鏡 - + Diagonal Filter 對角線濾鏡 - + Triangular Filter 三角濾鏡 - + Wave Filter 波形濾鏡 - + Lottes CRT Lottes = Timothy Lottes, the creator of the shader filter. Leave as-is. CRT= Cathode Ray Tube, an old type of television technology. 樂天 CRT - + 4xRGSS downsampling (4x Rotated Grid SuperSampling) 4x RGSS 降採樣(4x 旋轉柵格超採樣) - + NxAGSS downsampling (Nx Automatic Grid SuperSampling) Nx AGSS 降採樣(Nx 自動柵格超採樣) - + Shade Boost 陰影增強 - + Brightness: 亮度: - + Contrast: 對比度: - Saturation 飽和度 - + OSD OSD - + On-Screen Display 屏上顯示 - + OSD Scale: OSD 比例: - + Show Indicators 顯示指示器 - + Show Resolution 顯示解析度 - + Show Inputs 顯示輸入 - + Show GPU Usage 顯示 GPU 佔用率 - + Show Settings 顯示設定 - + Show FPS 顯示 FPS - + + + Disable Dual-Source Blending + Disable Dual-Source Blending + + + Disable Shader Cache 關閉著色器快取 - + Disable Vertex Shader Expand 關閉頂點著色器擴充套件 - + Show Statistics 顯示統計資訊 - + + + Asynchronous Texture Loading + Asynchronous Texture Loading + + + + Saturation: + Saturation: + + + Show CPU Usage 顯示 CPU 佔用率 - + Warn About Unsafe Settings 警告不安全的設定 - + Show Frame Times 顯示幀時間 - + Recording 錄製 - + Video Dumping Directory 視訊轉儲目錄 - + Capture Setup 捕獲設定 - + Container: 容器: - - + + Codec: 編碼器: - - + + Extra Arguments 額外參數 - + Capture Audio 捕獲音訊 - + Resolution: 解析度: - + x x - + Auto 自動 - + Capture Video 捕獲視訊 - + Advanced Advanced here refers to the advanced graphics options. 高級 - + Advanced Options 高級選項 - + Hardware Download Mode: 硬體下載模式: - + Accurate (Recommended) 精確 (推薦) - + Disable Readbacks (Synchronize GS Thread) 關閉回讀 (同步 GS 執行緒) - + Unsynchronized (Non-Deterministic) 不同步 (不確定性) - + Disabled (Ignore Transfers) 關閉 (忽略傳輸) - + GS Dump Compression: GS 轉儲壓縮: - + Uncompressed 未壓縮 - + LZMA (xz) LZMA (xz) - + Zstandard (zst) Zstandard (zst) - + Skip Presenting Duplicate Frames 跳過顯示重複幀 - + Use Blit Swap Chain Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit \nSwap chain: see Microsoft's Terminology Portal. @@ -10275,69 +10714,63 @@ Swap chain: see Microsoft's Terminology Portal. 使用 Blit 交換鏈 - + Disable Threaded Presentation 禁用執行緒化展示 - - + + Bitrate: 位率: - - + + kbps Unit that will appear next to a number. Alter the space or whatever is needed before the text depending on your language. kbps - + Allow Exclusive Fullscreen: 允許獨佔全屏: - + Disallowed 關閉 - + Allowed 開啟 - + Debugging Options 除錯選項 - + Override Texture Barriers: 替代紋理屏障: - + Use Debug Device 使用除錯裝置 - - - Disable Dual Source Blending - 關閉雙源混合 - - - + Show Speed Percentages 顯示速度百分比 - + Disable Framebuffer Fetch 關閉幀緩衝獲取 @@ -10406,8 +10839,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Use Global Setting [%1] 使用全域性設定 [%1] @@ -10459,6 +10892,7 @@ Swap chain: see Microsoft's Terminology Portal. + Unchecked 未選中 @@ -10518,11 +10952,21 @@ Swap chain: see Microsoft's Terminology Portal. Control the accuracy level of the GS blending unit emulation.<br> The higher the setting, the more blending is emulated in the shader accurately, and the higher the speed penalty will be.<br> Do note that Direct3D's blending is reduced in capability compared to OpenGL/Vulkan. 控制 GS 混合單元模擬的精度級別。<br>設定越高,著色器中模擬的混合越準確,速度損失就越大。<br>請注意與 OpenGL/Vulkan 相比 Direct3D 的混合在功能性上稍差。 + + + Software Rendering Threads + Software Rendering Threads + Software CLUT Render 軟體 Clut 渲染 + + + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + Disable the support of depth buffers in the texture cache.It can help to increase speed but it will likely create various glitches. + This option disables game-specific render fixes. @@ -10574,6 +11018,61 @@ Swap chain: see Microsoft's Terminology Portal. Namco: a game publisher and development company. Leave the name as-is. Ace Combat, Tekken, Soul Calibur: game names. Leave as-is or use official translations. 修正了在 Namco 遊戲中升格(垂直線)的問題,如皇牌空戰、鐵拳、刀魂等。 + + + Dumps replaceable textures to disk. Will reduce performance. + Dumps replaceable textures to disk. Will reduce performance. + + + + Includes mipmaps when dumping textures. + Includes mipmaps when dumping textures. + + + + Allows texture dumping when FMVs are active. You should not enable this. + Allows texture dumping when FMVs are active. You should not enable this. + + + + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + Loads replacement textures on a worker thread, reducing microstutter when replacements are enabled. + + + + Loads replacement textures where available and user-provided. + Loads replacement textures where available and user-provided. + + + + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + Preloads all replacement textures to memory. Not necessary with asynchronous loading. + + + + Enables FidelityFX Contrast Adaptive Sharpening. + Enables FidelityFX Contrast Adaptive Sharpening. + + + + Determines the intensity the sharpening effect in CAS post-processing. + Determines the intensity the sharpening effect in CAS post-processing. + + + + Adjusts brightness. 50 is normal. + Adjusts brightness. 50 is normal. + + + + Adjusts contrast. 50 is normal. + Adjusts contrast. 50 is normal. + + + + Adjusts saturation. 50 is normal. + Adjusts saturation. 50 is normal. + Scales the size of the onscreen OSD from 50% to 500%. @@ -10589,11 +11088,6 @@ Swap chain: see Microsoft's Terminology Portal. Displays various settings and the current values of those settings, useful for debugging. 顯示各種設定以及這些設定的當前值,這對除錯很有用。 - - - Shows the current controller state of the system in the bottom left corner of the display. - 在螢幕的左下角顯示系統的當前控制器狀態。 - Displays a graph showing the average frametimes. @@ -10631,7 +11125,7 @@ Swap chain: see Microsoft's Terminology Portal. 啟用此選項可使 PCSX2 的重新整理率與您目前的顯示器或螢幕相匹配。在垂直同步可用時它將被自動禁用(例如以非 100% 速度執行)。 - + Integer Scaling 整數倍拉伸 @@ -10720,8 +11214,8 @@ Swap chain: see Microsoft's Terminology Portal. - - + + Borderless Fullscreen 無邊框全螢幕 @@ -10863,11 +11357,6 @@ Swap chain: see Microsoft's Terminology Portal. Submits useless work to the GPU during readbacks to prevent it from going into powersave modes. May improve performance but with a significant increase in power usage. 在讀回期間對 GPU 執行無用的工作以防止其進入省電模式。可能會提高效能但會顯著增加功耗。 - - - Extra Rendering Threads - 額外的渲染執行緒 - 2 threads @@ -10918,11 +11407,6 @@ Swap chain: see Microsoft's Terminology Portal. Skipdraw Range End 跳過描繪範圍結束 - - - Disable the support of Depth buffer in the texture cache. It can help to increase speed but it will likely create various glitches. - 關閉紋理快取中的深度緩衝區支援。它可以幫助提高速度但它可能會造成各種問題。 - This option disables multiple safe features. Disables accurate Unscale Point and Line rendering which can help Xenosaga games. Disables accurate GS Memory Clearing to be done on the CPU, and let the GPU handle it, which can help Kingdom Hearts games. @@ -11040,7 +11524,7 @@ Swap chain: see Microsoft's Terminology Portal. OSD 比例 - + Show OSD Messages 顯示 OSD 訊息 @@ -11080,6 +11564,11 @@ Swap chain: see Microsoft's Terminology Portal. Shows counters for internal graphical utilization, useful for debugging. 顯示用於內部圖形使用的計數器,對除錯很有用。 + + + Shows the current controller state of the system in the bottom-left corner of the display. + Shows the current controller state of the system in the bottom-left corner of the display. + Displays warnings when settings are enabled which may break games. @@ -11132,30 +11621,40 @@ Swap chain: see Microsoft's Terminology Portal. 在主 GS 執行緒上顯示幀而不是在輔助執行緒上。用於除錯幀時間問題。可以減少丟失幀的機會或減少撕裂但代價是幀時間更不穩定。僅適用於 Vulkan 渲染器。 - + + Enable Debug Device + Enable Debug Device + + + + Enables API-level validation of graphics commands. + Enables API-level validation of graphics commands. + + + GS Download Mode GS 下載模式 - + Accurate 精確 - + Skips synchronizing with the GS thread and host GPU for GS downloads. Can result in a large speed boost on slower systems, at the cost of many broken graphical effects. If games are broken and you have this option enabled, please disable it first. 跳過 GS 執行緒和主機 GPU 進行 GS 下載的同步。可能會在速度較慢的系統上大幅提升速度,但代價是許多損壞的圖形效果。如果遊戲被破壞並且您啟用了此選項,請先禁用它。 - - + + Default This string refers to a default codec, whether it's an audio codec or a video codec. 預設 - - + + (Default) (預設) @@ -11163,405 +11662,405 @@ Swap chain: see Microsoft's Terminology Portal. Hotkeys - - - - - - - - - - - - - + + + + + + + + + + + + + Graphics 圖形 - + Save Screenshot 儲存截圖 - + Toggle Video Capture 切換視訊捕獲 - + Save Single Frame GS Dump 儲存單個 GS 幀轉儲 - + Save Multi Frame GS Dump 儲存多幀 GS 轉儲 - + Toggle Software Rendering 切換軟體渲染 - + Increase Upscale Multiplier 增加縮放倍數 - + Decrease Upscale Multiplier 減少縮放倍數 - + Toggle On-Screen Display 切換屏顯 - + Cycle Aspect Ratio 切換高寬比 - + Aspect ratio set to '{}'. 高寬比被設定為 '{}'。 - + Cycle Hardware Mipmapping 切換硬體紋理對映 - + Hardware mipmapping set to '{}'. 硬體紋理對映被設定為 '{}'。 - + Cycle Deinterlace Mode 切換反交錯模式 - + Deinterlace mode set to '{}'. 反交錯模式被設定為 '{}'。 - + Toggle Texture Dumping 切換紋理轉儲 - + Texture dumping is now enabled. 現在已開啟紋理轉儲。 - + Texture dumping is now disabled. 現在已關閉紋理轉儲。 - + Toggle Texture Replacements 切換紋理替換 - + Texture replacements are now enabled. 現在已開啟紋理替換。 - + Texture replacements are now disabled. 現在已關閉紋理替換。 - + Reload Texture Replacements 過載紋理替換 - + Texture replacements are not enabled. 未開啟紋理替換。 - + Reloading texture replacements... 正在過載紋理替換... - + Target speed set to {:.0f}%. 目標速度設定為 {:.0f}%。 - + Volume: Muted 音量: 靜音 - + Volume: {}% 音量: {}% - - Save slot {} selected (last save: {}). - 已選定即時存檔位置 {} (最後存檔: {})。 + + Save slot {0} selected (last save: {1}). + Save slot {0} selected (last save: {1}). - + Save slot {} selected (no save yet). 已選定即時存檔位置 {} (尚未存檔)。 - + No save state found in slot {}. 在位置 {} 沒找到即時存檔。 - - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + + System 系統 - + Open Pause Menu 打開暫停菜單 - + Open Achievements List 打開成就列表 - + Open Leaderboards List 打開排行榜列表 - + Toggle Pause 切換暫停 - + Toggle Fullscreen 切換全屏 - + Toggle Frame Limit 切換整數限制 - + Toggle Turbo / Fast Forward 切換加速 / 快進 - + Toggle Slow Motion 切換慢動作 - + Turbo / Fast Forward (Hold) 加速/快進(保持) - + Increase Target Speed 增加目標速度 - + Decrease Target Speed 降低目標速度 - + Increase Volume 增大音量 - + Decrease Volume 減小音量 - + Toggle Mute 切換靜音 - + Frame Advance 幀步進 - + Shut Down Virtual Machine 關閉虛擬機器 - + Reset Virtual Machine 重置虛擬機器 - + Toggle Input Recording Mode 切換輸入錄製模式 - - - - + + + + Save States 即時存檔 - + Select Previous Save Slot 選擇上一個即時存檔位置 - + Select Next Save Slot 選擇下一個即時存檔位置 - + Save State To Selected Slot 儲存即時存檔到選定的位置 - + Load State From Selected Slot 從選定的位置載入即時存檔 - + Save State To Slot 1 儲存即時存檔到位置 1 - + Load State From Slot 1 從位置 1 載入即時存檔 - + Save State To Slot 2 儲存即時存檔到位置 2 - + Load State From Slot 2 從位置 2 載入即時存檔 - + Save State To Slot 3 儲存即時存檔到位置 3 - + Load State From Slot 3 從位置 3 載入即時存檔 - + Save State To Slot 4 儲存即時存檔到位置 4 - + Load State From Slot 4 從位置 4 載入即時存檔 - + Save State To Slot 5 儲存即時存檔到位置 5 - + Load State From Slot 5 從位置 5 載入即時存檔 - + Save State To Slot 6 儲存即時存檔到位置 6 - + Load State From Slot 6 從位置 6 載入即時存檔 - + Save State To Slot 7 儲存即時存檔到位置 7 - + Load State From Slot 7 從位置 7 載入即時存檔 - + Save State To Slot 8 儲存即時存檔到位置 8 - + Load State From Slot 8 從位置 8 載入即時存檔 - + Save State To Slot 9 儲存即時存檔到位置 9 - + Load State From Slot 9 從位置 9 載入即時存檔 - + Save State To Slot 10 儲存即時存檔到位置 10 - + Load State From Slot 10 從位置 10 載入即時存檔 @@ -11718,6 +12217,96 @@ Right click to clear binding %1 [%2] %1 [%2] + + + Left Analog + Left Analog + + + + Right Analog + Right Analog + + + + Cross + Cross + + + + Square + Square + + + + Triangle + Triangle + + + + Circle + Circle + + + + L1 + L1 + + + + R1 + R1 + + + + L2 + L2 + + + + R2 + R2 + + + + D-Pad Down + D-Pad Down + + + + D-Pad Right️ + D-Pad Right️ + + + + D-Pad Up️ + D-Pad Up️ + + + + D-Pad Left️ + D-Pad Left️ + + + + L3 + L3 + + + + R3 + R3 + + + + Select + Select + + + + Start + Start + Input Recording Files (*.p2m2) @@ -11745,137 +12334,137 @@ Right click to clear binding InterfaceSettingsWidget - + Behaviour 行為 - + Pause On Focus Loss 丟失焦點時暫停 - + Inhibit Screensaver 禁用螢幕保護程式 - + Save State On Shutdown 關閉時儲存即時存檔 - + Pause On Start 啟動時暫停 - + Confirm Shutdown 確認退出 - + Create Save State Backups 建立即時存檔備份 - + Enable Discord Presence 開啟 Discord Presence - + Enable Per-Game Settings 開啟每遊戲設定 - + Game Display 遊戲顯示 - + Start Fullscreen 啟動全螢幕 - + Double-Click Toggles Fullscreen 雙擊切換全螢幕 - + Render To Separate Window 渲染到分離視窗 - + Hide Main Window When Running 在執行時隱藏主視窗 - + Disable Window Resizing 關閉視窗調整大小 - + Hide Cursor In Fullscreen 全屏模式下隱藏游標 - + Preferences 參數 - + Language: 語言: - + Theme: 主題: - + Automatic Updater 自動更新器 - + Update Channel: 更新通道: - + Current Version: 目前版本: - + Enable Automatic Update Check 開啟自動檢查更新 - + Check for Updates... 檢查更新... @@ -12068,7 +12657,7 @@ Right click to clear binding 將您目前正在遊玩的遊戲顯示在 Discord 的個人檔案中。 - + System Language [Default] 系統語言 [預設] @@ -12125,14 +12714,14 @@ Right click to clear binding - - + + Change Disc 更換光碟 - + Load State 載入即時存檔 @@ -12637,13 +13226,13 @@ Right click to clear binding - + Start Big Picture Mode 啟動大屏模式 - + Big Picture In Toolbar 大屏 @@ -12655,7 +13244,7 @@ Right click to clear binding - + Show Advanced Settings 顯示高級設定 @@ -12666,7 +13255,7 @@ Right click to clear binding - + Video Capture 視訊捕獲 @@ -12681,27 +13270,27 @@ Right click to clear binding 編輯補丁... - + Internal Resolution 內部解析度 - + %1x Scale %1x 比例 - + Select location to save block dump: 選擇儲存塊轉儲的位置: - + Do not show again 不再顯示 - + Changing advanced settings can have unpredictable effects on games, including graphical glitches, lock-ups, and even corrupted save files. We do not recommend changing advanced settings unless you know what you are doing, and the implications of changing each setting. The PCSX2 team will not provide any support for configurations that modify these settings, you are on your own. @@ -12714,168 +13303,173 @@ PCSX2 團隊不會為修改這些設定的配置提供任何支援,您可以自 您確定要繼續嗎? - + %1 Files (*.%2) %1 檔案 (*.%2) - + + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + RA: Logged in as %1 (%2, %3 softcore). %4 unread messages. + + + Confirm Shutdown 確認退出 - + Are you sure you want to shut down the virtual machine? 您確實要關閉虛擬機器嗎? - + Save State For Resume 儲存狀態以繼續 - - - - - - + + + + + + Error 錯誤 - + You must select a disc to change discs. 您必須選擇一張需要更換光碟。 - + Properties... 屬性... - + Open Containing Directory... Refers to the directory where a game is contained. 打開包含目錄... - + Set Cover Image... 設定封面影象... - + Exclude From List 從列表中排除 - + Reset Play Time 重置遊戲時間 - + Default Boot 預設引導 - + Fast Boot 快速引導 - + Full Boot 完全引導 - + Boot and Debug 引導並除錯 - + Add Search Directory... 新增搜索目錄... - + Start File 啟動檔案 - + Start Disc 啟動光碟 - + Select Disc Image 選擇光碟映像 - + Updater Error 更新錯誤 - + <p>Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.</p><p>To obtain an official build, please download from the link below:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> <p>對不起,您正在嘗試更新的 PCSX2 版本不是 GitHub 的官方版本。爲了防止不相容,自動更新程式只在官方版本上啟用。</p><p>要獲得官方版本,請從下面的鏈接下載:</p><p><a href="https://pcsx2.net/downloads/">https://pcsx2.net/downloads/</a></p> - + Automatic updating is not supported on the current platform. 自動更新不支援目前的平臺。 - + Confirm File Creation 確認檔案建立 - + The pnach file '%1' does not currently exist. Do you want to create it? pnach 檔案 '%1' 目前不存在。您要建立它嗎? - + Failed to create '%1'. 建立 '%1' 失敗。 - + Input Recording Files (*.p2m2) 輸入錄像檔案 (*.p2m2) - + Paused 暫停 - + Load State Failed 載入即時存檔失敗 - + Cannot load a save state without a running VM. 無法在沒有執行 VM 的情況下載入一個即時存檔。 - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? 如果不重置虛擬機器則無法載入新的 ELF。是否要立即重置該虛擬機器? - + Cannot change from game to GS dump without shutting down first. 如果不先關機就無法從遊戲更改到 GS 轉儲。 - + Failed to get window info from widget 從小部件獲取視窗資訊失敗 @@ -12890,97 +13484,97 @@ PCSX2 團隊不會為修改這些設定的配置提供任何支援,您可以自 所有檔案型別 (*.bin *.iso *.cue *.mdf *.chd *.cso *.gz *.dump);;單軌Raw 映象 (*.bin *.iso);;Cue 表 (*.cue);;媒體描述符檔案 (*.mdf);;MAME CHD 映象 (*.chd);;CSO 映象 (*.cso);;GZ 映象 (*.gz);;區塊轉儲 (*.dump) - + Stop Big Picture Mode 停止大屏模式 - + Exit Big Picture In Toolbar 退出大屏模式 - + Game Properties 遊戲屬性 - + Game properties is unavailable for the current game. 目前遊戲的遊戲屬性不可用。 - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. 找不到任何 CD/DVD-ROM 裝置。請確保您已連線驅動器並具有足夠的訪問許可權。 - + Select disc drive: 選擇光碟驅動器: - + This save state does not exist. 此即時存檔不存在。 - + Select Cover Image 選擇封面影象 - - All Cover Image Types (*.jpg *.jpeg *.png) - 所有封面影象型別 (*.jpg *.jpeg *.png) - - - + Cover Already Exists 封面已存在 - + A cover image for this game already exists, do you wish to replace it? 此遊戲的封面圖片已存在,您要替換它嗎? - - - - + + + + Copy Error 複製錯誤 - + Failed to remove existing cover '%1' 移除現存封面 '%1' 失敗 - + Failed to copy '%1' to '%2' 複製'%1' 到』%2『 失敗 - + Failed to remove '%1' 移除 '%1' 失敗 - - + + Confirm Reset 確認重置 - + + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + All Cover Image Types (*.jpg *.jpeg *.png *.webp) + + + You must select a different file to the current cover image. 您必須選擇與目前封面影象不同的檔案。 - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. @@ -12989,12 +13583,12 @@ This action cannot be undone. 此操作無法被撤銷。 - + Load Resume State 載入並繼續即時存檔 - + A resume save state was found for this game, saved at: %1. @@ -13007,70 +13601,70 @@ Do you want to load this state, or start from a fresh boot? 您是要載入此狀態,還是要重新啟動? - + Fresh Boot 重新啟動 - + Delete And Boot 刪除並重啟 - + Failed to delete save state file '%1'. 刪除即時存檔檔案 '%1'.失敗。 - + Load State File... 載入即時存檔檔案... - + Load From File... 從檔案載入... - - + + Select Save State File 選擇即時存檔檔案 - - + + Save States (*.p2s) 即時存檔 (*.p2s) - + Delete Save States... 刪除即時存檔... - + Undo Load State 撤銷載入即時存檔 - + Resume (%2) 繼續 (%2) - + Load Slot %1 (%2) 載入位置 %1 (%2) - - + + Delete Save States 刪除即時存檔 - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. @@ -13079,42 +13673,42 @@ The saves will not be recoverable. 存檔無法恢復。 - + %1 save states deleted. 已刪除 %1 即時存檔。 - + Save To File... 儲存到檔案... - + Empty - + Save Slot %1 (%2) 儲存到位置 %1 (%2) - + Confirm Disc Change 確認更改光碟 - + Do you want to swap discs or boot the new image (via system reset)? 是否要交換光碟或啟動新映象(通過系統重置)? - + Swap Disc 交換光碟 - + Reset 重置 @@ -13122,8 +13716,8 @@ The saves will not be recoverable. MemoryCard - - + + Memory Card '{}' was saved to storage. 記憶卡 '{}' 已被儲存到儲存裝置中。 @@ -13204,6 +13798,7 @@ The saves will not be recoverable. + 2x larger than a standard Memory Card. May have some compatibility issues. 2 倍標準容量的記憶卡。可能會有些相容性問題。 @@ -13254,11 +13849,6 @@ The saves will not be recoverable. Cannot Convert Memory Card 無法轉換記憶卡 - - - 2x larger as a standard Memory Card. May have some compatibility issues. - 2 倍標準容量的記憶卡。可能會有些相容性問題。 - MemoryCardCreateDialog @@ -13384,103 +13974,104 @@ The saves will not be recoverable. MemoryCardSettingsWidget - + Console Ports 主機埠 - + Memory Cards 記憶卡 - + Folder: 資料夾: - + Browse... 瀏覽... - + Open... 打開... - + Reset 重置 - + Name 名稱 - + Type 型別 - + Formatted 格式化 - + Last Modified 修改日期 - + Refresh 重新整理 - + + Create 建立 - + Duplicate 複製 - + Rename 重新命名 - + Convert 轉換 - + Delete 刪除 - + Settings 設定 - + Automatically manage saves based on running game 基於正在執行的遊戲自動管理存檔 - + Auto-eject Memory Cards when loading save states 當載入即時存檔時自動彈出記憶卡 @@ -13650,58 +14241,58 @@ This action cannot be reversed, and you will lose any saves on the card.記憶體 - + Copy Address 反彙編 - + Go to in disassembly 轉到反彙編 - - + + Go to address 轉到地址 - + Show as 1 byte 顯示為 1 位元組 - + Show as 2 bytes 顯示為 2 位元組 - + Show as 4 bytes 顯示為 4 位元組 - + Show as 8 bytes 顯示為 8 位元組 - + Copy Byte 複製位元組 - + Copy Segment 複製數據段 - + Copy Character 複製字元 - + Paste 貼上 @@ -13751,10 +14342,15 @@ This action cannot be reversed, and you will lose any saves on the card.輸入作者名稱 - + Input Recording Files (*.p2m2) 輸入錄像檔案 (*.p2m2) + + + Select a File + Select a File + Pad @@ -13950,6 +14546,16 @@ This action cannot be reversed, and you will lose any saves on the card.Sets the analog stick deadzone, i.e. the fraction of the stick movement which will be ignored. 設定模擬搖桿死區,即忽略的操縱桿移動的比例。 + + + + + + + + %.0f%% + %.0f%% + Sets the analog stick axis scaling factor. A value between 1.30 and 1.40 is recommended when using recent controllers, e.g. DualShock 4, Xbox One Controller. @@ -13966,14 +14572,14 @@ This action cannot be reversed, and you will lose any saves on the card.設定用於啟用按鈕/扳機的死區,即將被忽略的扳機比例。 - - Analog light is now on for port {} / slot {} - 埠 {} / 插槽 {} 的模擬燈現在是開啟的 + + Analog light is now on for port {0} / slot {1} + Analog light is now on for port {0} / slot {1} - - Analog light is now off for port {} / slot {} - 埠 {} / 插槽 {} 的模擬燈現在是關閉的 + + Analog light is now off for port {0} / slot {1} + Analog light is now off for port {0} / slot {1} @@ -14020,13 +14626,6 @@ This action cannot be reversed, and you will lose any saves on the card.DualShock 2 DualShock 2 - - - Controller port {}, slot {} has a {} connected, but the save state has a {}. -Leaving the original controller type connected, but this may cause issues. - 控制器埠 {},插槽 {} 已連線了 {},但即時存檔中是 {}。 -使原始控制器型別保持連線,但這可能會導致問題。 - Strum Up @@ -14097,40 +14696,63 @@ Leaving the original controller type connected, but this may cause issues.Guitar 吉他 + + + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Controller port {0}, slot {1} has a {2} connected, but the save state has a {3}. +Leaving the original controller type connected, but this may cause issues. + Patch - + Failed to open {}. Built-in game patches are not available. 無法打開 {}。內建遊戲補丁不可用。 - + {} GameDB patches {} 條遊戲數據庫補丁 - + {}{} game patches {}{} 條遊戲補丁 - + {}{} cheat patches {}{} 條作弊補丁 - + {} are active. 開啟 {}。 - + No cheats or patches (widescreen, compatibility or others) are found / enabled. 沒有找到 / 開啟作弊或補丁 (寬屏、相容性以及其它)。 + + PermissionsDialogCamera + + + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + PCSX2 uses your camera to emulate an EyeToy camera plugged into the virtual PS2 + + + + PermissionsDialogMicrophone + + + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + PCSX2 uses your microphone to emulate a USB microphone plugged into the virtual PS2 + + QObject @@ -14148,13 +14770,13 @@ The URL was: %1 URL 時: %1 - + HDD Creator HDD 建立器 - + Failed to create HDD image 建立 HDD 映像失敗 @@ -14359,7 +14981,6 @@ Otherwise delete the savestate and do a fresh boot. SettingWidgetBinder - @@ -14409,278 +15030,281 @@ Do you want to create this directory? SettingsDialog - - - - - + + Use Global Setting [Enabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. + 使用全域性設定 [開啟] + + + + Use Global Setting [Disabled] + THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. + 使用全域性設定 [關閉] + + + + + Use Global Setting [%1] + 使用全域性設定 [%1] + + + + SettingsWindow + + + + + + PCSX2 Settings - PCSX2 設定 + PCSX2 Settings - + Restore Defaults - 還原預設 + Restore Defaults - + Copy Global Settings - 複製全域性配置 + Copy Global Settings - + Clear Settings - 清除設定 + Clear Settings - + Close - 關閉 + Close - - - Summary - 統計 + + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. + <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - - <strong>Summary</strong><hr>This page shows details about the selected game. Changing the Input Profile will set the controller binding scheme for this game to whichever profile is chosen, instead of the default (Shared) configuration. The track list and dump verification can be used to determine if your disc image matches a known good dump. If it does not match, the game may be broken. - <strong>摘要</strong><hr>此頁面顯示有關所選遊戲的詳細資訊。更改輸入配置檔案會將此遊戲的控制器繫結方案設定為所選的任意配置檔案,而不是預設(共享)配置。軌道列表和轉儲驗證可用於確定您的光碟映像是否與已知正確轉儲匹配。如果不匹配,遊戲可能已損壞。 + + + Summary + Summary - + Summary is unavailable for files not present in game list. - 摘要不適用于遊戲列表中不存在的檔案。 + Summary is unavailable for files not present in game list. - + Interface - 界面 + Interface - + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - <strong>界面設定</strong><hr>這些選項控制軟體的外觀和行為。<br><br>將滑鼠懸停在選項上可檢視附加資訊。 + <strong>Interface Settings</strong><hr>These options control how the software looks and behaves.<br><br>Mouse over an option for additional information. - + Game List - 遊戲列表 + Game List - + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - <strong>遊戲列表設定</strong><hr>上面的列表顯示了由 PCSX2 搜索用來填充遊戲列表的目錄。可以新增、刪除搜索目錄,並將其切換為遞迴/非遞迴。 + <strong>Game List Settings</strong><hr>The list above shows the directories which will be searched by PCSX2 to populate the game list. Search directories can be added, removed, and switched to recursive/non-recursive. - + BIOS BIOS - + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - <strong>BIOS 設定</strong><hr>在此處配置您的 BIOS。<br><br>將滑鼠懸停在選項上獲取詳情。 + <strong>BIOS Settings</strong><hr>Configure your BIOS here.<br><br>Mouse over an option for additional information. - + Emulation - 模擬 + Emulation - + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - <strong>模擬設定</strong><hr>這些選項確定幀間隔和遊戲設定。<br><br>將滑鼠懸停在選項上獲取詳情。 + <strong>Emulation Settings</strong><hr>These options determine the configuration of frame pacing and game settings.<br><br>Mouse over an option for additional information. - + Patches - 補丁 + Patches - + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - <strong>補丁</strong><hr>此部分允許您選擇要應用於遊戲的可選補丁,這些補丁可能會提供效能、視覺或遊戲方面的改進。 + <strong>Patches</strong><hr>This section allows you to select optional patches to apply to the game, which may provide performance, visual, or gameplay improvements. - + Cheats - 修改 + Cheats - + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - <strong>作弊</strong><hr>此部分允許您選擇要啟用的作弊。對於舊格式的 pnach 檔案您不能啟用/禁用沒有標籤的作弊,如果選中了主要的作弊啟用選項這些作弊將自動啟用。 + <strong>Cheats</strong><hr>This section allows you to select which cheats you wish to enable. You cannot enable/disable cheats without labels for old-format pnach files, those will automatically activate if the main cheat enable option is checked. - + Game Fixes - 遊戲修正 + Game Fixes - + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - <strong>遊戲修正設定</strong><hr>遊戲修正可以解決某些遊戲中不正確的模擬。<br>但是,如果使用不當它們也可能在遊戲中導致問題。<br>除非另有建議否則最好將其全部禁用。 + <strong>Game Fixes Settings</strong><hr>Game Fixes can work around incorrect emulation in some titles.<br>However, they can also cause problems in games if used incorrectly.<br>It is best to leave them all disabled unless advised otherwise. - + Graphics - 圖形 + Graphics - + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - <strong>圖形設定</strong><hr>這些選項確定圖形輸出的配置。<br><br>將滑鼠懸停在選項上獲取詳情。 + <strong>Graphics Settings</strong><hr>These options determine the configuration of the graphical output.<br><br>Mouse over an option for additional information. - + Audio - 音訊 + Audio - + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - <strong>音訊設定</strong><hr>這些選項控制主機的音訊輸出。<br><br>將滑鼠懸停在選項上獲取詳情。 + <strong>Audio Settings</strong><hr>These options control the audio output of the console.<br><br>Mouse over an option for additional information. - + Memory Cards - 記憶卡 + Memory Cards - + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - <strong>記憶卡設定</strong><hr>在此處建立和配置記憶卡。<br><br>將滑鼠懸停在選項上獲取詳情。 + <strong>Memory Card Settings</strong><hr>Create and configure Memory Cards here.<br><br>Mouse over an option for additional information. - + Network & HDD - 網路與硬碟 + Network & HDD - + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - <strong>網路與硬碟設定</strong><hr>這些選項控制主機的網路連線和內部硬碟儲存。<br><br>將滑鼠懸停在選項上可檢視附加資訊。 + <strong>Network & HDD Settings</strong><hr>These options control the network connectivity and internal HDD storage of the console.<br><br>Mouse over an option for additional information. - + Folders - 資料夾 + Folders - + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - <strong>資料夾設定</strong><hr>這些選項控制 PCSX2 儲存執行時數據檔案的位置。 + <strong>Folder Settings</strong><hr>These options control where PCSX2 will save runtime data files. - + Achievements - 成就 + Achievements - + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - <strong>成就設定</strong><hr>這些設定控制 RetroAchievements 在 PCSX2 中的實現方式, 允許您在遊戲中獲得成就。 + <strong>Achievements Settings</strong><hr>These options control the RetroAchievements implementation in PCSX2, allowing you to earn achievements in your games. - + RAIntegration is being used, built-in RetroAchievements support is disabled. - 正在使用 RAIntegration,內建的 RetroAchievements 支援已禁用。 + RAIntegration is being used, built-in RetroAchievements support is disabled. - + Advanced - 高級 + Advanced - + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - <strong>高級設定</strong><hr>這些是用於確定模擬主機配置的高級選項。<br><br>將滑鼠懸停在選項上可檢視更多資訊。 + <strong>Advanced Settings</strong><hr>These are advanced options to determine the configuration of the simulated console.<br><br>Mouse over an option for additional information. - + Debug - 除錯 + Debug - + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - <strong>除錯設定</strong><hr>這些選項可用於記錄有關應用程式的內部資訊。<strong>除非您知道自己在做什麼否則請勿修改</strong>,這將導致速度顯著減慢,並可能浪費大量磁碟空間。 + <strong>Debug Settings</strong><hr>These are options which can be used to log internal information about the application. <strong>Do not modify unless you know what you are doing</strong>, it will cause significant slowdown, and can waste large amounts of disk space. - + Confirm Restore Defaults - 確認重置為預設值 + Confirm Restore Defaults - + Are you sure you want to restore the default settings? Any preferences will be lost. - 您確實要恢復預設設定嗎?所有參數都將丟失。 + Are you sure you want to restore the default settings? Any preferences will be lost. - + Reset UI Settings - 重置 UI 設定 + Reset UI Settings - + The configuration for this game will be replaced by the current global settings. Any current setting values will be overwritten. Do you want to continue? - 此遊戲的配置將被目前的全域性配置所替換。 + The configuration for this game will be replaced by the current global settings. -目前的所有配置值都將被覆蓋。 +Any current setting values will be overwritten. -您要繼續嗎? +Do you want to continue? - + Per-game configuration copied from global settings. - 已從全域性設定複製到遊戲特定配置。 + Per-game configuration copied from global settings. - + The configuration for this game will be cleared. Any current setting values will be lost. Do you want to continue? - 此遊戲的配置將被清空。 + The configuration for this game will be cleared. -目前的所有設定都將丟失。 +Any current setting values will be lost. -您要繼續嗎? +Do you want to continue? - + Per-game configuration cleared. - 已清空遊戲特定配置。 + Per-game configuration cleared. - + Recommended Value - 推薦值 - - - - Use Global Setting [Enabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Enabled]: the text must be translated. - 使用全域性設定 [開啟] - - - - Use Global Setting [Disabled] - THIS STRING IS SHARED ACROSS MULTIPLE OPTIONS. Be wary about gender/number. Also, ignore Crowdin's warning regarding [Disabled]: the text must be translated. - 使用全域性設定 [關閉] - - - - - Use Global Setting [%1] - 使用全域性設定 [%1] + Recommended Value @@ -14767,8 +15391,8 @@ Do you want to continue? - Open in Explorer... - 在瀏覽器中打開... + Open BIOS Folder... + 打開BIOS套資料夾。。。 @@ -15035,97 +15659,97 @@ Scanning recursively takes more time, but will identify files in subdirectories. 等待型別 - + BAD Refers to a Thread State in the Debugger. 錯誤 - + RUN Refers to a Thread State in the Debugger. 執行 - + READY Refers to a Thread State in the Debugger. 就緒 - + WAIT Refers to a Thread State in the Debugger. 等待 - + SUSPEND Refers to a Thread State in the Debugger. 暫停 - + WAIT SUSPEND Refers to a Thread State in the Debugger. 等待暫停 - + DORMANT Refers to a Thread State in the Debugger. 休眠 - + NONE Refers to a Thread Wait State in the Debugger. - + WAKEUP REQUEST Refers to a Thread Wait State in the Debugger. 喚醒請求 - + SEMAPHORE Refers to a Thread Wait State in the Debugger. 訊號 - + SLEEP Refers to a Thread Wait State in the Debugger. 休眠 - + DELAY Refers to a Thread Wait State in the Debugger. 延遲 - + EVENTFLAG Refers to a Thread Wait State in the Debugger. 事件標誌 - + MBOX Refers to a Thread Wait State in the Debugger. MBOX - + VPOOL Refers to a Thread Wait State in the Debugger. VPOOL - + FIXPOOL Refers to a Thread Wait State in the Debugger. FIXPOOL @@ -15331,6 +15955,11 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the crosshair image set above. 縮放上面設定的十字準星影象。 + + + %.0f%% + %.0f%% + Cursor Color @@ -15362,6 +15991,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Scales the position to simulate CRT curvature. 縮放位置以模擬 CRT 曲率。 + + + + %.2f%% + %.2f%% + Y Scale (Sensitivity) @@ -15377,6 +16012,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the horizontal center position of the simulated screen. 設定模擬螢幕的水平中心位置。 + + + + %.0fpx + %.0fpx + Center Y @@ -15397,6 +16038,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Sets the width of the simulated screen. 設定模擬螢幕的寬度。 + + + + %dpx + %dpx + Screen Height @@ -15452,6 +16099,15 @@ Scanning recursively takes more time, but will identify files in subdirectories. Specifies the latency to the host input device. 指定主機輸入裝置的延遲。 + + + + + + + %dms + %dms + Output Latency @@ -15652,6 +16308,26 @@ Scanning recursively takes more time, but will identify files in subdirectories. Y Y + + + Off + Off + + + + Low + Low + + + + Medium + Medium + + + + High + High + Steering Smoothing @@ -15662,6 +16338,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. Smooths out changes in steering to the specified percentage per poll. Needed for using keyboards. 按指定的百分比平滑每次輪詢的轉向。使用鍵盤時需要。 + + + + %d%% + %d%% + Steering Deadzone @@ -16161,117 +16843,117 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_DrivingForce - + Hints 提示 - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. 要繫結大多數現代 900 度方向盤的轉向,請將方向盤在所需方向上旋轉一圈,然後再回正方向。 - + Force Feedback 強制力回饋 - + D-Pad 方向鍵 - + Down - + Left - + Up - + Right - + L1 L1 - + L2 L2 - + Brake 剎車 - + Steering Left 向左轉向 - + Steering Right 向右轉向 - + Select 選擇 (Select) - + Start 開始 - + Face Buttons 面板按鈕 - + Circle - + Cross × - + Triangle - + Square - + R1 R1 - + R2 R2 - + Accelerator 油門 @@ -16279,67 +16961,67 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GTForce - + Hints 提示 - + To bind steering for most modern 900 degree wheels, turn the wheel one rotation in the desired direction, then back again to center. 要繫結大多數現代 900 度方向盤的轉向,請將方向盤在所需方向上旋轉一圈,然後再回正方向。 - + Force Feedback 強制力回饋 - + X X - + A A - + Brake 剎車 - + Steering Left 向左轉向 - + Steering Right 向右轉向 - + Left Paddle 左踏板 - + Right Paddle 右踏板 - + Y Y - + B B - + Accelerator 油門 @@ -16347,71 +17029,71 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBBindingWidget_GunCon2 - + Buttons 按鈕 - + A A - + C C - + Start 開始 - + Select 選擇 (Select) - + B B - + D-Pad 方向鍵 - - + + Down - - + + Left - - + + Up - - + + Right - + Pointer Setup 指針設定 - + <p>By default, GunCon2 will use the mouse pointer. To use the mouse, you <strong>do not</strong> need to configure any bindings apart from the trigger and buttons.</p> <p>If you want to use a controller, or lightgun which simulates a controller instead of a mouse, then you should bind it to Relative Aiming. Otherwise, Relative Aiming should be <strong>left unbound</strong>.</p> @@ -16420,29 +17102,29 @@ Scanning recursively takes more time, but will identify files in subdirectories. <p>如果您想要使用控制器,或者模擬控制器而不是滑鼠的光槍,那麼您應該將其繫結到相對瞄準。否則,相對瞄準應為<strong>未繫結</strong>。</p> - + Relative Aiming Try to use Sony's official terminology for this. A good place to start would be in the console or the DualShock 2's manual. If this element was officially translated to your language by Sony in later DualShocks, you may use that term. 相對瞄準 - - + + Trigger 觸發 - + Shoot Offscreen 離屏射擊 - + Calibration Shot 校準鏡頭 - + Calibration shot is required to pass the setup screen in some games. 在一些遊戲中需要校準鏡頭才能通過設定螢幕。 @@ -16450,27 +17132,27 @@ Scanning recursively takes more time, but will identify files in subdirectories. USBDeviceWidget - + Device Type 裝置型別 - + Bindings 繫結 - + Settings 設定 - + Automatic Mapping 自動對映 - + Clear Mapping 清除對映 @@ -16508,32 +17190,32 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. 備份舊的即時存檔失敗 {}。 - + Failed to save save state: {}. 儲存即時存檔 {} 失敗。 - + PS2 BIOS ({}) PS2 BIOS ({}) - + Unknown Game 未知遊戲 - + Error 錯誤 - + PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count). @@ -16550,197 +17232,217 @@ Please consult the FAQs and Guides for further instructions. 請參閱常見問題解答和指南獲取詳細說明。 - + + Resuming state + Resuming state + + + State saved to slot {}. 即時存檔已儲存到位置 {}. - + Failed to save save state to slot {}. 即時存檔儲存到位置 {} 失敗。 - + + + Loading state + Loading state + + + There is no save state in slot {}. 在位置 {} 沒有即時存檔。 - + Loading state from slot {}... 從位置 {} 載入即時存檔... - + Saving state to slot {}... 正在儲存即時存檔到位置 {}... - + + Frame advancing + Frame advancing + + + Disc removed. 已移除光碟。 - + Disc changed to '{}'. 已更改光碟為 '{}'。 - - Failed to open new disc image '{}'. Reverting to old image. - 無法打開新的光碟映像 『{}』。正在恢復爲舊的映像。 + + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} + Failed to open new disc image '{}'. Reverting to old image. +Error was: {} - - Failed to switch back to old disc image. Removing disc. - 切換回舊的光碟映像失敗。正在移除光碟。 + + Failed to switch back to old disc image. Removing disc. +Error was: {} + Failed to switch back to old disc image. Removing disc. +Error was: {} - + Cheats have been disabled due to achievements hardcore mode. 由於硬核成就模式作弊已被禁用。 - + Fast CDVD is enabled, this may break games. 已開啟快速 CDVD,這可能回破壞部分遊戲。 - + Cycle rate/skip is not at default, this may crash or make games run too slow. 循環頻率/跳過不是預設設定,這可能會導致崩潰或使遊戲執行太慢。 - + Audio is using async mix, expect desynchronization in FMVs. 音訊正在使用非同步混音,預計 FMV 中會出現去同步。 - + Upscale multiplier is below native, this will break rendering. 縮放倍數低於原生,這可能破壞渲染。 - + Mipmapping is not set to automatic. This may break rendering in some games. 紋理對映未被設定為自動。這可能會破壞某些遊戲的渲染。 - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. 紋理過濾未被設定為雙線性 (PS2)。這可能會破壞某些遊戲的渲染。 - + Trilinear filtering is not set to automatic. This may break rendering in some games. 三線性過濾未被設定未自動。這可能會破壞某些遊戲的渲染。 - + Blending is below basic, this may break effects in some games. 混合低於基礎,這可能會破壞某些遊戲中的效果。 - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. 硬體下載模式未被設定為精確,這可能會破壞某些遊戲的渲染。 - + EE FPU Round Mode is not set to default, this may break some games. EE FPU 循環模式未被設定為預設,這可能會破壞某些遊戲。 - + EE FPU Clamp Mode is not set to default, this may break some games. EE FPU 壓制模式未被設定為預設,這可能會破壞某些遊戲。 - + VU Round Mode is not set to default, this may break some games. VU 循環模式未被設定為預設,這可能會破壞某些遊戲。 - + VU Clamp Mode is not set to default, this may break some games. VU 壓制模式未被設定為預設,這可能會破壞某些遊戲。 - + Game Fixes are not enabled. Compatibility with some games may be affected. 未啟用遊戲修復。某些遊戲的相容性可能會受到影響。 - + Compatibility Patches are not enabled. Compatibility with some games may be affected. 未啟用相容性補丁。某些遊戲的相容性可能會受到影響。 - + Frame rate for NTSC is not default. This may break some games. NTSC 制式的幀率不是預設值。這可能會破壞某些遊戲。 - + Frame rate for PAL is not default. This may break some games. PAL 制式的幀率不是預設值。這可能會破壞某些遊戲。 - + EE Recompiler is not enabled, this will significantly reduce performance. 未啟用 EE 重編譯器,這將顯著降低效能。 - + VU0 Recompiler is not enabled, this will significantly reduce performance. 未啟用 VU0 重編譯器,這將顯著降低效能。 - + VU1 Recompiler is not enabled, this will significantly reduce performance. 未啟用 VU1 重編譯器,這將顯著降低效能。 - + IOP Recompiler is not enabled, this will significantly reduce performance. 未啟用 IOP 重編譯器,這將顯著降低效能。 - + EE Cache is enabled, this will significantly reduce performance. 已啟用 EE 快取,這將顯著降低效能。 - + EE Wait Loop Detection is not enabled, this may reduce performance. 未啟用 EE 等待循環檢測,這將顯著降低效能。 - + INTC Spin Detection is not enabled, this may reduce performance. 未啟用 INTC 自旋檢測,這將顯著降低效能。 - + Instant VU1 is disabled, this may reduce performance. 即時 VU1 被禁用,這將降低效能。 - + mVU Flag Hack is not enabled, this may reduce performance. 未啟用 mVU 標誌 Hack,這將降低效能。 - + GPU Palette Conversion is enabled, this may reduce performance. 已啟用 GPU 調色版,這將降低效能。 - + Texture Preloading is not Full, this may reduce performance. 紋理預載未滿,這將降低效能。 - + Estimate texture region is enabled, this may reduce performance. 已啟用估計紋理區域,這可能會降低效能。 diff --git a/pcsx2/Achievements.cpp b/pcsx2/Achievements.cpp index e3879dbc9c9f10..e0acfe01bc6dd0 100644 --- a/pcsx2/Achievements.cpp +++ b/pcsx2/Achievements.cpp @@ -28,7 +28,6 @@ #include "IopMem.h" #include "MTGS.h" #include "Memory.h" -#include "SysForwardDefs.h" #include "VMManager.h" #include "svnrev.h" #include "vtlb.h" @@ -104,7 +103,6 @@ namespace Achievements struct LeaderboardTrackerIndicator { u32 tracker_id; - ImVec2 size; std::string text; Common::Timer show_hide_time; bool active; @@ -135,7 +133,6 @@ namespace Achievements static void EnsureCacheDirectoriesExist(); static void ClearGameInfo(); static void ClearGameHash(); - static std::string GetUserAgent(); static void BeginLoadingScreen(const char* text, bool* was_running_idle); static void EndLoadingScreen(bool was_running_idle); static std::string_view GetELFNameForHash(const std::string& elf_path); @@ -248,19 +245,6 @@ std::unique_lock Achievements::GetLock() return std::unique_lock(s_achievements_mutex); } -std::string Achievements::GetUserAgent() -{ - std::string ret; - if (!PCSX2_isReleaseVersion && GIT_TAGGED_COMMIT) - ret = fmt::format("PCSX2 Nightly - {} ({})", GIT_TAG, GetOSVersionString()); - else if (!PCSX2_isReleaseVersion) - ret = fmt::format("PCSX2 {} ({})", GIT_REV, GetOSVersionString()); - else - ret = fmt::format("PCSX2 {}.{}.{}-{} ({})", PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo, SVN_REV, GetOSVersionString()); - - return ret; -} - void Achievements::BeginLoadingScreen(const char* text, bool* was_running_idle) { MTGS::RunOnGSThread(&ImGuiManager::InitializeFullscreenUI); @@ -354,7 +338,7 @@ std::string Achievements::GetGameHash(const std::string& elf_path) void Achievements::DownloadImage(std::string url, std::string cache_filename) { - auto callback = [cache_filename](s32 status_code, std::string content_type, HTTPDownloader::Request::Data data) { + auto callback = [cache_filename](s32 status_code, const std::string& content_type, HTTPDownloader::Request::Data data) { if (status_code != HTTPDownloader::HTTP_STATUS_OK) return; @@ -476,7 +460,7 @@ bool Achievements::Initialize() bool Achievements::CreateClient(rc_client_t** client, std::unique_ptr* http) { - *http = HTTPDownloader::Create(GetUserAgent().c_str()); + *http = HTTPDownloader::Create(Host::GetHTTPUserAgent()); if (!*http) { Host::ReportErrorAsync("Achievements Error", "Failed to create HTTPDownloader, cannot use achievements"); @@ -654,7 +638,7 @@ uint32_t Achievements::ClientReadMemory(uint32_t address, uint8_t* buffer, uint3 void Achievements::ClientServerCall( const rc_api_request_t* request, rc_client_server_callback_t callback, void* callback_data, rc_client_t* client) { - HTTPDownloader::Request::Callback hd_callback = [callback, callback_data](s32 status_code, std::string content_type, + HTTPDownloader::Request::Callback hd_callback = [callback, callback_data](s32 status_code, const std::string& content_type, HTTPDownloader::Request::Data data) { rc_api_server_response_t rr; rr.http_status_code = (status_code <= 0) ? (status_code == HTTPDownloader::HTTP_STATUS_CANCELLED ? @@ -1238,17 +1222,9 @@ void Achievements::HandleLeaderboardTrackerShowEvent(const rc_client_event_t* ev DevCon.WriteLn( "(Achievements) Showing leaderboard tracker: %u: %s", event->leaderboard_tracker->id, event->leaderboard_tracker->display); - TinyString width_string; - width_string.append(ICON_FA_STOPWATCH); - const u32 display_len = static_cast(std::strlen(event->leaderboard_tracker->display)); - for (u32 i = 0; i < display_len; i++) - width_string.append('0'); - LeaderboardTrackerIndicator indicator; indicator.tracker_id = event->leaderboard_tracker->id; - indicator.size = ImGuiFullscreen::g_medium_font->CalcTextSizeA( - ImGuiFullscreen::g_medium_font->FontSize, FLT_MAX, 0.0f, width_string.c_str(), width_string.end_ptr()); - indicator.text = fmt::format(ICON_FA_STOPWATCH " {}", event->leaderboard_tracker->display); + indicator.text = event->leaderboard_tracker->display; indicator.active = true; s_active_leaderboard_trackers.push_back(std::move(indicator)); } @@ -1277,8 +1253,7 @@ void Achievements::HandleLeaderboardTrackerUpdateEvent(const rc_client_event_t* DevCon.WriteLn( "(Achievements) Updating leaderboard tracker: %u: %s", event->leaderboard_tracker->id, event->leaderboard_tracker->display); - it->text.clear(); - fmt::format_to(std::back_inserter(it->text), ICON_FA_STOPWATCH " {}", event->leaderboard_tracker->display); + it->text = event->leaderboard_tracker->display; it->active = true; } @@ -1840,6 +1815,43 @@ bool Achievements::ConfirmHardcoreModeDisable(const char* trigger) return true; } +void Achievements::ConfirmHardcoreModeDisableAsync(const char* trigger, std::function callback) +{ +#ifdef ENABLE_RAINTEGRATION + if (IsUsingRAIntegration()) + { + const bool result = (RA_WarnDisableHardcore(trigger) != 0); + callback(result); + return; + } +#endif + + if (!FullscreenUI::Initialize()) + { + Host::AddOSDMessage(fmt::format(TRANSLATE_FS("Cannot {} while hardcode mode is active.", trigger)), + Host::OSD_WARNING_DURATION); + callback(false); + return; + } + + auto real_callback = [callback = std::move(callback)](bool res) mutable { + // don't run the callback in the middle of rendering the UI + Host::RunOnCPUThread([callback = std::move(callback), res]() { + if (res) + DisableHardcoreMode(); + callback(res); + }); + }; + + ImGuiFullscreen::OpenConfirmMessageDialog( + TRANSLATE_STR("Achievements", "Confirm Hardcore Mode"), + fmt::format(TRANSLATE_FS("Achievements", "{0} cannot be performed while hardcore mode is active. Do you " + "want to disable hardcore mode? {0} will be cancelled if you select No."), + trigger), + std::move(real_callback), fmt::format(ICON_FA_CHECK " {}", TRANSLATE_SV("Achievements", "Yes")), + fmt::format(ICON_FA_TIMES " {}", TRANSLATE_SV("Achievements", "No"))); +} + void Achievements::ClearUIState() { if (FullscreenUI::IsAchievementsWindowOpen() || FullscreenUI::IsLeaderboardsWindowOpen()) @@ -1956,6 +1968,8 @@ void Achievements::DrawGameOverlays() DevCon.WriteLn("(Achievements) Remove progress indicator"); s_active_progress_indicator.reset(); } + + position.y -= image_size.y - padding * 3.0f; } if (!s_active_leaderboard_trackers.empty()) @@ -1965,18 +1979,32 @@ void Achievements::DrawGameOverlays() const LeaderboardTrackerIndicator& indicator = *it; const float opacity = IndicatorOpacity(indicator); - const ImVec2 box_min = ImVec2(position.x - indicator.size.x - padding * 2.0f, position.y - indicator.size.y - padding * 2.0f); + TinyString width_string; + width_string.append(ICON_FA_STOPWATCH); + for (u32 i = 0; i < indicator.text.length(); i++) + width_string.append('0'); + const ImVec2 size = ImGuiFullscreen::g_medium_font->CalcTextSizeA( + ImGuiFullscreen::g_medium_font->FontSize, FLT_MAX, 0.0f, width_string.c_str(), width_string.end_ptr()); + + const ImVec2 box_min = ImVec2(position.x - size.x - padding * 2.0f, position.y - size.y - padding * 2.0f); const ImVec2 box_max = position; const float box_rounding = LayoutScale(1.0f); dl->AddRectFilled(box_min, box_max, ImGui::GetColorU32(ImVec4(0.13f, 0.13f, 0.13f, opacity * 0.5f)), box_rounding); dl->AddRect(box_min, box_max, ImGui::GetColorU32(ImVec4(0.8f, 0.8f, 0.8f, opacity)), box_rounding); const u32 text_col = ImGui::GetColorU32(ImVec4(1.0f, 1.0f, 1.0f, opacity)); - const ImVec2 text_pos = box_min + ImVec2(padding, padding); - const ImVec4 text_clip_rect(text_pos.x, text_pos.y, box_max.x, box_max.y); + const ImVec2 text_size = ImGuiFullscreen::g_medium_font->CalcTextSizeA( + ImGuiFullscreen::g_medium_font->FontSize, FLT_MAX, 0.0f, indicator.text.c_str(), + indicator.text.c_str() + indicator.text.length()); + const ImVec2 text_pos = ImVec2(box_max.x - padding - text_size.x, box_min.y + padding); + const ImVec4 text_clip_rect(box_min.x, box_min.y, box_max.x, box_max.y); dl->AddText(g_medium_font, g_medium_font->FontSize, text_pos, text_col, indicator.text.c_str(), indicator.text.c_str() + indicator.text.length(), 0.0f, &text_clip_rect); + const ImVec2 icon_pos = ImVec2(box_min.x + padding, box_min.y + padding); + dl->AddText(g_medium_font, g_medium_font->FontSize, icon_pos, text_col, ICON_FA_STOPWATCH, + nullptr, 0.0f, &text_clip_rect); + if (!indicator.active && opacity <= 0.01f) { DevCon.WriteLn("(Achievements) Remove tracker indicator"); @@ -1986,9 +2014,12 @@ void Achievements::DrawGameOverlays() { ++it; } + + position.x = box_min.x - padding; } - position.y -= image_size.y + padding; + // Uncomment if there are any other overlays above this one. + //position.y -= image_size.y - padding * 3.0f; } } @@ -2163,16 +2194,23 @@ void Achievements::DrawAchievementsWindow() ImGui::PopFont(); const ImRect summary_bb(ImVec2(left, top), ImVec2(right, top + g_medium_font->FontSize)); - if (s_game_summary.num_unlocked_achievements == s_game_summary.num_core_achievements) + if (s_game_summary.num_core_achievements > 0) { - text.fmt(TRANSLATE_FS("Achievements", "You have unlocked all achievements and earned {} points!"), - s_game_summary.points_unlocked); + if (s_game_summary.num_unlocked_achievements == s_game_summary.num_core_achievements) + { + text.fmt(TRANSLATE_FS("Achievements", "You have unlocked all achievements and earned {} points!"), + s_game_summary.points_unlocked); + } + else + { + text.fmt(TRANSLATE_FS("Achievements", "You have unlocked {0} of {1} achievements, earning {2} of {3} possible points."), + s_game_summary.num_unlocked_achievements, s_game_summary.num_core_achievements, s_game_summary.points_unlocked, + s_game_summary.points_core); + } } else { - text.fmt(TRANSLATE_FS("Achievements", "You have unlocked {0} of {1} achievements, earning {2} of {3} possible points."), - s_game_summary.num_unlocked_achievements, s_game_summary.num_core_achievements, s_game_summary.points_unlocked, - s_game_summary.points_core); + text.assign(TRANSLATE_SV("Achievements", "This game has no achievements.")); } top += g_medium_font->FontSize + spacing; @@ -2182,21 +2220,24 @@ void Achievements::DrawAchievementsWindow() summary_bb.Min, summary_bb.Max, text.c_str(), text.end_ptr(), nullptr, ImVec2(0.0f, 0.0f), &summary_bb); ImGui::PopFont(); - const float progress_height = ImGuiFullscreen::LayoutScale(20.0f); - const ImRect progress_bb(ImVec2(left, top), ImVec2(right, top + progress_height)); - const float fraction = - static_cast(s_game_summary.num_unlocked_achievements) / static_cast(s_game_summary.num_core_achievements); - dl->AddRectFilled(progress_bb.Min, progress_bb.Max, ImGui::GetColorU32(ImGuiFullscreen::UIPrimaryDarkColor)); - dl->AddRectFilled(progress_bb.Min, ImVec2(progress_bb.Min.x + fraction * progress_bb.GetWidth(), progress_bb.Max.y), - ImGui::GetColorU32(ImGuiFullscreen::UISecondaryColor)); - - text.fmt("{}%", static_cast(std::round(fraction * 100.0f))); - text_size = ImGui::CalcTextSize(text.c_str(), text.end_ptr()); - const ImVec2 text_pos(progress_bb.Min.x + ((progress_bb.Max.x - progress_bb.Min.x) / 2.0f) - (text_size.x / 2.0f), - progress_bb.Min.y + ((progress_bb.Max.y - progress_bb.Min.y) / 2.0f) - (text_size.y / 2.0f)); - dl->AddText(g_medium_font, g_medium_font->FontSize, text_pos, ImGui::GetColorU32(ImGuiFullscreen::UIPrimaryTextColor), - text.c_str(), text.end_ptr()); - top += progress_height + spacing; + if (s_game_summary.num_core_achievements > 0) + { + const float progress_height = ImGuiFullscreen::LayoutScale(20.0f); + const ImRect progress_bb(ImVec2(left, top), ImVec2(right, top + progress_height)); + const float fraction = + static_cast(s_game_summary.num_unlocked_achievements) / static_cast(s_game_summary.num_core_achievements); + dl->AddRectFilled(progress_bb.Min, progress_bb.Max, ImGui::GetColorU32(ImGuiFullscreen::UIPrimaryDarkColor)); + dl->AddRectFilled(progress_bb.Min, ImVec2(progress_bb.Min.x + fraction * progress_bb.GetWidth(), progress_bb.Max.y), + ImGui::GetColorU32(ImGuiFullscreen::UISecondaryColor)); + + text.fmt("{}%", static_cast(std::round(fraction * 100.0f))); + text_size = ImGui::CalcTextSize(text.c_str(), text.end_ptr()); + const ImVec2 text_pos(progress_bb.Min.x + ((progress_bb.Max.x - progress_bb.Min.x) / 2.0f) - (text_size.x / 2.0f), + progress_bb.Min.y + ((progress_bb.Max.y - progress_bb.Min.y) / 2.0f) - (text_size.y / 2.0f)); + dl->AddText(g_medium_font, g_medium_font->FontSize, text_pos, ImGui::GetColorU32(ImGuiFullscreen::UIPrimaryTextColor), + text.c_str(), text.end_ptr()); + top += progress_height + spacing; + } } } ImGuiFullscreen::EndFullscreenWindow(); @@ -2918,7 +2959,7 @@ void Achievements::SwitchToRAIntegration() void Achievements::RAIntegration::InitializeRAIntegration(void* main_window_handle) { RA_InitClient((HWND)main_window_handle, "PCSX2", GIT_TAG); - RA_SetUserAgentDetail(Achievements::GetUserAgent().c_str()); + RA_SetUserAgentDetail(Host::GetHTTPUserAgent().c_str()); RA_InstallSharedFunctions(RACallbackIsActive, RACallbackCauseUnpause, RACallbackCausePause, RACallbackRebuildMenu, RACallbackEstimateTitle, RACallbackResetEmulator, RACallbackLoadROM); diff --git a/pcsx2/Achievements.h b/pcsx2/Achievements.h index 0cb8fb087cab29..37bc4069a6e9d8 100644 --- a/pcsx2/Achievements.h +++ b/pcsx2/Achievements.h @@ -19,6 +19,7 @@ #include "Config.h" +#include #include #include #include @@ -83,6 +84,7 @@ namespace Achievements /// Prompts the user to disable hardcore mode, if they agree, returns true. bool ConfirmHardcoreModeDisable(const char* trigger); + void ConfirmHardcoreModeDisableAsync(const char* trigger, std::function callback); /// Returns true if hardcore mode is active, and functionality should be restricted. bool IsHardcoreModeActive(); diff --git a/pcsx2/CDVD/CDVD.cpp b/pcsx2/CDVD/CDVD.cpp index e49ec793e89d53..47f7543ad1acd7 100644 --- a/pcsx2/CDVD/CDVD.cpp +++ b/pcsx2/CDVD/CDVD.cpp @@ -58,6 +58,12 @@ static __fi void SetSCMDResultSize(u8 size) noexcept memset(&cdvd.SCMDResultBuff[0], 0, size); } +static void CDVDCancelReadAhead() +{ + cdvd.nextSectorsBuffered = 0; + psxRegs.interrupt &= ~(1 << IopEvt_CdvdSectorReady); +} + static void CDVDSECTORREADY_INT(u32 eCycle) { if (psxRegs.interrupt & (1 << IopEvt_CdvdSectorReady)) @@ -1141,6 +1147,18 @@ int cdvdReadSector() // inlined due to being referenced in only one place. __fi void cdvdActionInterrupt() { + if (cdvd.AbortRequested) + { + Console.Warning("Action Abort"); + cdvd.Error = 0x1; // Abort Error + cdvdUpdateReady(CDVD_DRIVE_READY | CDVD_DRIVE_ERROR); + cdvdUpdateStatus(CDVD_STATUS_PAUSE); + cdvd.WaitingDMA = false; + CDVDCancelReadAhead(); + cdvdSetIrq(); + return; + } + switch (cdvd.Action) { case cdvdAction_Seek: @@ -1174,8 +1192,7 @@ __fi void cdvdActionInterrupt() break; } - if(cdvd.Action != cdvdAction_Seek) - cdvd.Action = cdvdAction_None; + cdvd.Action = cdvdAction_None; cdvdSetIrq(); } @@ -1229,6 +1246,7 @@ __fi void cdvdReadInterrupt() cdvdUpdateReady(CDVD_DRIVE_READY | CDVD_DRIVE_ERROR); cdvdUpdateStatus(CDVD_STATUS_PAUSE); cdvd.WaitingDMA = false; + CDVDCancelReadAhead(); cdvdSetIrq(); return; } @@ -1332,10 +1350,8 @@ __fi void cdvdReadInterrupt() if (cdvd.SectorCnt <= 0) { cdvdSetIrq(); - //psxHu32(0x1070) |= 0x4; - iopIntcIrq(2); - cdvdUpdateReady(CDVD_DRIVE_READY); + cdvdUpdateReady(CDVD_DRIVE_READY); cdvdUpdateStatus(CDVD_STATUS_PAUSE); return; } @@ -1363,7 +1379,7 @@ static uint cdvdStartSeek(uint newsector, CDVD_MODE_TYPE mode, bool transition_t uint delta = abs(static_cast(cdvd.SeekToSector - cdvd.CurrentSector)); uint seektime = 0; - bool isSeeking = cdvd.nCommand == N_CD_SEEK; + bool isSeeking = false; cdvdUpdateReady(CDVD_DRIVE_BUSY); cdvd.Reading = 1; @@ -1386,7 +1402,7 @@ static uint cdvdStartSeek(uint newsector, CDVD_MODE_TYPE mode, bool transition_t const float new_rpm = (psx_clk_cycles / static_cast(cdvd.RotSpeed)) * 60.0f; // A rough cycles per RPM change based on 333ms for a full spin up. drive_speed_change_cycles = (psx_clk_cycles / 1000.0f) * (0.054950495049505f * std::abs(new_rpm - old_rpm)); - psxRegs.interrupt &= ~(1 << IopEvt_CdvdSectorReady); + CDVDCancelReadAhead(); } cdvdUpdateStatus(CDVD_STATUS_SEEK); @@ -1401,8 +1417,8 @@ static uint cdvdStartSeek(uint newsector, CDVD_MODE_TYPE mode, bool transition_t else if ((tbl_ContigiousSeekDelta[mode] == 0) || (delta >= tbl_ContigiousSeekDelta[mode])) { // Select either Full or Fast seek depending on delta: - psxRegs.interrupt &= ~(1 << IopEvt_CdvdSectorReady); - cdvd.nextSectorsBuffered = 0; + CDVDCancelReadAhead(); + if (delta >= tbl_FastSeekDelta[mode]) { // Full Seek @@ -1458,8 +1474,7 @@ static uint cdvdStartSeek(uint newsector, CDVD_MODE_TYPE mode, bool transition_t { if (delta >= cdvd.nextSectorsBuffered) { - psxRegs.interrupt &= ~(1 << IopEvt_CdvdSectorReady); - cdvd.nextSectorsBuffered = 0; + CDVDCancelReadAhead(); } else cdvd.nextSectorsBuffered -= delta; @@ -1474,9 +1489,17 @@ static uint cdvdStartSeek(uint newsector, CDVD_MODE_TYPE mode, bool transition_t { const u32 rotationalLatency = cdvdRotationTime(static_cast(cdvdIsDVD())) / 2; // Half it to average the rotational latency. //DevCon.Warning("%s rotational latency at sector %d is %d cycles", (cdvd.SpindlCtrl & CDVD_SPINDLE_CAV) ? "CAV" : "CLV", cdvd.SeekToSector, rotationalLatency); - seektime += rotationalLatency + cdvd.ReadTime; - CDVDSECTORREADY_INT(seektime); - seektime += (cdvd.BlockSize / 4) * 12; + if (cdvd.Action == cdvdAction_Seek) + { + seektime += rotationalLatency; + CDVDCancelReadAhead(); + } + else + { + seektime += rotationalLatency + cdvd.ReadTime; + CDVDSECTORREADY_INT(seektime); + seektime += (cdvd.BlockSize / 4) * 12; + } } else if (!isSeeking) // Not seeking but we have buffered stuff, need to just account for DMA time (and kick the read DMA if it's not running for some reason. { @@ -1491,9 +1514,6 @@ static uint cdvdStartSeek(uint newsector, CDVD_MODE_TYPE mode, bool transition_t { CDVDSECTORREADY_INT(seektime); } - // Clear the action on the following command, so we can rotate after seek. - if (cdvd.nCommand != N_CD_SEEK) - cdvd.Action = cdvdAction_None; return seektime; } @@ -1855,7 +1875,6 @@ static void cdvdWrite04(u8 rt) // Seek to sector zero. The cdvdStartSeek function will simulate // spinup times if needed. - cdvdUpdateReady(CDVD_DRIVE_BUSY); DevCon.Warning("CdStandby : %d", rt); CDVD_INT(cdvdStartSeek(0, static_cast(cdvdIsDVD()), false)); // Might not seek, but makes sense since it does move to the inner most track @@ -1867,8 +1886,7 @@ static void cdvdWrite04(u8 rt) case N_CD_STOP: // CdStop DevCon.Warning("CdStop : %d", rt); cdvdUpdateReady(CDVD_DRIVE_BUSY); - cdvd.nextSectorsBuffered = 0; - psxRegs.interrupt &= ~(1 << IopEvt_CdvdSectorReady); + CDVDCancelReadAhead(); cdvdUpdateStatus(CDVD_STATUS_SPIN); CDVD_INT(PSXCLK / 6); // 166ms delay? cdvd.Action = cdvdAction_Stop; @@ -1887,7 +1905,6 @@ static void cdvdWrite04(u8 rt) break; case N_CD_SEEK: // CdSeek - cdvdUpdateReady(CDVD_DRIVE_BUSY); cdvd.Action = cdvdAction_Seek; // Have to do this first, the StartSeek relies on it CDVD_INT(cdvdStartSeek(GetBufferU32(&cdvd.NCMDParamBuff[0], 0), static_cast(cdvdIsDVD()), false)); cdvdUpdateStatus(CDVD_STATUS_SEEK); @@ -2001,7 +2018,7 @@ static void cdvdWrite04(u8 rt) cdvd.SeekToSector, cdvd.SectorCnt, cdvd.BlockSize, cdvd.Speed, (cdvd.SpindlCtrl & CDVD_SPINDLE_CAV) ? "CAV" : "CLV", cdvd.SpindlCtrl); CDVDREAD_INT(cdvdStartSeek(cdvd.SeekToSector, static_cast(cdvdIsDVD()), !(cdvd.SpindlCtrl & CDVD_SPINDLE_CAV) && (oldSpindleCtrl & CDVD_SPINDLE_CAV))); - cdvdUpdateReady(CDVD_DRIVE_BUSY); + // Read-ahead by telling CDVD about the track now. // This helps improve performance on actual from-cd emulation // (ie, not using the hard drive) @@ -2099,7 +2116,7 @@ static void cdvdWrite04(u8 rt) cdvd.CurrentSector, cdvd.SectorCnt, cdvd.BlockSize, cdvd.Speed, (cdvd.SpindlCtrl & CDVD_SPINDLE_CAV) ? "CAV" : "CLV", cdvd.SpindlCtrl); CDVDREAD_INT(cdvdStartSeek(cdvd.SeekToSector, MODE_CDROM, !(cdvd.SpindlCtrl& CDVD_SPINDLE_CAV) && (oldSpindleCtrl& CDVD_SPINDLE_CAV))); - cdvdUpdateReady(CDVD_DRIVE_BUSY); + // Read-ahead by telling CDVD about the track now. // This helps improve performance on actual from-cd emulation // (ie, not using the hard drive) @@ -2194,7 +2211,7 @@ static void cdvdWrite04(u8 rt) cdvd.SeekToSector, cdvd.SectorCnt, cdvd.BlockSize, cdvd.Speed, (cdvd.SpindlCtrl & CDVD_SPINDLE_CAV) ? "CAV" : "CLV", cdvd.SpindlCtrl); CDVDREAD_INT(cdvdStartSeek(cdvd.SeekToSector, MODE_DVDROM, !(cdvd.SpindlCtrl & CDVD_SPINDLE_CAV) && (oldSpindleCtrl& CDVD_SPINDLE_CAV))); - cdvdUpdateReady(CDVD_DRIVE_BUSY); + // Read-ahead by telling CDVD about the track now. // This helps improve performance on actual from-cd emulation // (ie, not using the hard drive) diff --git a/pcsx2/CDVD/GzippedFileReader.cpp b/pcsx2/CDVD/GzippedFileReader.cpp index b0dfa56a86358c..795b1f5f996882 100644 --- a/pcsx2/CDVD/GzippedFileReader.cpp +++ b/pcsx2/CDVD/GzippedFileReader.cpp @@ -387,6 +387,9 @@ int GzippedFileReader::_ReadSync(void* pBuffer, s64 offset, uint bytesToRead) if (!OkIndex(nullptr)) return -1; + if ((offset + bytesToRead) > m_pIndex->uncompressed_size) + return -1; + // Without all the caching, chunking and states, this would be enough: // return extract(m_src, m_pIndex, offset, (unsigned char*)pBuffer, bytesToRead); diff --git a/pcsx2/CDVD/InputIsoFile.cpp b/pcsx2/CDVD/InputIsoFile.cpp index dacb8b11ddf0cb..ebdbbcff6d28c8 100644 --- a/pcsx2/CDVD/InputIsoFile.cpp +++ b/pcsx2/CDVD/InputIsoFile.cpp @@ -299,16 +299,16 @@ bool InputIsoFile::IsOpened() const return m_reader != NULL; } -bool InputIsoFile::tryIsoType(u32 _size, s32 _offset, s32 _blockofs) +bool InputIsoFile::tryIsoType(u32 size, u32 offset, u32 blockofs) { - static u8 buf[2456]; + u8 buf[2456]; - m_blocksize = _size; - m_offset = _offset; - m_blockofs = _blockofs; + m_blocksize = size; + m_offset = offset; + m_blockofs = blockofs; - m_reader->SetDataOffset(_offset); - m_reader->SetBlockSize(_size); + m_reader->SetDataOffset(offset); + m_reader->SetBlockSize(size); if (ReadSync(buf, 16) < 0) return false; @@ -359,13 +359,6 @@ bool InputIsoFile::Detect(bool readType) if (tryIsoType(2448, 150 * 2048, 0)) return true; // NERO RAWQ 2448 - if (tryIsoType(2048, -8, 24)) - return true; // ISO 2048 - if (tryIsoType(2352, -8, 0)) - return true; // RAW 2352 - if (tryIsoType(2448, -8, 0)) - return true; // RAWQ 2448 - m_offset = 0; m_blocksize = CD_FRAMESIZE_RAW; m_blockofs = 0; diff --git a/pcsx2/CDVD/IsoFileFormats.h b/pcsx2/CDVD/IsoFileFormats.h index e9a7c3021bd98b..95fa4ce8921690 100644 --- a/pcsx2/CDVD/IsoFileFormats.h +++ b/pcsx2/CDVD/IsoFileFormats.h @@ -95,7 +95,7 @@ class InputIsoFile final protected: void _init(); - bool tryIsoType(u32 _size, s32 _offset, s32 _blockofs); + bool tryIsoType(u32 size, u32 offset, u32 blockofs); void FindParts(); }; diff --git a/pcsx2/Config.h b/pcsx2/Config.h index c7a95a2ce49d0f..62a18c5cff915d 100644 --- a/pcsx2/Config.h +++ b/pcsx2/Config.h @@ -377,6 +377,16 @@ enum class GSBilinearDirtyMode : u8 MaxCount }; +enum class GSHalfPixelOffset : u8 +{ + Off, + Normal, + Special, + SpecialAggressive, + Native, + MaxCount +}; + // Template function for casting enumerations to their underlying type template typename std::underlying_type::type enum_cast(Enumeration E) @@ -761,7 +771,7 @@ struct Pcsx2Config int SkipDrawEnd = 0; GSHWAutoFlushLevel UserHacks_AutoFlush = GSHWAutoFlushLevel::Disabled; - s8 UserHacks_HalfPixelOffset = 0; + GSHalfPixelOffset UserHacks_HalfPixelOffset = GSHalfPixelOffset::Off; s8 UserHacks_RoundSprite = 0; s32 UserHacks_TCOffsetX = 0; s32 UserHacks_TCOffsetY = 0; diff --git a/pcsx2/DebugTools/Breakpoints.cpp b/pcsx2/DebugTools/Breakpoints.cpp index 34b7fa738817b8..03046b2d810270 100644 --- a/pcsx2/DebugTools/Breakpoints.cpp +++ b/pcsx2/DebugTools/Breakpoints.cpp @@ -377,6 +377,14 @@ u32 CBreakPoints::CheckSkipFirst(BreakPointCpu cpu, u32 cmpPc) return 0; } +void CBreakPoints::ClearSkipFirst() +{ + breakSkipFirstAtEE_ = 0; + breakSkipFirstTicksEE_ = 0; + breakSkipFirstAtIop_ = 0; + breakSkipFirstTicksIop_ = 0; +} + const std::vector CBreakPoints::GetMemCheckRanges() { std::vector ranges = memChecks_; diff --git a/pcsx2/DebugTools/Breakpoints.h b/pcsx2/DebugTools/Breakpoints.h index 667552d9a9e9f8..141c6442dee1ca 100644 --- a/pcsx2/DebugTools/Breakpoints.h +++ b/pcsx2/DebugTools/Breakpoints.h @@ -138,6 +138,7 @@ class CBreakPoints static void SetSkipFirst(BreakPointCpu cpu, u32 pc); static u32 CheckSkipFirst(BreakPointCpu cpu, u32 pc); + static void ClearSkipFirst(); // Includes uncached addresses. static const std::vector GetMemCheckRanges(); diff --git a/pcsx2/GS/GSClut.cpp b/pcsx2/GS/GSClut.cpp index 9b85500086f6c0..d95421bd26ffdd 100644 --- a/pcsx2/GS/GSClut.cpp +++ b/pcsx2/GS/GSClut.cpp @@ -176,6 +176,8 @@ bool GSClut::CanLoadCLUT(const GIFRegTEX0& TEX0, const bool update_CBP) switch (TEX0.CLD) { case 0: + case 6: // FFX2 menu. + case 7: // Ford Mustang Racing, Bouken Jidai Katsugeki Goemon. return false; case 1: break; @@ -199,10 +201,6 @@ bool GSClut::CanLoadCLUT(const GIFRegTEX0& TEX0, const bool update_CBP) if (update_CBP) m_CBP[1] = TEX0.CBP; break; - case 6: - return false; // ffx2 menu. - case 7: - return false; // ford mustang racing // Bouken Jidai Katsugeki Goemon. default: __assume(0); } @@ -288,8 +286,8 @@ void GSClut::WriteCLUT32_CSM2(const GIFRegTEX0& TEX0, const GIFRegTEXCLUT& TEXCL template void GSClut::WriteCLUT16_CSM2(const GIFRegTEX0& TEX0, const GIFRegTEXCLUT& TEXCLUT) { - GSOffset off = GSOffset::fromKnownPSM(TEX0.CBP, TEXCLUT.CBW, PSMCT16); - GSOffset::PAHelper pa = off.paMulti(TEXCLUT.COU << 4, TEXCLUT.COV); + const GSOffset off = GSOffset::fromKnownPSM(TEX0.CBP, TEXCLUT.CBW, PSMCT16); + const GSOffset::PAHelper pa = off.paMulti(TEXCLUT.COU << 4, TEXCLUT.COV); u16* vm = m_mem->vm16(); u16* RESTRICT clut = m_clut + (TEX0.CSA << 4); @@ -303,8 +301,8 @@ void GSClut::WriteCLUT16_CSM2(const GIFRegTEX0& TEX0, const GIFRegTEXCLUT& TEXCL template void GSClut::WriteCLUT16S_CSM2(const GIFRegTEX0& TEX0, const GIFRegTEXCLUT& TEXCLUT) { - GSOffset off = GSOffset::fromKnownPSM(TEX0.CBP, TEXCLUT.CBW, PSMCT16S); - GSOffset::PAHelper pa = off.paMulti(TEXCLUT.COU << 4, TEXCLUT.COV); + const GSOffset off = GSOffset::fromKnownPSM(TEX0.CBP, TEXCLUT.CBW, PSMCT16S); + const GSOffset::PAHelper pa = off.paMulti(TEXCLUT.COU << 4, TEXCLUT.COV); u16* vm = m_mem->vm16(); u16* RESTRICT clut = m_clut + (TEX0.CSA << 4); @@ -447,7 +445,7 @@ void GSClut::Read32(const GIFRegTEX0& TEX0, const GIFRegTEXA& TEXA) if (src) { GSTexture* dst = is_4bit ? m_gpu_clut4 : m_gpu_clut8; - u32 dst_size = is_4bit ? 16 : 256; + const u32 dst_size = is_4bit ? 16 : 256; const u32 dOffset = (TEX0.CSA & ((TEX0.CPSM == PSMCT16 || TEX0.CPSM == PSMCT16S) ? 15u : 31u)) << 4; if (!dst) { @@ -507,9 +505,9 @@ void GSClut::GetAlphaMinMax32(int& amin_out, int& amax_out) { ASSERT(GSLocalMemory::m_psm[m_read.TEX0.PSM].pal == 16); - GSVector4i v0 = (p[0] >> 24).ps32(p[1] >> 24); - GSVector4i v1 = (p[2] >> 24).ps32(p[3] >> 24); - GSVector4i v2 = v0.pu16(v1); + const GSVector4i v0 = (p[0] >> 24).ps32(p[1] >> 24); + const GSVector4i v1 = (p[2] >> 24).ps32(p[3] >> 24); + const GSVector4i v2 = v0.pu16(v1); amin = v2; amax = v2; @@ -522,8 +520,8 @@ void GSClut::GetAlphaMinMax32(int& amin_out, int& amax_out) amin = amin.min_u8(amin.yxwzl()); amax = amax.max_u8(amax.yxwzl()); - GSVector4i v0 = amin.upl8(amax).u8to16(); - GSVector4i v1 = v0.yxwz(); + const GSVector4i v0 = amin.upl8(amax).u8to16(); + const GSVector4i v1 = v0.yxwz(); m_read.amin = v0.min_i16(v1).extract16<0>(); m_read.amax = v0.max_i16(v1).extract16<1>(); @@ -742,10 +740,10 @@ void GSClut::ExpandCLUT64_T32_I8(const u32* RESTRICT src, u64* RESTRICT dst) GSVector4i* s = (GSVector4i*)src; GSVector4i* d = (GSVector4i*)dst; - GSVector4i s0 = s[0]; - GSVector4i s1 = s[1]; - GSVector4i s2 = s[2]; - GSVector4i s3 = s[3]; + const GSVector4i s0 = s[0]; + const GSVector4i s1 = s[1]; + const GSVector4i s2 = s[2]; + const GSVector4i s3 = s[3]; ExpandCLUT64_T32(s0, s0, s1, s2, s3, &d[0]); ExpandCLUT64_T32(s1, s0, s1, s2, s3, &d[32]); @@ -837,8 +835,8 @@ void GSClut::Expand16(const u16* RESTRICT src, u32* RESTRICT dst, int w, const G const GSVector4i gm = m_gm; const GSVector4i bm = m_bm; - GSVector4i TA0(TEXA.TA0 << 24); - GSVector4i TA1(TEXA.TA1 << 24); + const GSVector4i TA0(TEXA.TA0 << 24); + const GSVector4i TA1(TEXA.TA1 << 24); GSVector4i c, cl, ch; diff --git a/pcsx2/GS/GSState.cpp b/pcsx2/GS/GSState.cpp index bf8ebb92881b30..80aa1843594442 100644 --- a/pcsx2/GS/GSState.cpp +++ b/pcsx2/GS/GSState.cpp @@ -27,6 +27,7 @@ #include #include #include +#include int GSState::s_n = 0; int GSState::s_last_transfer_draw_n = 0; @@ -503,7 +504,7 @@ void GSState::DumpVertices(const std::string& filename) file << uv_U << DEL << uv_V; } else - file << v.ST.S << DEL << v.ST.T << DEL << v.RGBAQ.Q; + file << v.ST.S << "(" << std::bit_cast(v.ST.S) << ")" << DEL << v.ST.T << "(" << std::bit_cast(v.ST.T) << ")" << DEL << v.RGBAQ.Q << "(" << std::bit_cast(v.RGBAQ.Q) << ")"; file << std::endl; } @@ -1593,6 +1594,13 @@ inline bool GSState::TestDrawChanged() return false; } +u32 GSState::CalcMask(int exp, int max_exp) +{ + const int amount = 9 + (max_exp - exp); + + return (1 << std::min(amount, 23)) - 1; +} + void GSState::FlushPrim() { if (m_index.tail > 0) @@ -1668,6 +1676,50 @@ void GSState::FlushPrim() m_vt.Update(m_vertex.buff, m_index.buff, m_vertex.tail, m_index.tail, GSUtil::GetPrimClass(PRIM->PRIM)); + // Texel coordinate rounding + // Helps Manhunt (lights shining through objects). + // Can help with some alignment issues when upscaling too, and is for both Software and Hardware renderers. + // Sometimes hardware doesn't get affected, likely due to the difference in how GPU's handle textures (Persona minimap). + if (PRIM->TME && (GSUtil::GetPrimClass(PRIM->PRIM) == GS_PRIM_CLASS::GS_SPRITE_CLASS || m_vt.m_eq.z)) + { + if (!PRIM->FST) // STQ's + { + const bool is_sprite = GSUtil::GetPrimClass(PRIM->PRIM) == GS_PRIM_CLASS::GS_SPRITE_CLASS; + // ST's have the lowest 9 bits (or greater depending on exponent difference) rounding down (from hardware tests). + for (int i = m_index.tail - 1; i >= 0; i--) + { + GSVertex* v = &m_vertex.buff[m_index.buff[i]]; + + // Only Q on the second vertex is valid + if (!(i & 1) && is_sprite) + v->RGBAQ.Q = m_vertex.buff[m_index.buff[i + 1]].RGBAQ.Q; + + int T = std::bit_cast(v->ST.T); + int Q = std::bit_cast(v->RGBAQ.Q); + int S = std::bit_cast(v->ST.S); + const int expS = (S >> 23) & 0xff; + const int expT = (T >> 23) & 0xff; + const int expQ = (Q >> 23) & 0xff; + int max_exp = std::max(expS, expQ); + + u32 mask = CalcMask(expS, max_exp); + S &= ~mask; + v->ST.S = std::bit_cast(S); + max_exp = std::max(expT, expQ); + mask = CalcMask(expT, max_exp); + T &= ~mask; + v->ST.T = std::bit_cast(T); + Q &= ~0xff; + + if (!is_sprite || (i & 1)) + v->RGBAQ.Q = std::bit_cast(Q); + + m_vt.m_min.t.x = std::min(m_vt.m_min.t.x, (v->ST.S / v->RGBAQ.Q) * (1 << m_context->TEX0.TW)); + m_vt.m_min.t.y = std::min(m_vt.m_min.t.y, (v->ST.T / v->RGBAQ.Q) * (1 << m_context->TEX0.TH)); + } + } + } + // Skip draw if Z test is enabled, but set to fail all pixels. const bool skip_draw = (m_context->TEST.ZTE && m_context->TEST.ZTST == ZTST_NEVER); diff --git a/pcsx2/GS/GSState.h b/pcsx2/GS/GSState.h index 4a6f214c558bff..0e49400269d780 100644 --- a/pcsx2/GS/GSState.h +++ b/pcsx2/GS/GSState.h @@ -383,6 +383,7 @@ class GSState : public GSAlignedClass<32> virtual void UpdateSettings(const Pcsx2Config::GSOptions& old_config); void Flush(GSFlushReason reason); + u32 CalcMask(int exp, int max_exp); void FlushPrim(); bool TestDrawChanged(); void FlushWrite(); diff --git a/pcsx2/GS/Renderers/Common/GSRenderer.cpp b/pcsx2/GS/Renderers/Common/GSRenderer.cpp index 73262ccf05b37a..926edec84048ac 100644 --- a/pcsx2/GS/Renderers/Common/GSRenderer.cpp +++ b/pcsx2/GS/Renderers/Common/GSRenderer.cpp @@ -270,7 +270,7 @@ float GSRenderer::GetModXYOffset() { float mod_xy = 0.0f; - if (GSConfig.UserHacks_HalfPixelOffset == 1) + if (GSConfig.UserHacks_HalfPixelOffset == GSHalfPixelOffset::Normal) { mod_xy = GetUpscaleMultiplier(); switch (static_cast(std::round(mod_xy))) diff --git a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp index 18500378ddb4ba..9e57649773a32b 100644 --- a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp +++ b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp @@ -113,11 +113,11 @@ void GSRendererHW::VSync(u32 field, bool registers_written, bool idle_frame) { // If it did draws very recently, we should keep the recent stuff in case it hasn't been preloaded/used yet. // Rocky Legend does this with the main menu FMV's. - if (s_last_transfer_draw_n == s_n) + if (s_last_transfer_draw_n > (s_n - 5)) { for (auto iter = m_draw_transfers.rbegin(); iter != m_draw_transfers.rend(); iter++) { - if ((s_n - iter->draw) > 5) + if ((s_n - iter->draw) > 50) { m_draw_transfers.erase(m_draw_transfers.begin(), std::next(iter).base()); break; @@ -175,7 +175,7 @@ GSTexture* GSRendererHW::GetOutput(int i, float& scale, int& y_offset) TEX0.TBW = curFramebuffer.FBW; TEX0.PSM = curFramebuffer.PSM; - if (GSTextureCache::Target* rt = g_texture_cache->LookupDisplayTarget(TEX0, framebufferSize, GetTextureScaleFactor())) + if (GSTextureCache::Target* rt = g_texture_cache->LookupDisplayTarget(TEX0, framebufferSize, GetTextureScaleFactor(), false)) { rt->Update(); t = rt->m_texture; @@ -214,7 +214,7 @@ GSTexture* GSRendererHW::GetFeedbackOutput(float& scale) TEX0.TBW = m_regs->EXTBUF.EXBW; TEX0.PSM = PCRTCDisplays.PCRTCDisplays[index].PSM; - GSTextureCache::Target* rt = g_texture_cache->LookupDisplayTarget(TEX0, fb_size, GetTextureScaleFactor()); + GSTextureCache::Target* rt = g_texture_cache->LookupDisplayTarget(TEX0, fb_size, GetTextureScaleFactor(), true); if (!rt) return nullptr; @@ -593,8 +593,12 @@ void GSRendererHW::ConvertSpriteTextureShuffle(bool& write_ba, bool& read_ba, GS GSVector4 GSRendererHW::RealignTargetTextureCoordinate(const GSTextureCache::Source* tex) { - if (GSConfig.UserHacks_HalfPixelOffset <= 1 || GetUpscaleMultiplier() == 1.0f) + if (GSConfig.UserHacks_HalfPixelOffset <= GSHalfPixelOffset::Normal || + GSConfig.UserHacks_HalfPixelOffset == GSHalfPixelOffset::Native || + GetUpscaleMultiplier() == 1.0f) + { return GSVector4(0.0f); + } const GSVertex* v = &m_vertex.buff[0]; const float scale = tex->GetScale(); @@ -607,7 +611,7 @@ GSVector4 GSRendererHW::RealignTargetTextureCoordinate(const GSTextureCache::Sou if (PRIM->FST) { - if (GSConfig.UserHacks_HalfPixelOffset == 3) + if (GSConfig.UserHacks_HalfPixelOffset == GSHalfPixelOffset::SpecialAggressive) { if (!linear && t_position == 8) { @@ -1900,7 +1904,8 @@ void GSRendererHW::Draw() } m_process_texture = PRIM->TME && !(PRIM->ABE && m_context->ALPHA.IsBlack() && !m_cached_ctx.TEX0.TCC); - const bool not_writing_to_all = (!PrimitiveCoversWithoutGaps() || AreAnyPixelsDiscarded() || !all_depth_tests_pass); + const bool no_gaps = PrimitiveCoversWithoutGaps(); + const bool not_writing_to_all = (!no_gaps || AreAnyPixelsDiscarded() || !all_depth_tests_pass); bool preserve_depth = not_writing_to_all || (!no_ds && (!all_depth_tests_pass || !m_cached_ctx.DepthWrite() || m_cached_ctx.TEST.ATE)); @@ -2036,6 +2041,7 @@ void GSRendererHW::Draw() if (height_invalid && m_cached_ctx.FRAME.FBW <= 1 && TryToResolveSinglePageFramebuffer(m_cached_ctx.FRAME, true)) { + const GSVector2i fb_size = PCRTCDisplays.GetFramebufferSize(-1); const GSVector2i& pgs = GSLocalMemory::m_psm[m_cached_ctx.FRAME.PSM].pgs; ReplaceVerticesWithSprite( GetDrawRectForPages(m_cached_ctx.FRAME.FBW, m_cached_ctx.FRAME.PSM, (m_r.w + (pgs.y - 1)) / pgs.y), @@ -2559,6 +2565,42 @@ void GSRendererHW::Draw() const bool can_update_size = !is_possible_mem_clear && !m_texture_shuffle && !m_channel_shuffle; if (!m_texture_shuffle && !m_channel_shuffle) { + // Try to turn blits in to single sprites, saves upscaling problems when striped clears/blits. + if (m_vt.m_primclass == GS_SPRITE_CLASS && no_gaps && m_index.tail > 2 && (!PRIM->TME || TextureCoversWithoutGapsNotEqual()) && m_vt.m_eq.rgba == 0xFFFF) + { + // Full final framebuffer only. + const GSVector2i fb_size = PCRTCDisplays.GetFramebufferSize(-1); + if (std::abs(fb_size.x - m_r.width()) <= 1 && std::abs(fb_size.y - m_r.height()) <= 1) + { + GSVertex* v = m_vertex.buff; + + v[0].XYZ.Z = v[1].XYZ.Z; + v[0].RGBAQ = v[1].RGBAQ; + v[0].FOG = v[1].FOG; + m_vt.m_eq.rgba = 0xFFFF; + m_vt.m_eq.z = true; + m_vt.m_eq.f = true; + + v[1].XYZ.X = v[m_index.tail - 1].XYZ.X; + v[1].XYZ.Y = v[m_index.tail - 1].XYZ.Y; + + if (PRIM->FST) + { + v[1].U = v[m_index.tail - 1].U; + v[1].V = v[m_index.tail - 1].V; + } + else + { + v[1].ST.S = v[m_index.tail - 1].ST.S; + v[1].ST.T = v[m_index.tail - 1].ST.T; + v[1].RGBAQ.Q = v[m_index.tail - 1].RGBAQ.Q; + } + + m_vertex.head = m_vertex.tail = m_vertex.next = 2; + m_index.tail = 2; + } + } + if (rt && (!is_possible_mem_clear || rt->m_TEX0.PSM != FRAME_TEX0.PSM)) { if (rt->m_TEX0.TBW != FRAME_TEX0.TBW && !m_cached_ctx.ZBUF.ZMSK && (m_cached_ctx.FRAME.FBMSK & 0xFF000000)) @@ -2610,11 +2652,11 @@ void GSRendererHW::Draw() GSVector2i new_size = t_size; // We need to adjust the size if it's a texture shuffle as we could end up making the RT twice the size. - if (rt && m_texture_shuffle && m_split_texture_shuffle_pages == 0) + if (src && m_texture_shuffle && m_split_texture_shuffle_pages == 0) { - if ((new_size.x > rt->m_valid.z && m_vt.m_max.p.x == new_size.x) || (new_size.y > rt->m_valid.w && m_vt.m_max.p.y == new_size.y)) + if ((new_size.x > src->m_valid_rect.z && m_vt.m_max.p.x == new_size.x) || (new_size.y > src->m_valid_rect.w && m_vt.m_max.p.y == new_size.y)) { - if (new_size.y <= rt->m_valid.w && (rt->m_TEX0.TBW != m_cached_ctx.FRAME.FBW)) + if (new_size.y <= src->m_valid_rect.w && (rt->m_TEX0.TBW != m_cached_ctx.FRAME.FBW)) new_size.x /= 2; else new_size.y /= 2; @@ -5116,30 +5158,43 @@ __ri void GSRendererHW::DrawPrims(GSTextureCache::Target* rt, GSTextureCache::Ta m_conf.vs.fst = PRIM->FST; // FIXME D3D11 and GL support half pixel center. Code could be easier!!! - const GSVector2i rtsize = m_conf.ds ? m_conf.ds->GetSize() : m_conf.rt->GetSize(); - const float rtscale = (ds ? ds->GetScale() : rt->GetScale()); - const float sx = 2.0f * rtscale / (rtsize.x << 4); - const float sy = 2.0f * rtscale / (rtsize.y << 4); - const float ox = static_cast(static_cast(m_context->XYOFFSET.OFX)); - const float oy = static_cast(static_cast(m_context->XYOFFSET.OFY)); - float ox2 = -1.0f / rtsize.x; - float oy2 = -1.0f / rtsize.y; - float mod_xy = 0.0f; - //This hack subtracts around half a pixel from OFX and OFY. - // - //The resulting shifted output aligns better with common blending / corona / blurring effects, - //but introduces a few bad pixels on the edges. - if (!rt) - { - mod_xy = GetModXYOffset(); + const GSTextureCache::Target* rt_or_ds = rt ? rt : ds; + const GSVector2i rtsize = rt_or_ds->GetTexture()->GetSize(); + const float rtscale = rt_or_ds->GetScale(); + float sx, sy, ox, oy, ox2, oy2; + if (GSConfig.UserHacks_HalfPixelOffset != GSHalfPixelOffset::Native) + { + sx = 2.0f * rtscale / (rtsize.x << 4); + sy = 2.0f * rtscale / (rtsize.y << 4); + ox = static_cast(static_cast(m_context->XYOFFSET.OFX)); + oy = static_cast(static_cast(m_context->XYOFFSET.OFY)); + ox2 = -1.0f / rtsize.x; + oy2 = -1.0f / rtsize.y; + float mod_xy = 0.0f; + //This hack subtracts around half a pixel from OFX and OFY. + // + //The resulting shifted output aligns better with common blending / corona / blurring effects, + //but introduces a few bad pixels on the edges. + if (!rt) + mod_xy = GetModXYOffset(); + else + mod_xy = rt->OffsetHack_modxy; + + if (mod_xy > 1.0f) + { + ox2 *= mod_xy; + oy2 *= mod_xy; + } } else - mod_xy = rt->OffsetHack_modxy; - - if (mod_xy > 1.0f) { - ox2 *= mod_xy; - oy2 *= mod_xy; + // Align coordinates to native resolution framebuffer, hope for the best. + sx = 2.0f / (rt_or_ds->GetUnscaledWidth() << 4); + sy = 2.0f / (rt_or_ds->GetUnscaledHeight() << 4); + ox = static_cast(static_cast(m_context->XYOFFSET.OFX)); + oy = static_cast(static_cast(m_context->XYOFFSET.OFY)); + ox2 = -1.0f / rt_or_ds->GetUnscaledWidth(); + oy2 = -1.0f / rt_or_ds->GetUnscaledHeight(); } m_conf.cb_vs.vertex_scale = GSVector2(sx, sy); @@ -5859,7 +5914,7 @@ bool GSRendererHW::DetectDoubleHalfClear(bool& no_rt, bool& no_ds) ReplaceVerticesWithSprite(m_r, GSVector2i(1, 1)); // Prevent wasting time looking up and creating the target which is getting blown away. - if (!clear_depth) + if (frame_psm.trbpp >= zbuf_psm.trbpp) { SetNewFRAME(base * BLOCKS_PER_PAGE, m_cached_ctx.FRAME.FBW, m_cached_ctx.FRAME.PSM); m_cached_ctx.ZBUF.ZMSK = true; @@ -6135,14 +6190,15 @@ bool GSRendererHW::OI_BlitFMV(GSTextureCache::Target* _rt, GSTextureCache::Sourc if (GSTexture* rt = g_gs_device->CreateRenderTarget(tw, th, GSTexture::Format::Color)) { // sRect is the top of texture + // Need to half pixel offset the dest tex coordinates as draw pixels are top left instead of centre for texel reads. const GSVector4 sRect(m_vt.m_min.t.x / tw, m_vt.m_min.t.y / th, m_vt.m_max.t.x / tw, m_vt.m_max.t.y / th); - const GSVector4 dRect(r_texture); + const GSVector4 dRect = GSVector4(r_texture) + GSVector4(0.5f); const GSVector4i r_full(0, 0, tw, th); g_gs_device->CopyRect(tex->m_texture, rt, r_full, 0, 0); g_perfmon.Put(GSPerfMon::TextureCopies, 1); - g_gs_device->StretchRect(tex->m_texture, sRect, rt, dRect); + g_gs_device->StretchRect(tex->m_texture, sRect, rt, dRect, ShaderConvert::COPY, m_vt.IsRealLinear()); g_perfmon.Put(GSPerfMon::TextureCopies, 1); g_gs_device->CopyRect(rt, tex->m_texture, r_full, 0, 0); @@ -6227,24 +6283,22 @@ bool GSRendererHW::PrimitiveCoversWithoutGaps() // Check that the height matches. Xenosaga 3 draws a letterbox around // the FMV with a sprite at the top and bottom of the framebuffer. const GSVertex* v = &m_vertex.buff[0]; - const u32 first_dpY = v[1].XYZ.Y - v[0].XYZ.Y; - const u32 first_dpX = v[1].XYZ.X - v[0].XYZ.X; + const int first_dpY = v[1].XYZ.Y - v[0].XYZ.Y; + const int first_dpX = v[1].XYZ.X - v[0].XYZ.X; // Horizontal Match. if ((first_dpX >> 4) == m_r.z) { // Borrowed from MergeSprite() modified to calculate heights. - u32 last_pY = v[1].XYZ.Y; for (u32 i = 2; i < m_vertex.next; i += 2) { - const u32 dpY = v[i + 1].XYZ.Y - v[i].XYZ.Y; - if (dpY != first_dpY || v[i].XYZ.Y != last_pY) + const int last_pY = v[i - 1].XYZ.Y; + const int dpY = v[i + 1].XYZ.Y - v[i].XYZ.Y; + if (std::abs(dpY - first_dpY) >= 16 || std::abs(static_cast(v[i].XYZ.Y) - last_pY) >= 16) { m_primitive_covers_without_gaps = false; return false; } - - last_pY = v[i + 1].XYZ.Y; } m_primitive_covers_without_gaps = true; @@ -6255,14 +6309,19 @@ bool GSRendererHW::PrimitiveCoversWithoutGaps() if ((first_dpY >> 4) == m_r.w) { // Borrowed from MergeSprite(). - u32 last_pX = v[1].XYZ.X; + const int offset_X = m_context->XYOFFSET.OFX; for (u32 i = 2; i < m_vertex.next; i += 2) { - if (v[i].XYZ.X < v[i-2].XYZ.X) + const int last_pX = v[i - 1].XYZ.X; + const int this_start_X = v[i].XYZ.X; + const int last_start_X = v[i - 2].XYZ.X; + + const int dpX = v[i + 1].XYZ.X - v[i].XYZ.X; + + if (this_start_X < last_start_X) { - const u32 dpX = v[i + 1].XYZ.X - v[i].XYZ.X; - const u32 prev_X = v[i - 2].XYZ.X - m_context->XYOFFSET.OFX; - if (dpX != prev_X || v[i].XYZ.X != m_context->XYOFFSET.OFX) + const int prev_X = last_start_X - offset_X; + if (std::abs(dpX - prev_X) >= 16 || std::abs(this_start_X - offset_X) >= 16) { m_primitive_covers_without_gaps = false; return false; @@ -6270,15 +6329,12 @@ bool GSRendererHW::PrimitiveCoversWithoutGaps() } else { - const u32 dpX = v[i + 1].XYZ.X - v[i].XYZ.X; - if (dpX != first_dpX || v[i].XYZ.X != last_pX) + if (std::abs(dpX - first_dpX) >= 16 || std::abs(this_start_X - last_pX) >= 16) { m_primitive_covers_without_gaps = false; return false; } } - - last_pX = v[i + 1].XYZ.X; } m_primitive_covers_without_gaps = true; @@ -6289,6 +6345,79 @@ bool GSRendererHW::PrimitiveCoversWithoutGaps() return false; } +// Like PrimitiveCoversWithoutGaps but with texture coordinates. +bool GSRendererHW::TextureCoversWithoutGapsNotEqual() +{ + if (m_vt.m_primclass != GS_SPRITE_CLASS) + { + return false; + } + + // Simple case: one sprite. + if (m_index.tail == 2) + { + return true; + } + + const GSVertex* v = &m_vertex.buff[0]; + const int first_dpY = v[1].XYZ.Y - v[0].XYZ.Y; + const int first_dpX = v[1].XYZ.X - v[0].XYZ.X; + const int first_dtV = v[1].V - v[0].V; + const int first_dtU = v[1].U - v[0].U; + + // Horizontal Match. + if ((first_dpX >> 4) == m_r.z) + { + // Borrowed from MergeSprite() modified to calculate heights. + for (u32 i = 2; i < m_vertex.next; i += 2) + { + const int last_tV = v[i - 1].V; + const int dtV = v[i + 1].V - v[i].V; + const u32 last_tV_diff = std::abs(static_cast(v[i].XYZ.Y) - last_tV); + if (std::abs(dtV - first_dtV) >= 16 || last_tV_diff >= 16 || last_tV_diff == 0) + { + return false; + } + } + + return true; + } + + // Vertical Match. + if ((first_dpY >> 4) == m_r.w) + { + // Borrowed from MergeSprite(). + for (u32 i = 2; i < m_vertex.next; i += 2) + { + const int last_tU = v[i - 1].U; + const int this_start_U = v[i].U; + const int last_start_U = v[i - 2].U; + + const int dtU = v[i + 1].U - v[i].U; + + if (this_start_U < last_start_U) + { + if (std::abs(dtU - last_start_U) >= 16 || std::abs(this_start_U) >= 16) + {; + return false; + } + } + else + { + const u32 last_tU_diff = std::abs(this_start_U - last_tU); + if (std::abs(dtU - first_dtU) >= 16 || last_tU_diff >= 16 || last_tU_diff == 0) + { + return false; + } + } + } + + return true; + } + + return false; +} + bool GSRendererHW::IsConstantDirectWriteMemClear() { const bool direct_draw = (m_vt.m_primclass == GS_SPRITE_CLASS) || (((m_index.tail % 6) == 0 && TrianglesAreQuads()) && m_vt.m_primclass == GS_TRIANGLE_CLASS); diff --git a/pcsx2/GS/Renderers/HW/GSRendererHW.h b/pcsx2/GS/Renderers/HW/GSRendererHW.h index cc7c0db0a1dac4..16979fec7b9d3c 100644 --- a/pcsx2/GS/Renderers/HW/GSRendererHW.h +++ b/pcsx2/GS/Renderers/HW/GSRendererHW.h @@ -68,6 +68,7 @@ class GSRendererHW : public GSRenderer bool IsDiscardingDstRGB(); bool IsDiscardingDstAlpha() const; bool PrimitiveCoversWithoutGaps(); + bool TextureCoversWithoutGapsNotEqual(); enum class CLUTDrawTestResult { diff --git a/pcsx2/GS/Renderers/HW/GSTextureCache.cpp b/pcsx2/GS/Renderers/HW/GSTextureCache.cpp index 3bb3ea7e218b11..021928776e14ca 100644 --- a/pcsx2/GS/Renderers/HW/GSTextureCache.cpp +++ b/pcsx2/GS/Renderers/HW/GSTextureCache.cpp @@ -460,7 +460,9 @@ void GSTextureCache::DirtyRectByPage(u32 sbp, u32 spsm, u32 sbw, Target* t, GSVe int page_offset = (block_offset) >> 5; // remove any hoizontal offset, this is added back on later. - const int start_page = (page_offset - (page_offset % src_pg_width)) + (src_r.x / src_info->pgs.x) + ((src_r.y / src_info->pgs.y) * std::max(static_cast(sbw), 1)); + int start_page = page_offset + (src_r.x / src_info->pgs.x) + ((src_r.y / src_info->pgs.y) * std::max(static_cast(sbw), 1)); + const int horizontal_pages = (start_page % src_pg_width); + start_page -= horizontal_pages; // Pages aligned. const GSVector4i page_mask(GSVector4i((src_info->pgs.x - 1), (src_info->pgs.y - 1)).xyxy()); @@ -512,6 +514,9 @@ void GSTextureCache::DirtyRectByPage(u32 sbp, u32 spsm, u32 sbw, Target* t, GSVe // Update the block offset. block_offset = static_cast(sbp) - static_cast(target_bp); } + + if (!x_offset) + start_page += horizontal_pages; const bool matched_format = (src_info->bpp == dst_info->bpp); const bool block_matched_format = matched_format && block_aligned_rect; @@ -2356,13 +2361,67 @@ bool GSTextureCache::PreloadTarget(GIFRegTEX0 TEX0, const GSVector2i& size, cons return hw_clear; } -GSTextureCache::Target* GSTextureCache::LookupDisplayTarget(GIFRegTEX0 TEX0, const GSVector2i& size, float scale) +GSTextureCache::Target* GSTextureCache::LookupDisplayTarget(GIFRegTEX0 TEX0, const GSVector2i& size, float scale, bool is_feedback) { Target* dst = LookupTarget(TEX0, size, scale, RenderTarget, true, 0, true); if (dst) return dst; - return CreateTarget(TEX0, size, size, scale, RenderTarget, true, 0, true); + // Didn't find a target, check if the frame was uploaded. + + bool can_create = is_feedback; + + if (!is_feedback && GSRendererHW::GetInstance()->m_draw_transfers.size() > 0) + { + const GSVector4i newrect = GSVector4i::loadh(size); + const u32 rect_end = GSLocalMemory::GetUnwrappedEndBlockAddress(TEX0.TBP0, TEX0.TBW, TEX0.PSM, newrect); + + std::vector::reverse_iterator iter; + GSVector4i eerect = GSVector4i::zero(); + const int last_draw = GSRendererHW::GetInstance()->m_draw_transfers.back().draw; + + for (iter = GSRendererHW::GetInstance()->m_draw_transfers.rbegin(); iter != GSRendererHW::GetInstance()->m_draw_transfers.rend(); ) + { + // Would be nice to make this 100, but B-Boy seems to rely on data uploaded ~200 draws ago. Making it bigger for now to be safe. + if (last_draw - iter->draw > 500) + break; + + const u32 transfer_end = GSLocalMemory::GetUnwrappedEndBlockAddress(iter->blit.DBP, iter->blit.DBW, iter->blit.DPSM, iter->rect); + + // If the format, and location doesn't overlap + if (transfer_end >= TEX0.TBP0 && iter->blit.DBP <= rect_end && GSUtil::HasCompatibleBits(iter->blit.DPSM, TEX0.PSM)) + { + GSVector4i targetr = iter->rect; + + if (eerect.rempty()) + eerect = targetr; + else + eerect = eerect.runion(targetr); + + if (iter->zero_clear && iter->draw == last_draw) + { + can_create = false; + break; + } + + if (iter->blit.DBP == TEX0.TBP0 && transfer_end == rect_end) + { + iter = std::vector::reverse_iterator(GSRendererHW::GetInstance()->m_draw_transfers.erase(iter.base() - 1)); + } + else + ++iter; + + // In theory it might not be a full rect, but it should be enough to display *something*. + // It's also possible we haven't saved enough of the transfers to fill the rect if the game draws the picture in lots of small transfers. + can_create = true; + break; + } + else + ++iter; + } + } + + return can_create ? CreateTarget(TEX0, size, size, scale, RenderTarget, true, 0, true) : nullptr; } void GSTextureCache::ScaleTargetForDisplay(Target* t, const GIFRegTEX0& dispfb, int real_w, int real_h) diff --git a/pcsx2/GS/Renderers/HW/GSTextureCache.h b/pcsx2/GS/Renderers/HW/GSTextureCache.h index 42b00b4d8e7e30..90899967c04a9e 100644 --- a/pcsx2/GS/Renderers/HW/GSTextureCache.h +++ b/pcsx2/GS/Renderers/HW/GSTextureCache.h @@ -483,7 +483,7 @@ class GSTextureCache Target* CreateTarget(GIFRegTEX0 TEX0, const GSVector2i& size, const GSVector2i& valid_size,float scale, int type, bool used = true, u32 fbmask = 0, bool is_frame = false, bool preload = GSConfig.PreloadFrameWithGSData, bool preserve_target = true, const GSVector4i draw_rc = GSVector4i::zero(), GSTextureCache::Source* src = nullptr); - Target* LookupDisplayTarget(GIFRegTEX0 TEX0, const GSVector2i& size, float scale); + Target* LookupDisplayTarget(GIFRegTEX0 TEX0, const GSVector2i& size, float scale, bool is_feedback); /// Looks up a target in the cache, and only returns it if the BP/BW match exactly. Target* GetExactTarget(u32 BP, u32 BW, int type, u32 end_bp); diff --git a/pcsx2/GS/Renderers/Metal/GSDeviceMTL.mm b/pcsx2/GS/Renderers/Metal/GSDeviceMTL.mm index 8a7329de73958f..484b72d4b82507 100644 --- a/pcsx2/GS/Renderers/Metal/GSDeviceMTL.mm +++ b/pcsx2/GS/Renderers/Metal/GSDeviceMTL.mm @@ -1233,8 +1233,12 @@ static void OnMainThread(Fn&& fn) void GSDeviceMTL::ResizeWindow(s32 new_window_width, s32 new_window_height, float new_window_scale) { m_window_info.surface_scale = new_window_scale; - if (m_window_info.surface_width == static_cast(new_window_width) && m_window_info.surface_height == static_cast(new_window_height)) + if (!m_layer || + (m_window_info.surface_width == static_cast(new_window_width) && m_window_info.surface_height == static_cast(new_window_height))) + { return; + } + m_window_info.surface_width = new_window_width; m_window_info.surface_height = new_window_height; @autoreleasepool diff --git a/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp b/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp index 829e887e0cf105..6019af4c380030 100644 --- a/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp +++ b/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp @@ -891,8 +891,9 @@ bool GSDeviceOGL::UpdateWindow() void GSDeviceOGL::ResizeWindow(s32 new_window_width, s32 new_window_height, float new_window_scale) { m_window_info.surface_scale = new_window_scale; - if (m_window_info.surface_width == static_cast(new_window_width) && - m_window_info.surface_height == static_cast(new_window_height)) + if (m_window_info.type == WindowInfo::Type::Surfaceless || + (m_window_info.surface_width == static_cast(new_window_width) && + m_window_info.surface_height == static_cast(new_window_height))) { return; } diff --git a/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp b/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp index 6dbab5c21bcaf5..8b2d77a1b2624c 100644 --- a/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp +++ b/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp @@ -2216,7 +2216,7 @@ bool GSDeviceVK::UpdateWindow() void GSDeviceVK::ResizeWindow(s32 new_window_width, s32 new_window_height, float new_window_scale) { - if (m_swap_chain->GetWidth() == static_cast(new_window_width) && + if (!m_swap_chain || m_swap_chain->GetWidth() == static_cast(new_window_width) && m_swap_chain->GetHeight() == static_cast(new_window_height)) { // skip unnecessary resizes diff --git a/pcsx2/GS/Renderers/Vulkan/VKEntryPoints.inl b/pcsx2/GS/Renderers/Vulkan/VKEntryPoints.inl index 7ec452ddbfdcec..4ee542838815ce 100644 --- a/pcsx2/GS/Renderers/Vulkan/VKEntryPoints.inl +++ b/pcsx2/GS/Renderers/Vulkan/VKEntryPoints.inl @@ -235,6 +235,10 @@ VULKAN_DEVICE_ENTRY_POINT(vkGetImageMemoryRequirements2, true) VULKAN_DEVICE_ENTRY_POINT(vkBindBufferMemory2, true) VULKAN_DEVICE_ENTRY_POINT(vkBindImageMemory2, true) +// Vulkan 1.3 functions. +VULKAN_DEVICE_ENTRY_POINT(vkGetDeviceBufferMemoryRequirements, false) +VULKAN_DEVICE_ENTRY_POINT(vkGetDeviceImageMemoryRequirements, false) + #ifdef _WIN32 VULKAN_DEVICE_ENTRY_POINT(vkAcquireFullScreenExclusiveModeEXT, false) VULKAN_DEVICE_ENTRY_POINT(vkReleaseFullScreenExclusiveModeEXT, false) diff --git a/pcsx2/GameDatabase.cpp b/pcsx2/GameDatabase.cpp index 4603c28c845e7a..df0ccb7d1d7f1d 100644 --- a/pcsx2/GameDatabase.cpp +++ b/pcsx2/GameDatabase.cpp @@ -606,7 +606,7 @@ bool GameDatabaseSchema::GameEntry::configMatchesHWFix(const Pcsx2Config::GSOpti return (config.SkipDrawEnd == value); case GSHWFixId::HalfPixelOffset: - return (config.UpscaleMultiplier <= 1.0f || config.UserHacks_HalfPixelOffset == value); + return (config.UpscaleMultiplier <= 1.0f || config.UserHacks_HalfPixelOffset == static_cast(value)); case GSHWFixId::RoundSprite: return (config.UpscaleMultiplier <= 1.0f || config.UserHacks_RoundSprite == value); @@ -780,8 +780,11 @@ void GameDatabaseSchema::GameEntry::applyGSHardwareFixes(Pcsx2Config::GSOptions& break; case GSHWFixId::HalfPixelOffset: - config.UserHacks_HalfPixelOffset = value; - break; + { + if (value >= 0 && value < static_cast(GSHalfPixelOffset::MaxCount)) + config.UserHacks_HalfPixelOffset = static_cast(value); + } + break; case GSHWFixId::RoundSprite: config.UserHacks_RoundSprite = value; diff --git a/pcsx2/GameList.cpp b/pcsx2/GameList.cpp index 1f9b28927c82e6..809821d9b33e65 100644 --- a/pcsx2/GameList.cpp +++ b/pcsx2/GameList.cpp @@ -1286,7 +1286,7 @@ bool GameList::DownloadCovers(const std::vector& url_templates, boo return false; } - std::unique_ptr downloader(HTTPDownloader::Create()); + std::unique_ptr downloader(HTTPDownloader::Create(Host::GetHTTPUserAgent())); if (!downloader) { progress->DisplayError("Failed to create HTTP downloader."); diff --git a/pcsx2/Host.cpp b/pcsx2/Host.cpp index 20221b60f26035..621a352504b17e 100644 --- a/pcsx2/Host.cpp +++ b/pcsx2/Host.cpp @@ -19,7 +19,9 @@ #include "GS/Renderers/HW/GSTextureReplacements.h" #include "Host.h" #include "LayeredSettingsInterface.h" +#include "SysForwardDefs.h" #include "VMManager.h" +#include "svnrev.h" #include "common/Assertions.h" #include "common/CrashHandler.h" @@ -28,6 +30,8 @@ #include "common/Path.h" #include "common/StringUtil.h" +#include "fmt/format.h" + #include #include @@ -168,6 +172,19 @@ bool Host::ConfirmFormattedMessage(const std::string_view& title, const char* fo return ConfirmMessage(title, message); } +std::string Host::GetHTTPUserAgent() +{ + std::string ret; + if (!PCSX2_isReleaseVersion && GIT_TAGGED_COMMIT) + ret = fmt::format("PCSX2 Nightly - {} ({})", GIT_TAG, GetOSVersionString()); + else if (!PCSX2_isReleaseVersion) + ret = fmt::format("PCSX2 {} ({})", GIT_REV, GetOSVersionString()); + else + ret = fmt::format("PCSX2 {}.{}.{}-{} ({})", PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo, SVN_REV, GetOSVersionString()); + + return ret; +} + std::unique_lock Host::GetSettingsLock() { return std::unique_lock(s_settings_mutex); diff --git a/pcsx2/Host.h b/pcsx2/Host.h index b8e5b5d94a38a7..5c8c569c771187 100644 --- a/pcsx2/Host.h +++ b/pcsx2/Host.h @@ -99,6 +99,9 @@ namespace Host /// Requests shut down of the current virtual machine. void RequestVMShutdown(bool allow_confirm, bool allow_save_state, bool default_save_state); + /// Returns the user agent to use for HTTP requests. + std::string GetHTTPUserAgent(); + /// Base setting retrieval, bypasses layers. std::string GetBaseStringSettingValue(const char* section, const char* key, const char* default_value = ""); bool GetBaseBoolSettingValue(const char* section, const char* key, bool default_value = false); diff --git a/pcsx2/Hotkeys.cpp b/pcsx2/Hotkeys.cpp index 8a24290f1545f4..9ff13d927d9ce6 100644 --- a/pcsx2/Hotkeys.cpp +++ b/pcsx2/Hotkeys.cpp @@ -28,6 +28,7 @@ #include "common/Assertions.h" #include "common/FileSystem.h" #include "common/Path.h" +#include "common/Timer.h" static s32 s_current_save_slot = 1; static std::optional s_limiter_mode_prior_to_hold_interaction; @@ -141,25 +142,51 @@ static void HotkeySaveStateSlot(s32 slot) VMManager::SaveStateToSlot(slot); } +static bool CanPause() +{ + static constexpr const float PAUSE_INTERVAL = 3.0f; + static Common::Timer::Value s_last_pause_time = 0; + + if (!Achievements::IsHardcoreModeActive() || VMManager::GetState() == VMState::Paused) + return true; + + const Common::Timer::Value time = Common::Timer::GetCurrentValue(); + const float delta = static_cast(Common::Timer::ConvertValueToSeconds(time - s_last_pause_time)); + if (delta < PAUSE_INTERVAL) + { + Host::AddIconOSDMessage( + "PauseCooldown", ICON_FA_CLOCK, + fmt::format(TRANSLATE_FS("Hotkeys", "You cannot pause until another {:.1f} seconds have passed."), + PAUSE_INTERVAL - delta), + Host::OSD_QUICK_DURATION); + return false; + } + + Host::RemoveKeyedOSDMessage("PauseCooldown"); + s_last_pause_time = time; + + return true; +} + BEGIN_HOTKEY_LIST(g_common_hotkeys) DEFINE_HOTKEY("OpenPauseMenu", TRANSLATE_NOOP("Hotkeys", "System"), TRANSLATE_NOOP("Hotkeys", "Open Pause Menu"), [](s32 pressed) { - if (!pressed && VMManager::HasValidVM()) + if (!pressed && VMManager::HasValidVM() && CanPause()) FullscreenUI::OpenPauseMenu(); }) DEFINE_HOTKEY("OpenAchievementsList", TRANSLATE_NOOP("Hotkeys", "System"), TRANSLATE_NOOP("Hotkeys", "Open Achievements List"), [](s32 pressed) { - if (!pressed) + if (!pressed && CanPause()) FullscreenUI::OpenAchievementsWindow(); }) DEFINE_HOTKEY("OpenLeaderboardsList", TRANSLATE_NOOP("Hotkeys", "System"), TRANSLATE_NOOP("Hotkeys", "Open Leaderboards List"), [](s32 pressed) { - if (!pressed) + if (!pressed && CanPause()) FullscreenUI::OpenLeaderboardsWindow(); }) DEFINE_HOTKEY( "TogglePause", TRANSLATE_NOOP("Hotkeys", "System"), TRANSLATE_NOOP("Hotkeys", "Toggle Pause"), [](s32 pressed) { - if (!pressed && VMManager::HasValidVM()) + if (!pressed && VMManager::HasValidVM() && CanPause()) VMManager::SetPaused(VMManager::GetState() != VMState::Paused); }) DEFINE_HOTKEY("ToggleFullscreen", TRANSLATE_NOOP("Hotkeys", "System"), TRANSLATE_NOOP("Hotkeys", "Toggle Fullscreen"), diff --git a/pcsx2/ImGui/FullscreenUI.cpp b/pcsx2/ImGui/FullscreenUI.cpp index 0fcfc4dd49dd53..4cc1066262e4b8 100644 --- a/pcsx2/ImGui/FullscreenUI.cpp +++ b/pcsx2/ImGui/FullscreenUI.cpp @@ -855,17 +855,12 @@ void FullscreenUI::DoStartPath(const std::string& path, std::optional state params.fast_boot = fast_boot; // switch to nothing, we'll get brought back if init fails - const MainWindowType prev_window = s_current_main_window; - s_current_main_window = MainWindowType::None; - - Host::RunOnCPUThread([params = std::move(params), prev_window]() { + Host::RunOnCPUThread([params = std::move(params)]() { if (VMManager::HasValidVM()) return; if (VMManager::Initialize(std::move(params))) VMManager::SetState(VMState::Running); - else - s_current_main_window = prev_window; }); } @@ -3319,6 +3314,7 @@ void FullscreenUI::DrawGraphicsSettingsPage() FSUI_NSTR("Normal (Vertex)"), FSUI_NSTR("Special (Texture)"), FSUI_NSTR("Special (Texture - Aggressive)"), + FSUI_NSTR("Align To Native"), }; static constexpr const char* s_round_sprite_options[] = { FSUI_NSTR("Off (Default)"), @@ -4112,16 +4108,19 @@ void FullscreenUI::DrawControllerSettingsPage() bsi->DeleteValue(section, key.c_str()); else bsi->SetStringValue(section, key.c_str(), binds_string.c_str()); + + SetSettingsChanged(bsi); }); } - const TinyString freq_key = TinyString::from_fmt(FSUI_FSTR("Macro {} Frequency"), macro_index + 1); + const TinyString freq_key = TinyString::from_fmt("Macro{}Frequency", macro_index + 1); + const TinyString freq_label = TinyString::from_fmt(FSUI_FSTR("Macro {} Frequency"), macro_index + 1); s32 frequency = bsi->GetIntValue(section, freq_key.c_str(), 0); const SmallString freq_summary = ((frequency == 0) ? TinyString(FSUI_VSTR("Macro will not auto-toggle.")) : TinyString::from_fmt(FSUI_FSTR("Macro will toggle every {} frames."), frequency)); if (MenuButton(FSUI_ICONSTR(ICON_FA_LIGHTBULB, "Frequency"), freq_summary.c_str())) - ImGui::OpenPopup(freq_key.c_str()); + ImGui::OpenPopup(freq_label.c_str()); const std::string pressure_key(fmt::format("Macro{}Pressure", macro_index + 1)); DrawFloatSpinBoxSetting(bsi, FSUI_ICONSTR(ICON_FA_ARROW_DOWN, "Pressure"), @@ -4129,7 +4128,7 @@ void FullscreenUI::DrawControllerSettingsPage() 1.0f, 0.01f, 100.0f, "%.0f%%"); const std::string deadzone_key(fmt::format("Macro{}Deadzone", macro_index + 1)); - DrawFloatSpinBoxSetting(bsi, FSUI_ICONSTR(ICON_FA_ARROW_DOWN, "Pressure"), + DrawFloatSpinBoxSetting(bsi, FSUI_ICONSTR(ICON_FA_ARROW_DOWN, "Deadzone"), FSUI_CSTR("Determines the pressure required to activate the macro."), section, deadzone_key.c_str(), 0.0f, 0.00f, 1.0f, 0.01f, 100.0f, "%.0f%%"); @@ -4144,7 +4143,7 @@ void FullscreenUI::DrawControllerSettingsPage() LayoutScale(ImGuiFullscreen::LAYOUT_MENU_BUTTON_X_PADDING, ImGuiFullscreen::LAYOUT_MENU_BUTTON_Y_PADDING)); if (ImGui::BeginPopupModal( - freq_key.c_str(), nullptr, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove)) + freq_label.c_str(), nullptr, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove)) { ImGui::SetNextItemWidth(LayoutScale(450.0f)); if (ImGui::SliderInt("##value", &frequency, 0, 60, FSUI_CSTR("Toggle every %d frames"), ImGuiSliderFlags_NoInput)) @@ -4153,6 +4152,8 @@ void FullscreenUI::DrawControllerSettingsPage() bsi->DeleteValue(section, freq_key.c_str()); else bsi->SetIntValue(section, freq_key.c_str(), frequency); + + SetSettingsChanged(bsi); } BeginMenuButtons(); @@ -4579,10 +4580,8 @@ void FullscreenUI::DrawPauseMenu(MainWindowType type) // title info { - const bool has_rich_presence = Achievements::IsActive() && !Achievements::GetRichPresenceString().empty(); - - const float image_width = has_rich_presence ? 60.0f : 50.0f; - const float image_height = has_rich_presence ? 90.0f : 75.0f; + const float image_width = 60.0f; + const float image_height = 90.0f; const std::string_view path_string(Path::GetFileName(s_current_disc_path)); const ImVec2 title_size( g_large_font->CalcTextSizeA(g_large_font->FontSize, std::numeric_limits::max(), -1.0f, s_current_game_title.c_str())); @@ -4598,46 +4597,45 @@ void FullscreenUI::DrawPauseMenu(MainWindowType type) ImVec2 path_pos(display_size.x - LayoutScale(10.0f + image_width + 20.0f) - path_size.x, title_pos.y + g_large_font->FontSize + LayoutScale(4.0f)); ImVec2 subtitle_pos(display_size.x - LayoutScale(10.0f + image_width + 20.0f) - subtitle_size.x, - (path_string.empty() ? title_pos.y : path_pos.y) + g_medium_font->FontSize + LayoutScale(4.0f)); + (path_string.empty() ? title_pos.y + g_large_font->FontSize : path_pos.y + g_medium_font->FontSize) + LayoutScale(4.0f)); float rp_height = 0.0f; - - DrawShadowedText(dl, g_large_font, title_pos, text_color, s_current_game_title.c_str()); - if (!path_string.empty()) - { - DrawShadowedText(dl, g_medium_font, path_pos, text_color, path_string.data(), path_string.data() + path_string.length()); - } - DrawShadowedText(dl, g_medium_font, subtitle_pos, text_color, s_current_game_subtitle.c_str()); - - if (has_rich_presence) { const auto lock = Achievements::GetLock(); - const std::string& rp = Achievements::GetRichPresenceString(); + const std::string& rp = Achievements::IsActive() ? Achievements::GetRichPresenceString() : std::string(); + if (!rp.empty()) { const float wrap_width = LayoutScale(350.0f); const ImVec2 rp_size = g_medium_font->CalcTextSizeA( - g_medium_font->FontSize, std::numeric_limits::max(), wrap_width, rp.data(), rp.data() + rp.size()); + g_medium_font->FontSize, std::numeric_limits::max(), wrap_width, rp.data(), rp.data() + rp.length()); - // we make the image one line higher, so we only need to compensate when it's multiline RP - rp_height = rp_size.y - g_medium_font->FontSize; + // Add a small extra gap if any Rich Presence is displayed + rp_height = rp_size.y - g_medium_font->FontSize + LayoutScale(2.0f); - const ImVec2 rp_pos(display_size.x - LayoutScale(20.0f + 50.0f + 20.0f) - rp_size.x - rp_height, - subtitle_pos.y + g_medium_font->FontSize + LayoutScale(4.0f)); + const ImVec2 rp_pos(display_size.x - LayoutScale(20.0f + 50.0f + 20.0f) - rp_size.x, + subtitle_pos.y + g_medium_font->FontSize + LayoutScale(4.0f) - rp_height); title_pos.y -= rp_height; path_pos.y -= rp_height; subtitle_pos.y -= rp_height; - DrawShadowedText(dl, g_medium_font, rp_pos, text_color, rp.data(), rp.data() + rp.size(), wrap_width); + DrawShadowedText(dl, g_medium_font, rp_pos, text_color, rp.data(), rp.data() + rp.length(), wrap_width); } } + DrawShadowedText(dl, g_large_font, title_pos, text_color, s_current_game_title.c_str()); + if (!path_string.empty()) + { + DrawShadowedText(dl, g_medium_font, path_pos, text_color, path_string.data(), path_string.data() + path_string.length()); + } + DrawShadowedText(dl, g_medium_font, subtitle_pos, text_color, s_current_game_subtitle.c_str()); + GSTexture* const cover = GetCoverForCurrentGame(); const ImVec2 image_min( - display_size.x - LayoutScale(10.0f + image_width) - rp_height, display_size.y - LayoutScale(10.0f + image_height) - rp_height); - const ImVec2 image_max(image_min.x + LayoutScale(image_width) + rp_height, image_min.y + LayoutScale(image_height) + rp_height); + display_size.x - LayoutScale(10.0f + image_width), display_size.y - LayoutScale(10.0f + image_height) - rp_height); + const ImVec2 image_max(image_min.x + LayoutScale(image_width), image_min.y + LayoutScale(image_height) + rp_height); const ImRect image_rect(CenterImage( ImRect(image_min, image_max), ImVec2(static_cast(cover->GetWidth()), static_cast(cover->GetHeight())))); dl->AddImage(cover->GetNativeHandle(), image_rect.Min, image_rect.Max); @@ -5514,6 +5512,18 @@ void FullscreenUI::DrawGameListWindow() default: break; } + + if (VMManager::GetState() != VMState::Shutdown) + { + // Dummy window to prevent interacting with the game list while loading. + ImGui::PushStyleColor(ImGuiCol_WindowBg, ImVec4(1.0f, 1.0f, 1.0f, 1.0f)); + ImGui::SetNextWindowSize(ImGui::GetIO().DisplaySize); + ImGui::SetNextWindowPos(ImVec2(0, 0)); + ImGui::SetNextWindowBgAlpha(0.25f); + ImGui::Begin("##dummy", nullptr, ImGuiWindowFlags_NoDecoration); + ImGui::End(); + ImGui::PopStyleColor(); + } } void FullscreenUI::DrawGameList(const ImVec2& heading_size) @@ -7025,6 +7035,7 @@ TRANSLATE_NOOP("FullscreenUI", "Merge Targets"); TRANSLATE_NOOP("FullscreenUI", "Normal (Vertex)"); TRANSLATE_NOOP("FullscreenUI", "Special (Texture)"); TRANSLATE_NOOP("FullscreenUI", "Special (Texture - Aggressive)"); +TRANSLATE_NOOP("FullscreenUI", "Align To Native"); TRANSLATE_NOOP("FullscreenUI", "Half"); TRANSLATE_NOOP("FullscreenUI", "Force Bilinear"); TRANSLATE_NOOP("FullscreenUI", "Force Nearest"); @@ -7155,6 +7166,7 @@ TRANSLATE_NOOP("FullscreenUI", "Macro Button {}"); TRANSLATE_NOOP("FullscreenUI", "Buttons"); TRANSLATE_NOOP("FullscreenUI", "Frequency"); TRANSLATE_NOOP("FullscreenUI", "Pressure"); +TRANSLATE_NOOP("FullscreenUI", "Deadzone"); TRANSLATE_NOOP("FullscreenUI", "Controller Port {}{} Settings"); TRANSLATE_NOOP("FullscreenUI", "Controller Port {} Settings"); TRANSLATE_NOOP("FullscreenUI", "USB Port {}"); diff --git a/pcsx2/ImGui/ImGuiManager.cpp b/pcsx2/ImGui/ImGuiManager.cpp index d8ba9e6f757c79..97fbd12faf29db 100644 --- a/pcsx2/ImGui/ImGuiManager.cpp +++ b/pcsx2/ImGui/ImGuiManager.cpp @@ -1,5 +1,5 @@ /* PCSX2 - PS2 Emulator for PCs - * Copyright (C) 2002-2023 PCSX2 Dev Team + * Copyright (C) 2002-2023 PCSX2 Dev Team * * PCSX2 is free software: you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Found- @@ -81,7 +81,7 @@ namespace ImGuiManager static float s_global_scale = 1.0f; static std::string s_font_path; -static const ImWchar* s_font_range = nullptr; +static std::vector s_font_range; static ImFont* s_standard_font; static ImFont* s_fixed_font; @@ -112,16 +112,30 @@ static bool s_fullscreen_ui_was_initialized = false; static std::array s_software_cursors = {}; -void ImGuiManager::SetFontPath(std::string path) +void ImGuiManager::SetFontPathAndRange(std::string path, std::vector range) { + if (s_font_path == path && s_font_range == range) + return; + s_font_path = std::move(path); + s_font_range = std::move(range); s_standard_font_data = {}; -} -void ImGuiManager::SetFontRange(const u16* range) -{ - s_font_range = range; - s_standard_font_data = {}; + if (ImGui::GetCurrentContext()) + { + ImGui::EndFrame(); + + if (!LoadFontData()) + pxFailRel("Failed to load font data"); + + if (!AddImGuiFonts(HasFullscreenFonts())) + pxFailRel("Failed to create ImGui font text"); + + if (!g_gs_device->UpdateImGuiFontTexture()) + pxFailRel("Failed to recreate font texture after scale+resize"); + + NewFrame(); + } } bool ImGuiManager::Initialize() @@ -235,7 +249,7 @@ void ImGuiManager::UpdateScale() const float window_scale = g_gs_device ? g_gs_device->GetWindowScale() : 1.0f; const float scale = std::max(window_scale * (EmuConfig.GS.OsdScale / 100.0f), 0.5f); - if (scale == s_global_scale && (!HasFullscreenFonts() || !ImGuiFullscreen::UpdateLayoutScale())) + if ((!HasFullscreenFonts() || !ImGuiFullscreen::UpdateLayoutScale()) && scale == s_global_scale) return; // This is assumed to be called mid-frame. @@ -456,7 +470,8 @@ ImFont* ImGuiManager::AddTextFont(float size) ImFontConfig cfg; cfg.FontDataOwnedByAtlas = false; return ImGui::GetIO().Fonts->AddFontFromMemoryTTF( - s_standard_font_data.data(), static_cast(s_standard_font_data.size()), size, &cfg, s_font_range ? s_font_range : default_ranges); + s_standard_font_data.data(), static_cast(s_standard_font_data.size()), size, &cfg, + s_font_range.empty() ? default_ranges : s_font_range.data()); } ImFont* ImGuiManager::AddFixedFont(float size) diff --git a/pcsx2/ImGui/ImGuiManager.h b/pcsx2/ImGui/ImGuiManager.h index c7da7bb4165f40..3daa0bb3d75e34 100644 --- a/pcsx2/ImGui/ImGuiManager.h +++ b/pcsx2/ImGui/ImGuiManager.h @@ -1,5 +1,5 @@ /* PCSX2 - PS2 Emulator for PCs - * Copyright (C) 2002-2023 PCSX2 Dev Team + * Copyright (C) 2002-2023 PCSX2 Dev Team * * PCSX2 is free software: you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Found- @@ -18,6 +18,7 @@ #include "common/Pcsx2Defs.h" #include +#include struct ImFont; @@ -27,10 +28,7 @@ enum class GenericInputBinding : u8; namespace ImGuiManager { /// Sets the path to the font to use. Empty string means to use the default. - void SetFontPath(std::string path); - - /// Sets the glyph range to use when loading fonts. - void SetFontRange(const u16* range); + void SetFontPathAndRange(std::string path, std::vector range); /// Initializes ImGui, creates fonts, etc. bool Initialize(); diff --git a/pcsx2/ImGui/ImGuiOverlays.cpp b/pcsx2/ImGui/ImGuiOverlays.cpp index 892fada255970e..68fba171d1b584 100644 --- a/pcsx2/ImGui/ImGuiOverlays.cpp +++ b/pcsx2/ImGui/ImGuiOverlays.cpp @@ -391,8 +391,8 @@ void ImGuiManager::DrawSettingsOverlay() APPEND("AF={} ", EmuConfig.GS.MaxAnisotropy); if (GSConfig.Dithering != 2) APPEND("DI={} ", GSConfig.Dithering); - if (GSConfig.UserHacks_HalfPixelOffset > 0) - APPEND("HPO={} ", GSConfig.UserHacks_HalfPixelOffset); + if (GSConfig.UserHacks_HalfPixelOffset != GSHalfPixelOffset::Off) + APPEND("HPO={} ", static_cast(GSConfig.UserHacks_HalfPixelOffset)); if (GSConfig.UserHacks_RoundSprite > 0) APPEND("RS={} ", GSConfig.UserHacks_RoundSprite); if (GSConfig.UserHacks_TCOffsetX != 0 || GSConfig.UserHacks_TCOffsetY != 0) diff --git a/pcsx2/IopBios.cpp b/pcsx2/IopBios.cpp index f1278fb92b374f..688dc619d57b03 100644 --- a/pcsx2/IopBios.cpp +++ b/pcsx2/IopBios.cpp @@ -95,14 +95,13 @@ typedef struct static std::string hostRoot; -void Hle_SetElfPath(const char* elfFileName) +void Hle_SetHostRoot(const char* bootFilename) { - DevCon.WriteLn("HLE Host: Will load ELF: %s\n", elfFileName); - hostRoot = Path::ToNativePath(Path::GetDirectory(elfFileName)); + hostRoot = Path::ToNativePath(Path::GetDirectory(bootFilename)); Console.WriteLn("HLE Host: Set 'host:' root path to: %s\n", hostRoot.c_str()); } -void Hle_ClearElfPath() +void Hle_ClearHostRoot() { hostRoot = {}; } diff --git a/pcsx2/IopBios.h b/pcsx2/IopBios.h index 92110cf217b1fc..4ee207a4391eb4 100644 --- a/pcsx2/IopBios.h +++ b/pcsx2/IopBios.h @@ -86,6 +86,6 @@ namespace R3000A } } // namespace R3000A -extern void Hle_SetElfPath(const char* elfFileName); -extern void Hle_ClearElfPath(); +extern void Hle_SetHostRoot(const char* bootFilename); +extern void Hle_ClearHostRoot(); diff --git a/pcsx2/Patch.cpp b/pcsx2/Patch.cpp index 85baa2de31ae43..fb7796f32b70cd 100644 --- a/pcsx2/Patch.cpp +++ b/pcsx2/Patch.cpp @@ -158,9 +158,13 @@ namespace Patch static std::vector FindPatchFilesOnDisk( const std::string_view& serial, u32 crc, bool cheats, bool all_crcs); + static bool ContainsPatchName(const PatchInfoList& patches, const std::string_view patchName); + static bool ContainsPatchName(const PatchList& patches, const std::string_view patchName); + template static void EnumeratePnachFiles(const std::string_view& serial, u32 crc, bool cheats, bool for_ui, const F& f); + static bool PatchStringHasUnlabelledPatch(const std::string& pnach_data); static void ExtractPatchInfo(PatchInfoList* dst, const std::string& pnach_data, u32* num_unlabelled_patches); static void ReloadEnabledLists(); static u32 EnablePatches(const PatchList& patches, const EnablePatchList& enable_list); @@ -215,6 +219,13 @@ void Patch::TrimPatchLine(std::string& buffer) buffer.erase(pos); } +bool Patch::ContainsPatchName(const PatchList& patch_list, const std::string_view patch_name) +{ + return std::find_if(patch_list.begin(), patch_list.end(), [&patch_name](const PatchGroup& patch) { + return patch.name == patch_name; + }) != patch_list.end(); +} + int Patch::PatchTableExecute(PatchGroup* group, const std::string_view& lhs, const std::string_view& rhs, const std::span& Table) { @@ -267,7 +278,15 @@ u32 Patch::LoadPatchesFromString(PatchList* patch_list, const std::string& patch if (!current_patch_group.name.empty() || !current_patch_group.patches.empty()) { - patch_list->push_back(std::move(current_patch_group)); + // Don't show patches with duplicate names, prefer the first loaded. + if (!ContainsPatchName(*patch_list, current_patch_group.name)) + { + patch_list->push_back(std::move(current_patch_group)); + } + else + { + Console.WriteLn(Color_Gray, fmt::format("Patch: Skipped loading patch '{}' since a patch with a duplicate name was already loaded.", current_patch_group.name)); + } current_patch_group = {}; } @@ -350,6 +369,13 @@ std::vector Patch::FindPatchFilesOnDisk(const std::string_view& ser return ret; } +bool Patch::ContainsPatchName(const PatchInfoList& patches, const std::string_view patchName) +{ + return std::find_if(patches.begin(), patches.end(), [&patchName](const PatchInfo& patch) { + return patch.name == patchName; + }) != patches.end(); +} + template void Patch::EnumeratePnachFiles(const std::string_view& serial, u32 crc, bool cheats, bool for_ui, const F& f) { @@ -358,20 +384,28 @@ void Patch::EnumeratePnachFiles(const std::string_view& serial, u32 crc, bool ch if (for_ui || !Achievements::IsHardcoreModeActive()) disk_patch_files = FindPatchFilesOnDisk(serial, crc, cheats, for_ui); + bool unlabeled_patch_found = false; if (!disk_patch_files.empty()) { for (const std::string& file : disk_patch_files) { std::optional contents = FileSystem::ReadFileToString(file.c_str()); if (contents.has_value()) + { + // Catch if unlabeled patches are being loaded so we can disable ZIP patches to prevent conflicts. + if (PatchStringHasUnlabelledPatch(contents.value())) + { + unlabeled_patch_found = true; + Console.WriteLn(fmt::format("Patch: Disabling any bundled '{}' patches due to unlabeled patch being loaded. (To avoid conflicts)", PATCHES_ZIP_NAME)); + } + f(std::move(file), std::move(contents.value())); + } } - - return; } // Otherwise fall back to the zip. - if (cheats || !OpenPatchesZip()) + if (cheats || unlabeled_patch_found || !OpenPatchesZip()) return; // Prefer filename with serial. @@ -386,6 +420,39 @@ void Patch::EnumeratePnachFiles(const std::string_view& serial, u32 crc, bool ch f(std::move(zip_filename), std::move(pnach_data.value())); } +bool Patch::PatchStringHasUnlabelledPatch(const std::string& pnach_data) +{ + std::istringstream ss(pnach_data); + std::string line; + bool foundPatch = false, foundLabel = false; + + while (std::getline(ss, line)) + { + TrimPatchLine(line); + if (line.empty()) + continue; + + if (line.length() > 2 && line.front() == '[' && line.back() == ']') + { + if (!foundPatch) + return false; + foundLabel = true; + continue; + } + + std::string_view key, value; + StringUtil::ParseAssignmentString(line, &key, &value); + if (key == "patch") + { + if (!foundLabel) + return true; + + foundPatch = true; + } + } + return false; +} + void Patch::ExtractPatchInfo(PatchInfoList* dst, const std::string& pnach_data, u32* num_unlabelled_patches) { std::istringstream ss(pnach_data); @@ -406,7 +473,15 @@ void Patch::ExtractPatchInfo(PatchInfoList* dst, const std::string& pnach_data, if (std::none_of(dst->begin(), dst->end(), [¤t_patch](const PatchInfo& pi) { return (pi.name == current_patch.name); })) { - dst->push_back(std::move(current_patch)); + // Don't show patches with duplicate names, prefer the first loaded. + if (!ContainsPatchName(*dst, current_patch.name)) + { + dst->push_back(std::move(current_patch)); + } + else + { + Console.WriteLn(Color_Gray, fmt::format("Patch: Skipped reading patch '{}' since a patch with a duplicate name was already loaded.", current_patch.name)); + } } current_patch = {}; } diff --git a/pcsx2/Pcsx2Config.cpp b/pcsx2/Pcsx2Config.cpp index accef4b1df9c6b..38dc8195d969ff 100644 --- a/pcsx2/Pcsx2Config.cpp +++ b/pcsx2/Pcsx2Config.cpp @@ -805,7 +805,7 @@ void Pcsx2Config::GSOptions::LoadSave(SettingsWrapper& wrap) GSSettingIntEx(SkipDrawEnd, "UserHacks_SkipDraw_End"); SkipDrawEnd = std::max(SkipDrawStart, SkipDrawEnd); - GSSettingIntEx(UserHacks_HalfPixelOffset, "UserHacks_HalfPixelOffset"); + GSSettingIntEnumEx(UserHacks_HalfPixelOffset, "UserHacks_HalfPixelOffset"); GSSettingIntEx(UserHacks_RoundSprite, "UserHacks_round_sprite_offset"); GSSettingIntEx(UserHacks_TCOffsetX, "UserHacks_TCOffsetX"); GSSettingIntEx(UserHacks_TCOffsetY, "UserHacks_TCOffsetY"); @@ -872,7 +872,7 @@ void Pcsx2Config::GSOptions::MaskUserHacks() UserHacks_NativePaletteDraw = false; UserHacks_DisableSafeFeatures = false; UserHacks_DisableRenderFixes = false; - UserHacks_HalfPixelOffset = 0; + UserHacks_HalfPixelOffset = GSHalfPixelOffset::Off; UserHacks_RoundSprite = 0; UserHacks_AutoFlush = GSHWAutoFlushLevel::Disabled; PreloadFrameWithGSData = false; @@ -903,7 +903,7 @@ void Pcsx2Config::GSOptions::MaskUpscalingHacks() UserHacks_WildHack = false; UserHacks_BilinearHack = GSBilinearDirtyMode::Automatic; UserHacks_NativePaletteDraw = false; - UserHacks_HalfPixelOffset = 0; + UserHacks_HalfPixelOffset = GSHalfPixelOffset::Off; UserHacks_RoundSprite = 0; UserHacks_TCOffsetX = 0; UserHacks_TCOffsetY = 0; diff --git a/pcsx2/R3000A.cpp b/pcsx2/R3000A.cpp index 28fa5bfe3042b4..5b7e5383db4bd2 100644 --- a/pcsx2/R3000A.cpp +++ b/pcsx2/R3000A.cpp @@ -53,7 +53,7 @@ void psxReset() std::memset(&psxRegs, 0, sizeof(psxRegs)); psxRegs.pc = 0xbfc00000; // Start in bootstrap - psxRegs.CP0.n.Status = 0x10900000; // COP0 enabled | BEV = 1 | TS = 1 + psxRegs.CP0.n.Status = 0x00400000; // BEV = 1 psxRegs.CP0.n.PRid = 0x0000001f; // PRevID = Revision ID, same as the IOP R3000A psxRegs.iopBreak = 0; diff --git a/pcsx2/R5900.cpp b/pcsx2/R5900.cpp index c353a0c25429f1..cd2ba9bcf17f79 100644 --- a/pcsx2/R5900.cpp +++ b/pcsx2/R5900.cpp @@ -96,6 +96,8 @@ void cpuReset() g_eeloadMain = 0; g_eeloadExec = 0; g_osdsys_str = 0; + + CBreakPoints::ClearSkipFirst(); } __ri void cpuException(u32 code, u32 bd) diff --git a/pcsx2/Resources/Info.plist.in b/pcsx2/Resources/Info.plist.in index 11ff3b74362515..73e9185c42fc26 100644 --- a/pcsx2/Resources/Info.plist.in +++ b/pcsx2/Resources/Info.plist.in @@ -39,6 +39,8 @@ ${CMAKE_OSX_DEPLOYMENT_TARGET} NSHighResolutionCapable + NSMicrophoneUsageDescription + ${PCSX2_MICROPHONE_USAGE_DESCRIPTION} LSApplicationCategoryType public.app-category.games CFBundleDevelopmentRegion diff --git a/pcsx2/SIO/Memcard/MemoryCardFolder.cpp b/pcsx2/SIO/Memcard/MemoryCardFolder.cpp index 71ac149cb9f224..e940dc92d264ee 100644 --- a/pcsx2/SIO/Memcard/MemoryCardFolder.cpp +++ b/pcsx2/SIO/Memcard/MemoryCardFolder.cpp @@ -83,14 +83,10 @@ static void SaveYAMLToFile(const char* filename, const ryml::NodeRef& node) std::fclose(file); } -static constexpr time_t MEMORY_CARD_FILE_ENTRY_DATE_TIME_OFFSET = 60 * 60 * 9; // 9 hours from UTC static auto last = std::chrono::time_point(); MemoryCardFileEntryDateTime MemoryCardFileEntryDateTime::FromTime(time_t time) { - // TODO: Is this safe with regard to DST? - time += MEMORY_CARD_FILE_ENTRY_DATE_TIME_OFFSET; - struct tm converted = {}; #ifdef _MSC_VER gmtime_s(&converted, &time); @@ -118,7 +114,12 @@ time_t MemoryCardFileEntryDateTime::ToTime() const converted.tm_mday = day; converted.tm_mon = std::max(static_cast(month) - 1, 0); converted.tm_year = std::max(static_cast(year) - 1900, 0); - return mktime(&converted); + +#ifdef _MSC_VER + return _mkgmtime(&converted); +#else + return timegm(&converted); +#endif } FolderMemoryCard::FolderMemoryCard() diff --git a/pcsx2/SIO/Memcard/MemoryCardProtocol.cpp b/pcsx2/SIO/Memcard/MemoryCardProtocol.cpp index b5fbbd11da1714..fd1664e1d1863e 100644 --- a/pcsx2/SIO/Memcard/MemoryCardProtocol.cpp +++ b/pcsx2/SIO/Memcard/MemoryCardProtocol.cpp @@ -88,7 +88,18 @@ void MemoryCardProtocol::Probe() { MC_LOG.WriteLn("%s", __FUNCTION__); PS1_FAIL(); - The2bTerminator(4); + + if (!mcd->IsPresent()) + { + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + } + else + { + The2bTerminator(4); + } } void MemoryCardProtocol::UnknownWriteDeleteEnd() @@ -253,6 +264,12 @@ void MemoryCardProtocol::ReadData() u8 MemoryCardProtocol::PS1Read(u8 data) { MC_LOG.WriteLn("%s", __FUNCTION__); + + if (!mcd->IsPresent()) + { + return 0xff; + } + bool sendAck = true; u8 ret = 0; @@ -489,7 +506,18 @@ void MemoryCardProtocol::AuthF3() { MC_LOG.WriteLn("%s", __FUNCTION__); PS1_FAIL(); - The2bTerminator(5); + + if (!mcd->IsPresent()) + { + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + } + else + { + The2bTerminator(5); + } } void MemoryCardProtocol::AuthF7() diff --git a/pcsx2/SIO/Multitap/MultitapProtocol.cpp b/pcsx2/SIO/Multitap/MultitapProtocol.cpp index bb2aaa44717846..31a498f8f339ac 100644 --- a/pcsx2/SIO/Multitap/MultitapProtocol.cpp +++ b/pcsx2/SIO/Multitap/MultitapProtocol.cpp @@ -15,6 +15,9 @@ #include "PrecompiledHeader.h" +#include "Common.h" +#include "StateWrapper.h" + #include "SIO/Multitap/MultitapProtocol.h" #include "SIO/Sio2.h" @@ -23,35 +26,77 @@ #define MT_LOG_ENABLE 0 #define MT_LOG if (MT_LOG_ENABLE) DevCon -MultitapProtocol g_MultitapProtocol; +std::array g_MultitapArr; void MultitapProtocol::SupportCheck() { MT_LOG.WriteLn("%s", __FUNCTION__); - g_Sio2FifoOut.push_back(0x5a); - g_Sio2FifoOut.push_back(0x04); - g_Sio2FifoOut.push_back(0x00); - g_Sio2FifoOut.push_back(0x5a); + + if (EmuConfig.Pad.IsMultitapPortEnabled(g_Sio2.port)) + { + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0x80); + g_Sio2FifoOut.push_back(0x5a); + g_Sio2FifoOut.push_back(0x04); + g_Sio2FifoOut.push_back(0x00); + g_Sio2FifoOut.push_back(0x5a); + } + else + { + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + } } -void MultitapProtocol::Select() +void MultitapProtocol::Select(MultitapMode mode) { MT_LOG.WriteLn("%s", __FUNCTION__); - const u8 newSlot = g_Sio2FifoIn.front(); - g_Sio2FifoIn.pop_front(); - const bool isInBounds = (newSlot < SIO::SLOTS); + + if (EmuConfig.Pad.IsMultitapPortEnabled(g_Sio2.port)) + { + const u8 newSlot = g_Sio2FifoIn.front(); + g_Sio2FifoIn.pop_front(); + const bool isInBounds = (newSlot < SIO::SLOTS); + + if (isInBounds) + { + switch (mode) + { + case MultitapMode::SELECT_PAD: + this->currentPadSlot = newSlot; + break; + case MultitapMode::SELECT_MEMCARD: + this->currentMemcardSlot = newSlot; + break; + default: + break; + } - if (isInBounds) + MT_LOG.WriteLn("Slot changed to %d", newSlot); + } + + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0x80); + g_Sio2FifoOut.push_back(0x5a); + g_Sio2FifoOut.push_back(0x00); + g_Sio2FifoOut.push_back(0x00); + g_Sio2FifoOut.push_back(isInBounds ? newSlot : 0xff); + g_Sio2FifoOut.push_back(isInBounds ? 0x5a : 0x66); + } + else { - g_Sio2.slot = newSlot; - MT_LOG.WriteLn("Slot changed to %d", g_Sio2.slot); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); + g_Sio2FifoOut.push_back(0xff); } - - g_Sio2FifoOut.push_back(0x5a); - g_Sio2FifoOut.push_back(0x00); - g_Sio2FifoOut.push_back(0x00); - g_Sio2FifoOut.push_back(isInBounds ? newSlot : 0xff); - g_Sio2FifoOut.push_back(isInBounds ? 0x5a : 0x66); } MultitapProtocol::MultitapProtocol() = default; @@ -65,14 +110,34 @@ void MultitapProtocol::FullReset() { SoftReset(); - g_Sio2.slot = 0; + this->currentPadSlot = 0; + this->currentMemcardSlot = 0; +} + +bool MultitapProtocol::DoState(StateWrapper& sw) +{ + if (!sw.DoMarker("Multitap")) + return false; + + sw.Do(¤tPadSlot); + sw.Do(¤tMemcardSlot); + return true; +} + +u8 MultitapProtocol::GetPadSlot() +{ + return this->currentPadSlot; +} + +u8 MultitapProtocol::GetMemcardSlot() +{ + return this->currentMemcardSlot; } void MultitapProtocol::SendToMultitap() { const u8 commandByte = g_Sio2FifoIn.front(); g_Sio2FifoIn.pop_front(); - g_Sio2FifoOut.push_back(0x80); switch (static_cast(commandByte)) { @@ -81,8 +146,10 @@ void MultitapProtocol::SendToMultitap() SupportCheck(); break; case MultitapMode::SELECT_PAD: + Select(MultitapMode::SELECT_PAD); + break; case MultitapMode::SELECT_MEMCARD: - Select(); + Select(MultitapMode::SELECT_MEMCARD); break; default: DevCon.Warning("%s() Unhandled MultitapMode (%02X)", __FUNCTION__, commandByte); diff --git a/pcsx2/SIO/Multitap/MultitapProtocol.h b/pcsx2/SIO/Multitap/MultitapProtocol.h index 79fd113b99d351..62ee3bbea57612 100644 --- a/pcsx2/SIO/Multitap/MultitapProtocol.h +++ b/pcsx2/SIO/Multitap/MultitapProtocol.h @@ -15,6 +15,12 @@ #pragma once +#include "SIO/SioTypes.h" + +#include + +class StateWrapper; + enum class MultitapMode { NOT_SET = 0xff, @@ -27,8 +33,11 @@ enum class MultitapMode class MultitapProtocol { private: + u8 currentPadSlot = 0; + u8 currentMemcardSlot = 0; + void SupportCheck(); - void Select(); + void Select(MultitapMode mode); public: MultitapProtocol(); @@ -36,8 +45,13 @@ class MultitapProtocol void SoftReset(); void FullReset(); + bool DoState(StateWrapper& sw); + + u8 GetPadSlot(); + u8 GetMemcardSlot(); void SendToMultitap(); }; -extern MultitapProtocol g_MultitapProtocol; +extern std::array g_MultitapArr; + diff --git a/pcsx2/SIO/Pad/Pad.cpp b/pcsx2/SIO/Pad/Pad.cpp index a95e9fdca8eead..e8a0ece433c5a5 100644 --- a/pcsx2/SIO/Pad/Pad.cpp +++ b/pcsx2/SIO/Pad/Pad.cpp @@ -25,6 +25,7 @@ #include "IconsFontAwesome5.h" +#include "VMManager.h" #include "common/Assertions.h" #include "common/FileSystem.h" #include "common/Path.h" @@ -49,8 +50,7 @@ namespace Pad static const char* GetControllerTypeName(Pad::ControllerType type); - static std::unique_ptr CreatePad(u8 unifiedSlot, Pad::ControllerType controllerType); - static PadBase* ChangePadType(u8 unifiedSlot, Pad::ControllerType controllerType); + static PadBase* CreatePad(u8 unifiedSlot, Pad::ControllerType controllerType, size_t ejectTicks = 0); static void LoadMacroButtonConfig( const SettingsInterface& si, u32 pad, const ControllerInfo* ci, const std::string& section); @@ -58,6 +58,9 @@ namespace Pad static std::array, NUM_CONTROLLER_PORTS> s_macro_buttons; static std::array, NUM_CONTROLLER_PORTS> s_controllers; + + bool mtapPort0LastState; + bool mtapPort1LastState; } bool Pad::Initialize() @@ -91,19 +94,24 @@ void Pad::LoadConfig(const SettingsInterface& si) { s_macro_buttons = {}; - // This is where we would load controller types, if onepad supported them. + const bool mtapPort0Changed = EmuConfig.Pad.MultitapPort0_Enabled != Pad::mtapPort0LastState; + const bool mtapPort1Changed = EmuConfig.Pad.MultitapPort1_Enabled != Pad::mtapPort1LastState; + for (u32 i = 0; i < Pad::NUM_CONTROLLER_PORTS; i++) { const std::string section = GetConfigSection(i); const ControllerInfo* ci = GetControllerInfo(EmuConfig.Pad.Ports[i].Type); pxAssert(ci); - // If a pad is not yet constructed, at minimum place a NotConnected pad in the slot. - // Do not abort the for loop - If there pad settings, we want those to be applied to the slot. PadBase* pad = Pad::GetPad(i); - if (!pad || pad->GetType() != ci->type) + + // If pad pointer is not occupied yet, type in settings no longer matches the current type, or a multitap was slotted in/out, + // then reconstruct a new pad. + if (!pad || pad->GetType() != ci->type || (mtapPort0Changed && (i <= 4 && i != 1)) || (mtapPort1Changed && (i >= 5 || i == 1))) { - pad = Pad::ChangePadType(i, ci->type); + // Create the new pad. If the VM is in any kind of running state at all, set eject ticks so the PS2 will think + // there was some kind of pad ejection event and properly detect the new one, and properly initiate its config sequence. + pad = Pad::CreatePad(i, ci->type, (VMManager::GetState() != VMState::Shutdown ? Pad::DEFAULT_EJECT_TICKS : 0)); pxAssert(pad); } @@ -130,6 +138,9 @@ void Pad::LoadConfig(const SettingsInterface& si) pad->SetAnalogInvertR((invert_r & 1) != 0, (invert_r & 2) != 0); LoadMacroButtonConfig(si, i, ci, section); } + + Pad::mtapPort0LastState = EmuConfig.Pad.MultitapPort0_Enabled; + Pad::mtapPort1LastState = EmuConfig.Pad.MultitapPort1_Enabled; } Pad::ControllerType Pad::GetDefaultPadType(u32 pad) @@ -471,22 +482,22 @@ std::string Pad::GetConfigSection(u32 pad_index) return fmt::format("Pad{}", pad_index + 1); } -std::unique_ptr Pad::CreatePad(u8 unifiedSlot, ControllerType controllerType) +// Create a new pad instance, update the smart pointer for this pad slot, and return a dumb pointer to the new pad. +PadBase* Pad::CreatePad(u8 unifiedSlot, ControllerType controllerType, size_t ejectTicks) { switch (controllerType) { case ControllerType::DualShock2: - return std::make_unique(unifiedSlot); + s_controllers[unifiedSlot] = std::make_unique(unifiedSlot, ejectTicks); + break; case ControllerType::Guitar: - return std::make_unique(unifiedSlot); + s_controllers[unifiedSlot] = std::make_unique(unifiedSlot, ejectTicks); + break; default: - return std::make_unique(unifiedSlot); + s_controllers[unifiedSlot] = std::make_unique(unifiedSlot, ejectTicks); + break; } -} -PadBase* Pad::ChangePadType(u8 unifiedSlot, ControllerType controllerType) -{ - s_controllers[unifiedSlot] = CreatePad(unifiedSlot, controllerType); return s_controllers[unifiedSlot].get(); } @@ -527,35 +538,57 @@ bool Pad::Freeze(StateWrapper& sw) for (u32 unifiedSlot = 0; unifiedSlot < NUM_CONTROLLER_PORTS; unifiedSlot++) { - ControllerType type; - sw.Do(&type); + PadBase* currentPad = GetPad(unifiedSlot); + ControllerType statePadType; + + sw.Do(&statePadType); + if (sw.HasError()) return false; - - std::unique_ptr tempPad; - PadBase* pad = GetPad(unifiedSlot); - if (!pad || pad->GetType() != type) + + if (!currentPad) { + pxAssertMsg(false, fmt::format("Pad::Freeze (on read) Existing Pad {0} was nullptr", unifiedSlot).c_str()); + } + // If the currently configured pad is of a different type than the pad which was used during the savestate... + else if (currentPad->GetType() != statePadType) + { + const ControllerType currentPadType = currentPad->GetType(); + const auto& [port, slot] = sioConvertPadToPortAndSlot(unifiedSlot); Host::AddIconOSDMessage(fmt::format("UnfreezePad{}Changed", unifiedSlot), ICON_FA_GAMEPAD, fmt::format(TRANSLATE_FS("Pad", "Controller port {0}, slot {1} has a {2} connected, but the save state has a " - "{3}.\nLeaving the original controller type connected, but this may cause issues."), + "{3}.\nEjecting {3} and replacing it with {2}."), port, slot, - GetControllerTypeName(pad ? pad->GetType() : Pad::ControllerType::NotConnected), - GetControllerTypeName(type))); - - // Reset the transfer etc state of the pad, at least it has a better chance of surviving. - if (pad) - pad->SoftReset(); - - // But we still need to pull the data from the state.. - tempPad = CreatePad(unifiedSlot, type); - pad = tempPad.get(); + GetControllerTypeName(currentPad ? currentPad->GetType() : Pad::ControllerType::NotConnected), + GetControllerTypeName(statePadType))); + + // Run the freeze, using a new pad instance of the old type just so we make sure all those attributes + // from the state are read out and we aren't going to run into some sort of consistency problem. + currentPad = CreatePad(unifiedSlot, statePadType); + + if (currentPad) + { + currentPad->Freeze(sw); + + // Now immediately discard whatever malformed pad state we just created, and replace it with a fresh pad loaded + // using whatever the current user settings are. Savestates are, by definition, never going to occur in the middle + // of a transfer between SIO2 and the peripheral, since they aren't captured until the VM is at a point where everything + // is "stoppable". For all intents and purposes, by the time a savestate is captured, the IOP is "done" and there is no + // "pending work" left hanging in SIO2 or the pads. So there is nothing actually lost from just throwing the pad away and making a new one here. + currentPad = CreatePad(unifiedSlot, currentPadType, Pad::DEFAULT_EJECT_TICKS); + } + else + { + pxAssertMsg(false, fmt::format("Pad::Freeze (on read) State Pad {0} was nullptr", unifiedSlot).c_str()); + } } - - if (!pad->Freeze(sw)) + // ... else, just run the freeze normally. + else if (currentPad && !currentPad->Freeze(sw)) + { return false; + } } } else diff --git a/pcsx2/SIO/Pad/Pad.h b/pcsx2/SIO/Pad/Pad.h index fb91029ebbeab4..8f65206747e3c2 100644 --- a/pcsx2/SIO/Pad/Pad.h +++ b/pcsx2/SIO/Pad/Pad.h @@ -28,6 +28,8 @@ class StateWrapper; namespace Pad { + constexpr size_t DEFAULT_EJECT_TICKS = 50; + bool Initialize(); void Shutdown(); diff --git a/pcsx2/SIO/Pad/PadBase.cpp b/pcsx2/SIO/Pad/PadBase.cpp index 861a5e7fd4ffd1..a16353a94fc916 100644 --- a/pcsx2/SIO/Pad/PadBase.cpp +++ b/pcsx2/SIO/Pad/PadBase.cpp @@ -17,9 +17,10 @@ #include "SIO/Pad/PadBase.h" -PadBase::PadBase(u8 unifiedSlot) +PadBase::PadBase(u8 unifiedSlot, size_t ejectTicks) { this->unifiedSlot = unifiedSlot; + this->ejectTicks = ejectTicks; } PadBase::~PadBase() = default; diff --git a/pcsx2/SIO/Pad/PadBase.h b/pcsx2/SIO/Pad/PadBase.h index c45be5434937bf..d485674a69f661 100644 --- a/pcsx2/SIO/Pad/PadBase.h +++ b/pcsx2/SIO/Pad/PadBase.h @@ -23,6 +23,14 @@ class PadBase { +public: + // How many commands the pad should pretend to be ejected for. + // Since changing pads in the UI or ejecting a multitap is instant, + // this simulates the time it would take for a human to plug in the pad. + // That gives games a chance to see a pad get inserted rather than the + // pad's type magically changing from one frame to the next. + size_t ejectTicks = 0; + protected: std::array rawInputs = {}; u8 unifiedSlot; @@ -32,7 +40,7 @@ class PadBase size_t commandBytesReceived = 0; public: // Public members - PadBase(u8 unifiedSlot); + PadBase(u8 unifiedSlot, size_t ejectTicks = 0); virtual ~PadBase(); void SoftReset(); diff --git a/pcsx2/SIO/Pad/PadDualshock2.cpp b/pcsx2/SIO/Pad/PadDualshock2.cpp index d2ef9ca219fa6f..9a6e98c291a68b 100644 --- a/pcsx2/SIO/Pad/PadDualshock2.cpp +++ b/pcsx2/SIO/Pad/PadDualshock2.cpp @@ -547,8 +547,8 @@ u8 PadDualshock2::ResponseBytes(u8 commandByte) } } -PadDualshock2::PadDualshock2(u8 unifiedSlot) - : PadBase(unifiedSlot) +PadDualshock2::PadDualshock2(u8 unifiedSlot, size_t ejectTicks) + : PadBase(unifiedSlot, ejectTicks) { currentMode = Pad::Mode::DIGITAL; } diff --git a/pcsx2/SIO/Pad/PadDualshock2.h b/pcsx2/SIO/Pad/PadDualshock2.h index b797bc4dc226cc..8316792ff3a0e4 100644 --- a/pcsx2/SIO/Pad/PadDualshock2.h +++ b/pcsx2/SIO/Pad/PadDualshock2.h @@ -112,7 +112,7 @@ class PadDualshock2 final : public PadBase u8 ResponseBytes(u8 commandByte); public: - PadDualshock2(u8 unifiedSlot); + PadDualshock2(u8 unifiedSlot, size_t ejectTicks); ~PadDualshock2() override; static inline bool IsAnalogKey(int index) diff --git a/pcsx2/SIO/Pad/PadGuitar.cpp b/pcsx2/SIO/Pad/PadGuitar.cpp index 8f092829cd88a0..e57c46bf7bc0fa 100644 --- a/pcsx2/SIO/Pad/PadGuitar.cpp +++ b/pcsx2/SIO/Pad/PadGuitar.cpp @@ -248,8 +248,8 @@ u8 PadGuitar::VibrationMap(u8 commandByte) return 0xff; } -PadGuitar::PadGuitar(u8 unifiedSlot) - : PadBase(unifiedSlot) +PadGuitar::PadGuitar(u8 unifiedSlot, size_t ejectTicks) + : PadBase(unifiedSlot, ejectTicks) { currentMode = Pad::Mode::DIGITAL; } diff --git a/pcsx2/SIO/Pad/PadGuitar.h b/pcsx2/SIO/Pad/PadGuitar.h index 8b4f28c4ba2a91..886690c4bf3ea9 100644 --- a/pcsx2/SIO/Pad/PadGuitar.h +++ b/pcsx2/SIO/Pad/PadGuitar.h @@ -63,7 +63,7 @@ class PadGuitar final : public PadBase u8 VibrationMap(u8 commandByte); public: - PadGuitar(u8 unifiedSlot); + PadGuitar(u8 unifiedSlot, size_t ejectTicks); ~PadGuitar() override; Pad::ControllerType GetType() const override; diff --git a/pcsx2/SIO/Pad/PadNotConnected.cpp b/pcsx2/SIO/Pad/PadNotConnected.cpp index 1c00911211a775..b183823fe20259 100644 --- a/pcsx2/SIO/Pad/PadNotConnected.cpp +++ b/pcsx2/SIO/Pad/PadNotConnected.cpp @@ -22,8 +22,8 @@ const Pad::ControllerInfo PadNotConnected::ControllerInfo = {Pad::ControllerType::NotConnected, "None", TRANSLATE_NOOP("Pad", "Not Connected"), {}, {}, Pad::VibrationCapabilities::NoVibration }; -PadNotConnected::PadNotConnected(u8 unifiedSlot) - : PadBase(unifiedSlot) +PadNotConnected::PadNotConnected(u8 unifiedSlot, size_t ejectTicks) + : PadBase(unifiedSlot, ejectTicks) { } @@ -117,5 +117,5 @@ u8 PadNotConnected::GetPressure(u32 index) const u8 PadNotConnected::SendCommandByte(u8 commandByte) { - return 0x00; + return 0xff; } diff --git a/pcsx2/SIO/Pad/PadNotConnected.h b/pcsx2/SIO/Pad/PadNotConnected.h index 4183a7d0775f1a..10f426a2e2e345 100644 --- a/pcsx2/SIO/Pad/PadNotConnected.h +++ b/pcsx2/SIO/Pad/PadNotConnected.h @@ -20,7 +20,7 @@ class PadNotConnected final : public PadBase { public: - PadNotConnected(u8 unifiedSlot); + PadNotConnected(u8 unifiedSlot, size_t ejectTicks = 0); ~PadNotConnected() override; Pad::ControllerType GetType() const override; diff --git a/pcsx2/SIO/Sio2.cpp b/pcsx2/SIO/Sio2.cpp index 369efe692acce2..f99c8e56cbe976 100644 --- a/pcsx2/SIO/Sio2.cpp +++ b/pcsx2/SIO/Sio2.cpp @@ -65,7 +65,6 @@ bool Sio2::Initialize() iStat = 0; port = 0; - slot = 0; while (!g_Sio2FifoOut.empty()) { @@ -108,6 +107,9 @@ void Sio2::SoftReset() { g_Sio2FifoIn.pop_front(); } + + // RECV1 should always be reassembled based on the devices being probed by the packet. + recv1 = 0; } void Sio2::Interrupt() @@ -142,44 +144,101 @@ void Sio2::SetRecv1(u32 value) void Sio2::Pad() { - // Send PAD our current port, and get back whatever it says the first response byte should be. - PadBase* pad = Pad::GetPad(port, slot); + MultitapProtocol& mtap = g_MultitapArr.at(port); + PadBase* pad = Pad::GetPad(port, mtap.GetPadSlot()); - // RECV1 is set once per DMA; if any device is present at all, it should be set to connected. - // For now, we will always report connected for pads. - SetRecv1(Recv1::CONNECTED); - g_Sio2FifoOut.push_back(0xff); + // Update the third nibble with which ports have been accessed + if (this->recv1 & Recv1::ONE_PORT_OPEN) + { + this->recv1 &= ~(Recv1::ONE_PORT_OPEN); + this->recv1 |= Recv1::TWO_PORTS_OPEN; + } + else + { + this->recv1 |= Recv1::ONE_PORT_OPEN; + } - // Then for every byte in g_Sio2FifoIn, pass to PAD and see what it kicks back to us. + // This bit is always set, whether the pad is present or missing + this->recv1 |= Recv1::NO_DEVICES_MISSING; + + // If the currently accessed pad is missing, also tick those bits + if (pad->GetType() == Pad::ControllerType::NotConnected || pad->ejectTicks) + { + if (!port) + { + this->recv1 |= Recv1::PORT_1_MISSING; + } + else + { + this->recv1 |= Recv1::PORT_2_MISSING; + } + } + + g_Sio2FifoOut.push_back(0xff); pad->SoftReset(); + // Then for every byte in g_Sio2FifoIn, pass to PAD and see what it kicks back to us. while (!g_Sio2FifoIn.empty()) { - const u8 commandByte = g_Sio2FifoIn.front(); - g_Sio2FifoIn.pop_front(); - const u8 responseByte = pad->SendCommandByte(commandByte); - g_Sio2FifoOut.push_back(responseByte); + // If the pad is "ejected", respond with nothing + if (pad->ejectTicks) + { + g_Sio2FifoIn.pop_front(); + g_Sio2FifoOut.push_back(0xff); + } + // Else, actually forward to the pad. + else + { + const u8 commandByte = g_Sio2FifoIn.front(); + g_Sio2FifoIn.pop_front(); + const u8 responseByte = pad->SendCommandByte(commandByte); + g_Sio2FifoOut.push_back(responseByte); + } + } + + // If the pad is "ejected", then decrement one tick. + // This needs to happen AFTER anything else which might + // consider if the pad is "ejected"! + if (pad->ejectTicks) + { + pad->ejectTicks -= 1; } } void Sio2::Multitap() { - g_Sio2FifoOut.push_back(0x00); - - const bool multitapEnabled = EmuConfig.Pad.IsMultitapPortEnabled(port); - SetRecv1(multitapEnabled ? Recv1::CONNECTED : Recv1::DISCONNECTED); - - if (multitapEnabled) + const bool multitapEnabled = EmuConfig.Pad.IsMultitapPortEnabled(this->port); + + // Update the third nibble with which ports have been accessed + if (this->recv1 & Recv1::ONE_PORT_OPEN) { - g_MultitapProtocol.SendToMultitap(); + this->recv1 &= ~(Recv1::ONE_PORT_OPEN); + this->recv1 |= Recv1::TWO_PORTS_OPEN; } else { - while (g_Sio2FifoOut.size() < commandLength) - { - g_Sio2FifoOut.push_back(0x00); - } + this->recv1 |= Recv1::ONE_PORT_OPEN; + } + + // This bit is always set, whether the pad is present or missing + this->recv1 |= Recv1::NO_DEVICES_MISSING; + + // If the currently accessed multitap is missing, also tick those bits. + // MTAPMAN is special though. + // + // For PADMAN and pads, the bits represented by PORT_1_MISSING and PORT_2_MISSING + // are always faithful - suppose your game only opened port 2 for some reason, + // then a disconnect value would look like 0x0002D100. + // + // MTAPMAN however does not check the bit set by 0x00020000. It only checks the bit + // set by 0x00010000. So even if port 2 is being addressed, RECV1 should be 0x0001D100 + // (or 0x0001D200 if there are both ports being accessed in that packet). + if (!multitapEnabled) + { + this->recv1 |= Recv1::PORT_1_MISSING; } + + g_MultitapArr.at(this->port).SendToMultitap(); } void Sio2::Infrared() @@ -197,7 +256,9 @@ void Sio2::Infrared() void Sio2::Memcard() { - mcd = &mcds[port][slot]; + MultitapProtocol& mtap = g_MultitapArr.at(this->port); + + mcd = &mcds[port][mtap.GetMemcardSlot()]; // Check if auto ejection is active. If so, set RECV1 to DISCONNECTED, // and zero out the fifo to simulate dead air over the wire. @@ -221,10 +282,7 @@ void Sio2::Memcard() g_Sio2FifoIn.pop_front(); const u8 responseByte = mcd->IsPresent() ? 0x00 : 0xff; g_Sio2FifoOut.push_back(responseByte); - // Technically, the FLAG byte is only for PS1 memcards. However, - // since this response byte is still a dud on PS2 memcards, we can - // basically just cheat and always make this our second response byte for memcards. - g_Sio2FifoOut.push_back(mcd->FLAG); + g_Sio2FifoOut.push_back(responseByte); u8 ps1Input = 0; u8 ps1Output = 0; @@ -398,7 +456,7 @@ void Sio2::Write(u8 data) break; default: Console.Error("%s(%02X) Unhandled SIO mode %02X", __FUNCTION__, data, sioMode); - g_Sio2FifoOut.push_back(0x00); + g_Sio2FifoOut.push_back(0xff); SetRecv1(Recv1::DISCONNECTED); break; } @@ -423,7 +481,7 @@ void Sio2::Write(u8 data) u8 Sio2::Read() { - u8 ret = 0x00; + u8 ret = 0xff; if (!g_Sio2FifoOut.empty()) { @@ -432,7 +490,7 @@ u8 Sio2::Read() } else { - Console.Warning("%s() g_Sio2FifoOut underflow! Returning 0x00.", __FUNCTION__); + Console.Warning("%s() g_Sio2FifoOut underflow! Returning 0xff.", __FUNCTION__); } Sio2Log.WriteLn("%s() SIO2 DATA Read (%02X)", __FUNCTION__, ret); @@ -457,7 +515,6 @@ bool Sio2::DoState(StateWrapper& sw) sw.Do(&unknown2); sw.Do(&iStat); sw.Do(&port); - sw.Do(&slot); sw.Do(&send3Read); sw.Do(&send3Position); sw.Do(&commandLength); diff --git a/pcsx2/SIO/Sio2.h b/pcsx2/SIO/Sio2.h index 2f0caac08ab6b9..ffe3f5ea6233f2 100644 --- a/pcsx2/SIO/Sio2.h +++ b/pcsx2/SIO/Sio2.h @@ -40,7 +40,6 @@ class Sio2 u32 iStat; // 0x1f808280 u8 port = 0; - u8 slot = 0; // The current working index of SEND3. The SEND3 register is a 16 position // array of command descriptors. Each descriptor describes the port the command diff --git a/pcsx2/SIO/SioTypes.h b/pcsx2/SIO/SioTypes.h index ad190224ff4447..2668a9fb54fc14 100644 --- a/pcsx2/SIO/SioTypes.h +++ b/pcsx2/SIO/SioTypes.h @@ -130,10 +130,21 @@ namespace Sio2Ctrl static constexpr u32 SIO2MAN_RESET = 0x000003bc; } // namespace Sio2Ctrl +// TODO: Remove deprecated options once memcards are no longer using them. namespace Recv1 { + // Deprecated static constexpr u32 DISCONNECTED = 0x1d100; + // Deprecated static constexpr u32 CONNECTED = 0x1100; + + static constexpr u32 NO_DEVICES_MISSING = 0x1000; + static constexpr u32 PORT_1_MISSING = 0x1D000; + static constexpr u32 PORT_2_MISSING = 0x2D000; + static constexpr u32 BOTH_PORTS_MISSING = 0x3D000; + static constexpr u32 ONE_PORT_OPEN = 0x100; + static constexpr u32 TWO_PORTS_OPEN = 0x200; + } // namespace Recv1 namespace Recv2 diff --git a/pcsx2/SaveState.cpp b/pcsx2/SaveState.cpp index bed63cc1bd6dfe..fbe54cc801bc3b 100644 --- a/pcsx2/SaveState.cpp +++ b/pcsx2/SaveState.cpp @@ -33,6 +33,7 @@ #include "R3000A.h" #include "SIO/Sio0.h" #include "SIO/Sio2.h" +#include "SIO/Multitap/MultitapProtocol.h" #include "SPU2/spu2.h" #include "SaveState.h" #include "StateWrapper.h" @@ -259,6 +260,9 @@ bool SaveStateBase::FreezeInternals() okay = okay && g_Sio0.DoState(sw); okay = okay && g_Sio2.DoState(sw); + okay = okay && g_MultitapArr.at(0).DoState(sw); + okay = okay && g_MultitapArr.at(1).DoState(sw); + if (!okay || !sw.IsGood()) return false; diff --git a/pcsx2/SaveState.h b/pcsx2/SaveState.h index 6b5c804c9e4071..5ee8130d52ff3e 100644 --- a/pcsx2/SaveState.h +++ b/pcsx2/SaveState.h @@ -37,7 +37,7 @@ enum class FreezeAction // [SAVEVERSION+] // This informs the auto updater that the users savestates will be invalidated. -static const u32 g_SaveVersion = (0x9A48 << 16) | 0x0000; +static const u32 g_SaveVersion = (0x9A49 << 16) | 0x0000; // the freezing data between submodules and core diff --git a/pcsx2/System.cpp b/pcsx2/System.cpp index 9ddd098fe8c5bf..b2c32a77c40ee2 100644 --- a/pcsx2/System.cpp +++ b/pcsx2/System.cpp @@ -29,6 +29,7 @@ #include "svnrev.h" #include "SysForwardDefs.h" #include "x86/newVif.h" +#include "cpuinfo.h" #include "common/BitUtils.h" #include "common/Perf.h" @@ -113,26 +114,16 @@ void SysLogMachineCaps() Console.WriteLn(Color_StrongBlack, "Host Machine Init:"); Console.Indent().WriteLn( - "Operating System = %s\n" - "Physical RAM = %u MB", + "Operating System = %s\n" + "Physical RAM = %u MB", GetOSVersionString().c_str(), (u32)(GetPhysicalMemory() / _1mb)); - - Console.Indent().WriteLn( - "CPU name = %s\n" - "Vendor/Model = %s (stepping %02X)\n" - "Logical Cores = %u\n" - "x86PType = %s\n" - "x86Flags = %08x %08x\n" - "x86EFlags = %08x", - x86caps.FamilyName, - x86caps.VendorName, x86caps.StepID, - x86caps.LogicalCores, - x86caps.GetTypeName(), - x86caps.Flags, x86caps.Flags2, - x86caps.EFlags); + cpuinfo_initialize(); + Console.Indent().WriteLn("Processor = %s", cpuinfo_get_package(0)->name); + Console.Indent().WriteLn("Core Count = %u cores", cpuinfo_get_cores_count()); + Console.Indent().WriteLn("Thread Count = %u threads", cpuinfo_get_processors_count()); Console.Newline(); diff --git a/pcsx2/VMManager.cpp b/pcsx2/VMManager.cpp index 9e07d60a21f52a..a5d43545fdc891 100644 --- a/pcsx2/VMManager.cpp +++ b/pcsx2/VMManager.cpp @@ -527,7 +527,7 @@ void VMManager::ApplyGameFixes() game->applyGameFixes(EmuConfig, EmuConfig.EnableGameFixes); game->applyGSHardwareFixes(EmuConfig.GS); - + // Re-remove upscaling fixes, make sure they don't apply at native res. // We do this in LoadCoreSettings(), but game fixes get applied afterwards because of the unsafe warning. EmuConfig.GS.MaskUpscalingHacks(); @@ -658,7 +658,7 @@ void VMManager::Internal::UpdateEmuFolders() AutoEject::SetAll(); - if(!GSDumpReplayer::IsReplayingDump()) + if (!GSDumpReplayer::IsReplayingDump()) FileMcd_Reopen(memcardFilters.empty() ? s_disc_serial : memcardFilters); } @@ -1085,6 +1085,12 @@ bool VMManager::Initialize(VMBootParameters boot_params) s_elf_override = {}; ClearELFInfo(); ClearDiscDetails(); + + Achievements::GameChanged(0, 0); + FullscreenUI::GameChanged(s_title, std::string(), s_disc_serial, 0, 0); + UpdateDiscordPresence(); + Host::OnGameChanged(s_title, std::string(), std::string(), s_disc_serial, 0, 0); + UpdateGameSettingsLayer(); s_state.store(VMState::Shutdown, std::memory_order_release); Host::OnVMDestroyed(); @@ -1184,23 +1190,49 @@ bool VMManager::Initialize(VMBootParameters boot_params) if (!FileSystem::FileExists(s_elf_override.c_str())) { Host::ReportErrorAsync("Error", fmt::format("Requested boot ELF '{}' does not exist.", s_elf_override)); - DoCDVDclose(); return false; } - Hle_SetElfPath(s_elf_override.c_str()); + Hle_SetHostRoot(s_elf_override.c_str()); + } + else if (CDVDsys_GetSourceType() == CDVD_SourceType::Iso) + { + Hle_SetHostRoot(CDVDsys_GetFile(CDVDsys_GetSourceType()).c_str()); } else { - Hle_ClearElfPath(); + Hle_ClearHostRoot(); } // Check for resuming with hardcore mode. - Achievements::ResetHardcoreMode(); - if (!state_to_load.empty() && Achievements::IsHardcoreModeActive() && - !Achievements::ConfirmHardcoreModeDisable(TRANSLATE("VMManager", "Resuming state"))) + // Why do we need the boot param? Because we need some way of telling BootSystem() that + // the user allowed HC mode to be disabled, because otherwise we'll ResetHardcoreMode() + // and send ourselves into an infinite loop. + if (boot_params.disable_achievements_hardcore_mode) + Achievements::DisableHardcoreMode(); + else + Achievements::ResetHardcoreMode(); + if (!state_to_load.empty() && Achievements::IsHardcoreModeActive()) { - return false; + if (FullscreenUI::IsInitialized()) + { + boot_params.elf_override = std::move(s_elf_override); + boot_params.save_state = std::move(state_to_load); + boot_params.disable_achievements_hardcore_mode = true; + s_elf_override = {}; + + Achievements::ConfirmHardcoreModeDisableAsync(TRANSLATE("VMManager", "Resuming state"), + [boot_params = std::move(boot_params)](bool approved) mutable { + if (approved && Initialize(std::move(boot_params))) + SetState(VMState::Running); + }); + + return false; + } + else if (!Achievements::ConfirmHardcoreModeDisable(TRANSLATE("VMManager", "Resuming state"))) + { + return false; + } } s_limiter_mode = GetInitialLimiterMode(); @@ -1229,7 +1261,7 @@ bool VMManager::Initialize(VMBootParameters boot_params) } ScopedGuard close_spu2(&SPU2::Close); - + Console.WriteLn("Initializing Pad..."); if (!Pad::Initialize()) { @@ -1702,8 +1734,15 @@ u32 VMManager::DeleteSaveStates(const char* game_serial, u32 game_crc, bool also bool VMManager::LoadState(const char* filename) { - if (Achievements::IsHardcoreModeActive() && !Achievements::ConfirmHardcoreModeDisable(TRANSLATE("VMManager", "Loading state"))) + if (Achievements::IsHardcoreModeActive()) + { + Achievements::ConfirmHardcoreModeDisableAsync(TRANSLATE("VMManager", "Loading state"), + [filename = std::string(filename)](bool approved) { + if (approved) + LoadState(filename.c_str()); + }); return false; + } // TODO: Save the current state so we don't need to reset. if (DoLoadState(filename)) @@ -1715,7 +1754,7 @@ bool VMManager::LoadState(const char* filename) bool VMManager::LoadStateFromSlot(s32 slot) { - const std::string filename(GetCurrentSaveStateFileName(slot)); + const std::string filename = GetCurrentSaveStateFileName(slot); if (filename.empty()) { Host::AddIconOSDMessage("LoadStateFromSlot", ICON_FA_EXCLAMATION_TRIANGLE, @@ -1724,8 +1763,15 @@ bool VMManager::LoadStateFromSlot(s32 slot) return false; } - if (Achievements::IsHardcoreModeActive() && !Achievements::ConfirmHardcoreModeDisable(TRANSLATE("VMManager", "Loading state"))) + if (Achievements::IsHardcoreModeActive()) + { + Achievements::ConfirmHardcoreModeDisableAsync(TRANSLATE("VMManager", "Loading state"), + [slot](bool approved) { + if (approved) + LoadStateFromSlot(slot); + }); return false; + } Host::AddIconOSDMessage("LoadStateFromSlot", ICON_FA_FOLDER_OPEN, fmt::format(TRANSLATE_FS("VMManager", "Loading state from slot {}..."), slot), Host::OSD_QUICK_DURATION); @@ -1912,8 +1958,16 @@ void VMManager::FrameAdvance(u32 num_frames /*= 1*/) if (!HasValidVM()) return; - if (Achievements::IsHardcoreModeActive() && !Achievements::ConfirmHardcoreModeDisable(TRANSLATE("VMManager", "Frame advancing"))) + if (Achievements::IsHardcoreModeActive()) + { + Achievements::ConfirmHardcoreModeDisableAsync(TRANSLATE("VMManager", "Frame advancing"), + [num_frames](bool approved) { + if (approved) + FrameAdvance(num_frames); + }); + return; + } s_frame_advance_count = num_frames; SetState(VMState::Running); @@ -1957,7 +2011,7 @@ bool VMManager::ChangeDisc(CDVD_SourceType source, std::string path) if (!DoCDVDopen(&error)) { Host::AddIconOSDMessage("ChangeDisc", ICON_FA_COMPACT_DISC, - fmt::format(TRANSLATE_FS("VMManager", "Failed to switch back to old disc image. Removing disc.\nError was: {}"), + fmt::format(TRANSLATE_FS("VMManager", "Failed to switch back to old disc image. Removing disc.\nError was: {}"), error.GetDescription()), Host::OSD_CRITICAL_ERROR_DURATION); CDVDsys_ChangeSource(CDVD_SourceType::NoDisc); @@ -1980,9 +2034,9 @@ bool VMManager::SetELFOverride(std::string path) s_fast_boot_requested = !s_elf_override.empty() || EmuConfig.EnableFastBoot; if (s_elf_override.empty()) - Hle_ClearElfPath(); + Hle_ClearHostRoot(); else - Hle_SetElfPath(s_elf_override.c_str()); + Hle_SetHostRoot(s_elf_override.c_str()); Reset(); return true; @@ -2259,7 +2313,7 @@ void VMManager::CheckForGSConfigChanges(const Pcsx2Config& old_config) } else if (EmuConfig.GS.VsyncEnable != old_config.GS.VsyncEnable) { - // Still need to update target speed, because of sync-to-host-refresh. + // Still need to update target speed, because of sync-to-host-refresh. UpdateTargetSpeed(); } @@ -2478,8 +2532,7 @@ void VMManager::WarnAboutUnsafeSettings() return; std::string messages; - auto append = [&messages](const char* icon, const std::string_view& msg) - { + auto append = [&messages](const char* icon, const std::string_view& msg) { messages += icon; messages += ' '; messages += msg; @@ -2856,11 +2909,12 @@ static void InitializeCPUInfo() s_big_cores = 0; s_small_cores = 0; std::vector classes = DarwinMisc::GetCPUClasses(); - for (size_t i = 0; i < classes.size(); i++) { + for (size_t i = 0; i < classes.size(); i++) + { const DarwinMisc::CPUClass& cls = classes[i]; const bool is_big = i == 0 || i < classes.size() - 1; // Assume only one group is small DevCon.WriteLn("(VMManager) Found %u physical cores and %u logical cores in perf level %u (%s), assuming %s", - cls.num_physical, cls.num_logical, i, cls.name.c_str(), is_big ? "big" : "small"); + cls.num_physical, cls.num_logical, i, cls.name.c_str(), is_big ? "big" : "small"); (is_big ? s_big_cores : s_small_cores) += cls.num_physical; } } diff --git a/pcsx2/VMManager.h b/pcsx2/VMManager.h index db724d4553d468..68b961be7db3f2 100644 --- a/pcsx2/VMManager.h +++ b/pcsx2/VMManager.h @@ -47,6 +47,7 @@ struct VMBootParameters std::optional fast_boot; std::optional fullscreen; + bool disable_achievements_hardcore_mode = false; }; namespace VMManager